<?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>Technically  Amusing</title>
	<atom:link href="http://eison.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://eison.net</link>
	<description>Info, rants, and other techinical geekery (no, that&#039;s not a real word)</description>
	<lastBuildDate>Sun, 01 Aug 2010 03:58:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Fast Web Installer is&#8230;well&#8230;fast.</title>
		<link>http://eison.net/2010/07/fast-web-installer-is-well-fast/</link>
		<comments>http://eison.net/2010/07/fast-web-installer-is-well-fast/#comments</comments>
		<pubDate>Sun, 25 Jul 2010 22:09:57 +0000</pubDate>
		<dc:creator>ross_e</dc:creator>
				<category><![CDATA[android]]></category>

		<guid isPermaLink="false">http://eison.net/?p=156</guid>
		<description><![CDATA[If you like AppBrain as much as I do, you&#8217;ll love their new Fast Web Installer. With Fast Web Installer, there are just two steps to super-easy, auto-magic Android app installs: Use the Fast Web Installer app to register your device with AppBrain. Login to the AppBrain website from any computer with internet access, and [...]]]></description>
			<content:encoded><![CDATA[<p>If you like AppBrain as much as I do, you&#8217;ll <strong>love</strong> their new <a href="http://www.appbrain.com/app/com.appspot.swisscodemonkeys.apppusher">Fast Web Installer</a>. With Fast Web Installer, there are just two steps to super-easy, auto-magic Android app installs:</p>
<ol>
<li>Use the Fast Web Installer app to register your device with AppBrain.</li>
<li>Login to the AppBrain website from any computer with internet access, and go shopping for the app(s) you want to install.</li>
</ol>
<p>In a few moments, you should see a notification on your phone that your app(s) has been installed!</p>
<p align="right"><a class="tt" href="http://twitter.com/home/?status=Fast+Web+Installer+is%E2%80%A6well%E2%80%A6fast.+http://eison.net/?p=156" title="Post to Twitter"><img class="nothumb" src="http://eison.net/wp-content/plugins/tweet-this/icons/tt-twitter-micro4.png" alt="Post to Twitter" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://eison.net/2010/07/fast-web-installer-is-well-fast/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XBMC + Android = superawesome</title>
		<link>http://eison.net/2010/07/xbmc-android-superawesome/</link>
		<comments>http://eison.net/2010/07/xbmc-android-superawesome/#comments</comments>
		<pubDate>Sun, 25 Jul 2010 21:13:09 +0000</pubDate>
		<dc:creator>ross_e</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[htpc]]></category>
		<category><![CDATA[qr]]></category>
		<category><![CDATA[xbmc]]></category>

		<guid isPermaLink="false">http://eison.net/?p=152</guid>
		<description><![CDATA[It&#8217;s true that there&#8217;ve been XBMC/Boxee remotes available in the Android Market for quite awhile, but only recently has there been an &#8220;official&#8221; one from the XBMC Team&#8230;and it blows the others away. I&#8217;d share my own screenshots I&#8217;ve taken with drocap2, but xbmc.org has plenty, as well as the system requirements and a QR [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s true that there&#8217;ve been XBMC/Boxee remotes available in the Android Market for quite awhile, but only recently has there been an &#8220;official&#8221; one from the XBMC Team&#8230;and it blows the others away. I&#8217;d share my own screenshots I&#8217;ve taken with <a href="http://www.appbrain.com/app/com.gmail.nagamatu.drocap2">drocap2</a>, but <a href="http://xbmc.org/freezy3k/2010/07/13/official-xbmc-remote-for-android/">xbmc.org</a> has plenty, as well as the system requirements and a QR link for the Market.</p>
<p>I&#8217;ve used it quite a bit with my HTPC, and frankly prefer it to my <a href="http://www.streamzap.com/">Streamzap remote</a>. Another bonus is that now I don&#8217;t have to copy my custom Lircmap.xml over every time XMBC is updated.</p>
<p align="right"><a class="tt" href="http://twitter.com/home/?status=XBMC+%2B+Android+%3D+superawesome+http://eison.net/?p=152" title="Post to Twitter"><img class="nothumb" src="http://eison.net/wp-content/plugins/tweet-this/icons/tt-twitter-micro4.png" alt="Post to Twitter" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://eison.net/2010/07/xbmc-android-superawesome/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu, Linksys WUSB600N v1, Dish DVR: whose @#$% idea was this?</title>
		<link>http://eison.net/2010/07/ubuntu-linksys-wusb600n-v1-dish-dvr-whose-idea-was-this/</link>
		<comments>http://eison.net/2010/07/ubuntu-linksys-wusb600n-v1-dish-dvr-whose-idea-was-this/#comments</comments>
		<pubDate>Sat, 10 Jul 2010 23:47:48 +0000</pubDate>
		<dc:creator>ross_e</dc:creator>
				<category><![CDATA[htpc]]></category>
		<category><![CDATA[linksys]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[wireless]]></category>

		<guid isPermaLink="false">http://eison.net/?p=98</guid>
		<description><![CDATA[I love Ubuntu and give myself a little &#8220;mental hug&#8221; each day for making the switch from Windows to Linux. But, sometimes, the stuff I want/need to do in Linux just isn&#8217;t as obvious to me as I&#8217;d like; so, I beat my head against a wall trying to figure it out, until my wife [...]]]></description>
			<content:encoded><![CDATA[<p>I love Ubuntu and give myself a little &#8220;mental hug&#8221; each day for making the switch from Windows to Linux. But, sometimes, the stuff I want/need to do in Linux just isn&#8217;t as obvious to me as I&#8217;d like; so, I beat my head against a wall trying to figure it out, until my wife gives me that &#8220;walk away from it for awhile so you can maintain the little bit of sanity you have left&#8221; look. This particular situation is one of those.</p>
<p><strong>What I wanted to do:</strong> I have a Dish Network DVR in my living room that has an ethernet card in it, but I don&#8217;t have any ethernet wiring where it is. What I <strong>do</strong> have is an Ubuntu <a href="http://xbmc.org/" target="_blank">XBMC</a> <a href="http://en.wikipedia.org/wiki/Htpc target="_blank">HTPC</a> with an on-board ethernet card and a Linksys <a href="http://homesupport.cisco.com/en-us/wireless/lbc/WUSB600N?referrer=www.linksysbycisco.com target="_blank">WUSB600N</a> v1 (the version number is important here, I think), connected to a Linksys <a href="http://homesupport.cisco.com/en-us/wireless/lbc/WAP610N" target="_blank">WAP610N</a> AP (configured for 5GHz 802.11N only), so it stands to reason that I <em>should</em> be able to share the HTPC&#8217;s internet connection with the Dish DVR, right?</p>
<p><a class="floatbox" href="http://eison.net/wp-includes/images/posts/htpc/htpc.jpg" class="floatbox" rev="group:98" alt="Network Diagram"><img src="http://eison.net/wp-includes/images/posts/htpc/htpc_thumb.jpg" alt="Network Diagram" /></a></p>
<p>Ok, so it wasn&#8217;t. Twice. Once for Ubuntu 9.10 (Karmic) and once for 10.04 (Lucid).<br />
<span id="more-98"></span></p>
<p>The first thing all good Linux users have to learn is <em>just because it works auto-magically in Windows, doesn&#8217;t mean it works the same in Linux</em>. It stings a little, but it&#8217;s true. The good news is that there are lots of Linux super-geniuses out there to help and most believe in writing stuff down. If you&#8217;re willing to do some Google-ing, most Linux questions/problems can be answered relatively quickly. I had to do a bunch of that.</p>
<p><strong>Task #1: Get 5GHz 802.11n wireless working</strong><br />
When I first plugged my new WUSB600N into my Ubuntu HTPC, Ubuntu recognized it right away, though it couldn&#8217;t &#8220;see&#8221; my 5GHz network (WAP610N). It could see and connect to my 2.4GHz network (WRT54GL) with no problem, so I knew it was time to <a href="http://lmgtfy.com/?q=wusb600n+ubuntu+karmic" target="_blank">Google</a>. I found all kinds of stuff&#8211;using Windows drivers with NDIS, blacklisting, modprobe&#8211;and I tried them all, to the point of complete frustration. Nothing seemed to work, so I decided to install <a href="http://wicd.sourceforge.net/" target="_blank">Wicd</a> (and remove Network Manager), because I&#8217;d had some luck with it in the past.</p>
<p>Unfortunately, Wicd wasn&#8217;t the complete answer: it couldn&#8217;t <em>see</em> my 5GHz network, either, so I knew there was more I wasn&#8217;t doing. After looking through the logs in /var/log/messages and fumbling through more Google searches for <strong>wusb600n ubuntu 11n</strong>, I happened across some posts like <a href="http://ubuntuforums.org/showthread.php?t=1357303" target="_blank">this one</a> that said I needed to blacklist the <strong>rt2800usb</strong> driver. Once I&#8217;d done that, there were different log messages in /var/log/messages, this time saying that <strong>/etc/Wireless/RT3070STA/RT3070STA.dat</strong> couldn&#8217;t be read. So, I looked for it&#8211;the directory didn&#8217;t even exist! Now, I&#8217;m on to something!</p>
<p>Back to <a href="http://lmgtfy.com/?q=ubuntu+%20%2Fetc%2FWireless%2FRT3070STA%2FRT3070STA.dat" target="_blank">Google</a> again, and it looks like I&#8217;m definitely on the right track. I took the example file from <a href="http://swiss.ubuntuforums.org/showthread.php?p=9288229" target="_blank">this post</a>, and edited it for my network, including the SSID and PSK. Reboot, fingers crossed. Wait a sec&#8230;what&#8217;s that? Is that a 5GHz network? Yessssssssss! One thing I still don&#8217;t understand is that even though I specified all of that stuff in <strong>RT3070STA.dat</strong>, I still had to do the same in Wicd. I may look into that more later, but for now, it&#8217;s time to move on to Task #2.</p>
<p><strong>Task #2: Figure out how to give eth1 an IP address</strong><br />
Unlike Network-Manager (built-in with Ubuntu, Gnome), it <a href="http://wicd.sourceforge.net/moinmoin/FAQ/2interfaces" target="_blank">didn&#8217;t seem like Wicd has a facility to have two interfaces up at once</a>, so I had to figure out a way to give it an IP address outside of Wicd. I could have used /etc/network/interfaces, but since Wicd has the ability to let you run scripts before and after network connections are established, it seemed like a good idea to write a script with ifconfig commands in it to assign eth1&#8242;s address:</p>
<p><a class="floatbox" href="http://eison.net/wp-includes/images/posts/htpc/wicd.png" class="floatbox" rev="group:98" alt="Wicd"><img src="http://eison.net/wp-includes/images/posts/htpc/wicd_thumb.png" alt="Wicd" /></a></p>
<p><code>me@htpc:~$ more /etc/router_script<br />
#! /bin/sh</code></p>
<p><code># This script is run by the Wicd daemon after the PC boots<br />
# and connects the the WLAN using wlan0. Once run, eth1<br />
# has an IP address on another subnet and provides DHCP<br />
# addresses for that subnet. All packets are routed from<br />
# eth1 through wlan0.</code></p>
<p><code># give ethernet interface an IP address<br />
ifconfig eth1 172.16.5.1 netmask 255.255.255.252</code></p>
<p>I made my script executable</p>
<p><code>me@htpc:~$ sudo chmod 755 /etc/router_script</code></p>
<p>and after a reboot, I could see that both interfaces were up and had IP addresses.</p>
<p><strong>Task #3: Figure out how to give my DVR an IP address</strong><br />
Unfortunately for me, I can&#8217;t manually assign an IP address to my DVR, so I have to provide it one using DHCP. My router is already running dhcpd, but the request would have to go <em>through</em> my HTPC to get there, much like an ethernet-to-wireless bridge or <a href="http://www.dlink.com/products/?pid=333" target="_blank">wireless game adapter</a>; the problem is that I need for my HTPC to still be able to actively participate on my wireless network, not just bridge for my DVR.</p>
<p>I Google&#8217;d a bunch about this topic, too, and read and tried a bunch of stuff with <a href="http://www.linuxfoundation.org/collaborate/workgroups/networking/bridge" target="_blank">bridge-utils</a>, but could never make it work. Instead, I started thinking about my HTPC as more of a <em>router</em>, which made it a lot easier for me to find stuff about <a href="http://www.google.com/search?q=linux+router+dhcp" target="_blank">Linux routers and providing DHCP addresses</a>. Turns out, it was really easy to set up a second DHCP server on my HTPC that only serves addresses from <strong>eth1</strong>&#8211;that means only devices connected to that interface (my DVR) will ever get addresses. I read a good bit about using <strong>firestarter</strong>, and even tried it successfully, but I soon realized that for my purposes, it was over-kill. More on that later.</p>
<p>All I had to do to set up my new DHCP server in Ubuntu was<br />
<code>me@htpc:~$ sudo aptitude install dhcp3-server</code></p>
<p>After my install, I edited <strong>/etc/default/dhcp3-server</strong> to choose DHCP for only eth1, then edited <strong>/etc/dhcp3/dhcpd.conf</strong> for the network settings I wanted:<br />
<code>me@htpc:~$ more /etc/dhcp3/dhcpd.conf<br />
# DHCP configuration<br />
ddns-update-style interim;<br />
ignore client-updates;</p>
<p>subnet 172.16.5.0 netmask 255.255.255.252 {<br />
	option routers 172.16.5.1;<br />
	option subnet-mask 255.255.255.252;<br />
	option domain-name-servers 172.16.4.1;<br />
	option ip-forwarding off;<br />
	range dynamic-bootp 172.16.5.2 172.16.5.3;<br />
	default-lease-time 21600;<br />
	max-lease-time 43200;<br />
}</code></p>
<p>Note that I purposely picked a really small network mask, since I just needed a couple of usable IP addresses for that network. It would do no harm to pick something larger, like 255.255.255.0.</p>
<p>Since the DHCP server&#8217;s assigning a default router, I need to be sure that the router exists before dhcpd tries to hand out addresses. Calling the dhcp3-server init script again from my <em>router_script</em> is a good way to do that, so I added to it:</p>
<p><code># restart the DHCP server<br />
/etc/init.d/dhcp3-server restart</code></p>
<p>With the configuration done, I restarted the DHCP daemon and connected my DVR to my HTPC with a cross-over cable, then ran the broadband utility to see if it could get an address from dhcpd. Cool! That worked, but it says it&#8217;s not connected (to the Dish Network servers). Hmmm&#8230;guess there&#8217;s a Task #4, then.</p>
<p><strong>Task #4: Give the DVR access to the interwebs</strong><br />
Though the DVR has an address and a default gateway/router, that doesn&#8217;t mean that the HTPC is willing to let it&#8217;s traffic pass through it. For that, I need to get some help from <a href="http://en.wikipedia.org/wiki/Iptables" target="_blank">iptables</a>. As I mentioned a bit earlier, I actually installed <strong>firestarter</strong> during this process because it has <em>internet connection sharing</em> built-in, and can work with dhcpd&#8217;s scripts. What I didn&#8217;t like about it was that it seemed like &#8220;too much&#8221;, since all I really wanted to do was pass <em>all</em> traffic from one interface to another&#8211;I didn&#8217;t really want to <em>restrict</em> anything. So, I removed it and tried to do the same thing with <a href="https://wiki.ubuntu.com/UncomplicatedFirewall" target="_blank">ufw</a>. After fumbling around with that for awhile, it seemed again, that I was wasting my energy&#8211;ufw is really just an interface for iptables, so why not just learn enough iptables to do what I want?</p>
<p>By default, the Linux kernel doesn&#8217;t allow the forwarding of packets from one interface to another, but you can tell it to allow it using <a href="http://snipperoo.com/iptables_stuff/ubuntu_firewall.html" target="_blank">/etc/sysctl.conf</a>. Change one value and reboot.</p>
<p><code># Uncomment the next line to enable packet forwarding for IPv4<br />
net.ipv4.ip_forward=1</code></p>
<p>Now that <a href="http://en.wikipedia.org/wiki/Colonel_Sanders" target="_blank">the kernel</a> will let us forward packets from one interface to another (eth1 to wlan0), we need to tell iptables to accept the traffic into eth1 (filter table), as well as the return traffic to wlan0, back through to eth1 (nat table) Basically, wlan0 is a <a href="http://en.wikipedia.org/wiki/Network_address_translation" target="_blank">NAT</a> interface for whatever is behind eth1. We add to those two tables like this:</p>
<p><code>me@htpc:~$ sudo iptables --table nat --append POSTROUTING --out-interface wlan0 -j MASQUERADE<br />
me@htpc:~$ sudo iptables --append FORWARD --in-interface eth1 -j ACCEPT</code></p>
<p>Ok, cool: iptables is all set up, so I rebooted and checked to see if my DVR could find the interwebs. <a href="http://en.wikipedia.org/wiki/Lee_Corso" target="_blank">&#8220;Not so fast, my friend!&#8221;</a> Why doesn&#8217;t it work? The DVR has an address and I can ping it from the HTPC&#8230;gotta be something with iptables, then, so I checked using the command <strong>iptables &#8211;list</strong>.</p>
<p><code>me@htpc:~$ sudo iptables --list<br />
Chain INPUT (policy ACCEPT)<br />
target     prot opt source               destination</code>         </p>
<p><code>Chain FORWARD (policy ACCEPT)<br />
target     prot opt source               destination</code>        </p>
<p><code>Chain OUTPUT (policy ACCEPT)<br />
target     prot opt source               destination</code></p>
<p>My masquerade and forwarding are gone. If I run my two iptables commands again, <strong>iptables &#8211;list</strong> looks like this:</p>
<p><code>me@htpc:~$ sudo iptables --list<br />
Chain INPUT (policy ACCEPT)<br />
target     prot opt source               destination</code>        </p>
<p><code>Chain FORWARD (policy ACCEPT)<br />
target     prot opt source               destination<br />
ACCEPT     all  --  anywhere             anywhere</code>            </p>
<p><code>Chain OUTPUT (policy ACCEPT)<br />
target     prot opt source               destination</code></p>
<p>And if I &#8220;print&#8221; to STDOUT, I can see both:</p>
<p><code>me@htpc:~$ sudo iptables-save<br />
# Generated by iptables-save v1.4.4 on Sat Jul 10 19:16:47 2010<br />
*filter<br />
:INPUT ACCEPT [57221:27498502]<br />
:FORWARD ACCEPT [1163:76309]<br />
:OUTPUT ACCEPT [61462:49085429]<br />
COMMIT<br />
# Completed on Sat Jul 10 19:16:47 2010<br />
# Generated by iptables-save v1.4.4 on Sat Jul 10 19:16:47 2010<br />
*nat<br />
:PREROUTING ACCEPT [852:112868]<br />
:POSTROUTING ACCEPT [10:571]<br />
:OUTPUT ACCEPT [112:7142]<br />
-A POSTROUTING -o wlan0 -j MASQUERADE<br />
COMMIT<br />
# Completed on Sat Jul 10 19:16:47 2010</code></p>
<p>Seems to me that if I&#8217;ve already got this super-awesome script that Wicd calls once wlan0 connects, I should just be able to add my iptables stuff to it, so that every time my HTPC is booted the right rules will be in-place. The final version of my router_script looks like this:</p>
<p><code>e@htpc:~$ more /etc/router_script<br />
#! /bin/sh</code></p>
<p><code># This script is run by the Wicd daemon after the PC boots and connects<br />
# the the WLAN using wlan0. Once run, eth1 has an IP address on another<br />
# subnet and provides DHCP addresses for that subnet. All packets are<br />
# routed from eth1 through wlan0.</code></p>
<p><code># give ethernet interface an IP address<br />
ifconfig eth1 172.16.5.1 netmask 255.255.255.252</code></p>
<p><code># restart the DHCP server<br />
/etc/init.d/dhcp3-server restart</code></p>
<p><code># add needed rules to iptables<br />
iptables --table nat --append POSTROUTING --out-interface wlan0 -j MASQUERADE<br />
iptables --append FORWARD --in-interface eth1 -j ACCEPT</code></p>
<p>One last time, I checked my DVR: woo-hoo! It says &#8220;connected online&#8221; and I can manage it from the <a href="http://dish.sling.com/" target="_blank">dish.sling.com</a> website.</p>
<p>Now what? Guess I need to get a DVR with Slingbox built-in, or buy one of the add-ons. Donations will certainly be accepted.</p>
<p align="right"><a class="tt" href="http://twitter.com/home/?status=Ubuntu%2C+Linksys+WUSB600N+v1%2C+Dish+DVR%3A+whose+%40%23%24%25+idea+was+this%3F+http://eison.net/?p=98" title="Post to Twitter"><img class="nothumb" src="http://eison.net/wp-content/plugins/tweet-this/icons/tt-twitter-micro4.png" alt="Post to Twitter" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://eison.net/2010/07/ubuntu-linksys-wusb600n-v1-dish-dvr-whose-idea-was-this/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>QR Codes +1</title>
		<link>http://eison.net/2010/07/qr-codes-1/</link>
		<comments>http://eison.net/2010/07/qr-codes-1/#comments</comments>
		<pubDate>Mon, 05 Jul 2010 15:59:23 +0000</pubDate>
		<dc:creator>ross_e</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[qr]]></category>

		<guid isPermaLink="false">http://eison.net/?p=87</guid>
		<description><![CDATA[Since the last post about those nifty little QR codes was so awesome, I thought I&#8217;d add one more: creating QR codes using the goo.gl URL shortener, automatically. Hang on a sec, before you hyperventilate, it is possible. If you&#8217;re a Google Chrome user, there&#8217;s a browser extension called goo.gl URL Shortener that will reach [...]]]></description>
			<content:encoded><![CDATA[<p>Since the last post about those nifty little QR codes was so awesome, I thought I&#8217;d add one more: creating QR codes using the <strong>goo.gl</strong> URL shortener, automatically. Hang on a sec, before you hyperventilate, it <strong>is</strong> possible.</p>
<p>If you&#8217;re a <a href="http://www.google.com/chrome" target="_blank">Google Chrome</a> user, there&#8217;s a browser extension called <a href="https://chrome.google.com/extensions/detail/iblijlcdoidgdpfknkckljiocdbnlagk?hl=en" target="_blank">goo.gl URL Shortener</a> that will reach out to Google&#8217;s URL shortener API to create a short URL for you on the fly. Sadly, I don&#8217;t think the web interface for goo.gl is available otherwise. Once you have a goo.gl short URL, all you have to do to get the corresponding QR code for that URL is add <strong>.qr</strong> to the end of it, like so:</p>
<p><code>http://goo.gl/EFj6</code> becomes <code>http://goo.gl/EFj6.qr</code></p>
<p>When wrapped in image tags, it looks like this:</p>
<p><img src="http://goo.gl/EFj6.qr" alt="QR code for eison.net" /></p>
<p>And here&#8217;s the HTML:</p>
<p><code>&lt;img src="http://goo.gl/EFj6.qr" alt="QR code for eison.net" /></code></p>
<p align="right"><a class="tt" href="http://twitter.com/home/?status=QR+Codes+%2B1+http://eison.net/?p=87" title="Post to Twitter"><img class="nothumb" src="http://eison.net/wp-content/plugins/tweet-this/icons/tt-twitter-micro4.png" alt="Post to Twitter" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://eison.net/2010/07/qr-codes-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>QR Codes Demystified</title>
		<link>http://eison.net/2010/06/qr-codes-demystified/</link>
		<comments>http://eison.net/2010/06/qr-codes-demystified/#comments</comments>
		<pubDate>Mon, 21 Jun 2010 22:26:55 +0000</pubDate>
		<dc:creator>ross_e</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[qr]]></category>

		<guid isPermaLink="false">http://eison.net/?p=63</guid>
		<description><![CDATA[If you have a smart phone, hopefully Android, you&#8217;ve probably seen a QR code or two. Yep, they&#8217;re those crazy, bar code-looking things that you can scan with your phone&#8217;s bar code reader, that will link you directly to something, like an app in the Android Market. Turns out that there are lots of QR [...]]]></description>
			<content:encoded><![CDATA[<p>If you have a smart phone, hopefully Android, you&#8217;ve probably seen a QR code or two. Yep, they&#8217;re those crazy, bar code-looking things that you can scan with your phone&#8217;s bar code reader, that will link you directly to <em>something</em>, like an app in the Android Market.</p>
<p>Turns out that there are lots of <a href="http://qrcode.kaywa.com/" target="blank_">QR code generators</a> out here that&#8217;ll help you create a code for quite a few things: Android Market apps, URLs, a block of text, or your contact information. If you take a look at the other posts and pages on this site, you&#8217;ll see examples of three of those. It&#8217;s great to be able to use someone else&#8217;s code to generate things for you, but what if you found out that you can do the same thing with just a little HTML of you own?</p>
<p><span id="more-63"></span><br />
So, let&#8217;s think about this a bit: if we use <a href="http://zxing.appspot.com/generator/" target="blank_">this QR code generator site</a>, we can see that we&#8217;re really pointing to a Google subdomain, right?</p>
<p><code>http://chart.apis.google.com/chart?cht=qr&#038;chs=120x120&#038;chl=http%3A%2F%2Feison.net</code></p>
<p>Taking that sample apart, we can see </p>
<ul>
<li>the type (cht) of the image is set to <strong>qr</strong></li>
<li>the size of the QR image is set to <strong>120&#215;120</strong></li>
<li>the link (chl) begins with <strong>http</strong>, and has the HTML characters for <strong>colon</strong> and <strong>forward slash</strong> <a href="http://en.wikipedia.org/wiki/Percent-encoding" target="blank_">percent-encoded</a></li>
</ul>
<p>The finished product, looks like this:<br />
<img src="http://chart.apis.google.com/chart?cht=qr&#038;chs=120x120&#038;chl=http%3A%2F%2Feison.net" alt="QR code for eison.net" /><br />
And the HTML looks like this:<br />
<code>&lt;img src="http://chart.apis.google.com/chart?cht=qr&#038;chs=120x120&#038;chl=http%3A%2F%2Feison.net" alt="QR code for eison.net" /></code></p>
<p><em>Note that in order to display the QR code, I had to treat it like any other image file by wrapping my URL in image tags.</em></p>
<p>Well, what if I wanted to make a link for an app in the Android Market? Turns out it&#8217;s very, very similar, though you do need to know a little something about what the Android name for the app really is.</p>
<p>In this example, we&#8217;ll make a QR code to search for the Fandango app:<br />
<img src="http://chart.apis.google.com/chart?cht=qr&#038;chs=120x120&#038;chl=URL%3Amarket%3A%2F%2Fsearch?q=fandango" /><br />
Taking a look at the code, you can  see that the only the URL changed and that rather than use the word <strong>http</strong>, I used the word <strong>market</strong>, which Android phones understand:<br />
<code>&lt;img src="http://chart.apis.google.com/chart?cht=qr&#038;chs=120x120&#038;chl=URL%3Amarket%3A%2F%2Fsearch?q=fandango" /></code></p>
<p>See what I did there? I <strong>search</strong>ed the market for the word <em>fandango</em>. Now, if I were an app developer and wanted to be sure that people go directly to my app and not just a list of ones with a similar name, I need to know my app&#8217;s full name.<br />
<img src="http://chart.apis.google.com/chart?cht=qr&#038;chs=120x120&#038;chl=URL%3Amarket%3A%2F%2Fsearch?q=pname:com.fandango" /><br />
From the code below, you can see that the full app name is actually <em>com.fandango</em>.<br />
<code>&lt;img src="http://chart.apis.google.com/chart?cht=qr&#038;chs=120x120&#038;chl=URL%3Amarket%3A%2F%2Fsearch?q=pname:com.fandango" /></code></p>
<p>For the sake of full disclosure, I had no idea what the full name for the Fandango app is, but they were nice enough to have their own QR code on their site, which I examined. That, my friends, is the real genius in the uber-searchability of the internet and my best friend Google. When in doubt, ask him. He knows stuff.</p>
<p align="right"><a class="tt" href="http://twitter.com/home/?status=QR+Codes+Demystified+http://eison.net/?p=63" title="Post to Twitter"><img class="nothumb" src="http://eison.net/wp-content/plugins/tweet-this/icons/tt-twitter-micro4.png" alt="Post to Twitter" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://eison.net/2010/06/qr-codes-demystified/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wordle me this, Batman:</title>
		<link>http://eison.net/2010/06/wordle-me-this-batman/</link>
		<comments>http://eison.net/2010/06/wordle-me-this-batman/#comments</comments>
		<pubDate>Sat, 19 Jun 2010 18:54:33 +0000</pubDate>
		<dc:creator>ross_e</dc:creator>
				<category><![CDATA[Words]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[words]]></category>

		<guid isPermaLink="false">http://eison.net/?p=30</guid>
		<description><![CDATA[Occasionally, I come across things, ideas that just seem really cool, and Wordle is definitely one of them. I&#8217;m not too sure how one would use it in everyday life, but it just looks, well&#8230;interesting, especially if you&#8217;re into words and/or examining the importance of words in different uses. Using Wordle, it&#8217;s really easy to [...]]]></description>
			<content:encoded><![CDATA[<p>Occasionally, I come across things, ideas that just seem really cool, and Wordle is definitely one of them. I&#8217;m not too sure how one would use it in everyday life, but it just looks, well&#8230;interesting, especially if you&#8217;re into words and/or examining the importance of words in different uses. Using Wordle, it&#8217;s really easy to see the patterns in your own, or someone else&#8217;s, text.</p>
<p>Here&#8217;s one based on my <em>About Me</em>:</p>
<p><a href="http://www.wordle.net/show/wrdl/2176329/about-me" title="Wordle: about-me"><img src="http://www.wordle.net/thumb/wrdl/2176329/about-me" lt="Wordle: about-me" style="padding:0px;border:0px solid #ddd"></a></p>
<p align="right"><a class="tt" href="http://twitter.com/home/?status=Wordle+me+this%2C+Batman%3A+http://eison.net/?p=30" title="Post to Twitter"><img class="nothumb" src="http://eison.net/wp-content/plugins/tweet-this/icons/tt-twitter-micro4.png" alt="Post to Twitter" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://eison.net/2010/06/wordle-me-this-batman/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>First post, from my Droid, of course.</title>
		<link>http://eison.net/2010/06/test-post-from-my-droid/</link>
		<comments>http://eison.net/2010/06/test-post-from-my-droid/#comments</comments>
		<pubDate>Thu, 03 Jun 2010 02:18:14 +0000</pubDate>
		<dc:creator>ross_e</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[qr]]></category>

		<guid isPermaLink="false">http://eison.net/2010/06/test-post-from-my-droid/</guid>
		<description><![CDATA[Drrrrroooooooooooiddddd! Just imagine that in the voice from the Droid Does commerical&#8211;pretty powerful stuff, huh? In case you didn&#8217;t know, there&#8217;s a WordPress app in the Android Market. Frankly, it&#8217;s pretty impressive and easy use. Take a look at it on AppBrain: Or straight to the Android Market:]]></description>
			<content:encoded><![CDATA[<p><strong>Drrrrroooooooooooiddddd!</strong></p>
<p>Just imagine that in the voice from the <em>Droid Does</em> commerical&#8211;pretty powerful stuff, huh? In case you didn&#8217;t know, there&#8217;s a WordPress app in the Android Market. Frankly, it&#8217;s pretty impressive and easy use.</p>
<p>Take a look at it on <a href="http://www.appbrain.com" target="blank_">AppBrain</a>:<br />
<img src="http://goo.gl/58N7.qr" alt="Link to Android WordPress app via AppBrain" /></p>
<p>Or straight to the Android Market:<br />
<img src="http://chart.apis.google.com/chart?cht=qr&#038;chs=150x150&#038;chl=URL%3Amarket%3A%2F%2Fsearch?q=pname:org.wordpress.android" /></p>
<p align="right"><a class="tt" href="http://twitter.com/home/?status=First+post%2C+from+my+Droid%2C+of+course.+http://eison.net/?p=4" title="Post to Twitter"><img class="nothumb" src="http://eison.net/wp-content/plugins/tweet-this/icons/tt-twitter-micro4.png" alt="Post to Twitter" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://eison.net/2010/06/test-post-from-my-droid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
