<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>In Other Words &#187; apple</title>
	<atom:link href="http://jcostom.wordpress.com/category/apple/feed/" rel="self" type="application/rss+xml" />
	<link>http://jcostom.wordpress.com</link>
	<description>186,000 miles per second, it&#039;s not just a good idea, it&#039;s the law.</description>
	<lastBuildDate>Mon, 13 Feb 2012 12:07:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='jcostom.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/0e01648355530ed22afc41cc357b25f6?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>In Other Words &#187; apple</title>
		<link>http://jcostom.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://jcostom.wordpress.com/osd.xml" title="In Other Words" />
	<atom:link rel='hub' href='http://jcostom.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Printing from the iPad without buying a new printer</title>
		<link>http://jcostom.wordpress.com/2011/03/16/printing-from-the-ipad-without-buying-a-new-printer/</link>
		<comments>http://jcostom.wordpress.com/2011/03/16/printing-from-the-ipad-without-buying-a-new-printer/#comments</comments>
		<pubDate>Wed, 16 Mar 2011 21:02:05 +0000</pubDate>
		<dc:creator>jason</dc:creator>
				<category><![CDATA[apple]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[linkedin]]></category>

		<guid isPermaLink="false">http://jcostom.wordpress.com/?p=592</guid>
		<description><![CDATA[Ok, so you&#8217;ve got a snazzy new iPad, and would like to print.  Since iOS 4.2, Apple has had AirPrint, which only works with a small set of HP printers.  While yes, it&#8217;s super cool to be able to print from the iPad, how much will you really do this?  If it&#8217;s enough to warrant [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jcostom.wordpress.com&#038;blog=14707&#038;post=592&#038;subd=jcostom&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Ok, so you&#8217;ve got a snazzy new iPad, and would like to print.  Since iOS 4.2, Apple has had AirPrint, which only works with a small set of HP printers.  While yes, it&#8217;s super cool to be able to print from the iPad, how much will you really do this?  If it&#8217;s enough to warrant buying a new printer, good for you.  If you&#8217;re like me, and want to have the ability to do so, but probably will rarely do it.  Read on to find out more.<span id="more-592"></span>So, just what is AirPrint?  At the core, AirPrint is just a special Multicast DNS (aka Bonjour in Apple parlance) or DNS-SD (DNS Service Discovery) advertisement on your network, and directs devices to use IPP to print to a given device.  You don&#8217;t need to do both.</p>
<p>So maybe your printer already advertises mDNS on the LAN, as mine does, but doesn&#8217;t pass out all the parameters AirPrint devices expect to see.  From what I&#8217;ve been able to determine from a variety of sources, here&#8217;s what I know:</p>
<ul>
<li>IPP is used for the actual printing</li>
<li>Either mDNS or DNS-SD for advertising the service availability
<ul>
<li>mDNS for local LAN</li>
<li>DNS-SD for wide-area support</li>
<li>DNS-SD announcement is in _universal._sub._ipp._tcp</li>
</ul>
</li>
<li>AirPrint requires a TXT record called URF
<ul>
<li>All current AirPrint apps seem to print as PDF, but field opens the door for additional formats &#8211; PDF support will be key further down in the process</li>
</ul>
</li>
</ul>
<p>So, what do you need to make this work?</p>
<ol>
<li>A printer that supports printing via IPP</li>
<li>A server that can run cups &amp; avahi</li>
<li>A suitable printer driver for cups that supports your printer and can handle PDF documents (foomatic, gutenprint, etc. are fine choices)</li>
</ol>
<p>I opted to create a VM on my existing VMware ESXi server at home.  I used the FreeBSd 8.2 x86 (i.e. 32-bit) version.  I just did a basic install, then added packages from the CLI later.  I installed the packages I needed:</p>
<pre>pkg_add -r avahi cups gutenprint-cups py26-cups<span style="font-family:Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif;font-size:x-small;"><span style="line-height:19px;white-space:normal;">
</span></span></pre>
<p>This will pull the packages for avahi (mDNS server), cups, the Gutenprint cups drivers and the python interface to cups.</p>
<p>First, you&#8217;ll want to configure cups so that everything on your local LAN can print to the cups server.  This is covered quite well in the cups docs, so I&#8217;ll omit those directions.  Next, add your printer to the cups server.  Again, this is a very simple process, so I&#8217;ll omit that as well.  After you get the printer setup on the cups side, print a test page to be sure the communication between your cups instance and the printer is functioning.  Got it working?  Good.</p>
<p>Next, you&#8217;ll run a script from a guy named <a href="https://github.com/tjfontaine/airprint-generate">TJ Fontaine</a> that generates the Avahi service file.  So, the script talks to your cups server and pulls the list of available printers, and spits out service files for them.  I wasn&#8217;t thrilled with the quality of the XML that got shot out by the program &#8211; it was almost all on a single line.  I took the time to break the lines and indent properly, and for my HP LaserJet 2420dn, I wound up with:</p>
<p><code> </code></p>
<pre><code>[airprint:root](04:47 PM)
/root# cat /usr/local/etc/avahi/services/AirPrint-OfficeLaser.service
&lt;?xml version="1.0" standalone='no' ?&gt;
&lt;!DOCTYPE service-group  SYSTEM "avahi-service.dtd"&gt;
&lt;service-group&gt;
&lt;name replace-wildcards="yes"&gt;AirPrint OfficeLaser @ %h&lt;/name&gt;
&lt;service&gt;
        &lt;type&gt;_ipp._tcp&lt;/type&gt;
        &lt;subtype&gt;_universal._sub._ipp._tcp&lt;/subtype&gt;
        &lt;port&gt;631&lt;/port&gt;
        &lt;txt-record&gt;txtvers=1&lt;/txt-record&gt;
        &lt;txt-record&gt;qtotal=1&lt;/txt-record&gt;
        &lt;txt-record&gt;Transparent=T&lt;/txt-record&gt;
        &lt;txt-record&gt;URF=none&lt;/txt-record&gt;
        &lt;txt-record&gt;rp=printers/OfficeLaser&lt;/txt-record&gt;
        &lt;txt-record&gt;note=hp LaserJet 2420&lt;/txt-record&gt;
        &lt;txt-record&gt;product=(GPL Ghostscript)&lt;/txt-record&gt;
        &lt;txt-record&gt;printer-state=3&lt;/txt-record&gt;
        &lt;txt-record&gt;printer-type=0x21014&lt;/txt-record&gt;
        &lt;txt-record&gt;pdl=application/octet-stream,application/pdf,application/postscript,application/vnd.cups-raster,image/gif,image/jpeg,image/png,image/tiff,text/html,text/plain,application/vnd.cups-banner,application/vnd.cups-postscript,application/vnd.cups-raw&lt;/txt-record&gt;
&lt;/service&gt;
&lt;/service-group&gt;</code></pre>
<p><code> </code></p>
<p>Drop this in /usr/local/etc/avahi/services, and Avahi will start advertising the service.  You&#8217;re going to need to generate your own service file, but with the script linked above, this is pretty simple.</p>
<p>Now, go grab an iPod Touch, iPhone or iPad running iOS 4.2 or later.  Launch Safari, print something.  Your newly created printer should show up as available.  Print there, and whammo, you&#8217;re done.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jcostom.wordpress.com/592/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jcostom.wordpress.com/592/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jcostom.wordpress.com/592/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jcostom.wordpress.com/592/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jcostom.wordpress.com/592/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jcostom.wordpress.com/592/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jcostom.wordpress.com/592/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jcostom.wordpress.com/592/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jcostom.wordpress.com/592/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jcostom.wordpress.com/592/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jcostom.wordpress.com/592/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jcostom.wordpress.com/592/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jcostom.wordpress.com/592/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jcostom.wordpress.com/592/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jcostom.wordpress.com&#038;blog=14707&#038;post=592&#038;subd=jcostom&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jcostom.wordpress.com/2011/03/16/printing-from-the-ipad-without-buying-a-new-printer/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a2e1bb7d6a5fdb083617b9dcd63146ca?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jcostom</media:title>
		</media:content>
	</item>
		<item>
		<title>MacHeist 3.0, a nice deal this time around.</title>
		<link>http://jcostom.wordpress.com/2009/04/02/macheist-30-a-nice-deal-this-time-around/</link>
		<comments>http://jcostom.wordpress.com/2009/04/02/macheist-30-a-nice-deal-this-time-around/#comments</comments>
		<pubDate>Thu, 02 Apr 2009 12:39:01 +0000</pubDate>
		<dc:creator>jason</dc:creator>
				<category><![CDATA[apple]]></category>
		<category><![CDATA[macbook]]></category>
		<category><![CDATA[macheist]]></category>

		<guid isPermaLink="false">http://www.jasons.org/?p=201</guid>
		<description><![CDATA[It&#8217;s MacHeist time again.  Big bundle of Mac apps, low price, lots of charitable contributions from the guys running the thing. Go have a peek.  It&#8217;s definitely worth a look.  If you use 2 of the apps, it&#8217;s a worthwhile deal.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jcostom.wordpress.com&#038;blog=14707&#038;post=201&#038;subd=jcostom&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s MacHeist time again.  Big bundle of Mac apps, low price, lots of charitable contributions from the guys running the thing.</p>
<p><a href="http://www.macheist.com/bundle/u/11458/" target="_blank">Go have a peek</a>.  It&#8217;s definitely worth a look.  If you use 2 of the apps, it&#8217;s a worthwhile deal.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jcostom.wordpress.com/201/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jcostom.wordpress.com/201/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jcostom.wordpress.com/201/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jcostom.wordpress.com/201/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jcostom.wordpress.com/201/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jcostom.wordpress.com/201/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jcostom.wordpress.com/201/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jcostom.wordpress.com/201/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jcostom.wordpress.com/201/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jcostom.wordpress.com/201/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jcostom.wordpress.com/201/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jcostom.wordpress.com/201/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jcostom.wordpress.com/201/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jcostom.wordpress.com/201/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jcostom.wordpress.com&#038;blog=14707&#038;post=201&#038;subd=jcostom&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jcostom.wordpress.com/2009/04/02/macheist-30-a-nice-deal-this-time-around/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a2e1bb7d6a5fdb083617b9dcd63146ca?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jcostom</media:title>
		</media:content>
	</item>
	</channel>
</rss>
