<?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>Sean Cook &#187; Handsets</title>
	<atom:link href="http://www.seancook.com/category/handsets/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.seancook.com</link>
	<description>ramblings on mobile software, devices, and life</description>
	<lastBuildDate>Mon, 17 Aug 2009 15:40:59 +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>Testing mobile web pages in Firefox</title>
		<link>http://www.seancook.com/2008/09/24/testing-mobile-web-pages-in-firefox/</link>
		<comments>http://www.seancook.com/2008/09/24/testing-mobile-web-pages-in-firefox/#comments</comments>
		<pubDate>Wed, 24 Sep 2008 17:19:56 +0000</pubDate>
		<dc:creator>Sean</dc:creator>
				<category><![CDATA[Handsets]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[wap]]></category>
		<category><![CDATA[xhtml-mp]]></category>

		<guid isPermaLink="false">http://www.seancook.com/?p=45</guid>
		<description><![CDATA[The worst part of developing for the mobile web is ensuring that you&#8217;re accounting for the quirks of each of your target devices&#8217; browsers.  I often compare this to developing for the fixed web circa 1998&#8211;  no matter how great your site looked in one browser, you still had to hack it to pieces to [...]]]></description>
			<content:encoded><![CDATA[<p>The worst part of developing for the mobile web is ensuring that you&#8217;re accounting for the quirks of each of your target devices&#8217; browsers.  I often compare this to developing for the fixed web circa 1998&#8211;  no matter how great your site looked in one browser, you still had to hack it to pieces to make it render correctly in another browser (*cough* IE *cough*).  To accomodate these nuances, you typically have to implement per-device views that can make projects exponentially harder to test, and really take the fun out of mobile development.</p>
<p>Fortunately, I spend a lot of time writing both the client side of my mobile web apps, as well as the server side components  that power them.  The easiest way I&#8217;ve found to quickly test the rendering of my output per device User-Agent is to install the <a title="User Agent Switcher" href="https://addons.mozilla.org/en-US/firefox/addon/59">User Agent Switcher component for Firefox</a>.  This component allows you to quickly and easily  change the User-Agent header that your browser uses to identify itself to web servers.  With just a few clicks I can quickly run down a list of 10 devices and verify that device-specific logic is firing properly on the backend.  Additionally, I&#8217;ll often resize my Firefox window to the target device&#8217;s screen dimensions (e.g. 240&#215;320) to get a rough approximation of the overall look and feel of the page.</p>
<p>While there is no real substitute for testing on real devices, this technique has proven useful to me and hopefully someone else will also find it useful.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.seancook.com/2008/09/24/testing-mobile-web-pages-in-firefox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhone screenshots are easy</title>
		<link>http://www.seancook.com/2008/09/22/iphone-screenshots-are-easy/</link>
		<comments>http://www.seancook.com/2008/09/22/iphone-screenshots-are-easy/#comments</comments>
		<pubDate>Mon, 22 Sep 2008 21:38:07 +0000</pubDate>
		<dc:creator>Sean</dc:creator>
				<category><![CDATA[Handsets]]></category>
		<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://www.seancook.local/?p=43</guid>
		<description><![CDATA[If you have firmware version 2.0+ on your iPhone, you can quickly take a screenshot on the device by navigating to the screen you want to grab, holding down the home button, then pressing and releasing the sleep/awake button on the top of the phone.  Your screen will &#8220;flash&#8221; to indicate that the picture [...]]]></description>
			<content:encoded><![CDATA[<p>If you have firmware version 2.0+ on your iPhone, you can quickly take a screenshot on the device by navigating to the screen you want to grab, holding down the home button, then pressing and releasing the sleep/awake button on the top of the phone.  Your screen will &#8220;flash&#8221; to indicate that the picture has been taken and you can find the picture in your camera roll library on the device.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.seancook.com/2008/09/22/iphone-screenshots-are-easy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programmatically obtain a phone&#8217;s ESN</title>
		<link>http://www.seancook.com/2008/07/03/programmatically-obtain-a-phones-esn/</link>
		<comments>http://www.seancook.com/2008/07/03/programmatically-obtain-a-phones-esn/#comments</comments>
		<pubDate>Thu, 03 Jul 2008 18:28:02 +0000</pubDate>
		<dc:creator>Sean</dc:creator>
				<category><![CDATA[Handsets]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[CDMA]]></category>
		<category><![CDATA[ESN]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.seancook.local/?p=8</guid>
		<description><![CDATA[
Bitpim is an open-source program that allows a user to manipulate data on a CDMA handset, including the phone book, wallpapers, ringtones, and in some cases, the filesystem. While poking around the application’s source, which is written in python, I found a great class that provides a quick way to access the phone’s manufacturer, ESN, [...]]]></description>
			<content:encoded><![CDATA[<div class="content">
<p><a href="http://bitpim.org/">Bitpim</a> is an open-source program that allows a user to manipulate data on a CDMA handset, including the phone book, wallpapers, ringtones, and in some cases, the filesystem. While poking around the application’s source, which is written in python, I found a great class that provides a quick way to access the phone’s manufacturer, ESN, and firmware revision. Yes, this information is available through a small set of keystrokes on CDMA handsets, but I have often found cases where I would still prefer to provide an app to a user and have it do all the dirty work.</p>
<p>The class is called “phone_detect.py” and it’s located under the /src/ in the source tree. All that it really does is act as a wrapper for the AT commands that are necessary to switch the phone into the correct mode and also to ask the phone for it’s configuration info. You can get a good understanding of what it’s doing by following the calls to __get_esn(). There are plenty of references available online that show the full range of AT commands that phones respond to.</p>
<p>To play with the class, you’ll need to get an install python.  In addition to python, you will also need <a href="http://pyserial.sourceforge.net/">pySerial</a> in order to interface with your serial port. Once you have your handset connected to your computer you can call use the class directly by calling DetectPhone().detect(). There’s an example of using this call in setphone_wizard.py if you need one.</div>
]]></content:encoded>
			<wfw:commentRss>http://www.seancook.com/2008/07/03/programmatically-obtain-a-phones-esn/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GZIP content for mobile devices</title>
		<link>http://www.seancook.com/2008/07/02/gzip-content-for-mobile-devices/</link>
		<comments>http://www.seancook.com/2008/07/02/gzip-content-for-mobile-devices/#comments</comments>
		<pubDate>Wed, 02 Jul 2008 18:31:39 +0000</pubDate>
		<dc:creator>Sean</dc:creator>
				<category><![CDATA[Handsets]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[GZIP]]></category>
		<category><![CDATA[J2EE]]></category>

		<guid isPermaLink="false">http://www.seancook.local/?p=11</guid>
		<description><![CDATA[One of the easiest, most obvious ways to lower the data transfer footprint of your mobile apps is to compress data. For some reason, I still see mobile web decks that output XHTML-MP in plain text instead of very-easy-to-implement GZIP compression. I’ve implemented GZIP output on multiple J2EE projects with the help of Jayson Falkner’s [...]]]></description>
			<content:encoded><![CDATA[<p>One of the easiest, most obvious ways to lower the data transfer footprint of your mobile apps is to compress data. For some reason, I still see mobile web decks that output XHTML-MP in plain text instead of very-easy-to-implement <a href="http://en.wikipedia.org/wiki/Gzip">GZIP</a> compression. I’ve implemented GZIP output on multiple J2EE projects with the help of Jayson Falkner’s excellent GZIPFilter which is available in his article <a href="http://www.onjava.com/pub/a/onjava/2003/11/19/filters.html">Two Servlet Filters Every Web Application Should Have</a>.</p>
<p>To implement the filter in your own projects, download the three pieces of the filter: GZIPFilter, GZIPResponseStream, GZIPResponseWrapper and save them in your project. Then, in your web.xml add the following entries:</p>
<pre name="code" class="xml">
<filter>
<filter-name>Compress</filter-name>
<filter-class>GZIPFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>Compress</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
</pre>
<p>Remember to adjust the url-pattern to what’s appropriate for your webapp. I typically map my Spring MVC dispatcher servlet to *.do, but that’s just a hangover from Struts.</p>
<p>Once you’ve redeployed your webapp you should verify that output is rendering correctly in a desktop client such as Firefox.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.seancook.com/2008/07/02/gzip-content-for-mobile-devices/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
