<?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>battis.net &#187; Mac OS X</title>
	<atom:link href="http://battis.net/tag/os-x/feed/" rel="self" type="application/rss+xml" />
	<link>http://battis.net</link>
	<description>...and I&#039;m all out of bubble gum.</description>
	<lastBuildDate>Sun, 08 Aug 2010 12:00:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>GeekTool/AppleScript Display of Desktop Picture Info</title>
		<link>http://battis.net/2010/06/04/geektoolapplescript-display-of-desktop-picture-info/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=geektoolapplescript-display-of-desktop-picture-info</link>
		<comments>http://battis.net/2010/06/04/geektoolapplescript-display-of-desktop-picture-info/#comments</comments>
		<pubDate>Fri, 04 Jun 2010 17:34:21 +0000</pubDate>
		<dc:creator>Seth Battis</dc:creator>
				<category><![CDATA[Educational Technology]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[AppleScript]]></category>
		<category><![CDATA[Bwana]]></category>
		<category><![CDATA[CLI (Command Line Interface)]]></category>
		<category><![CDATA[defaults]]></category>
		<category><![CDATA[GeekTool]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[mdls]]></category>
		<category><![CDATA[metadata]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[Snow Leopard (Mac OS X 10.6)]]></category>
		<category><![CDATA[Spotlight]]></category>
		<category><![CDATA[xargs]]></category>

		<guid isPermaLink="false">http://battis.net/?p=583</guid>
		<description><![CDATA[So&#8230; I am the world&#8217;s biggest dork. I don&#8217;t dispute it. And when I get stressed out, my inner librarian comes out, and comes out big. I have a large folder of desktop wallpaper that I rotate through with some regularity (every five minutes or so). They all come from the web. And I project

<hr/><h6>Related posts</h6><ol><li><a href='http://battis.net/2008/10/25/synergy-on-os-x/' rel='bookmark' title='Permanent Link: Synergy on OS X'>Synergy on OS X</a></li>
<li><a href='http://battis.net/2010/02/14/flickr-filename-to-url-converter/' rel='bookmark' title='Permanent Link: Flickr Filename to URL Converter'>Flickr Filename to URL Converter</a></li>
<li><a href='http://battis.net/2009/11/22/convert-word-processing-files-to-pdf/' rel='bookmark' title='Permanent Link: Convert Word Processing Files to PDF'>Convert Word Processing Files to PDF</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>So&#8230; I am the world&#8217;s biggest dork. I don&#8217;t dispute it. And when I get stressed out, <a href="http://www.imdb.com/title/tt0412915/">my inner librarian</a> comes out, and comes out big.</p>
<p>I have a large folder of desktop wallpaper that I rotate through with some regularity (every five minutes or so). They all come from <a href="http://pipes.yahoo.com/pipes/pipe.info?_id=qHIQTNfJ2xGjjxOmjwtvUw">the web</a>. And I project my desktop with some regularity. Which means that I get asked about where my desktop photo comes from pretty often (a few times a week). And I teach about media literacy, intellectual property and citation. Which means that I want to give credit where credit is due.</p>
<p>A few years ago, I started actually adding the URL of the page that I had downloaded an image from as its Finder Get Info comment. And then, in one of the Leopards, Apple started including this metadata in the Spotlight database for all downloaded files, too. Which means that, if I know the name of the image on the desktop right now, I can look up the URL that I got it from. That&#8217;s a big if.</p>
<p>I spent a little while last night tinkering, and came up with the following command that gets me the name of the currently displayed desktop wallpaper:</p>

<div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">defaults read ~/Library/Preferences/com.apple.desktop | grep 'LastName' | tail -n 1 | grep '[^&quot;]*\.[^&quot;]*' -o</pre></div></div>

<p>This extracts the final <em>LastName</em> entry out of the com.apple.desktop.plist file and pulls just the file name out of it. Then, because I knew that I actually want the URL that I stored in the Get Info comments field, I extended this to the following:</p>

<div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">cd ~/Pictures/Wallpapers/Single\ Display/; defaults read ~/Library/Preferences/com.apple.desktop | grep 'LastName' | tail -n 1 | grep '[^&quot;]*\.[^&quot;]*' -o | xargs mdls -name kMDItemFinderComment | grep 'http[^&quot;]*' -oi</pre></div></div>

<p>You&#8217;ll note that I assumed that all my wallpaper comes from a specific folder (~/Pictures/Wallpapers/Single Display/) &#8212; but this information could also be extracted from com.apple.desktop.plist (run the defaults command without the grepping to see what I mean &#8212; look for <em>ChangePath</em>). The big breakthrough for me was realizing that I needed to use <code>xargs</code> to extract meaning from the result of my grepping, which was presented to <code>mdls</code> with a newline at the end &#8212; <code>xargs</code> then runs <code>mdls</code> on all of the one lines of resulting output.</p>
<p>In the end, I presented the output of each of those shell scripts as overlays on my desktop (using GeekTool) and I wrapped all of this into a little AppleScript that opens the web page from whence my desktop image comes:</p>

<div class="wp_syntax"><div class="code"><pre class="applescript" style="font-family:monospace;"><span style="color: #0066ff;">do shell script</span> <span style="color: #009900;">&quot;cd ~/Pictures/Wallpapers/Single<span style="color: #000000; font-weight: bold;">\\</span> Display/; defaults read ~/Library/Preferences/com.apple.desktop | grep 'LastName' | tail -n 1 | grep '[^<span style="color: #000000; font-weight: bold;">\&quot;</span>]*<span style="color: #000000; font-weight: bold;">\\</span>.[^<span style="color: #000000; font-weight: bold;">\&quot;</span>]*' -o | xargs mdls -name kMDItemFinderComment | grep 'http[^<span style="color: #000000; font-weight: bold;">\&quot;</span>]*' -oi | xargs open&quot;</span></pre></div></div>

<p>The real addition is that I use the xargs to pass the URL to open, which opens the URL in the default browser.</p>
<p>In all of this, it is worth noting that <a href="http://www.bruji.com/bwana/">Bwana</a> has been enormously useful. As was <a href="http://macdevcenter.com/pub/a/mac/2006/01/04/mdfind.html?page=1">this article from O&#8217;Reilly</a> on using Spotlight from the command line and <a href="http://www.cocoadev.com/index.pl?WorkingWithUserDefaults">this page on the defaults command</a>.</p>


<hr/><h6>Related posts</h6><ol><li><a href='http://battis.net/2008/10/25/synergy-on-os-x/' rel='bookmark' title='Permanent Link: Synergy on OS X'>Synergy on OS X</a></li>
<li><a href='http://battis.net/2010/02/14/flickr-filename-to-url-converter/' rel='bookmark' title='Permanent Link: Flickr Filename to URL Converter'>Flickr Filename to URL Converter</a></li>
<li><a href='http://battis.net/2009/11/22/convert-word-processing-files-to-pdf/' rel='bookmark' title='Permanent Link: Convert Word Processing Files to PDF'>Convert Word Processing Files to PDF</a></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://battis.net/2010/06/04/geektoolapplescript-display-of-desktop-picture-info/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WordPress µ Testing Setup</title>
		<link>http://battis.net/2010/05/18/wordpress-%c2%b5-testing-setup/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=wordpress-%25c2%25b5-testing-setup</link>
		<comments>http://battis.net/2010/05/18/wordpress-%c2%b5-testing-setup/#comments</comments>
		<pubDate>Tue, 18 May 2010 16:56:13 +0000</pubDate>
		<dc:creator>Seth Battis</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Coda]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[LAMP]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[MAMP]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Panic.com]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordPress µ]]></category>

		<guid isPermaLink="false">http://battis.net/?p=579</guid>
		<description><![CDATA[A few days ago (well, maybe a couple weeks ago), I was chatting with one of my colleagues about how I go about testing out new plugins and themes for WordPress µ before loading them on our school blog server. It seems like documenting my process might be generally helpful, so&#8230; To start with, I

<hr/><h6>Related posts</h6><ol><li><a href='http://battis.net/2010/04/23/category-shortcode/' rel='bookmark' title='Permanent Link: Category Shortcode'>Category Shortcode</a></li>
<li><a href='http://battis.net/2009/11/22/convert-word-processing-files-to-pdf/' rel='bookmark' title='Permanent Link: Convert Word Processing Files to PDF'>Convert Word Processing Files to PDF</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>A few days ago (well, maybe a couple weeks ago), I was chatting with one of my colleagues about how I go about testing out new plugins and themes for WordPress µ before loading them on our school blog server. It seems like documenting my process might be generally helpful, so&#8230;</p>
<p>To start with, I decided (after ten years of mucking out <a href="http://www.apache.org/">Apache</a> config files and <a href="http://www.php.net/">PHP</a> extensions and custom <a href="http://www.mysql.org/">MySQL</a> installs &#8212; thank you so, so much Marc Liyange for your timely and helpful installers!), that I was a grown-up and could spend $60 on a tool that makes my life easier: I run <a href="http://www.mamp.info/en/mamp-pro/">MAMP Pro</a> on my MacBook. This means that I have a generic Apache/PHP/MySQL stack that supports commonly-used PHP extensions, Apache configurations, etc. I have redirected the document root of my install to my regular user&#8217;s Sites directory in OS X (~/Sites) so that I have ready access to the backend files of for my test installs. The net result: <a href="http://codex.wordpress.org/Installing_WordPress#Famous_5-Minute_Install">WordPress&#8217; famous &#8220;Five Minute Install&#8221;</a> is now true of almost any <a href="http://en.wikipedia.org/wiki/LAMP_(software_bundle)">LAMP</a>-based web application &#8212; I had a five-minute install of <a href="http://drupal.org/">Drupal</a>, <a href="http://moodle.org/">Moodle</a>, <a href="http://www.joomla.org/">Joomla</a>&#8230; you name it.</p>
<p>I&#8217;ve also settled into using <a href="http://www.panic.com/coda/">Coda</a> ($99) to edit HTML/PHP source code, since I particularly like the built-in terminal and publishing management features.</p>
<p>With <a href="http://mu.wordpress.org/">WordPress µ</a> installed (which, I guess, is now calling itself WPMU or WordPress MU or even <a href="http://wordpress.org/development/2010/05/wordpress-3-0-beta-2/">WordPress 3 in betas</a>), I now do the following:</p>
<ul>
<li>I install create a new blog for each new theme or plugin that I want to test out. I follow a pretty intuitive naming scheme: the URL for the blog is the URL for the plugin or theme, and the name of the blog is the name of the plugin or theme (so <a href="http://wordpress.org/extend/plugins/wp-hashcash/">WordPress Hashcash</a> is at &#8230;/wp-hashcash and named WordPress Hashcash).</li>
<li>As I create each new blog, I create a new user to be that blog&#8217;s administrator. I almost never use this login, but it means that I have one user who is matched to each blog. In doing this, I make heavy use of <a href="http://lifehacker.com/144397/instant-disposable-gmail-addresses">Gmail&#8217;s + modifiers</a>, so new user emails look like mygmailaddress+talyn+wpmu+blogurl@gmail.com &#8212; this lets me catch and filter relevant emails easily on the other end. (I developed this system when I was testing plugins that sent email notifications). For the curious, Talyn is the name of my laptop (so I know which server is sending me email) and WPMU is the keyword to distinguish these emails from, say, Drupal notifications.</li>
<li>I also have six generic users that I add to most (not all &#8212; I add them as needed) blogs, each with their own standard privileges:
<ul>
<li>Anna &#8220;Annie&#8221; Administrator</li>
<li>Edward &#8220;Eddie&#8221; Editor</li>
<li>Allison &#8220;Allie&#8221; Author</li>
<li>Christine &#8220;Chrissy&#8221; Contributor</li>
<li>Samuel &#8220;Sammy&#8221; Subscriber</li>
<li>Nathan &#8220;Nate&#8221; No Privileges</li>
</ul>
<p>I actually included nicknames so that I could control for how different themes displayed usernames (since I&#8217;m thinking about FERPA and how it may apply to our students on our school blogserver).</li>
<li>I have one blog on which I never activate themes or plugins, which I lyrically call &#8220;Is this blog in the blast radius?&#8221; This is based on my experience installing <a href="http://digress.it/">Digress.it</a> on WordPress µ at the start of the year (it hosed every blog on the server, rather than just the one where it was activated). I check this before I deem any test complete.</li>
<li>One tricky thing that I did was that I set up MAMP to run Apache and MySQL as my local user account on my MacBook, and I have set permissions on my Sites directory so that my local user has all privileges, as does the www group, and other users have read/execute privileges (<code>chown -R seth ~/Sites; chgrp -R www ~/Sites; chmod -R 775 ~/Sites</code>). This means that I usually don&#8217;t run into problems with web apps that want to move or create files. This is also, of course, totally insecure. Que sera, sera.</li>
<li>I have an extra blog set up on my WordPress µ install that runs <a href="http://wordpress.org/extend/plugins/feedwordpress/">Feed WordPress</a>, and it republishes the feeds for all of the other blogs on the server tagged Note. This means that I can post something tagged Note to any blog that I&#8217;m working on and then have all my notes together in one place. Adding the subscriptions to the Feed WordPress blog is a manual step, but not prohibitively difficult. And it really does mean that I have one place for all of my notes on how things went (or didn&#8217;t went) in my WordPress µ testing. I have the feeds categorized as Plugins, Themes, Configuration and Hacks, since those are generally what I&#8217;m testing (and mostly Plugins, at that).</li>
<li>One hitch in my system is that I have opted to keep my system entirely up-to-date (I&#8217;m running WordPress µ 2.9.2 with the most recent versions of all my plugins), while our school blog server is still at 2.8.4a. Generally speaking, this hasn&#8217;t been much of a problem, but when I&#8217;m particularly concerned, I will sometimes check things out on a lingering 2.8.4a install before loading it.</li>
</ul>


<hr/><h6>Related posts</h6><ol><li><a href='http://battis.net/2010/04/23/category-shortcode/' rel='bookmark' title='Permanent Link: Category Shortcode'>Category Shortcode</a></li>
<li><a href='http://battis.net/2009/11/22/convert-word-processing-files-to-pdf/' rel='bookmark' title='Permanent Link: Convert Word Processing Files to PDF'>Convert Word Processing Files to PDF</a></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://battis.net/2010/05/18/wordpress-%c2%b5-testing-setup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Beginner&#8217;s Guide to Video Editing in iMovie &#8217;09</title>
		<link>http://battis.net/2010/02/06/a-beginners-guide-to-video-editing-in-imovie-09/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=a-beginners-guide-to-video-editing-in-imovie-09</link>
		<comments>http://battis.net/2010/02/06/a-beginners-guide-to-video-editing-in-imovie-09/#comments</comments>
		<pubDate>Sun, 07 Feb 2010 05:02:39 +0000</pubDate>
		<dc:creator>Seth Battis</dc:creator>
				<category><![CDATA[Educational Technology]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[digital storytelling]]></category>
		<category><![CDATA[iMovie '09]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[screencast]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[video editing]]></category>

		<guid isPermaLink="false">http://battis.net/blog/?p=319</guid>
		<description><![CDATA[In preparation for a class that I&#8217;ll be visiting on Monday morning, and because I have found myself explaining these things a bunch of times this year, I have put together a quick series of screencasts that give an introduction to basic video editing in iMovie. I do this not because I think that my

<hr/><h6>Related posts</h6><ol><li><a href='http://battis.net/2010/02/26/a-breezy-introduction-to-basic-animation-in-flash/' rel='bookmark' title='Permanent Link: A Breezy Introduction to Basic Animation in Flash'>A Breezy Introduction to Basic Animation in Flash</a></li>
<li><a href='http://battis.net/2010/02/12/iteach-reenforcing-hands-on-learning-with-video/' rel='bookmark' title='Permanent Link: iTeach: Reenforcing Hands-On Learning with Video'>iTeach: Reenforcing Hands-On Learning with Video</a></li>
<li><a href='http://battis.net/2009/11/22/screencasting-complex-ideas/' rel='bookmark' title='Permanent Link: Screencasting Complex Ideas'>Screencasting Complex Ideas</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>In preparation for a class that I&#8217;ll be visiting on Monday morning, and because I have found myself explaining these things a bunch of times this year, I have put together a quick series of screencasts that give an introduction to basic video editing in iMovie. I do this not because I think that my students can learn to work in iMovie by following me stuttering and mumbling through a screencast, but because having a visual guide to refer back to after class is helpful.</p>
<p>A quick link to this (and anything else I may have to say about iMovie &#8217;09) is: <a href="http://battis.net/link/imovie09">http://battis.net/link/imovie09</a></p>
<p>You may also be interested in more specific tutorials, and <a href="http://www.apple.com/ilife/tutorials/#imovie">Apple has a bunch posted online</a>. (And you can <a href="http://www.youtube.com/results?search_query=imovie+09+tutorial">search for more on YouTube</a>).</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/p/2E674104D6DD0586&amp;hl=en_US&amp;fs=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="480" height="385" src="http://www.youtube.com/p/2E674104D6DD0586&amp;hl=en_US&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>The basic sequence of these videos is (and here I&#8217;ll link directly to the original <a href="http://www.screencast-o-matic.com/">Screencast-O-Matic</a> videos, which are slightly higher quality than the YouTube playlist above):</p>
<ol>
<li><a href="http://www.screencast-o-matic.com/watch/c6nieAhM4">5 Minute Introduction to iMovie &#8217;09</a> &#8211; This is a lightning fast orientation to very basic video editing in iMovie &#8217;09.</li>
<li><a href="http://www.screencast-o-matic.com/watch/c6nifJhMg">Using Still Images in iMovie &#8217;09</a> &#8211; Importing and editing still images instead of video clips in iMovie &#8217;09.</li>
<li><a href="http://www.screencast-o-matic.com/watch/c6nie7hMa">Adding a Video Transition in iMovie &#8217;09</a> &#8211; How to add transitions between video clips to make our project look more professional.</li>
<li><a href="http://www.screencast-o-matic.com/watch/c6nifVhMz">Adding Titles to a Video in iMovie &#8217;09</a> &#8211; How to add explanatory text (a.k.a. titles) to a video in iMovie &#8217;09.</li>
<li><a href="http://www.screencast-o-matic.com/watch/c6nifrhMA">Adding Audio Track(s) to a Video in iMovie &#8217;09</a> &#8211; How to add music, effect and voiceover soundtracks to a video in iMovie &#8217;09.</li>
<li><a href="http://www.screencast-o-matic.com/watch/c6nifyhMB">Sharing Your iMovie &#8217;09 Masterpiece with Other People</a> &#8211; A brief rant about how to export your iMovie &#8217;09 project as a video file that other people can watch.</li>
</ol>


<hr/><h6>Related posts</h6><ol><li><a href='http://battis.net/2010/02/26/a-breezy-introduction-to-basic-animation-in-flash/' rel='bookmark' title='Permanent Link: A Breezy Introduction to Basic Animation in Flash'>A Breezy Introduction to Basic Animation in Flash</a></li>
<li><a href='http://battis.net/2010/02/12/iteach-reenforcing-hands-on-learning-with-video/' rel='bookmark' title='Permanent Link: iTeach: Reenforcing Hands-On Learning with Video'>iTeach: Reenforcing Hands-On Learning with Video</a></li>
<li><a href='http://battis.net/2009/11/22/screencasting-complex-ideas/' rel='bookmark' title='Permanent Link: Screencasting Complex Ideas'>Screencasting Complex Ideas</a></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://battis.net/2010/02/06/a-beginners-guide-to-video-editing-in-imovie-09/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Convert Word Processing Files to PDF</title>
		<link>http://battis.net/2009/11/22/convert-word-processing-files-to-pdf/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=convert-word-processing-files-to-pdf</link>
		<comments>http://battis.net/2009/11/22/convert-word-processing-files-to-pdf/#comments</comments>
		<pubDate>Sun, 22 Nov 2009 21:08:31 +0000</pubDate>
		<dc:creator>Seth Battis</dc:creator>
				<category><![CDATA["Expert Plan"]]></category>
		<category><![CDATA[Educational Technology]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[Useful Tools]]></category>
		<category><![CDATA[AppleScript]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[Convert Word Processing Files to PDF]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[iWork]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Pages]]></category>
		<category><![CDATA[PDF]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[scripting]]></category>

		<guid isPermaLink="false">http://battis.net/blog/?p=134</guid>
		<description><![CDATA[This post is part of a series that are components of my &#8220;Expert Plan&#8221; at my school, looking to create a shared resource for my colleagues as the school moves towards greater adoption of laptops and technology in our pedagogy. This AppleScript application converts any word processing files that Pages can open into PDFs. This

<hr/><h6>Related posts</h6><ol><li><a href='http://battis.net/2009/09/24/fixing-powerpoint-2008-exports/' rel='bookmark' title='Permanent Link: Fixing PowerPoint 2008 Web Exports'>Fixing PowerPoint 2008 Web Exports</a></li>
<li><a href='http://battis.net/2010/02/18/teaching-technology-triumphing-over-tedious-turn-in-troubles/' rel='bookmark' title='Permanent Link: Teaching Technology: Triumphing over Tedious Turn-in Troubles'>Teaching Technology: Triumphing over Tedious Turn-in Troubles</a></li>
<li><a href='http://battis.net/2010/06/04/geektoolapplescript-display-of-desktop-picture-info/' rel='bookmark' title='Permanent Link: GeekTool/AppleScript Display of Desktop Picture Info'>GeekTool/AppleScript Display of Desktop Picture Info</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" style="border: 0px initial initial;" src="http://battis.net/area51/milken/drag_drop_icon.png" alt="" width="128" height="128" /><br />
<em>This post is <a href="http://battis.net/blog/category/teaching/educational-technology/expert-plan/">part of a series</a> that are components of my <a href="http://battis.net/blog/2009/11/22/developing-an-expert-plan/">&#8220;Expert Plan&#8221;</a></em><em> at my school, looking to create a shared resource for my colleagues as the school moves towards greater adoption of laptops and technology in our pedagogy.</em></p>
<p><em></em>This AppleScript application converts any word processing files that Pages can open into PDFs. This application will only work on Macs.</p>
<h4>Use</h4>
<p>To use this application, drag a icon(s) of a file or group of files on to the icon for the application. When asked, pick which folder you would like to save the PDFs into. As the application runs, if Pages cannnot open a particular file, you will see a message warning you of this. When the application completes, it will display a list of all the files that could not be converted (or simply quit if all of the files were converted).</p>
<h4>Install</h4>
<p>To install this application, click the link below to download it as a ZIP archive. Double-click the &#8220;Convert Word Processing Files to PDFs.zip&#8221; icon to expand the ZIP archive and drag the application icon to where you want to use it.</p>
<h4><a href="http://battis.net/blog/wp-content/uploads/2009/11/Convert-Word-Processing-Documents-to-PDF.zip">Download</a></h4>


<hr/><h6>Related posts</h6><ol><li><a href='http://battis.net/2009/09/24/fixing-powerpoint-2008-exports/' rel='bookmark' title='Permanent Link: Fixing PowerPoint 2008 Web Exports'>Fixing PowerPoint 2008 Web Exports</a></li>
<li><a href='http://battis.net/2010/02/18/teaching-technology-triumphing-over-tedious-turn-in-troubles/' rel='bookmark' title='Permanent Link: Teaching Technology: Triumphing over Tedious Turn-in Troubles'>Teaching Technology: Triumphing over Tedious Turn-in Troubles</a></li>
<li><a href='http://battis.net/2010/06/04/geektoolapplescript-display-of-desktop-picture-info/' rel='bookmark' title='Permanent Link: GeekTool/AppleScript Display of Desktop Picture Info'>GeekTool/AppleScript Display of Desktop Picture Info</a></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://battis.net/2009/11/22/convert-word-processing-files-to-pdf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fixing PowerPoint 2008 Web Exports</title>
		<link>http://battis.net/2009/09/24/fixing-powerpoint-2008-exports/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=fixing-powerpoint-2008-exports</link>
		<comments>http://battis.net/2009/09/24/fixing-powerpoint-2008-exports/#comments</comments>
		<pubDate>Thu, 24 Sep 2009 18:18:27 +0000</pubDate>
		<dc:creator>Seth Battis</dc:creator>
				<category><![CDATA[Educational Technology]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[convert]]></category>
		<category><![CDATA[export]]></category>
		<category><![CDATA[fix]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Microsoft PowerPoint]]></category>
		<category><![CDATA[Microsoft PowerPoint 2008]]></category>
		<category><![CDATA[regex (Regular Expressions)]]></category>
		<category><![CDATA[TextMate]]></category>
		<category><![CDATA[troubleshoot]]></category>

		<guid isPermaLink="false">http://battis.net/blog/?p=112</guid>
		<description><![CDATA[So, I&#8217;ve spent the last few days wrestling with a curriculum unit that an outside consultant built. In PowerPoint. On Windows. And which we have been trying to set up in such a way that we can share the interactive document with students. Who are using Macs. And, perhaps, without asking each student to download

<hr/><h6>Related posts</h6><ol><li><a href='http://battis.net/2010/05/06/powerpoint-tips/' rel='bookmark' title='Permanent Link: PowerPoint Tips'>PowerPoint Tips</a></li>
<li><a href='http://battis.net/2009/12/10/the-lazyweb-is-failing-me/' rel='bookmark' title='Permanent Link: The #lazyweb is failing me&#8230;'>The #lazyweb is failing me&#8230;</a></li>
<li><a href='http://battis.net/2009/11/22/convert-word-processing-files-to-pdf/' rel='bookmark' title='Permanent Link: Convert Word Processing Files to PDF'>Convert Word Processing Files to PDF</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>So, I&#8217;ve spent the last few days wrestling with a curriculum unit that an outside consultant built. In PowerPoint. On Windows. And which we have been trying to set up in such a way that we can share the interactive document with students. Who are using Macs. And, perhaps, without asking each student to download a ~200MB file to use it.</p>
<p>I have learned and grown much in the process. And have discovered that Microsoft PowerPoint 2008 does an execrable job of exporting PowerPoints as web pages (it does an execrable job of doing a lot of other things too, but we can talk about that at another time). Here are the key fixes that I made to the exported web page and supporting files so that the presentation would fundamentally work (all of this was done using regular expressions in <a href="http://macromates.com/">TextMate</a>):</p>
<ol>
<li>I stripped out all of the fancy Javascript calls that PowerPoint inserted as links to navigate from one slide to another. It turns out that a simple HREF to the actual page&#8217;s HTML file works (and the JavaScript Does Not.)<br />
Find:</p>

<div class="wp_syntax"><div class="code"><pre class="regex" style="font-family:monospace;">(href=&quot;)[^&quot;]*(slide\d{4,4}.htm)[^&quot;]*(&quot;)</pre></div></div>

<p>Replace with:</p>

<div class="wp_syntax"><div class="code"><pre class="regex" style="font-family:monospace;">$1$2$3</pre></div></div>

</li>
<li>The export to web page takes all of the already URL-encoded links in the PowerPoint and reencodes them, rendering them useless. I stripped off the second encoding.<br />
Find:</p>

<div class="wp_syntax"><div class="code"><pre class="regex" style="font-family:monospace;">(%)25([a-fA-F0-9]{2,2})</pre></div></div>

<p>Replace with:</p>

<div class="wp_syntax"><div class="code"><pre class="regex" style="font-family:monospace;">$1$2</pre></div></div>

</li>
<li>Finally, because the links were built in Windows and then URL-encoded, all of the Windows-style paths needed to be turned into POSIX paths for use on the web.<br />
Find:</p>

<div class="wp_syntax"><div class="code"><pre class="regex" style="font-family:monospace;">%5[cC]</pre></div></div>

<p>Replace with:</p>

<div class="wp_syntax"><div class="code"><pre class="regex" style="font-family:monospace;">/</pre></div></div>

</li>
</ol>
<p>At this point, in an average PowerPoint, most of the damage has been fixed and things more or less work. However, the curriculum unit that we were working with also linked to external Word documents (hence some of the Windows-style path issues above). This meant I had a few more fixes along the way that are worthy of note:</p>
<ol>
<li>I replaced the links to Word documents with links to the corresponding PDF files (and script I used generated PDF files with .doc.pdf extensions and I didn&#8217;t bother to fix that).<br />
Find:</p>

<div class="wp_syntax"><div class="code"><pre class="regex" style="font-family:monospace;">(href=&quot;[^&quot;]*docx?)(&quot;)</pre></div></div>

<p>Replace with:</p>

<div class="wp_syntax"><div class="code"><pre class="regex" style="font-family:monospace;">$1.pdf$2</pre></div></div>

</li>
<li>These links to external documents open in the same frame as the slideshow. Which defeats the purpose of the slideshow being a navigational tool. So I redirected all of the new PDF links to a new window in the browser. As the hyperlinks are broken across two lines in the HTML source code, this took two steps.
<ol>
<li>Find (changing {{name of Links &amp; Sources folder}} to the, well, actual name of the Links &amp; Sources folder):

<div class="wp_syntax"><div class="code"><pre class="regex" style="font-family:monospace;">(href=&quot;((http://)|({{name of Links &amp;amp; Sources folder}}))[^&quot;]*&quot;)\n</pre></div></div>

<p>Replace with:</p>

<div class="wp_syntax"><div class="code"><pre class="regex" style="font-family:monospace;">$1</pre></div></div>

</li>
<li>Find (modifying as noted above):

<div class="wp_syntax"><div class="code"><pre class="regex" style="font-family:monospace;">(href=&quot;((http://)|({{name of Links &amp;amp; Sources folder}}))[^&quot;]*&quot;\starget=&quot;)_top(&quot;)</pre></div></div>

<p>Replace with:</p>

<div class="wp_syntax"><div class="code"><pre class="regex" style="font-family:monospace;">$1_blank$5</pre></div></div>

</li>
</ol>
</li>
</ol>


<hr/><h6>Related posts</h6><ol><li><a href='http://battis.net/2010/05/06/powerpoint-tips/' rel='bookmark' title='Permanent Link: PowerPoint Tips'>PowerPoint Tips</a></li>
<li><a href='http://battis.net/2009/12/10/the-lazyweb-is-failing-me/' rel='bookmark' title='Permanent Link: The #lazyweb is failing me&#8230;'>The #lazyweb is failing me&#8230;</a></li>
<li><a href='http://battis.net/2009/11/22/convert-word-processing-files-to-pdf/' rel='bookmark' title='Permanent Link: Convert Word Processing Files to PDF'>Convert Word Processing Files to PDF</a></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://battis.net/2009/09/24/fixing-powerpoint-2008-exports/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Synergy on OS X</title>
		<link>http://battis.net/2008/10/25/synergy-on-os-x/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=synergy-on-os-x</link>
		<comments>http://battis.net/2008/10/25/synergy-on-os-x/#comments</comments>
		<pubDate>Sun, 26 Oct 2008 00:39:57 +0000</pubDate>
		<dc:creator>Seth Battis</dc:creator>
				<category><![CDATA[Educational Technology]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[install]]></category>
		<category><![CDATA[KVM (Keyboard-Video-Mouse)]]></category>
		<category><![CDATA[launch agent]]></category>
		<category><![CDATA[Leopard (Mac OS X 10.5)]]></category>
		<category><![CDATA[Lingon]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[synergy]]></category>

		<guid isPermaLink="false">http://battis.net/blog/?p=31</guid>
		<description><![CDATA[Having just spent some time fiddling with Synergy on OS X, it seems that there aren&#8217;t any current instructions on how to make Synergy start automatically on OS X Leopard (and starting it manually is kind of a hassle). My approach is based on Jan Varwig&#8217;s instructions, which needed yet more modification for my purposes.

<hr/><h6>Related posts</h6><ol><li><a href='http://battis.net/2010/06/04/geektoolapplescript-display-of-desktop-picture-info/' rel='bookmark' title='Permanent Link: GeekTool/AppleScript Display of Desktop Picture Info'>GeekTool/AppleScript Display of Desktop Picture Info</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Having just spent some time fiddling with <a href="http://synergy2.sourceforge.net/">Synergy</a> on OS X, it seems that there aren&#8217;t any current instructions on how to make Synergy start automatically on OS X Leopard (and starting it manually is kind of a hassle). My approach is based on <a href="http://jan.varwig.org/archiv/autostarting-the-synergy-server-on-mac-os-x-using-launchd/trackback">Jan Varwig&#8217;s instructions,</a> which needed yet more modification for my purposes. Having configured synergy.conf (nota bene: Synergy treats hostnames as case-sensitive, so read the results of hostname carefully!), I set the server and client machines to automatically start their Synergy processes on login.</p>
<p>This requires creating a Launch Agent on each machine (the server and the clients) to start the processes. I use <a href="http://tuppis.com/lingon/">Lingon</a>, mostly because it validates my XML and lets me use the GUI, sometimes (this, by the way, was a time when the GUI failed me &#8212; it tended to trim off parameters, be forewarned and use the Expert view).</p>
<p>On the server, I created a new My Agent thus:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;">&lt; ?xml <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;UTF-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #009900;">&lt; !DOCTYPE plist PUBLIC <span style="color: #ff0000;">&quot;-//Apple Computer//DTD PLIST 1.0//EN&quot;</span> <span style="color: #ff0000;">&quot;http://www.apple.com/DTDs/PropertyList-1.0.dtd&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;plist</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;dict<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;key<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Label<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/key<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>net.sourceforge.synergy2.server<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;key<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>OnDemand<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/key<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;false</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;key<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>ProgramArguments<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/key<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;array<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>/path/to/synergys<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>--no-daemon<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>--no-restart<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>--debug<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>WARNING<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>/path/to/synergy.conf<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/array<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;key<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>RunAtLoad<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/key<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;true</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/dict<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/plist<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>And on the client, I created a similar My Agent thus:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;">&lt; ?xml <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;UTF-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #009900;">&lt; !DOCTYPE plist PUBLIC <span style="color: #ff0000;">&quot;-//Apple Computer//DTD PLIST 1.0//EN&quot;</span> <span style="color: #ff0000;">&quot;http://www.apple.com/DTDs/PropertyList-1.0.dtd&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;plist</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;dict<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;key<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Label<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/key<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>net.sourceforge.synergy2.client<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;key<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>OnDemand<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/key<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;false</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;key<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>ProgramArguments<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/key<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;array<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>/path/to/synergyc<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>-f<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Server-Hostname<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/array<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;key<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>RunAtLoad<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/key<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;true</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/dict<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/plist<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>A reboot on each machine (server first) and all is ready to go (and, in fact, going).</p>


<hr/><h6>Related posts</h6><ol><li><a href='http://battis.net/2010/06/04/geektoolapplescript-display-of-desktop-picture-info/' rel='bookmark' title='Permanent Link: GeekTool/AppleScript Display of Desktop Picture Info'>GeekTool/AppleScript Display of Desktop Picture Info</a></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://battis.net/2008/10/25/synergy-on-os-x/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
