<?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>Out to Lunch Productions</title>
	<atom:link href="http://www.outtolunchproductions.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.outtolunchproductions.com</link>
	<description>Silly name. Serious websites.</description>
	<lastBuildDate>Mon, 19 Jul 2010 19:40:40 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Quipfire!</title>
		<link>http://www.outtolunchproductions.com/quipfire/</link>
		<comments>http://www.outtolunchproductions.com/quipfire/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 23:49:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.outtolunchproductions.com/?p=794</guid>
		<description><![CDATA[<p><strong>Creative Brief</strong>: Bring Princeton&#8217;s oldest comedy improv troupe out of the &#8217;90s.</p>
<p><a href="http://www.quipfire.com">Get Quippy!</a></p>
<p>In an apparent attempt to corner the Activities Groups from Princeton market, I found myself lucky enough to have the opportunity to work on a website&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p><strong>Creative Brief</strong>: Bring Princeton&#8217;s oldest comedy improv troupe out of the &#8217;90s.</p>
<p><a href="http://www.quipfire.com">Get Quippy!</a></p>
<p>In an apparent attempt to corner the Activities Groups from Princeton market, I found myself lucky enough to have the opportunity to work on a website for a group that no one I was related to was in.</p>
<p>This group already had some merchandise and branding, so that eliminated one of the trickier parts of my job.</p>
<p>My favorite piece of this job was figuring out one of WordPress 3.0&#8217;s newest features; custom post types. One of the things I&#8217;ve always hated about using Categories to place posts in WordPress is how easy it is to make a mistake and have the item end up in the wrong area of the site.</p>
<p>Now, it&#8217;s easy for <em>anyone</em> to see where a particular group of items live, and where to add new ones. In this case, Members is its own sub-section of posts, and adding new members is ridiculously easy.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.outtolunchproductions.com/quipfire/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Elk House</title>
		<link>http://www.outtolunchproductions.com/elk-house/</link>
		<comments>http://www.outtolunchproductions.com/elk-house/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 17:16:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.outtolunchproductions.com/?p=780</guid>
		<description><![CDATA[<p><strong>Creative Brief:</strong> A site with an elegant look and a system to help the property manager handle reservations.</p>
<p><a href="http://www.elkhouseretreat.com">Visit the site.</a></p>
<p>The houses available for rent in Colorado are, by and large, breathtaking. From simple cabins to 15-bedroom chalets, there&#8217;s&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p><strong>Creative Brief:</strong> A site with an elegant look and a system to help the property manager handle reservations.</p>
<p><a href="http://www.elkhouseretreat.com">Visit the site.</a></p>
<p>The houses available for rent in Colorado are, by and large, breathtaking. From simple cabins to 15-bedroom chalets, there&#8217;s no shortage of top-shelf vacation properties for those who are willing to pay for it.</p>
<p>What I can&#8217;t understand is why so many of these magnificent properties are rented through stock-and-trade websites like VRBO. I don&#8217;t imagine the owners of these places are very happy with the bland taste left in their potential renters&#8217; mouths after they look through a few thumbnail pictures, surrounded by drab text and Google ads for ski rentals.</p>
<p>The Elk House owners wanted to stand out from the pack, and while they will still show up on sites like VRBO (their Google search ranking is simply too high to ignore) they now have a much better place to send potential renters: their <a href="http://www.elkhouseretreat.com">custom website.</a></p>
<h2>The Reservation System</h2>
<p>Using jQuery and AJAX, I built a WordPress plugin that provides an incredibly simple and intuitive front-end interface that integrates nicely with a back-end administration area.</p>
<p>Essentially, the front-end calendar knows what each day is worth and which days are already reserved. A potential renter can select their start/end dates and get a price right away. Then they give their name/email address, and the property manager is alerted that there&#8217;s a new reservation request that must be dealt with.</p>
<p>Since every reservation request is routed through the property manager, there&#8217;s a human at the end of the process. This obviates the need for extensive security measures to prevent people from trying to get a free night by changing the price that winds up in the database. Knowing what can be left out of the design/development process is just as important as thinking about what to put into it, especially when you&#8217;re a freelancer. Time is money, and you don&#8217;t get extra credit for making things more complex than they need to be.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.outtolunchproductions.com/elk-house/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BeebeBourque.Com</title>
		<link>http://www.outtolunchproductions.com/beebebourque-com/</link>
		<comments>http://www.outtolunchproductions.com/beebebourque-com/#comments</comments>
		<pubDate>Mon, 05 Jul 2010 01:51:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.outtolunchproductions.com/?p=689</guid>
		<description><![CDATA[<p><strong>Creative Brief:</strong> Create a wedding website that looks &#8220;f*#@ing rad.&#8221;</p>
<p><a href="http://www.beebebourque.com">Check it out.</a></p>
<p>A friend of mine from high school is getting married next year, and she thought it prudent to invest in more eco-friendly ways of getting people to&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p><strong>Creative Brief:</strong> Create a wedding website that looks &#8220;f*#@ing rad.&#8221;</p>
<p><a href="http://www.beebebourque.com">Check it out.</a></p>
<p>A friend of mine from high school is getting married next year, and she thought it prudent to invest in more eco-friendly ways of getting people to her wedding than the traditional manner. Here was her plan:</p>
<p>First, don&#8217;t send out RSVPs or invitations in the mail. Second, have a completely online RSVP solution so neither she (nor her husband-to-be) would have to manually sort through all those RSVP cards that have now been through the mail <em>twice.</em> Third, have a site that doesn&#8217;t look like it was made by someone who would very clearly rather be doing almost anything other than web design.</p>
<p>I was thrilled when Liz asked me to build their site because I knew I would have to come up with a working RSVP system, something I had never done before. It started off based on the Showtime plugin I wrote for the WVAU site and evolved into a completely different beast, with automated mailing lists and even a &#8220;Forgot your password?&#8221; function.</p>
<p>I&#8217;m going to go on a little rant about wedding websites for a moment. I hope you&#8217;ll indulge me.</p>
<p>Almost every wedding website made by a do-it-yourself service that I&#8217;ve seen has been a tasteless affair that in no way reflected the joyous ceremony that it was promoting. <strong>But those services get used</strong> for a few very good reasons:</p>
<h3>1. They&#8217;re automated and work right away.</h3>
<p>As far as psychological barriers go, this is huge. People who have had bad experiences with any kind of commissioned artist (graphic designers in general and web designers in particular) have endured the horror of not only getting overcharged for poor work, but of missing immovable deadlines because their hired gun just didn&#8217;t get it done on time.</p>
<p>Also, there&#8217;s the tremendous appeal of simplicity; give us a date, a few pictures and your names and we&#8217;ll have you up and running in a few minutes.</p>
<p>Kind of like Vegas.</p>
<h3>2. They&#8217;re cheap.</h3>
<p>By including things like the domain, hosting costs and an easy-to-update template for as low as $100 a year (some are even free), these organizations have put together a package that, at first glance, seems like a hell of a deal.</p>
<p>Also a little bit like Vegas.</p>
<h3>3. They can manage your RSVPs.</h3>
<p>This is required. It doesn&#8217;t matter if the actual tool is confusing or difficult to manage &#8211; if it works at <em>all</em> and it&#8217;s cheap, people are gonna use it.</p>
<p>I&#8217;ll leave out the obvious Vegas joke here.</p>
<h2>So what&#8217;s the problem?</h2>
<p>&#8220;Alright,&#8221; I hear you saying. &#8220;They work and are cheap. Why are you telling me?&#8221;</p>
<p>Do-it-yourself websites are nothing new. They appeal to any number of basic feelings, not the least of which is that instinct that says we all have an artist living inside of us that just needs the right tools to get out and express himself.</p>
<p>I don&#8217;t think that someone thinks they&#8217;re creative because they can pick a theme out of a line-up, but it&#8217;s still a way of feeling like you had a hand in the process; something you can feel pride of authorship in.</p>
<p>The fundamental reason to hire a professional designer/developer instead of using one of these services for a wedding website is the exact same reason you would hire one over using a service like Blogger or Squarespace or any of the other countless outlets that promise an end to your web developer woes: you want your stuff to be <em>cool</em>.</p>
<p>A wedding is like any other event; you can choose to make it your own or you can do it the way everyone else does. Have a bridesmaid quote <a href="http://www.documentsanddesigns.com/verse/bible_verses.htm#t1">Corinthians</a>, rent the <a href="http://www.istockphoto.com/stock-photo-11245460-wedding-hall-before-diner.php">Colorado Ballroom</a> at the Double Tree and make sure the little kid who&#8217;s carrying the ring wears <a href="http://www.istockphoto.com/stock-photo-2907666-smiling-young-boy-in-tuxedo.php">a bowtie</a>. <strong>Boom</strong>. Insta-nuptials.</p>
<p>Creating cool shit takes time, experience and attention. Hire someone to make cool shit for you, and you can devote your 24 hours to things that you actually care about and are deserving of your attention.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.outtolunchproductions.com/beebebourque-com/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bad Batch</title>
		<link>http://www.outtolunchproductions.com/bad-batch/</link>
		<comments>http://www.outtolunchproductions.com/bad-batch/#comments</comments>
		<pubDate>Thu, 01 Jul 2010 17:47:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.outtolunchproductions.com/?p=785</guid>
		<description><![CDATA[<p><strong>Creative Brief:</strong> A website to showcase a feature-length film by Abe Schwartz.</p>
<p><a href="http://www.potbrownies.net">Have a taste.</a></p>
<p>This was an unusually fast job for me, made so because the previous web designers found themselves unable to deliver the product the client needed.&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p><strong>Creative Brief:</strong> A website to showcase a feature-length film by Abe Schwartz.</p>
<p><a href="http://www.potbrownies.net">Have a taste.</a></p>
<p>This was an unusually fast job for me, made so because the previous web designers found themselves unable to deliver the product the client needed.</p>
<p>Once someone purchases the movie for download, they&#8217;re directed to a page that only logged in users can see. The download link, however, could potentially be shared with anyone that didn&#8217;t want to pay the $4.20; so I came up with a script that changes the link and the file location on the server every hour. This way, only properly logged in users have the current download link.</p>
<p>It turned out to be largely unnecessary, since the client decided that the film should be streamable for free so that the largest number of people would see it &#8211; an idea I heartily endorse.</p>
<p>The downloadable version is still available for people who want to put it on other viewing devices, thereby giving us the best of both worlds.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.outtolunchproductions.com/bad-batch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The RightRespect</title>
		<link>http://www.outtolunchproductions.com/the-rightrespect/</link>
		<comments>http://www.outtolunchproductions.com/the-rightrespect/#comments</comments>
		<pubDate>Mon, 19 Apr 2010 18:08:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Work]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Plugin Development]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://www.outtolunchproductions.com/?p=762</guid>
		<description><![CDATA[<p><strong>Creative Brief:</strong> Create a WordPress theme from a design done by Peter Durham. Site needs the following:</p>
<ul>
<li>Rotating images for the three latest posts.</li>
<li>Archive of all posts.</li>
<li>News feed of stories related to human rights and corporate social</li></ul><p>&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p><strong>Creative Brief:</strong> Create a WordPress theme from a design done by Peter Durham. Site needs the following:</p>
<ul>
<li>Rotating images for the three latest posts.</li>
<li>Archive of all posts.</li>
<li>News feed of stories related to human rights and corporate social responsibility.</li>
<li>Easily add authors with biographies and photographs.</li>
<li>User-friendly forums</li>
<li>An easy way to create endnotes for research articles.</li>
<li>Articles must be downloadable as PDFs.</li>
</ul>
<p>My favorite part of this job was creating the WordPress plugin <a href="/list-contributors/">List Contributors</a>, simply because it&#8217;s a very versatile little tool that I imagine I&#8217;ll be using on some future projects.</p>
<p>I also enjoyed trouble-shooting the downloadable PDFs. I really hate redundant data entry since it probably means that someone isn&#8217;t doing their job properly. The solution I came up with has the benefits of working from the same data (saves on server resources) and offloading most of the heavy lifting to someone else (in this case, pdfmyurl.com). The full explanation of the process can be found <a href="/true-one-click-pdfs/">here.</a></p>
<p>This is the <a href="/wvau-org">second</a> site I&#8217;ve ever built for which I wasn&#8217;t asked to do the actual design and layout. I don&#8217;t know what my clients are trying to tell me.</p>
<p><a href="http://www.rightrespect.com">Visit the site.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.outtolunchproductions.com/the-rightrespect/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Strategic Productions, LLC</title>
		<link>http://www.outtolunchproductions.com/strategicproductions/</link>
		<comments>http://www.outtolunchproductions.com/strategicproductions/#comments</comments>
		<pubDate>Mon, 19 Apr 2010 15:47:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Work]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://www.outtolunchproductions.com/?p=755</guid>
		<description><![CDATA[<p><strong>Creative Brief:</strong> Design and build a portfolio website for a video production and online distribution strategy company.</p>
<p>Getting the production site up and running took a little longer than I predicted due to a late-in-the-game design decision, but I&#8217;m much&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p><strong>Creative Brief:</strong> Design and build a portfolio website for a video production and online distribution strategy company.</p>
<p>Getting the production site up and running took a little longer than I predicted due to a late-in-the-game design decision, but I&#8217;m much happier with where it wound up than I would have been.</p>
<p>The center-piece of the site, the portfolio slider on the front page, uses the Page Thumbnail functionality of WordPress 2.9 to make it ridiculously easy to add new items. This is unlike the slider on my front page, which is hand-crafted in Coda because I don&#8217;t want the XHTML section of my brain to atrophy.</p>
<p>Since there is a secondary slider on the portfolio pages, I set the thumbnail sizes in WordPress to generate the appropriate sizes so that each image only had to be uploaded one time in one place to put the correct images in both places.</p>
<h2>The Road Not Taken</h2>
<p>The first iterations of the design were very dark, <em>brooding</em> almost. Paul Lucci, my partner in crime over at Crooked Gremlins, was brought on to do the illustration work and to help with the logo. The first ideas we had matched the attitude of the site, which was way too serious.</p>
<div id="attachment_757" class="wp-caption aligncenter" style="width: 680px"><img src="http://www.outtolunchproductions.com/wp-content/uploads/2010/04/The-Goddess.png" alt="" title="The-Goddess" width="670" height="338" class="size-full wp-image-757" /><p class="wp-caption-text">The Metal Goddess, indicating strength</p></div>
<div id="attachment_758" class="wp-caption aligncenter" style="width: 680px"><img src="http://www.outtolunchproductions.com/wp-content/uploads/2010/04/The-Strategy.png" alt="" title="The-Strategy" width="670" height="338" class="size-full wp-image-758" /><p class="wp-caption-text">The game-board, indicating strategy</p></div>
<p>Ultimately, the client wanted a more light-hearted look, which we pulled off with a lighter color palette and brighter imagery in the slider.</p>
<p><img src="http://www.outtolunchproductions.com/wp-content/uploads/2010/04/support.png" alt="" title="support" width="200" height="246" class="alignright size-full wp-image-759" style="border:0;" /><br />
<h2>The Services Section</h2>
<p>One of the last pieces of the site to come together was the Services section. I&#8217;m still kind of amazed how it only takes one or two ideas to make a thing that seemed totally broken and unapproachable a nice thing to look at.</p>
<p>Paul provided the illustrations here, as well.</p>
<p><a href="http://www.strategicproductionsllc.com">Visit the site</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.outtolunchproductions.com/strategicproductions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>List Contributors</title>
		<link>http://www.outtolunchproductions.com/list-contributors/</link>
		<comments>http://www.outtolunchproductions.com/list-contributors/#comments</comments>
		<pubDate>Wed, 14 Apr 2010 20:41:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.outtolunchproductions.com/?p=735</guid>
		<description><![CDATA[<p>List Contributors does exactly what it says; shows a list of your contributing authors and their posts. Uses jQuery to hide/show their biographies. Allows for rich-text descriptions as well as photographs. Integrates seamlessly with the WordPress User database.</p>
<h3><a href='http://www.outtolunchproductions.com/wp-content/uploads/2010/04/list-contributors.zip'>Download</a></h3>
<p><img src="http://www.outtolunchproductions.com/wp-content/uploads/2010/04/lc-screenshot.png" alt="" title="lc-screenshot" width="625" height="583" class="aligncenter size-full wp-image-736" />&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>List Contributors does exactly what it says; shows a list of your contributing authors and their posts. Uses jQuery to hide/show their biographies. Allows for rich-text descriptions as well as photographs. Integrates seamlessly with the WordPress User database.</p>
<h3><a href='http://www.outtolunchproductions.com/wp-content/uploads/2010/04/list-contributors.zip'>Download</a></h3>
<p><img src="http://www.outtolunchproductions.com/wp-content/uploads/2010/04/lc-screenshot.png" alt="" title="lc-screenshot" width="625" height="583" class="aligncenter size-full wp-image-736" /></p>
<h3>Installation</h3>
<p>Get the List Contributors directory into your wp-content/plugins directory either by uploading it directly or using the WordPress Plugin Installer. Activate it and you&#8217;re good to go.</p>
<h3>Adding a Contributor</h3>
<p>The dropdown menu in the admin panel lists all of your registered users by display name in alphabetical order (by their first name; I didn&#8217;t think it was worth the effort to join the user_meta table to get their last names first). Select the desired user&#8217;s display name, add their biography and upload a picture.</p>
<p>Both the bio and the photo are optional.</p>
<h3>Displaying your list</h3>
<p>Use either the template tag</p>
<p><strong><em>&lt;?php if (function_exists(&#8216;list_contributors_handler&#8217;)) echo list_contributors_handler(); ?&gt;</em></strong></p>
<p>or the shortcode</p>
<p><strong><em>[list-contributors]</em></strong></p>
<p>to display your list of contributors. Beneath each name, picture and bio will be links to all the posts that they have written.</p>
<h2>Credit</h2>
<p>This plugin was originally developed by <a href="mailto:carter@outtolunchproductions.com">me</a> for the <a href="http://www.rightrespect.com">Right Respect</a> website.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.outtolunchproductions.com/list-contributors/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>True one-click PDFs</title>
		<link>http://www.outtolunchproductions.com/true-one-click-pdfs/</link>
		<comments>http://www.outtolunchproductions.com/true-one-click-pdfs/#comments</comments>
		<pubDate>Wed, 31 Mar 2010 16:06:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.outtolunchproductions.com/?p=721</guid>
		<description><![CDATA[<p>When I started looking for &#8220;Save this web page as PDF&#8221; solutions, I was underwhelmed. The end result of every service is miserable because, frankly, websites aren&#8217;t meant to be saved as PDFs. Their design serves a completely different function;&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>When I started looking for &#8220;Save this web page as PDF&#8221; solutions, I was underwhelmed. The end result of every service is miserable because, frankly, websites aren&#8217;t meant to be saved as PDFs. Their design serves a completely different function; they demand interaction, which you can&#8217;t do with a static document like a PDF. All of the interactive features that Adobe has worked into the PDF format are geared toward reusability of a design, like updating prices on a menu at a restaurant. Things like navigation menus and Twitter feeds have no place in them.</p>
<p>So, my solution for PDFs was to ignore them. This was working for me until a client needed a way to post legal research/analysis documents as PDFs. It was an absolute necessity that there be a downloadable version of the articles they were writing. There&#8217;s great value in having a local copy of a document that no one can change or decide to take down or is unavailable because you&#8217;re on a plane.</p>
<h3>Preventing Redundancy</h3>
<p>Even if PDFs and search engines played well with each other (I hear this is getting better, but why wait on technology people <em>might</em> employ?), you would still be required to enter the exact same information into a computer twice; once for the website and once for the PDF. This is redundant, and I have found a solution.</p>
<h3>WordPress + Print.css + PHP + pdfmyurl.com</h3>
<p>I created a print.css file for the <a href="http://www.rightrespect.com">website</a> (with a little help from <a href="http://www.alistapart.com/articles/goingtoprint/">A List Apart</a>), that removes everything except the main content formatted in a print-friendly fashion. Using the isset PHP function, I created a condition for seeing that style on the screen:</p>
<pre>
&lt;?php if ((isset($_GET['print']))) { ?&gt;&lt;!-- Checks for the 'print' variable --&gt;	&lt;link rel="stylesheet" href="&lt;?php bloginfo('template_directory'); ?&gt;/print.css" type="text/css" /&gt;&lt;!-- Print stylesheet --&gt;
&lt;?php } else { ?&gt;&lt;!-- Normal style settings --&gt;
&lt;link rel="stylesheet" href="&lt;?php bloginfo('stylesheet_url'); ?&gt;" type="text/css" media="screen" /&gt;&lt;!-- Page stylesheet --&gt;
&lt;link rel="stylesheet" href="&lt;?php bloginfo('template_directory'); ?&gt;/print.css" type="text/css" media="print" /&gt;&lt;!-- Print stylesheet --&gt;
&lt;?php } ?&gt;
</pre>
<p>If you add the &#8220;print&#8221; variable to the end of your URL, the page uses the print.css stylesheet instead of style.css. To create a link to this page in WordPress, change the link inside the loop from this:</p>
<pre>&lt;a href="&lt;?php the_permalink(); ?&gt;"&gt;</pre>
<p>to this:</p>
<pre>&lt;a href="&lt;?php the_permalink(); ?&gt;?print"&gt;</pre>
<p>Your link inside the loop should look like this now (if you&#8217;ve set your permalinks like I have):</p>
<p><em>http://www.yoursite.com/2010/03/14/myarticle/?print</em></p>
<p>Now we have the article content, lain out in a print stylesheet, and an automatically generating URL. All we have to do now is send that URL to pdfmyurl.com, and we&#8217;re done. They use a very simple URL-based API, which looks like this:</p>
<p><em>http://pdfmyurl.com/?url=http://www.yoursite.com/2010/03/14/myarticle/?print<br />
</em><br />
To get your WordPress links to function this way, change your link from this:</p>
<pre>&lt;a href="&lt;?php the_permalink(); ?&gt;?print"&gt;</pre>
<p>to this:</p>
<pre>&lt;a href="http://pdfmyurl.com/?url=&lt;?php the_permalink(); ?&gt;?print"&gt;</pre>
<p>That&#8217;s it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.outtolunchproductions.com/true-one-click-pdfs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Showtime</title>
		<link>http://www.outtolunchproductions.com/showtime/</link>
		<comments>http://www.outtolunchproductions.com/showtime/#comments</comments>
		<pubDate>Sun, 28 Mar 2010 18:09:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.outtolunchproductions.com/?p=706</guid>
		<description><![CDATA[<p>The Showtime plugin allows you to easily manage and display a rotating programming schedule. It was originally built for a <a href="http://www.wvau.org">college radio station</a>, but it could be used for any kind of schedule that repeats weekly.</p>
<p>Showtime takes the&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>The Showtime plugin allows you to easily manage and display a rotating programming schedule. It was originally built for a <a href="http://www.wvau.org">college radio station</a>, but it could be used for any kind of schedule that repeats weekly.</p>
<p>Showtime takes the current time and displays the name of whatever show/event you&#8217;ve placed in the timeslot. If there&#8217;s no show/event, it displays a custom off-air message. You also have the option of displaying the name of the upcoming show/event.</p>
<h3><a href='http://www.outtolunchproductions.com/wp-content/uploads/2010/03/showtime.zip'>Download</a></h3>
<p><img src="http://www.outtolunchproductions.com/wp-content/uploads/2010/03/screenshot.png" alt="" title="screenshot" width="600" height="644" class="aligncenter size-full wp-image-710" /></p>
<h3>Installation</h3>
<p>Install and activate the plugin in the super-easy WordPress fashion to which we&#8217;ve all become accustomed. You can then either use the Widget to display the current/upcoming show, or the following template tag:</p>
<p><strong><em>&lt;?php if (function_exists(&#8217;showme_showtime&#8217;)) echo showme_showtime(); ?&gt;</em></strong></p>
<p>To display a your full schedule, broken down into days of the week, you can use the shortcode <strong><em>[showtime-schedule]</em></strong></p>
<p>Also, be sure to set your timezone city. If you don&#8217;t do this first, you&#8217;ll have to go back and re-enter all of your timeslots which is a tremendously frustrating waste of time.</p>
<h3>Setting your schedule</h3>
<p>Once you&#8217;ve set your timezone city, you&#8217;re ready to start adding items to your schedule. Using the dropboxes and text fields, set your start/end times for a given timeslot, then type in the name you wish to assign it. Be sure to use 24-hour time. Hit Add Showname and Showtime. That&#8217;s it; that timeslot and name is now on your schedule.</p>
<p>If you made a mistake in the time, you can delete the timeslot by clicking the &#8220;Delete This Timeslot&#8221; link helpfully provided next to each entry.</p>
<p>If you made a mistake with the name, you can edit it right there in the schedule. Click the Update Names when you&#8217;re done. This will save any and all changes made to the names, so be sure of your changes.</p>
<h3>Display Options</h3>
<p>Here you can set some options about what Showtime shows your viewers and how it&#8217;s displayed. Upcoming Timeslot allows you to toggle whether or not the name and time of the next show/event is displayed underneath the current show/event. The Off-air Message is what is displayed whenever there is no show/event occurring at the moment, or if you&#8217;ve hit the Shut It Down button.</p>
<p>The CSS identifies some key elements that you can style to your liking to help fit the look of your site.</p>
<h3>Shut it down</h3>
<p>If you need to temporarily take your schedule off-line, you can toggle the switch here. In place of your current/upcoming show/event, your Off-air Message will be displayed.</p>
<h2>Credits</h2>
<p>To clean up the back-end interface, I used the jQuery plugin Tabs, developed by Klaus Hartl. I also bothered <a href="http://www.systemcomic.com">Ross Nover</a> with early, inferior versions of this product. His suggestions helped a great deal in making this thing work properly.</p>
<p>That said, please direct questions/praise to <a href="mailto:carter@outtolunchproductions.com">carter@outtolunchproductions.com</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.outtolunchproductions.com/showtime/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Countup: The ASRL Gift of Time Counter</title>
		<link>http://www.outtolunchproductions.com/countup/</link>
		<comments>http://www.outtolunchproductions.com/countup/#comments</comments>
		<pubDate>Tue, 09 Mar 2010 02:29:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Work]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.outtolunchproductions.com/?p=699</guid>
		<description><![CDATA[<p>The most noteworthy of my clientelle is the <a href="http://www.andreriveroflife.org">Andre Sobel River of Life Foundation</a>. They&#8217;ve been a steady source of work for the last year, and every day in which I do something to improve their web presence is,&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>The most noteworthy of my clientelle is the <a href="http://www.andreriveroflife.org">Andre Sobel River of Life Foundation</a>. They&#8217;ve been a steady source of work for the last year, and every day in which I do something to improve their web presence is, to me, a day well spent.</p>
<p>When I was asked how difficult it would be to create a live counter on the site that showed the number of minutes that the organization has given to the families it has helped, my first thought was something along the lines of &#8220;not very difficult at all.&#8221;</p>
<p>I mean, really. How hard could it possibly be? I knew of some simple Javascript codelets that could immediately provide a solution for a ticking clock. But, once I wrote out the actual feature list for the thing I was creating, I noticed some pretty big hurdles.</p>
<p>Here&#8217;s what the counter needed to produce:</p>
<ul>
<li>The number of minutes that have passed since January 1st of 2000, along with a ticking seconds counter.</li>
<li>This number must be live, updating on the page constantly.</li>
<li>Each individual number must be wrapped in its own container, with pictures of specific children behind them.</li>
<li>Clicking on a number/child will bring up that child&#8217;s story.</li>
<li>Supply an embeddable widget that other people can put on their blogs/MySpace/Facebook pages.</li>
</ul>
<h3>Getting the number of minutes</h3>
<p>This was the easiest part of this entire equation: display the number of minutes that have elapsed between now and January 1st, 2000. Since the number of minutes needed to be the same regardless of timezone (this was actually a big deal), I couldn&#8217;t use Javascript. So, I wrote this extremely simple PHP script:</p>
<p><code><?php<br />
date_default_timezone_set('America/Los_Angeles');</p>
<p>$time = strtotime('January 2000');<br />
$now = time();<br />
$diff = $now - $time;</p>
<p>echo $diff;<br />
</code></p>
<p>The time() command will always return time in Unix Epoch format, which is the number of seconds that have elapsed since January 1, 1970. The number of seconds between January of 2000 and now is simply the difference between the two variables (on line 6).</p>
<p>Everytime this script loads, it prints a number that looks something like this: <strong>321178160</strong>. Originally, I had the script divide by 60 (giving me the number of minutes) and kick that out, but I realized that since I needed the seconds to tick on the page, it would have to load this server-side script every second. This would not have been ideal (actually, this is how the embeddable widget works, but it's only running the script once; it doesn't implement ticking seconds or keep the clock live).</p>
<h3>Minutes, not seconds</h3>
<p>For performance's sake, I had to keep as much stuff as possible on the client side. The minutes are calculated from the PHP clock script, and then Javascript adds time to it. The seconds are done entirely with Javascript, since the timezone for the seconds is irrelevant.</p>
<h3>Parsing the Number</h3>
<p>First thing I needed was an AJAX call to grab the number from the clock.php script. That much was easy:<br />
<code>$.ajax({<br />
  url: '/clock/counter.php',<br />
  success: function(data) {</p>
<p>    c=parseInt(data);<br />
    maketime();</p>
<p>  }<br />
});</code></p>
<p>Then, I needed to turn that number into minutes and wrap each digit in its own container. But, this number also had to be updated every second, which was accomplished by adding 1 to the number from the PHP script every second and then dividing by 60. Like so:</p>
<p><code>function maketime(){</p>
<p>var t;<br />
c=c+1;<br />
epic = c;<br />
t=setTimeout("maketime(); wrapem()",1000);<br />
epic = addCommas(Math.round(epic / 60));<br />
var timeoffset = (+29800);<br />
var now = new Date();<br />
now.setTime(now.getTime() + timeoffset);<br />
var seconds = now.getSeconds();<br />
var s = ((seconds < 10) ? ":0" : ":") + seconds;<br />
nowtime = epic + s;</p>
<p>arr = nowtime.split("");</p>
<p>clock = arr.join("</span><span class='number'>");<br />
clock = "<span class='number'>"+clock+"</span>";</p>
<p>$(function(){<br />
	$("#asrl-clock").html(clock);<br />
	$(".number:nth-child(2), .number:nth-child(6)").addClass('comma').removeClass('number');<br />
    $(".number:nth-child(10)").addClass('colon').removeClass('number');<br />
    $(".number:last").addClass("last");<br />
    wrapem();<br />
	});</p>
<p>}</code></p>
<p>The wrapem() function is actually a little bit misleading in its name. Really, the wraps are applied to each character when they are split into an array and rejoined in their own spans. What wrapem() does is attach appropriate numbers to their corresponding background image and link.</p>
<p><code>function wrapem(){<br />
	$(".number:nth-child(1)").attr("id","one");<br />
	$(".number:nth-child(3)").attr("id","three").wrap('&lt;a href="/2010/02/27/meet-alia" class="clink" /&gt;');<br />
	$(".number:nth-child(4)").attr("id","four").wrap('&lt;a href="/2010/02/27/meet-anthony-2" class="clink" /&gt;');<br />
	$(".number:nth-child(5)").attr("id","five").wrap('&lt;a href="/2010/02/27/meet-daniela" class="clink" /&gt;');<br />
	$(".number:nth-child(7)").attr("id","seven").wrap('&lt;a href="/2010/03/04/meet-noah/" class="clink" /&gt;');<br />
	$(".number:nth-child(8)").attr("id","eight").wrap('&lt;a href="2010/03/04/meet-robbie/" class="clink" /&gt;');<br />
	$(".number:nth-child(9)").attr("id","nine").wrap('&lt;a href="/2010/03/04/meet-augustin/" class="clink" /&gt;');<br />
	$(".number:nth-child(11)").attr("id","eleven");<br />
	$(".number:nth-child(12)").attr("id","twelve");</p>
<p>	$("#one").css({background:"url(/clock/images/alex.jpg) no-repeat center center"}).wrap('&lt;a href="/2010/02/27/meet-alex-2" class="clink" /&gt;');<br />
	$("#three").css({background:"url(/clock/images/alia.jpg) no-repeat center center"});<br />
	$("#four").css({background:"url(/clock/images/anthony.jpg) no-repeat center center"});<br />
	$("#five").css({background:"url(/clock/images/daniela.jpg) no-repeat center center"});<br />
	$("#seven").css({background:"url(/clock/images/noah.jpg) no-repeat center center"});<br />
	$("#eight").css({background:"url(/clock/images/robbie.jpg) no-repeat center center"});<br />
	$("#nine").css({background:"url(/clock/images/augustin.jpg) no-repeat center center"});<br />
}<br />
</code></p>
<h3>The Live Link Problem</h3>
<p>Originally, I was going to use the Thickbox functionality that I had already loaded for a different section of the page to open the story boxes for the kids. Unfortunately, it didn't work, and it took me a while to figure out why. Essentially, the links weren't part of the DOM when the page loaded; they were created after the clock script had time to run and generate the numbers. In fact, as far as the DOM was concerned, these numbers were completely new every time the maketime() function ran; every single second. After banging my head against the desk for about three hours, I realized that it would be easy to write my own simple lightbox script and use jQuery's live() method to activate them.</p>
<p><code>$(function(){<br />
	$(".clink").live('click', function(){<br />
		hrefval = $(this).attr('href');<br />
		$.ajax({ url: hrefval, context: $(".entry"), success: function(data){<br />
		$("#story").fadeOut('fast');<br />
		$("#story").html(data).fadeIn('fast');<br />
      }});<br />
		return false;<br />
	});<br />
	$(".close-story").live('click', function(){<br />
		$("#story").fadeOut('fast');<br />
		return false;<br />
	});<br />
});</code></p>
<p>By using the href attribute, I didn't even have to change the links that the AJAX was grabbing the data from.</p>
<h3>Styling the Counter</h3>
<p>Using the split() and join() Javascript functions let me wrap each character in a span, but the problem is that I had two commas and a colon (great name for a TV show, BTW) that, in fact, couldn't be set in their own curved box. Luckily, this number will be seven digits long for the next 10 years and change, so I was able to use the nth selector to remove the "number" class from the characters.</p>
<p>I set the background images for the digits using the same method. I'm sure there's a more elegant way to solve this problem, but I had to weigh how much time I had left to spend on it vs. how much the end user would benefit from some slightly improved code.</p>
<h3>Final Thoughts</h3>
<p>I wound up learning a lot about JSON and XSS (cross-server scripting) which wound up being irrelevant to the big counter on the home page, but vital to the embeddable one.</p>
<p>Also, I found out that you can embed stylesheets in Javascripts. Like so:</p>
<p><code>function loadJSON(url) {<br />
  var headID = document.getElementsByTagName("head")[0];<br />
  var newScript = document.createElement('script');<br />
      newScript.type = 'text/javascript';<br />
      newScript.src = url;<br />
  headID.appendChild(newScript);</p>
<p>  stylesheet = document.createElement("link");<br />
    stylesheet.rel = "stylesheet";<br />
    stylesheet.type = "text/css";<br />
    stylesheet.href = "http://andreriveroflife.org/clock/clockstyle.css";<br />
    stylesheet.media = "all";<br />
    document.lastChild.firstChild.appendChild(stylesheet);</p>
<p>}</p>
<p>function processJSON(feed){<br />
     document.writeln(feed.returned);<br />
}</p>
<p>loadJSON('http://andreriveroflife.org/clock/counter.php?json=?');</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.outtolunchproductions.com/countup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
