<?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 Smith</title>
	<atom:link href="http://www.seanhsmith.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.seanhsmith.com</link>
	<description>Digital Media Developer</description>
	<lastBuildDate>Tue, 08 May 2012 01:02:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>ColdFusion: How do I get the byte size of a string?</title>
		<link>http://www.seanhsmith.com/2012/04/30/coldfusion-how-do-i-get-the-byte-size-of-a-string/</link>
		<comments>http://www.seanhsmith.com/2012/04/30/coldfusion-how-do-i-get-the-byte-size-of-a-string/#comments</comments>
		<pubDate>Mon, 30 Apr 2012 19:46:26 +0000</pubDate>
		<dc:creator>Sean</dc:creator>
				<category><![CDATA[ColdFusion]]></category>

		<guid isPermaLink="false">http://www.seanhsmith.com/?p=390</guid>
		<description><![CDATA[I&#8217;m sure just about everybody who&#8217;s at least a little bit familiar with ColdFusion knows about the Len() function to get the character length of a string. What if you want to get the byte length or byte size of a string, though? There appears to be no built in method to do such a thing. I&#8217;ve seen  [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m sure just about everybody who&#8217;s at least a little bit familiar with ColdFusion knows about the Len() function to get the character length of a string. What if you want to get the byte length or byte size of a string, though? There appears to be no built in method to do such a thing. I&#8217;ve seen posts say that, as long as you&#8217;re using ASCII character exclusively, then you can simply use Len() and assume that each character is only a single byte. But what if you have a mix of ASCII and non-ASCII characters? Today, UTF-8 is pretty much the defacto character encoding standard and can contain both non-Latin and Latin-based characters. This means it can contain Chinese, Japanese, Hebrew, Russian, and many other different types of character sets. When this happens, you cannot simply rely on Len() to be the same as the actual byte size of the string because most of these other kinds of characters are defined using anywhere from 1 to 4 bytes per character.</p>
<p>Fortunately, there&#8217;s a relatively easy way to get the byte size/length of a string by converting it into a byte array and then using the ArrayLen() method.</p>

<div class="wp_syntax"><div class="code"><pre class="coldfusion" style="font-family:monospace;">&lt;!--- For some reason my WordPress blog doesn't like characters that are not Latin-based but pretend the following string contained something like Japanese characters ---&gt;
&lt;cfset theString = &quot;I contain characters that are not Latin-based&quot;&gt;
&lt;cfset theByteArray = theString.getBytes()&gt; &lt;!--- Converts the string into a byte array ---&gt;
&lt;cfset numBytes = ArrayLen(theByteArray)&gt; &lt;!--- Array length of a byte array tells us how many bytes are in the string ---&gt;</pre></div></div>

<p>Special thanks to Greg Ecklund for bringing the getBytes() method to my attention.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.seanhsmith.com/2012/04/30/coldfusion-how-do-i-get-the-byte-size-of-a-string/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cool iPhone App Takes 360 Degree Panoramas</title>
		<link>http://www.seanhsmith.com/2011/04/25/cool-iphone-app-takes-360-degree-panoramas/</link>
		<comments>http://www.seanhsmith.com/2011/04/25/cool-iphone-app-takes-360-degree-panoramas/#comments</comments>
		<pubDate>Tue, 26 Apr 2011 03:48:31 +0000</pubDate>
		<dc:creator>Sean</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.seanhsmith.com/?p=357</guid>
		<description><![CDATA[Last week I discovered a cool new app for the iPhone that lets you take 360 degree panoramas by automatically snapping photos as you aim the camera and then stitching them together. The app is called Photosynth and it was made, ironically, by Microsoft. While it is certainly far from perfect, the  [...]]]></description>
			<content:encoded><![CDATA[<p>Last week I discovered a cool new app for the iPhone that lets you take 360 degree panoramas by automatically snapping photos as you aim the camera and then stitching them together. The app is called <a title="Microsoft Photosynth" href="http://itunes.apple.com/us/app/photosynth/id430065256?mt=8" target="_blank">Photosynth</a> and it was made, ironically, by Microsoft. While it is certainly far from perfect, the app is a great start and shows just how easy an app like this can be to use. Since this app requires the compass in addition to the camera, it only supports the iPhone 3GS, iPhone 4, the 4th generation iPod touch (released late 2010) and the new iPad 2.</p>
<p>The concept is simple&#8230; you tap the screen to take your first shot and then slowly pan the camera up, down, left and right as it automatically snaps additional photos. I can only guess at how it works but it seems to use the compass to determine direction followed by using the accelerometers to determine the viewing angle combined with image matching from the camera. Another great example of something that would have previously been impossible before all of these sensors began being built into smartphones.</p>
<p><a title="Microsoft Photosynth" href="http://itunes.apple.com/us/app/photosynth/id430065256?mt=8" target="_blank">Photosynth</a> also allows you to share your panoramas by publishing them to <a title="Photosynth.net" href="http://www.photosynth.net" target="_blank">photosynth.net</a> as well as Facebook. People on computers will be able to view the panorama as long as they have the Microsoft Silverlight plugin installed. The following is a panorama of my kitchen. You can see where it can sometimes have problems lining up the shots but I have a feeling this was due to a changing camera position on my part. I have a feeling that mounting the device to a tripod while using the app will yield much better results.</p>
<p><iframe frameborder="0" src="http://photosynth.net/embed.aspx?cid=b94bab8b-2307-4e3c-a941-7b924813272c&#038;delayLoad=true&#038;slideShowPlaying=false" width="500" height="300"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.seanhsmith.com/2011/04/25/cool-iphone-app-takes-360-degree-panoramas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Changing Your Windows Live ID E-mail? Be Absolutely Sure it&#8217;s Right</title>
		<link>http://www.seanhsmith.com/2011/03/15/changing-your-windows-live-id-e-mail-be-absolutely-sure-its-right/</link>
		<comments>http://www.seanhsmith.com/2011/03/15/changing-your-windows-live-id-e-mail-be-absolutely-sure-its-right/#comments</comments>
		<pubDate>Tue, 15 Mar 2011 17:42:40 +0000</pubDate>
		<dc:creator>Sean</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.seanhsmith.com/?p=350</guid>
		<description><![CDATA[Every time I think Microsoft has cornered the market on frustrating technical issues and stupid policies, I find out something new that again puts them over the top. I recently changed my e-mail address a few months ago because, after many blissful years of receiving absolutely no spam whatsoever,  [...]]]></description>
			<content:encoded><![CDATA[<p>Every time I think Microsoft has cornered the market on frustrating technical issues and stupid policies, I find out something new that again puts them over the top. I recently changed my e-mail address a few months ago because, after many blissful years of receiving absolutely no spam whatsoever, I suddenly was being inundated. So I created myself a new address and began changing over my registered e-mail on all the products and services I use. However, I decided about halfway through that I wanted to use a different e-mail address than the one I had created. Easy enough, I created the new e-mail address and then went back and began changing over those accounts that I had already previously updated. Everything was going swimmingly&#8230; until I tried to change the e-mail address I use as my Windows Live ID.</p>
<p>No matter how many times I tried, I simply could not change my Windows Live ID e-mail address again. The previous change had gone through without a problem. Now, every time I tried to submit the new address I received the message &#8220;<strong><em>You&#8217;ve already renamed this account. Please try again later.</em></strong>&#8221; So what&#8217;s the problem? Microsoft and their totally asinine e-mail policies are what&#8217;s the problem. I stumbled across <a href="https://windowslivehelp.com/thread.aspx?threadid=9e91e56e-951c-460c-93d3-cec1b219d7ac" target="_blank">this thread</a> on the Windows Live Help forums and came to discover that Microsoft prevents any further changes to the registered account e-mail address for a full <em><strong>six months</strong></em> from the date you change it. That means if you mistype the address or decide you want to change it to something else, you have to wait a full six months before you&#8217;re allowed to change it again. I don&#8217;t know about anybody else out there, but I think this is one of the <strong>dumbest</strong> policies I&#8217;ve ever seen in use by any company on the Web. I can understand a 24 or 48-hour lockout period just so people aren&#8217;t constantly changing it &#8212; but <strong>SIX MONTHS</strong>? This is pretty pathetic, even by your standards, Microsoft.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.seanhsmith.com/2011/03/15/changing-your-windows-live-id-e-mail-be-absolutely-sure-its-right/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Strange Issue With Netflix iPhone App and DD-WRT</title>
		<link>http://www.seanhsmith.com/2010/12/20/strange-issue-with-netflix-iphone-app-and-dd-wrt/</link>
		<comments>http://www.seanhsmith.com/2010/12/20/strange-issue-with-netflix-iphone-app-and-dd-wrt/#comments</comments>
		<pubDate>Mon, 20 Dec 2010 23:38:30 +0000</pubDate>
		<dc:creator>Sean</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.seanhsmith.com/?p=344</guid>
		<description><![CDATA[If anybody out there is using a newer build of the DD-WRT firmware with their router and has been having issues streaming Netflix movies from the iPhone app over WiFi, I have also stumbled across the reason and the solution for this problem. After updating my router to the &#8220;recommended&#8221; build of  [...]]]></description>
			<content:encoded><![CDATA[<p>If anybody out there is using a newer build of the DD-WRT firmware with their router and has been having issues streaming Netflix movies from the iPhone app over WiFi, I have also stumbled across the reason and the solution for this problem. After updating my router to the &#8220;recommended&#8221; build of DD-WRT v24 pre-SP2 (Build 14929, dated 08/12/10 as recommended in the DD-WRT forum thread regarding recommended version for Broadcom firmware), I was no longer able to play anything from the Netflix iPhone app while attempting to stream over WiFi. The player would open, show a message indicating it was loading for a second or two, and would then simply close and go back to the previous screen in Netflix. However, if I turned WiFi off on my iPhone and attempted to stream that way, everything would work!</p>
<p>It turns out that newer versions of DD-WRT, Tomato and other third-party firmware include a newer version of the DNSMasq service, which also adds protection for what is known as a &#8220;DNS rebind attack.&#8221; Apparently this is when an external domain name, such as something.somewhere.com, points to what is considered an internal or &#8220;private&#8221; IP address, such as <strong>192.168.1.1</strong> or even the <strong>127.0.0.1</strong> loop-back address. Apparently this method can be used to probe inside networks somehow and since there really should be no valid reason for ever pointing a domain at a private IP address, the third-party firmware community has decided to block access to these types of domains.</p>
<p>So what&#8217;s the problem with the Netflix iPhone app? It turns out that the player attempts to connect to a domain named <strong>ihost.netflix.com</strong> and this simply points to <strong>127.0.0.1</strong> &#8212; the loop-back address I mentioned earlier. Effectively, the Netflix iPhone app uses this external domain to connect to <em>itself</em> (i.e., the iPhone app). I cannot for the life of me figure out why Netflix designed their app this way. The only possible explanation I can afford is that it is some part of the DRM mechanism that the app uses. I&#8217;m hoping this becomes enough of an issue that Netflix will stand up and take notice and perhaps just hard-code the loop-back address into the iPhone app&#8217;s code instead of using an external domain to perform this trick.</p>
<p>So what are the possible solutions? You can disable DNSMasq altogether in DD-WRT or your third-party firmware but then you lose all local-side DNS caching abilities. I&#8217;ve also read that newer builds (15000 and higher) of DD-WRT let you disable the DNS rebind protection altogether but then you lose what should be another layer of security. Possibly the best (and simplest) solution is to actually enter an external DNS IP address into the WiFi settings of your iPhone or iPod touch device itself. Simply go to Settings and then tap on WiFi and then tap the little blue arrow next to your network&#8217;s name. Enter something other than the 192.168.1.1 (or whatever your router&#8217;s IP address might be) such as Google&#8217;s <strong>8.8.8.8</strong> public DNS server or use OpenDNS at <strong>208.67.222.222</strong>. After doing so, try playing a movie over WiFi again and it should work flawlessly as it did before.</p>
<p>For further reading, there is a fairly lengthy thread on the DD-WRT forums about the issue. <a href="http://www.dd-wrt.com/phpBB2/viewtopic.php?t=77831" target="_blank">Click here</a> or visit the following link to view the first page of the thread:</p>
<p><a href="http://www.dd-wrt.com/phpBB2/viewtopic.php?t=77831" target="_blank">http://www.dd-wrt.com/phpBB2/viewtopic.php?t=77831</a></p>
<p><strong>UPDATE</strong>: Somebody on the thread has posted a more elegant solution for DD-WRT users although the same technique could probably be applied to other custom firmwares suffering from the same issue if the firmware allows you to save a list of commands to be executed when the router is booting up. In DD-WRT, you can click the &#8220;Administration&#8221; tab and then click on the &#8220;Commands&#8221; sub-tab and you will see a box where you can enter several commands on different lines. You can then either run these commands immediately using the &#8220;Run Commands&#8221; button at the bottom or save them to be run when the router is starting up, shutting down, or should be applied to the firewall rules (&#8220;Save Startup&#8221;, &#8220;Save Shutdown&#8221; and &#8220;Save Firewall&#8221; buttons respectively). Paste the following into the command box and click the &#8220;Save Startup&#8221; button:</p>
<pre>echo 127.0.0.1 ihost.netflix.com &gt;&gt; /etc/hosts
killall -9 dnsmasq
dnsmasq --conf-file=/tmp/dnsmasq.conf</pre>
<p>You can then either reset and reboot your router or you can paste the commands into the box again and click the &#8220;Run Commands&#8221; button for the settings to take effect. Essentially what this does is map the ihost.netflix.com domain to the 127.0.0.1 loop-back address. Apparently, having this in the /etc/hosts file will prevent DNSMasq from trigger its DNS rebind protection and allows Netflix to play without issue! This makes my previous suggestion of using an external DNS server on your mobile device (i.e., iPhone) unnecessary and this fix will allow Netflix to work from any mobile device (including Android devices) without any configuration changes.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.seanhsmith.com/2010/12/20/strange-issue-with-netflix-iphone-app-and-dd-wrt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AT&amp;T U-verse 2wire Router and WRT54GL with DD-WRT Problems</title>
		<link>http://www.seanhsmith.com/2010/12/02/att-u-verse-2wire-router-and-wrt54gl-with-dd-wrt-problems/</link>
		<comments>http://www.seanhsmith.com/2010/12/02/att-u-verse-2wire-router-and-wrt54gl-with-dd-wrt-problems/#comments</comments>
		<pubDate>Fri, 03 Dec 2010 02:28:53 +0000</pubDate>
		<dc:creator>Sean</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.seanhsmith.com/?p=338</guid>
		<description><![CDATA[I recently moved into my first home about eight months ago and had to choose between Comcast or AT&#38;T for television and internet. You could say I was fortunate to move to an area that has a little bit of competition because for the first time the AT&#38;T U-verse service was available to me.  [...]]]></description>
			<content:encoded><![CDATA[<p>I recently moved into my first home about eight months ago and had to choose between Comcast or AT&amp;T for television and internet. You could say I was fortunate to move to an area that has a little bit of competition because for the first time the AT&amp;T U-verse service was available to me. Ultimately, it came down to price and how many HD channels I could get and I decided to go with U-verse because Comcast was slightly more expensive and had far fewer HD channels available in my area&#8230; as in I can get basically every channel in HD on AT&amp;T while only getting about 12 HD channels with Comcast.</p>
<p>To date, with the exception of a few aggravating moments of briefly losing some channels due to programmer / carrier disputes between AT&amp;T and different networks, the service has been exceptional. I was, however, persistently running into a problem with the internet connection &#8212; specifically with downloading large files. I first noticed the issue every time I tried to download an iPhone firmware update which would generally be over 600 MB for my iPhone 4. The download would simply stop at random points in the download for seemingly no rhyme or reason. Since the servers the files are being hosted on do not support resuming, I would have to start the download all over again. Needless to say, this was becoming a very annoying problem. I also began to realize that YouTube video downloads would also seemingly stop for no reason but I initially just chalked this up to YouTube being flaky as it has a tendency to be sometimes. I was also experiencing intermittent issues with other services, like Xbox Live, FaceTime calls, Skype video calls, etc. Turns out they were all related to a single problem.</p>
<p>First a little information on my setup&#8230; when the AT&amp;T technician installed the service, they provided one of the all-in-one 2wire devices that is a model, router and wifi access point. Since I like to roll my own router in the form of a Linksys WRT54GL running the custom DD-WRT third-party firmware due to all the extra features it offers, I disabled the wifi and placed my own router into &#8220;DMZ+&#8221; mode (not sure what the plus means) on the 2wire device so it could pull a public IP address and also disabled the 2wire firewall for this device. According to all the articles I had read, this was the correct way to set everything up and, with the exception of this seemingly singular problem, everything seemed to be working fine.</p>
<p>After much searching on the issue and coming up empty-handed for a long time, I was ready to throw in the towel. And then I stumbled across <a href="http://www.comprepairgurus.com/att-u-verse2wire-gateway-and-dd-wrt-router-in-dmz-mode/" target="_blank">this article</a>. It turns out that the 2wire device only gives a ten minute lease time for the public IP address it gives any devices in DMZ+ mode. It also turns out that the SPI firewall in DD-WRT was blocking the DHCP renewal requests from being returned because apparently the internal IP address it comes from can sometimes be different! This resulted in basically any open connections being terminated when the lease expired at the ten minute mark.</p>
<p>The solution the article offered was very simple and worked perfectly. From the &#8220;Administration&#8221; tab in DD-WRT, I clicked on &#8220;Commands&#8221; and entered the following into the text box:</p>
<pre>iptables -I INPUT -p udp --sport 67 --dport 68 -j ACCEPT</pre>
<p>After entering this, I clicked the &#8220;Save Firewall&#8221; button and waited a bit for the firewall to reboot itself. I did not end up having to power cycle or reboot my router but apparently you may or may not need to do this.</p>
<p>And that was it! After doing this, I attempted to download the latest iPhone firmware update again via a direct link and it finished the first attempt without any issues. YouTube videos seem to load without issues now and all of my FaceTime and Skype video freezing issues all seem to have disappeared. Thanks again to comprepairgurus.com and their article&#8230; without it I&#8217;m not sure I would have ever figured out what the problem was or how to fix it. Here is the direct link again:</p>
<p><a href="http://www.comprepairgurus.com/att-u-verse2wire-gateway-and-dd-wrt-router-in-dmz-mode/" target="_blank">http://www.comprepairgurus.com/att-u-verse2wire-gateway-and-dd-wrt-router-in-dmz-mode/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.seanhsmith.com/2010/12/02/att-u-verse-2wire-router-and-wrt54gl-with-dd-wrt-problems/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The iPhone 4</title>
		<link>http://www.seanhsmith.com/2010/06/11/the-iphone-4/</link>
		<comments>http://www.seanhsmith.com/2010/06/11/the-iphone-4/#comments</comments>
		<pubDate>Fri, 11 Jun 2010 05:11:37 +0000</pubDate>
		<dc:creator>Sean</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.seanhsmith.com/?p=301</guid>
		<description><![CDATA[It&#8217;s been awhile since I&#8217;ve posted about anything but life has been keeping me busy as of late.  So, while my iPhone 3G spends a seemingly endless amount of time backing up, I thought I&#8217;d take the time to post about some recent events in the Apple universe&#8230; namely the announcement of the fourth  [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been awhile since I&#8217;ve posted about anything but life has been keeping me busy as of late.  So, while my iPhone 3G spends a seemingly endless amount of time backing up, I thought I&#8217;d take the time to post about some recent events in the Apple universe&#8230; namely the announcement of the fourth generation iPhone, iPhone 4, and everything related to it.</p>
<p>This past Monday, June 7, Steve Jobs gave the keynote at the WWDC developer conference.  After starting with his usual updates on other Apple products, namely the iPad, he finally unveiled what the entire world had seen on Gizmodo&#8217;s website almost two months ago: the iPhone 4.  Personally, I made a calculated gamble and decided to skip the iPhone 3GS in favor of whatever would be in this model, as it would certainly have better specs than the 3GS.  However, this thing seems to have been worth the wait and will be a huge leap from my current iPhone 3G.</p>
<p>So what does it have?  The first thing that you notice is an <strong>all new form factor</strong>.  It&#8217;s ultra slim and Apple claims it&#8217;s the thinnest smartphone on the planet.  Based on the pictures, it&#8217;s a compelling argument.  The next big thing is an <strong>all new display</strong> that has twice the horizontal and vertical resolution of all previous iPhones (960 x 640 vs. 480 x 320) resulting in four times the number of pixels.  This effectively doubles the dots per inch from the previous standard of 163 dpi to 326 dpi.  Apple has labeled it the &#8220;<em>Retina Display</em>&#8221; and claims that the human eye cannot distinguish pixels when they are 300 dpi or higher.  They even go so far as to compare it to holding a printed page in your hand.  I&#8217;ll believe it when I see it.</p>
<p>The iPhone 4 also has an entirely new camera system. The most noticeable difference is that there is finally a <strong>front-facing camera</strong>! To go along with the front-facing camera, Apple has baked its own implementation of video chat into the software, dubbed <em>FaceTime</em>. Based on several &#8220;open&#8221; standards such as H.264, AAC, SIP, etc. (I don&#8217;t believe H.264 or AAC are open?), Apple is submitted it to the standards body as an open standard so other applications can also take advantage of it. The demo of it seemed fairly impressive, although it will be limited to iPhone 4 to iPhone 4 communication and will only work over Wi-Fi connections&#8230; or at least through 2010, according to Steve. His comments seemed to indicate that eventually it might be opened up to 3G.  The rear-facing camera has also received a significant upgrade, being bumped up to <strong>5 megapixels</strong> and it is now also capable of <strong>recording high-definition video</strong>!  One of the only real surprise announcements of the show was that Apple had developed an iPhone version of the iMovie application, effectively turning the iPhone into a mobile high-definition video recorder, editor, and encoder.  And the best part?  It will be available on the App Store soon for only $4.99!  However, the language used did make it seem as if it was only going to made available on the iPhone 4.</p>
<p>Another surprise inclusion was a new sensor: a <strong>gyroscope</strong>.  Steve Jobs played a Jenga-style game that demonstrated the gyroscope&#8217;s capability.  As Steve turned around in a circle, the tower of blocks rotated around as well.  From what I can tell, it seems to mainly augment the accelerometer sensors and provides much more accurate motion detection.</p>
<p>Also, Steve announced that they are renaming the iPhone OS platform since it is now running on several products other than the iPhone (iPads and iPod Touch&#8217;s).  They dropped the &#8220;Phone&#8221; part and are now simply calling it <strong>iOS 4</strong>.  Several new features of iOS 4 were demonstrated but nothing new from its unveiling back in March was shown.</p>
<p>On a side note, Reed Hastings, CEO of Netflix, announced that Netflix for the iPhone is coming this summer and will allow instant streaming using Apple&#8217;s adaptive HTTP technology over Wi-Fi <em>and</em> 3G!  This brings me to AT&amp;T&#8217;s recent data plan changes.  Previously, there was only a single $30 a month <em>unlimited</em> data plan for iPhone users.  New iPhone users now have to choose between the <em>DataPlus</em> plan that gives you <strong>200 MB for $15</strong> or the <em>DataPro</em> plan that gives you <strong>2 GB for $25</strong>.  Fortunately, existing AT&amp;T customers can choose to have their unlimited plans <em>grandfathered</em> and keep paying the same $30 a month price.  The catch is if and when want to use the tethering feature for your iPhone, which AT&amp;T is <em>finally</em> making available with the iOS 4 update.  If you want to use this feature, you&#8217;ll have to give up your unlimited data plan and then you <strong>lose it forever</strong>.  So, you really have a choice to make: do you want to keep unlimited data for as long as possible or do you want tethering bad enough to downgrade to the DataPro plan and never look back?  I&#8217;ve already made my decision: I&#8217;m sticking with my unlimited data plan.  As the iPhone becomes more and more capable, I see fewer times in the future when I will need to have my iPhone <em>and</em> a laptop with me.  And with bandwidth-intensive apps like Netflix in the pipeline, that unlimited plan is going to be worth the extra $5 a month over the 2 GB plan.</p>
<p>My two cents.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.seanhsmith.com/2010/06/11/the-iphone-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhone OS 4.0 Announced</title>
		<link>http://www.seanhsmith.com/2010/04/11/iphone-os-4-0-announced/</link>
		<comments>http://www.seanhsmith.com/2010/04/11/iphone-os-4-0-announced/#comments</comments>
		<pubDate>Sun, 11 Apr 2010 21:11:47 +0000</pubDate>
		<dc:creator>Sean</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.seanhsmith.com/?p=289</guid>
		<description><![CDATA[Apple held a special event for the tech media last Thursday during which they announced (most) of the new features that are to be included in the next version of the iPhone operating system, iPhone OS 4.0. Multitasking, or at least some form of it, is finally going to be included in this release  [...]]]></description>
			<content:encoded><![CDATA[<p>Apple held a special event for the tech media last Thursday during which they announced (most) of the new features that are to be included in the next version of the iPhone operating system, iPhone OS 4.0. Multitasking, or at least some form of it, is finally going to be included in this release but will only be supported in the current iPhone 3GS and presumably any future versions of the iPhone. It appears that original iPhone owners are not going to be receiving the update and will most likely be limited to whatever minor updates Apple provides to iPhone OS 3.x in the future. Including multitasking, the seven &#8220;tentpole&#8221; features as Steve Jobs continuously referred to them as are:</p>
<ol>
<li>Multitasking (iPhone 3GS-only)</li>
<li>Folders</li>
<li>Improved Mail</li>
<li>Improved Enterprise Support</li>
<li>iBooks</li>
<li>Game Center</li>
<li>iAd</li>
</ol>
<p>The Folders feature will allow you to not only rearrange the icons on your home screens, but also allow you to drop icons on top of each other to create folders. They will automatically be named using the category of apps but you will have full control over their name. Mail is being improved with a unified inbox, allowing you to see incoming messages from multiple email accounts, along with threaded messaging. They are adding better enterprise support, including the ability to encrypt email, attachments, and other data using the PIN code entered on the phone along with several other enterprise features. They are also bringing a version of the iBooks app and bookstore from the iPad to the iPhone as well. They also introduced something called &#8220;Game Center&#8221; which sounds like it will be a social network gaming service, much like what Xbox Live is. Lastly, they announced iAd, which appears to be the result of their recent purchase of Quattro Wireless. It will allow developers to create interactive (and emotional, right Steve?) HTML 5 advertisements that will play on top of the add from which they are launched. The ads include an X icon in the upper-left corner of the screen that allows you to return directly to the app you had been using. This is a large improvement over the current system of tapping on an ad inside an app, whether accidentally or intentionally, and having the app quit and bring you into Mobile Safari.</p>
<p>There were also several other end-user features worth noting that were not covered under the &#8220;tentpole&#8221; features. You will finally be able to set a wallpaper for your home screen and you will be able to set this independently from the lock screen wallpaper. iPhone 3GS will also be gaining the ability to &#8220;tap to focus&#8221; not only their still images but video as well.</p>
<p>Overall, it sounds like iPhone OS 4.0 is shaping up to be the largest update since the launch of iPhone OS 2.0 and the App Store. Many great new features are coming but it&#8217;s what wasn&#8217;t announced that I&#8217;m the most excited about. On Thursday, Apple also released the iPhone OS 4.0 SDK to developers so they can begin writing and testing their applications against the platform. There has been even more evidence found that hints at a front-facing camera being included in a future product along with the possibility of iChat being added. Is a front-facing camera and video conferencing finally going to be included in the next version of the iPhone? I&#8217;m really hoping so: I&#8217;ve been eligible for upgrade pricing since last December but decided to skip the iPhone 3GS and wait for the next iteration. If these rumors prove true, it might have been worth the wait.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.seanhsmith.com/2010/04/11/iphone-os-4-0-announced/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flex for Free: Setting Up the Flex 4 SDK with Eclipse IDE</title>
		<link>http://www.seanhsmith.com/2010/03/29/flex-for-free-setting-up-the-flex-4-sdk-with-eclipse-ide/</link>
		<comments>http://www.seanhsmith.com/2010/03/29/flex-for-free-setting-up-the-flex-4-sdk-with-eclipse-ide/#comments</comments>
		<pubDate>Tue, 30 Mar 2010 00:57:12 +0000</pubDate>
		<dc:creator>Sean</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Eclipse]]></category>

		<guid isPermaLink="false">http://www.seanhsmith.com/?p=263</guid>
		<description><![CDATA[I recently wrote about Adobe&#8217;s release of Flash Builder 4, ColdFusion Builder and the free Flex 4 SDK. While Flex Builder is a great IDE, as I&#8217;m sure are Flash Builder and ColdFusion Builder, most independent developers cannot afford the licenses that range into the hundreds of dollars. What is an  [...]]]></description>
			<content:encoded><![CDATA[<p>I recently wrote about Adobe&#8217;s release of Flash Builder 4, ColdFusion Builder and the free Flex 4 SDK. While Flex Builder is a great IDE, as I&#8217;m sure are Flash Builder and ColdFusion Builder, most independent developers cannot afford the licenses that range into the hundreds of dollars. What is an aspiring or shoe-string budget Flash developer to do? Fortunately, there is a legal and free method of developing and building Flash applications using the free Flex 4 SDK in combination with the open source Eclipse IDE.</p>
<p>The first things you will need to do is grab the <a href="http://www.adobe.com/go/flex4_sdk_download" target="_blank">Flex 4 SDK</a> and a version of the <a href="http://www.eclipse.org/downloads/" target="_blank">Eclipse IDE</a>. Any version of Eclipse should do but I recommend using either Classic or the one for PHP Developers as I&#8217;m currently using.  Install Eclipse to where ever you would like and extract the Flex 4 SDK files to any easily accessible folder. For the purposes of this tutorial, I extracted mine to the following path on my Windows Vista laptop: C:AdobeSDKFlex4.0</p>
<p>Open up Eclipse and start a new project by clicking File -&gt; New -&gt; Project. The &#8220;New Project&#8221; wizard should open. Select &#8220;Project&#8221; from the &#8220;General&#8221; group in the list and click the Next button.</p>
<p><a href="http://seanhsmith.com/wp-content/uploads/2010/03/01.jpg"><img class="alignnone size-medium wp-image-264" title="New Project" src="http://www.seanhsmith.com/wp-content/uploads/2010/03/01-300x285.jpg" alt="" width="300" height="285" /></a></p>
<p>For the purposes of this tutorial, we will call this project &#8220;Test Project.&#8221; Type this into the &#8220;Project name&#8221; field and either leave &#8220;Use default location&#8221; checked or uncheck it and specify your own workspace location. I will leave this checked. Click the Finish button.</p>
<p><a href="http://seanhsmith.com/wp-content/uploads/2010/03/02.jpg"><img class="alignnone size-medium wp-image-265" title="New Project (cont.)" src="http://www.seanhsmith.com/wp-content/uploads/2010/03/02-300x285.jpg" alt="" width="300" height="285" /></a></p>
<p>Eclipse should create your project and add it to your Project Explorer window pane. We will mirror the standard folder structure that Flex Builder uses and create three new subfolders to our project called &#8220;bin,&#8221; &#8220;libs&#8221; and &#8220;src.&#8221; Right-click on your project folder, point to &#8220;New,&#8221; and then click on &#8220;New Folder.&#8221; Enter &#8220;bin&#8221; into the &#8220;Folder name&#8221; field and click the Finish button. Repeat this process twice more, entering the folder names &#8220;libs&#8221; and &#8220;src&#8221; each time. When you are finished, you should have three subfolders below your root workspace location.</p>
<p><a href="http://seanhsmith.com/wp-content/uploads/2010/03/03.jpg"><img class="alignnone size-medium wp-image-266" title="Project Folder Structure" src="http://www.seanhsmith.com/wp-content/uploads/2010/03/03-300x187.jpg" alt="" width="300" height="187" /></a></p>
<p>The bin folder is where we will save the compiled Flash .swf file. The libs folder is where you will drop any .swc file libraries that your project will use. Lastly, the src folder is where all of your project source code will be stored. Before we continue, I recommend adding an editor for the *.as file extension in Eclipse and associating it with the Java editor since ActionScript 3 is very similar in syntax. To do this, click either &#8220;Window&#8221; from the menu if using Windows or from &#8220;Eclipse&#8221; if using a Macintosh and then click Preferences. This will bring up the Eclipse Preferences dialog window. Expand the &#8220;General&#8221; node in the tree and then expand &#8220;Editors.&#8221; Click on &#8220;File Assocations&#8221; to see the file associations pane. Once there, click the &#8220;Add&#8230;&#8221; button next to the &#8220;File types&#8221; list.</p>
<p><a href="http://seanhsmith.com/wp-content/uploads/2010/03/04.jpg"><img class="alignnone size-medium wp-image-267" title="File Assocations" src="http://www.seanhsmith.com/wp-content/uploads/2010/03/04-280x300.jpg" alt="" width="280" height="300" /></a></p>
<p>Enter &#8220;*.as&#8221; in the &#8220;File type&#8221; field click the OK button. The file type should now be added to the &#8220;File types&#8221; list. Make sure this new item is selected by clicking on it.</p>
<p><a href="http://seanhsmith.com/wp-content/uploads/2010/03/05.jpg"><img class="alignnone size-medium wp-image-268" title="ActionScript File Extension" src="http://www.seanhsmith.com/wp-content/uploads/2010/03/05-300x160.jpg" alt="" width="300" height="160" /></a></p>
<p>Next, click the &#8220;Add&#8230;&#8221; button next to the &#8220;Associated editors&#8221; list, which should be empty. Make sure the &#8220;Internal editors&#8221; option is selected and then select &#8220;Java Editor&#8221; from the list. Click the OK button.</p>
<p><a href="http://seanhsmith.com/wp-content/uploads/2010/03/06.jpg"><img class="alignnone size-medium wp-image-269" title="Java Editor" src="http://www.seanhsmith.com/wp-content/uploads/2010/03/06-243x300.jpg" alt="" width="243" height="300" /></a></p>
<p>The new associated editor should appear in the &#8220;Associated editors&#8221; field. Click the OK button to save and exit the Eclipse Preferences window.</p>
<p><a href="http://seanhsmith.com/wp-content/uploads/2010/03/07.jpg"><img class="alignnone size-medium wp-image-270" title="New Editor Association" src="http://www.seanhsmith.com/wp-content/uploads/2010/03/07-265x300.jpg" alt="" width="265" height="300" /></a></p>
<p>Now we are going to create our MXML file that will define our application layout and appearance. It also serves as the &#8220;entry point&#8221; that the compiler uses when linking everything together. Right-click on the src folder, point to &#8220;New,&#8221; and then click &#8220;File.&#8221; The &#8220;New File&#8221; window should appear. For this tutorial, I will name the file application.mxml but this realistically can be whatever valid filename you want to give it.</p>
<p><a href="http://seanhsmith.com/wp-content/uploads/2010/03/08.jpg"><img class="alignnone size-medium wp-image-271" title="New File" src="http://www.seanhsmith.com/wp-content/uploads/2010/03/08-263x300.jpg" alt="" width="263" height="300" /></a></p>
<p>The application.mxml file should now be in your src folder and the editor should automatically open. Since this is not a Flex tutorial, I will just provide a valid Flex 4 MXML skeleton that we will use to test the compiler. Enter the following into the application.mxml editor window:</p>

<div class="wp_syntax"><div class="code"><pre class="mxml" style="font-family:monospace;"><span style="color: #000000;">&lt;?xml version=<span style="color: #ff0000;">&quot;1.0&quot;</span> encoding=<span style="color: #ff0000;">&quot;utf-8&quot;</span>?<span style="color: #7400FF;">&gt;</span></span>
<span style="color: #000000;"><span style="color: #7400FF;">&lt;s:Application</span> </span>
<span style="color: #000000;">	xmlns:fx=<span style="color: #ff0000;">&quot;http://ns.adobe.com/mxml/2009&quot;</span> </span>
<span style="color: #000000;">	xmlns:s=<span style="color: #ff0000;">&quot;library://ns.adobe.com/flex/spark&quot;</span> </span>
<span style="color: #000000;">	xmlns:mx=<span style="color: #ff0000;">&quot;library://ns.adobe.com/flex/mx&quot;</span><span style="color: #7400FF;">&gt;</span></span>
&nbsp;
<span style="color: #000000;"><span style="color: #7400FF;">&lt;/s:Application</span><span style="color: #7400FF;">&gt;</span></span></pre></div></div>

<p>Now we are going to create our builder for this project. Right-click on your project folder (in this case, &#8220;Test Project&#8221;) and then click on &#8220;Properties&#8221; at the very bottom of the popup menu. This will open the Properties window for your project. Click on &#8220;Builders&#8221; in the list on the left side if it is not already selected. This is the pane where you define your project builders which is essentially the process of pointing to the compiler and feeding it the proper arguments.</p>
<p><a href="http://seanhsmith.com/wp-content/uploads/2010/03/09.jpg"><img class="alignnone size-medium wp-image-272" title="Builders" src="http://www.seanhsmith.com/wp-content/uploads/2010/03/09-300x248.jpg" alt="" width="300" height="248" /></a></p>
<p>Click the &#8220;New&#8230;&#8221; button to the right to create a new build factory. A window will open that should have &#8220;Program&#8221; selected in a list. Just click the OK button when you see this window.</p>
<p><a href="http://seanhsmith.com/wp-content/uploads/2010/03/10.jpg"><img class="alignnone size-medium wp-image-273" title="Just Click OK" src="http://www.seanhsmith.com/wp-content/uploads/2010/03/10-274x300.jpg" alt="" width="274" height="300" /></a></p>
<p>This will launch the &#8220;Edit Configuration&#8221; window. You should already be on the &#8220;Main&#8221; tab but if you&#8217;re not make sure it is selected. At the very top there is a &#8220;Name&#8221; field where you can give the builder a name. Since this is a process you will have to repeat for each project you create, I recommend giving it the same name as your project so you know which builder goes to which project. In this case, I named mine &#8220;Test Project.&#8221;  Click the &#8220;Browse File System&#8230;&#8221; button below and to the right of the &#8220;Location&#8221; field. Navigate to the folder where you extracted the Flex 4 SDK files and then to the bin subfolder. Select the mxmlc.exe file if you&#8217;re on Windows or just the mxmlc file with no extension if you are on Macintosh from this folder. In my case, the path was C:AdobeSDKFlex4.0binmxmlc.exe. Click the &#8220;Browse Workspace&#8230;&#8221; button below and to the right the &#8220;Working Directory&#8221; field. If your project folder is not already selected, select it and click the OK button.  Next, you need to define the arguments that are fed to the mxmlc compiler. Enter the following into the &#8220;Arguments&#8221; field.</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">src/application.mxml -output=bin/application.swf -library-path+=libs/ -target-player=10.0.0</pre></div></div>

<p>Essentially what I am telling the compiler to do is take the application.mxml file from the src folder, compile it using any available libraries from the libs folder and target the Flash 10 platform (required for Flex 4 projects), and save the compiled SWF as application.swf in the bin folder. There are many other options available to use with the compiler, but these are probably the most useful, in my opinion.</p>
<p><strong>UPDATE:</strong> If you are using the Flex 4.5 SDK, Adobe is now requiring Flash 10.2 as the minimum version of Flash player. You will want to change the -target-player=10.0.0 compiler argument to be -target-player=10.2.0</p>
<p>After you&#8217;ve entered these options, your screen should look something like the following.</p>
<p><a href="http://seanhsmith.com/wp-content/uploads/2010/04/11.jpg"><img class="alignnone size-medium wp-image-274" title="New Builder" src="http://www.seanhsmith.com/wp-content/uploads/2010/04/11-300x240.jpg" alt="" width="300" height="240" /></a></p>
<p>Before you click the OK button, there&#8217;s a few other options that might be handy to turn on. Click the &#8220;Build Options&#8221; tab and then look for and place a checkmark in the &#8220;Launch in background&#8221; and &#8220;During auto builds&#8221; options. This will make your project compile every time you save a file. This is useful when you need feedback from the compiler as to whether certain tags or code are valid. If you are compiling a very large SWF, these options are probably not advised.</p>
<p><a href="http://seanhsmith.com/wp-content/uploads/2010/03/12.jpg"><img class="alignnone size-medium wp-image-275" title="New Builder (cont.)" src="http://www.seanhsmith.com/wp-content/uploads/2010/03/12-300x240.jpg" alt="" width="300" height="240" /></a></p>
<p>Click the OK button and your project should now begin to compile. If you did everything right, you should see something like the following in your console output window:</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">Loading configuration file C:AdobeSDKFlex4.0frameworksflex-config.xml
C:UsersSeanworkspaceTest Projectbinapplication.swf (37842 bytes)</pre></div></div>

<p>If you don&#8217;t see any errors in red, then everything compiled successfully and you have a fully functioning Flex development environment in Eclipse! Happy coding!</p>
<p><a href="http://seanhsmith.com/wp-content/uploads/2010/03/13.jpg"><img class="alignnone size-medium wp-image-276" title="It's Alive!" src="http://www.seanhsmith.com/wp-content/uploads/2010/03/13-300x187.jpg" alt="" width="300" height="187" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.seanhsmith.com/2010/03/29/flex-for-free-setting-up-the-flex-4-sdk-with-eclipse-ide/feed/</wfw:commentRss>
		<slash:comments>54</slash:comments>
		</item>
		<item>
		<title>Flash Builder 4, ColdFusion Builder, Flex 4 SDK Released</title>
		<link>http://www.seanhsmith.com/2010/03/23/flash-builder-4-coldfusion-builder-flex-4-sdk-released/</link>
		<comments>http://www.seanhsmith.com/2010/03/23/flash-builder-4-coldfusion-builder-flex-4-sdk-released/#comments</comments>
		<pubDate>Tue, 23 Mar 2010 13:24:33 +0000</pubDate>
		<dc:creator>Sean</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://www.seanhsmith.com/?p=252</guid>
		<description><![CDATA[It appears that Adobe has released the final versions of Flash Builder 4, ColdFusion Builder, and the free Flex 4 SDK. Use the links below to navigate to the respective product pages. A great learning resource to use if you&#8217;re new to Flex is the Adobe  Flex DevNet. I wonder if this is a sign of an  [...]]]></description>
			<content:encoded><![CDATA[<p>It appears that Adobe has released the final versions of Flash Builder 4, ColdFusion Builder, and the free Flex 4 SDK. Use the links below to navigate to the respective product pages. A great learning resource to use if you&#8217;re new to Flex is the <a href="http://www.adobe.com/devnet/flex/" target="_blank">Adobe  Flex DevNet</a>. I wonder if this is a sign of an imminent release of Adobe Flash 10.1?<br />
<a href="http://www.adobe.com/go/try_flashbuilder" target="_blank">Flash Builder 4</a> | <a href="http://www.adobe.com/go/trycoldfusionbuilder" target="_blank">ColdFusion Builder</a> | <a href="http://www.adobe.com/go/flex4_sdk_download" target="_blank">Flex 4 SDK</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.seanhsmith.com/2010/03/23/flash-builder-4-coldfusion-builder-flex-4-sdk-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Home Surveillance on the Cheap: iCam iPhone App</title>
		<link>http://www.seanhsmith.com/2010/03/21/home-surveillance-on-the-cheap-icam-iphone-app/</link>
		<comments>http://www.seanhsmith.com/2010/03/21/home-surveillance-on-the-cheap-icam-iphone-app/#comments</comments>
		<pubDate>Sun, 21 Mar 2010 18:57:36 +0000</pubDate>
		<dc:creator>Sean</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[iCam]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Surveillance]]></category>

		<guid isPermaLink="false">http://www.seanhsmith.com/?p=215</guid>
		<description><![CDATA[As a new homeowner as of this past February 18th, I was trying to decide whether or not I should get a home security system. Many vendors are offering free installation but, of course, their service comes with an attached monthly fee. I recently came across an iPhone app called iCam that provides a  [...]]]></description>
			<content:encoded><![CDATA[<p>As a new homeowner as of this past February 18th, I was trying to decide whether or not I should get a home security system. Many vendors are offering free installation but, of course, their service comes with an attached monthly fee. I recently came across an iPhone app called iCam that provides a decent home surveillance solution for only $5. As long as you have a computer at your home running the free iCamSource app, you can use up to four webcams with it. The really cool feature is the push notifications you can choose to have it send to your phone if it detects any motion, allowing you to immediately view the camera that the motion was detected on. You also have the ability to have it record snapshot images if it detects motion as well. All of this and the iPhone app only costs $5 &#8211; no monthly recurring fees. If you&#8217;d like to learn more, visit the <a href="http://skjm.com/icam/" target="_blank">company&#8217;s website</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.seanhsmith.com/2010/03/21/home-surveillance-on-the-cheap-icam-iphone-app/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

