<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Kyle</title>
    <link>http://virb.com/hayes</link>
    <description><![CDATA[I currently work for the Engineering, Operations & Technology division of The Boeing Company as an Enterprise RIA Developer. I enjoy innovating our world and making it more better, more efficient, more useful, and greener.

Talk to me about music, programming, Cirque du Soleil, Disney, Christianity, computers, Apple, technology, Web 2.0, Amazon Web Services, Flex, ColdFusion, ActionScript, Python, C++, C#, C, Objective-C, iPod Touch, Blue Man Group, Musicals, Theater, Movies, Greek tragedies and myths...

I like a wide variety of stuff, on a broadness scale of 1-10 I am 0-11.]]></description>
    <generator>Virb 2.0 (@hayes)</generator>
    <language>en</language>
    <item>
      <title>Pirates of the Caribbean 3 Pre-Premiere at Disneyland</title>
      <link>http://virb.com/hayes/videos/1734830</link>
      <description><![CDATA[<p>I shot some video at Disneyland the day of the Pirates of the Caribbean 3 World Premiere of all the stuff that was setup and being set up.</p>]]></description>
      <pubDate>Tue, 22 May 2007 22:03:32 -0700</pubDate>
      <guid>http://virb.com/hayes/videos/1734830</guid>
    </item>
    <item>
      <title>Be Careful Buying Gift Cards this Season</title>
      <link>http://virb.com/hayes/posts/text/949463</link>
      <description><![CDATA[
				
				Here's a heads up if you plan on giving gift cards around the holidays. You need to be careful that the cards will be
honored after the holidays.

Stores that are planning to close after Christmas are still selling the cards through the holidays even though the cards will be worthless January 1.
There is no law preventing them from doing this. On the contrary, it is referred to as 'Bankruptcy Planning.' Below is a partial list of stores that you need to be cautious about.

It seems <a href="http://www.amazon.com/dp/B00067L6TQ?&tag=hayesholiday2008-20&camp=212333&creative=380473&linkCode=ur1&adid=1C7J9JEA4F9EE8TA6T4V&">Amazon.com gift cards</a> are probably the safest bet.


<ul>
<li>Circuit City (filed Chapter 11)</li>
<li>Ann Taylor 117 stores nationwide closing</li>
<li>Lane Bryant, Fashion Bug and Catherine's to close 150 stores nationwide</li>
<li>Eddie Bauer to close stores 27 stores and more after January</li>
<li>Cache will close all stores</li>
<li>Talbots closing down specialty stores</li>
<li>J. Jill closing all stores (owned by Talbots)</li
<li>Pacific Sunwear (also owned by Talbots)</li>
<li>GAP closing 85 stores</li>
<li>Footlocker closing 140 stores more to close after January</li>
<li>Wickes Furniture closing down</li>
<li>Levitz closing down remaining stores</li>
<li>Bombay closing remaining stores</li>
<li>Acorn closing down remaining 36 stores (owned by Christopher & Banks / C.J. Banks)</li>
<li>Zales closing down 82 stores and 105 after January</li>
<li>Whitehall closing all stores</li>
<li>Piercing Pagoda closing all stores</li>
<li>Disney closing 98 stores and will close more after January</li>
<li>Home Depot closing 15 stores</li>
<li>Macys to close 9 stores after January</li>
<li>Linens and Things closing all stores</li>
<li>Movie Galley Closing all stores</li>
<li>Pep Boys Closing 33 stores</li>
<li>Sprint/Nextel closing 133 stores</li>
<li>JC Penney closing a number of stores after January</li>
<li>Ethan Allen closing down 12 stores</li>
<li>Wilson Leather closing down all stores</li>
<li>Sharper Image closing down all stores</li>
<li>K B Toys closing 356 stores</li>
<li>Lowe's to close down some stores</li>
<li>Dillard's to close some stores</li>
</ul>
				
				]]></description>
      <pubDate>Tue, 25 Nov 2008 21:40:22 -0800</pubDate>
      <guid>http://virb.com/hayes/posts/text/949463</guid>
    </item>
    <item>
      <title>Amazon.com Announces Early Black Friday Deals</title>
      <link>http://virb.com/hayes/posts/text/949462</link>
      <description><![CDATA[
				
				<a href="http://www.amazon.com/b/?node=384082011&tag=cf0d-20" /><img src="http://g-ecx.images-amazon.com/images/G/01/associates/2008/banners/black-friday_300._V240384502_.gif" style="padding-right: 10px; padding-bottom: 10px; border" id="Player_d8e6d348-5d20-4ee2-b0e7-f87932449fb1" WIDTH="336px" HEIGHT="280px" VALUE="http://ws.amazon.com/widgets/q?ServiceVersion=20070822&MarketPlace=US&ID=V20070822%2FUS%2Fcf0d-20%2F8009%2Fd8e6d348-5d20-4ee2-b0e7-f87932449fb1&Operation=GetDisplayTemplate" NAME="quality" VALUE="high" NAME="bgcolor" VALUE="#FFFFFF" NAME="allowscriptaccess" VALUE="always" src="http://ws.amazon.com/widgets/q?ServiceVersion=20070822&MarketPlace=US&ID=V20070822%2FUS%2Fcf0d-20%2F8009%2Fd8e6d348-5d20-4ee2-b0e7-f87932449fb1&Operation=GetDisplayTemplate" id="Player_d8e6d348-5d20-4ee2-b0e7-f87932449fb1" name="Player_d8e6d348-5d20-4ee2-b0e7-f87932449fb1" type="application/x-shockwave-flash" height="280px" width="336px" />Amazon.com Widgets</A>
				
				]]></description>
      <pubDate>Tue, 25 Nov 2008 21:40:21 -0800</pubDate>
      <guid>http://virb.com/hayes/posts/text/949462</guid>
    </item>
    <item>
      <title>Spry: Empty option in dataset-controlled select</title>
      <link>http://virb.com/hayes/posts/text/930185</link>
      <description><![CDATA[
				
				With <a href="http://labs.adobe.com/technologies/spry/">Adobe Spry</a>, you can dynamically populate a select box (aka. dropdown) with a dataset very easily:


>
var ds = new Spry.Data.JSONDataSet("/some/jsonobject.js");
>

<div>
	<select>
		<option value="{ds::id}">{ds::name}</option>
	</select>
</div>


If you are familiar with Spry, than the above makes complete sense. I came across a problem this evening, however, when using very similar code as a filter mechanism for a separate dataset. The problem with the above code is that once it is populated, the select box will by default choose the first value as selected. If you are filtering data, you want the initial/reset state to be blank and not have any values.

Since I am using spry:repeatchildren to repeat my option tags, I cannot simply drop in a blank option tag above the current one because than it would also repeat for all the other rows in the dataset.

Thanks to the <a href="http://www.coldfusionjedi.com/index.cfm/2006/11/1/Spry-builtin-variables-for-Datasets">built in variables</a> for each dataset, we can get special information during the loop of the dataset rows. This is valuable information since we technically need to drop the blank option just above the first row of the dataset.

We modify the above code to be the following instead:


>
var ds = new Spry.Data.JSONDataSet("/some/jsonobject.js");
>

<div>
	<select>
<option value="value"></option>		
<option value="{ds::id}">{ds::name}</option>
	</select>
</div>


The spry:if simply checks if the loop is on row number 0 and if it is, it will drop in that option tag. Otherwise, it gets left out on all of the other rows.
				
				]]></description>
      <pubDate>Fri, 14 Nov 2008 17:31:17 -0800</pubDate>
      <guid>http://virb.com/hayes/posts/text/930185</guid>
    </item>
    <item>
      <title>100 Awesome AIR Apps for Productivity</title>
      <link>http://virb.com/hayes/posts/text/914374</link>
      <description><![CDATA[
				
				Adobe AIR not only makes developers more productive by allowing them to write a single code-base for multiple distribution platforms, but it also produces excellent productivity apps for the average computer user. Here is a lit of <a href="http://www.careeroverview.com/blog/2008/hack-your-work-day-100-awesome-adobe-air-apps-for-productivity/">100 Awesome AIR apps for Productivity</a>.
				
				]]></description>
      <pubDate>Thu, 06 Nov 2008 06:50:00 -0800</pubDate>
      <guid>http://virb.com/hayes/posts/text/914374</guid>
    </item>
    <item>
      <title>Amazon Ends Frustrating Packaging Woes</title>
      <link>http://virb.com/hayes/posts/text/909176</link>
      <description><![CDATA[
				
				<p>Everyone is familiar with the clear stiff plastic clamshell packaging that beautifully wraps that new computer mouse, kitchen knife, toy car.&nbsp; Parents know all too well what awaits them in order to free their child's toy from its casing. They are confronted with stiff plastic-coated wire ties strongly securing the toy set to the cardboard packaging, followed by a suggestion to use a coin to unwind a plastic lock.<br /></p><p>
<a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2Fgp%2Fhomepage.html%3Fie%3DUTF8%26%252AVersion%252A%3D1%26%252Aentries%252A%3D0&amp;tag=cf0d-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=390957">Amazon.com</a><img src="https://www.assoc-amazon.com/e/ir?t=cf0d-20&amp;l=ur2&amp;o=1" alt="alt" style="border: medium none  ! important; margin: 0px ! important;" border="0" height="1" width="1" />, the leader in online retailing, has taken the initiative to innovate the painful process of freeing our beloved purchases from the strong hold of form-over-function packaging. On the <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2Fgp%2Fhomepage.html%3Fie%3DUTF8%26%252AVersion%252A%3D1%26%252Aentries%252A%3D0&amp;tag=cf0d-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=390957">front page</a><img src="https://www.assoc-amazon.com/e/ir?t=cf0d-20&amp;l=ur2&amp;o=1" alt="alt" style="border: medium none  ! important; margin: 0px ! important;" border="0" height="1" width="1" /> a letter from <a href="http://en.wikipedia.org/wiki/Jeff_Bezos" target="_blank" title="Read more about Jeff Bezos on Wikipedia">Jeff Bezos</a>, the company's CEO, outlines the current frustrations of modern product packaging and how Amazon.com is working with many companies such as Fisher-Price, Mattel, and Microsoft, to revolutionize the packaging industry in creating easier to open, recyclable boxes to make customers happy while respecting the environment.<br /></p><p>Respect is due to companies who listen to their customers and work diligently to change their processes to better the purchasing experience for the buyer. In addition, if they can better the environment while they are at it, all the better.&nbsp; </p><p>Initially, Amazon.com will be offering it's trademarked Frustration-Free Packaging with <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2Fgp%2Ffeature.html%3Fie%3DUTF8%26ref%255F%3Damb%255Flink%255F7803552%255F3%26docId%3D1000276271&amp;tag=cf0d-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=390957">19 of their best-selling items</a> and eventually would like to convert all their products to the new packaging style. </p><p>See a <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2Fb%3Fie%3DUTF8%26node%3D1234279011%26ref%255F%3Damb%255Flink%255F7803552%255F5&amp;tag=cf0d-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=390957">funny video comparing the unpacking processes</a><img src="https://www.assoc-amazon.com/e/ir?t=cf0d-20&amp;l=ur2&amp;o=1" alt="alt" style="border: medium none  ! important; margin: 0px ! important;" border="0" height="1" width="1" /> on Amazon.<br /></p>
				
				]]></description>
      <pubDate>Mon, 03 Nov 2008 19:54:36 -0800</pubDate>
      <guid>http://virb.com/hayes/posts/text/909176</guid>
    </item>
    <item>
      <title>My Emoticon Pumpkin :)</title>
      <link>http://virb.com/hayes/posts/text/908088</link>
      <description><![CDATA[
				
				Happy Halloween everybody. In the spirit of the season and working in the tech industry, I felt it more than appropriate to show my love with an emoticon pumpkin:
<img src="http://kylehayes.smugmug.com/photos/406505008_whLDa-S.jpg" />

Enjoy!
				
				]]></description>
      <pubDate>Mon, 03 Nov 2008 01:43:44 -0800</pubDate>
      <guid>http://virb.com/hayes/posts/text/908088</guid>
    </item>
    <item>
      <title>My Emoticon Pumpkin :)</title>
      <link>http://virb.com/hayes/posts/text/905146</link>
      <description><![CDATA[
				
				Happy Halloween everybody. In the spirit of the season and working in the tech industry, I felt it more than appropriate to show my love with an emoticon pumpkin:
<img src="http://kylehayes.smugmug.com/photos/406505008_whLDa-S.jpg" />

Enjoy!
				
				]]></description>
      <pubDate>Sat, 01 Nov 2008 05:18:27 -0700</pubDate>
      <guid>http://virb.com/hayes/posts/text/905146</guid>
    </item>
    <item>
      <title>Incandescent Replacements: GE vs. Sylvania</title>
      <link>http://virb.com/hayes/posts/text/824324</link>
      <description><![CDATA[
				
				It is a common fact that fluorescent light bulbs conserve a considerable amount of energy in comparison to incandescent light bulbs. Until a few years ago, these types of bulbs were limited to the long tubes you traditionally see in commercial and industrial applications. Then the CFL was invented allowing these highly energy efficient light sources be used in lieu of incandescents in conventional situations.

Unfortunately, the popularity of the CFL didn't really take off as quickly as the energy providers had hoped. Fluorescent lighting tends to be a harsher light and may be fine for those large warehouses and office buildings. When it comes to a home, however, these harsh lighting conditions are undesirable to use in the home, where warmer and softer lighting conditions are more welcoming. In addition, when CFLs first came out, they were quite a bit more expensive then traditional light bulbs.

All of this has changed over the years as the technology of the CFL has improved dramatically. I personally have been on a constant search for that perfect incandescent replacement to lower my energy usage and also gain longer life of my light bulbs. Still yet, every time I drop by the store to find a new CFL that claims to have the same "Soft White" color temperature that incandescents are known for, I am disappointed by it's strong yellow and green tint that it emits into the rooms of my house.

About a week ago, I noticed that the GE brand was selling a new kind of CFL that claimed to be a "Daylight" color temperature (6500K versus 3000K). I rushed home and screwed it into my torche lamp to only be stunned by the ultra-bright blue "daylight" glow of the lamp. There is no doubt this was the daylight temperature they were shooting for, but what I don't realize (and likely others) that is actually not what you want in your room at night or when you need light. From outside, it appeared as though I was performing surgery or conducting science experiments from the amount of output it produced.

My search continues to find the best CFL out there that provides me with the light that I am looking for. With that, I have decided to inform my readers with the information and research I come up with. Please note, however, that I am not conducting any of these tests with the utmost accuracy and that my observations are simply that.

I read in Consumer Reports that Wal-Mart has the largest selection of CFLs. I purchased two brands today: GE, and Sylvania. These are the largest brand name choices in the CFL category. I will probably test the off-brands at a later date and post my findings.

<img src="http://dl-client.getdropbox.com/u/102671/Blog/fluorescent/GE%20Energy%20Smart%20Packaging.jpg" />
<img src="http://dl-client.getdropbox.com/u/102671/Blog/fluorescent/Sylvania%20Micro-Mini%20Packaging.jpg" />

I was not able to find two packs that contained the same number of bulbs between the two brands. The GE I purchased came with 3 bulbs, and the Sylvania came with 2.

I provided a chart below that contains all the relevant details of these two bulbs. My brief observations are as follows. The GE is cheaper than the Sylvania (which is probably due to the 3-pack versus the 2-pack), however, sometimes you get what you pay for. The first thing you may notice when comparing the two packages, is that the Sylvania lasts for 11 years, where the GE only lasts for 6 years. If you read the fine print, you will see that is not an even comparison. GE is making that claim of using the bulbs for 4 hours a day, whereas Sylvania is making that claim when using the bulb for only 3 hours a day. When you make the adjustment for the GE bulb, it turns out to be just shy of 11 years as well. Another way to compare is the number of hours that each last, which is printed on the box as well.

<img src="http://dl-client.getdropbox.com/u/102671/Blog/fluorescent/Sylvania%20Micro%20Mini.jpg" />

The Sylvania bulb was the one that I tested first. After the initial warm up time (which only occurs when the bulb is cold) I immediately was thrilled by the kind of light it was producing. It had a very warm yet bright white light, just like an incandescent.

<img src="http://dl-client.getdropbox.com/u/102671/Blog/fluorescent/GE%20Energy%20Smart.jpg" />

As for the GE, I was not as impressed. It looked the same as all the other CFLs that I have purchased in the past. Not nearly as bright, yellowish green tint, and took a long time (over a minute) to warm-up. Another nice feature of the Sylvania is it's ability to instantly turn on, without having to wait for a flicker start-up that fluorescents are accustomed to.

<img src="http://dl-client.getdropbox.com/u/102671/Blog/fluorescent/Bulbs-Side-by-Side.jpg" />

Finally, I also like the Sylvania bulb's design better than the GE. It was a little bit smaller, the spirals were more compact, and  a nice base.

Here are the specs:

<table id="fluorescent_compare">
  <tr>
     <th>&nbsp;</th>
     <th>GE</th>
     <th>Sylvania</th>
  </tr>
<tr>
<th class="leftHeader">Product Name</th>
<td>Energy Smart General Purpose</td>
<td>Micro-mini</td>
</tr>
<tr>
<th class="leftHeader">Color Temperature</th>
<td>Soft White (3000K)</td>
<td>Soft White (3000K)</td>
</tr>
<tr>
<th class="leftHeader">Lumens</th>
<td>1600</td>
<td>1640</td>
</tr>
<tr>
<th class="leftHeader">Replacement Wattage</th>
<td>100</td>
<td>100</td>
</tr>
<tr>
<th class="leftHeader">Actual Wattage</th>
<td>23</td>
<td>23</td>
</tr>
<tr>
<th class="leftHeader">Life (hours)</th>
<td>10000</td>
<td>12000</td>
</tr>
<tr>
<th class="leftHeader">Pack Count</th>
<td>3</td>
<td>2</td>
</tr>
<tr>
<th class="leftHeader">Pack Price (Walmart)</th>
<td>$8.24</td>
<td>$8.44</td>
</tr>
<tr>
<th class="leftHeader">Price Per Bulb</th>
<td>$2.75</td>
<td>$4.22</td>
</tr>
</table>
				
				]]></description>
      <pubDate>Sun, 14 Sep 2008 23:58:05 -0700</pubDate>
      <guid>http://virb.com/hayes/posts/text/824324</guid>
    </item>
    <item>
      <title>Google Chrome Browser: A High-Level Overview</title>
      <link>http://virb.com/hayes/posts/text/804569</link>
      <description><![CDATA[
				
				Google announced today its latest project, Google Chrome, a competitor in the browser market. Here are some of the high-level points to know about Chrome:
<ul>
	<li>Uses multi-threaded processes to isolate page executions, allowing for better performance and quicker, more reliable memory freeing</li>
	<li>Built off the WebKit code base (used by Safari, Adobe AIR, Nokia, iPhone, Android mobile platform [Google's mobile OS) due to its impressive speed</li>
	<li>Faster and rebuilt JavaScript virtual machine called V8 (Virtual machines provide safety and platform independence)
		<ul>
			<li>In V8, as execution goes on, objects that end up with the same properties will share the same hidden class</li>
			<li>In Chrome, JavaScript is not interpreted, it is compiled to machine code for faster execution in the browser</li>
			<li>Precise garbage collection</li>
			<li>V8 is independent of the browser so other projects can use the engine</li>
		</ul>
	</li>
	<li>Better URL bar interaction design
		<ul>
			<li>URL box (coined Omnibox) is a apart of each tab (rather than the browser window)
			<li>Omnibox not only handles urls, but also suggestions for searches, top visited pages, and popular pages you haven't visited
			<li>Full text search for your historical pages
			<li>Smarter URL completion
			<li>Searching sites like Amazon or Wikipedia, captures their search boxes on your local system, allowing you to search those sites later on straight from your URL bar
		</ul>
	</li>
	<li>New "home page" when opening a new tab displaying your nine most visited pages and the sites you search on</li>
	<li>Incognito window for private browsing</li>
	<li>Pop-ups are scoped to the tab they came from and confined there. If you do want a popup to occur, just drag out a graphical area to open it's own window</li>
	<li>Webapps can launch their own browser window with a minified chrome without the URL box and the browser toolbar</li>
	<li>Sandboxing to keep page processes from being able to write files to your hard drive or read files from sensitive areas on your computer
		<ul>
			<li>User must initiate actions requested to run by the browser</li>
			<li>With one exception, plugins, can run at higher levels than the browser itself.</li>
		</ul>
	</li>
	<li>Plugins are now run in their own process
		<ul>
			<li>The rest of the page can still be sandboxed</li>
		</ul>
	</li>
	<li>Chrome continually downloads lists of harmful sites, one for phishing, one for malware, presenting the user a warning if they stumble upon either
		<ul>
			<li>If a user visits a site with malware, Google notifies the owner of a website to let them know so they can clean up their site</li>
		</ul>
	</li>
	<li>Google Gears is built in</li>
	<li>Completely open source</li>
</ul>
				
				]]></description>
      <pubDate>Wed, 03 Sep 2008 05:08:08 -0700</pubDate>
      <guid>http://virb.com/hayes/posts/text/804569</guid>
    </item>
    <item>
      <title>Reliably Sync Google Calendar with iCal on Your Mac</title>
      <link>http://virb.com/hayes/posts/text/794600</link>
      <description><![CDATA[
				
				Ever since I have converted over to using Gmail's online interface, I have also been using Google Calendar ever so frequently. The workflow Google invented for these products is very efficient and I enjoy using both of them.

While Google Calendar is great in that I can view and edit it anywhere, it's not so great, when I am not somewhere there is an Internet connection for my computer, or for my iPod Touch. One way I attempted a while back in keeping the these calendars in sync, was to use the private iCalendar address that Google provides for my calendar. The issue I quickly found was that is a read only link of course, I needed to be able to add events via my iPod Touch or iCal.

I stumbled upon a little product known as Spanning Sync, which at the time was in private beta. After a couple of weeks of signing up to be notified when they were opening more beta spots, I garnered an invitation to the beta. I have been a loyal user ever since.

Spanning Sync does an incredible job at syncing your Google Calendar with any of your Mac Calendars (iCal, Entourage, etc.). It uses a centralized syncing engine that is always being improved on that is extremely accurate and very efficient. I have my preferences set to sync every 10 minutes. When I add an event on Google Calendar, I can be assured that when I go home, that same even will be sitting in the iCal database waiting for me.

You don't have to keep iCal open all the time either for all this to work. iCal actually reads it's data from a centralized user account database that is stored on your Mac. Spanning Sync, syncs with that very database even when iCal is closed. In addition, they give you many options for which you can choose the calendars you would like to sync from iCal to Google Calendar.

<a href="http://spanningsync.com/?r=6T7TYY">I highly recommend you give them a try by signing up for a 15-day trial</a>. And, if you click through my site, you'll save $5 on the annual subscription (which is normally $25, which I find to be more than reasonable if it means having my life synced up so well).

One final note, they are a company built off of great morals. They really respect their user's wishes and are very attentive to the customer support they offer.

Leave comments below if you have tried them before, and what your experiences were or are.

<a href="http://spanningsync.com/?r=6T7TYY">Click here to save $5 on Spanning Sync!</a>
				
				]]></description>
      <pubDate>Thu, 28 Aug 2008 02:48:47 -0700</pubDate>
      <guid>http://virb.com/hayes/posts/text/794600</guid>
    </item>
    <item>
      <title>Good Enough to Touch: Texas Hold'em App</title>
      <link>http://virb.com/hayes/posts/text/736671</link>
      <description><![CDATA[
				
				<div class="thumbnail" style="float:left; padding-right:10px; padding-bottom:10px;"><a href="http://skitch.com/kylehayes/t192/organizer"><img src="http://img.skitch.com/20080723-guhtjbbx33bdh5ah9xu2cexcjg.preview.jpg" alt="Organizer" /></a><br /><span style="font-family: Lucida Grande, Trebuchet, sans-serif, Helvetica, Arial; font-size: 10px; color: #808080">Uploaded with <a href="http://plasq.com/">plasq</a>'s <a href="http://skitch.com">Skitch</a>!</span></div>In a response to Brian Rinaldi's post <a href="http://www.remotesynthesis.com/post.cfm/good-enough-to-touch-apps-for-the-ipod-touch" alt="Go to blog article 'Good Enough to Touch? Apps for the iPod Touch'"><em>Good Enough to Touch? Apps for the iPod Touch</em></a>, I've decided to compose my first guest post of a review of the new Texas Hold'em game offered on the recently released <a href="http://www.apple.com/iphone/appstore/">App Store</a> for iPhone and iPod Touch owners.

I'm a huge fan of the classic poker game, Texas Hold'em or Hold'em for short, and have been for a few years now. I find it more exciting than traditional 5-card draw/stud--not to mention better odds of winning. I'm always on the lookout for a good electronic rendition of the game. Browsing the App Store, I found one that received extremely good reviews and for a price of $4.99, I couldn't resist.

After playing for a few minutes, I was addicted to the beautiful graphics and in-game integrated video of live action opponents--each one dressed atypically as a poker aficionado. The game incorporates superb touch interaction while coupling with the unwritten style of playing Hold'em (e.g., double-tapping to Check). When betting, a cleverly placed spinner graphic allows you to easily, though slightly inaccurately, change your bet higher or lower. 

Hold'em intelligently takes advantage of iPhone/iPod's smart rotation technology to switch screen modes. Doing so changes from a vertical upright view of the players to a bird's eye view of the table and each player's profile.

While the game offers the opportunity to play in various different environments (e.g., Garage, Paris, Cruise ship, Las Vegas), they are not all accessible upon your first play. The game is centered around the tournament style where you must win a game starting at the Garage table to accumulate enough money to fund your buy-in to a table in a more upscale environment. As you accumulate enough money, the chances of winning a tournament becomes increasingly difficult as requirements of winning multiple tables comes into play.

The AI is equally impressive and more advanced for a standard off-the-shelf electronic Hold'em in that the <em>characters</em> with whom you play each have their own style of playing the game in how they bet and bluff.

Another perk that this game offers is the ability to play in a multiplayer environment with other iPhone/iPod Touch owners within the same WiFi network. While the odds are that you will be able to find another user who happens to have purchased the game and who happens to be playing it on your WiFi network are slim-to-none, it's a great idea to encourage your friends to purchase the game and participate in this mode.

Overall, I highly recommend this game for both iPhone and iPod Touch users as it incorporates all the great features that you have come to love with these excellent touch-enabled devices. Mutiplayer via WiFi is optional which is great for iPod Touch owners. If you have your headphones handy, plug them in for enjoyable music serenading a friendly game of Hold'Em.

<div class="thumbnail"><a href="http://skitch.com/kylehayes/tuyb/texas-holdem-table"><img src="http://img.skitch.com/20080723-nf47ty29gdch3pabnxrdrfxr2d.preview.jpg" alt="Texas Hold'em - Table" /></a><br /><span style="font-family: Lucida Grande, Trebuchet, sans-serif, Helvetica, Arial; font-size: 10px; color: #808080">Uploaded with <a href="http://plasq.com/">plasq</a>'s <a href="http://skitch.com">Skitch</a>!</span></div>

<div class="thumbnail"><a href="http://skitch.com/kylehayes/tuyj/texas-holdem-hand-strength"><img src="http://img.skitch.com/20080723-m66duukb6ijsjaqc96b9thpf7m.preview.jpg" alt="Texas Hold'em - Hand Strength" /></a><br /><span style="font-family: Lucida Grande, Trebuchet, sans-serif, Helvetica, Arial; font-size: 10px; color: #808080">Uploaded with <a href="http://plasq.com/">plasq</a>'s <a href="http://skitch.com">Skitch</a>!</span></div>

<div class="thumbnail"><a href="http://skitch.com/kylehayes/tuyt/texas-holdem-a-player"><img src="http://img.skitch.com/20080723-py1a95ti9ii4t4p91nxk8hyhb7.preview.jpg" alt="Texas Hold'em - A player" /></a><br /><span style="font-family: Lucida Grande, Trebuchet, sans-serif, Helvetica, Arial; font-size: 10px; color: #808080">Uploaded with <a href="http://plasq.com/">plasq</a>'s <a href="http://skitch.com">Skitch</a>!</span></div>
				
				]]></description>
      <pubDate>Fri, 25 Jul 2008 00:41:09 -0700</pubDate>
      <guid>http://virb.com/hayes/posts/text/736671</guid>
    </item>
    <item>
      <title>KyleHayes.me Registered!</title>
      <link>http://virb.com/hayes/posts/text/726864</link>
      <description><![CDATA[
				
				The re-launched non-country specific .me TLC has been released as of today! I registered mine, kylehayes.me, and have it pointing to this site.

Get yours as they are going by fast!
				
				]]></description>
      <pubDate>Sat, 19 Jul 2008 02:34:12 -0700</pubDate>
      <guid>http://virb.com/hayes/posts/text/726864</guid>
    </item>
    <item>
      <title>Family.com Community Launched</title>
      <link>http://virb.com/hayes/posts/text/721513</link>
      <description><![CDATA[
				
				It's been a long time coming (and a long time since I've blogged); the newest addition to the Family.com site that I , and many of co-programmers, work on has officially been released. Months and months of research, development, and testing should hope to prove fruitful for the continual success of Family.com. Introducing: <a href="http://family.go.com/" alt="Go to the new Family.com Community website">Family.com Community</a>.

This new feature is an attempt to bring in the great social networking benefits that the Internet offers to the moms and families that visit this site. It's a place where they can start groups and topics on anything related to family and children. They will connect with other folks who are in the same boat as they are to comfort them that they are not alone.

The site incorporates the latest technologies such as: Java 6, Spring, Hibernate, DWR, AJAX, DHTML, and many other "Web 2.0" features.

Go to <a href="http://family.go.com">Family.com</a> and click on "Community" to create your own avatar and family. Then invite other friends and family to join as well!
				
				]]></description>
      <pubDate>Wed, 16 Jul 2008 04:47:43 -0700</pubDate>
      <guid>http://virb.com/hayes/posts/text/721513</guid>
    </item>
    <item>
      <title>JavaScript Tip: Trim Strings with YUI</title>
      <link>http://virb.com/hayes/posts/text/673286</link>
      <description><![CDATA[
				
				Any programmer worth his salt knows that when you perform even the most minimal validation on a set of input textboxes for a form, that you need to wrap some kind of trim function around the string. So many times, I see developers write the following as a validation rule:


function validate(this) {
   if(this=="")
      alert('Please provide a value for "this"');
}


Clearly, all the user would have to do is provide a value with either a space or line break to make the value valid. The whole point of checking the value to ensure it is not empty is to ensure that the user did not provide only non-characters as well!!! The way to accomplish this type of validation would be simply to use the common programming function known as trim. The basics is that the function will shave off any spaces at the beginning and end of a given string to ensure the string is not padded. In the case of  value that has only a space, this would make the string appear as completely empty.

Well for those attempting to accomplish the above in JavaScript will be out of luck unless they write the function themselves. Now, simply searching for "JavaScript trim" provide a plethora of results that will work just fine. However, being a proponent of YUI, I prefer to use the built-in tools and functions it offers if available. Sure enough, simply searching for YUI Trim in Google yielded that the function does indeed exist and, of course, is quite easy to use:


function validate(this) {
  if(YAHOO.lang.trim(this)=="")
    alert('Please provide a value for "this");
}


				
				]]></description>
      <pubDate>Wed, 18 Jun 2008 13:25:21 -0700</pubDate>
      <guid>http://virb.com/hayes/posts/text/673286</guid>
    </item>
    <item>
      <title>Unavailable Next Two Weeks</title>
      <link>http://virb.com/hayes/posts/text/638881</link>
      <description><![CDATA[
				
				My wife and I are finally at the end of escrow on our home in Chino Hills, California. We should be closing any day now. We've been extremely busy packing, signing, and worrying about getting stuff done. As we actually make the move and get settled into our new place, I will not be able to be online much, nor be posting anything for a little while here. Thank you to all my faithful readers who have stuck with me this long, I promise some decent content upon my return.

Thanks.
				
				]]></description>
      <pubDate>Wed, 28 May 2008 10:38:25 -0700</pubDate>
      <guid>http://virb.com/hayes/posts/text/638881</guid>
    </item>
    <item>
      <title>Netflix Offers AppleTV Competitor</title>
      <link>http://virb.com/hayes/posts/text/626307</link>
      <description><![CDATA[
				
				Today <a href="http://www.netflix.com/">Netflix, Inc</a>, the nation's most popular online DVD rental service, announced the first Netflix ready device in a series of more to come. <a href="http://www.netflix.com/NetflixReadyDevices?tb=how&lnkctr=nfrdhow1">The Netflix Player by Roku</a>, as they're calling it, is availabel immediately and will provide over 10,000 movies to Netflix subscribers instantly to their TVs.

This is clearly a product that is aimed at the AppleTV which allows users to rent and download movies from its popular iTunes Store. The immediate clear difference between the two products is the large number of offerings (10,000 with Netflix, and less than 1000 movies from iTunes) and the cost of the two devices. Roku is offering their device for $99 whereas the AppleTV starts at $229. Naturally, I would be the first to agree with anyone that says you are getting a lot more from the AppleTV than you would be from the Roku device, such as home networking capabilities, network music and photo sharing, as well as the Apple name, support, and design. However, I'm thrilled to see this product as it is really the first of its kind to offer a low-cost option for online streams of movies and TV without the need for any kind of individual physical medium such as DVDs or Blu-Ray discs.

Another notable difference is that the Roku device claims the content is "near" DVD-quality, compared to that of Apple's soon-to-be-released HD versions of their movies.

I've been telling folks and friends that I think we have seen the end of physical format wars and that the future is online downloadable content. For you will no longer have to rebuild your entire collection with the latest high-quality tape/disc. This announcement from Netlfix was the next step we needed to push our home entertainment choices into the next century more quickly.
				
				]]></description>
      <pubDate>Tue, 20 May 2008 14:40:10 -0700</pubDate>
      <guid>http://virb.com/hayes/posts/text/626307</guid>
    </item>
    <item>
      <title>Review: Designing Web Navigation</title>
      <link>http://virb.com/hayes/posts/text/619284</link>
      <description><![CDATA[
				
				In today's day and age where the Internet is a part of our everyday life, there has never been a time more appropriate now then to have really good navigation on your or your client's website. As sites grow more advanced and complex, it is vital to the success of your website that users are able to find what they need in a timely fashion without jumping through hoops to get there.

<a href="http://www.amazon.com/gp/product/0596528108?ie=UTF8&tag=cf0d-20&linkCode=as2&camp=1789&creative=9325&creativeASIN=0596528108">Designing Web Navigation: Optimizing the User Experience</a><img src="http://www.assoc-amazon.com/e/ir?t=cf0d-20&l=as2&o=1&a=0596528108" width="1" height="1" border="0" alt="alt" style="border:none !important; margin:0px !important;" /> helps you lay the ground work to achieve a great user interaction experience. This full-color O'Reilly book clearly explains the full process of designing web navigation in three parts: Foundations of Web Navigation, A Framework for Navigation Design, and Navigation in Special Contexts.

In Foundations, the author writes an adequate analysis of various types of navigation systems, such as the search model, browse model, or the liquid information model to name only a few. He describes why poor navigation design will turn away users and may actually decrease the credibility of your website. Furthermore he touches on topics such as banner blindness where your users may not truly notice intentional site navigation, simply because back in their minds it looks like a vertical advertisement banner.

In Framework, Kalbach evaluates different forms of navigation for different types of sites. He talks about the need to engage your users to help determine what style will work best for your target audience. Moreover, he discusses types of technologies that may be implemented such as back-end technologies and front-end technologies like CSS and JavaScript.

James Kalbach does an excellent job describing every facet of this complex and sometimes daunting process in a very detailed yet easy to comprehend fashion. He backs up all the research he has done with references as well as providing great additional reading and other resources. The full-color diagrams and case studies of existing navigations on real-world websites prove invaluable to the reader. One small complaint I have is that for a book on designing navigation, the page numbers are quite small and difficult to glance at when you are flipping through the book. Aside from this small glitch, as it were, this book is a must have in every web developer or designer's library. Even if you consider yourself to be an expert at web page flow, you cannot go without learning a rule or two, and perhaps some great what not to dos in this book.
				
				]]></description>
      <pubDate>Thu, 15 May 2008 21:04:07 -0700</pubDate>
      <guid>http://virb.com/hayes/posts/text/619284</guid>
    </item>
    <item>
      <title>YUI Makes Animating the DOM Easy</title>
      <link>http://virb.com/hayes/posts/text/617157</link>
      <description><![CDATA[
				
				Despite being an Adobe fanboy, I never cared much for how the Spry framework handles things like animations. Seemed complex at the time for basic operations. At work, they have standardized on using the YUI framework. This has been great for me because I have always wanted to dive deeper into it and learn about its ins and outs. With that, I needed to do some basic fade animations for a User Interface I am working on.

I looked up the <a href="http://developer.yahoo.com/yui/animation/" alt="YUI Animation Documentation">docs for the the animation package</a>. After reading for a few minutes, I was blown away at how the YUI developers were able to execute such a powerful, customizable feature in a very simple way. First, you simply create an attributes object that contains the property you want to change (in our case it will be the opacity) and what you want to change it to:


var attributes = {
   opacity: {to: 0}
}


Notice that a <em>from</em> attribute is not present. This is only because if <em>from</em> is not provided, YUI will perform the animation based on the current value of the attribute you are modifying.

Once you have your attributes object defined, animating your object is simple:


var myAnimObj = new YAHOO.util.Anim("myDiv", attributes);
    myAnimObj.animate();


We instantiated a new Anim object by passing in a string of the id of the element we want to animate (note: a dom element object can also be passed), and the attributes object. Then we simply call the animate() method to play the animation.

Extremely simple and straightforward. On top of this, YUI, having the incredible event engine that it has, allows you to subscribe to events for <em>onStart</em>, <em>onTween (which occurs on every frame)</em>, and <em>onComplete</em> providing limitless animation effects and chaining.

Be sure that when you try the examples above, that you have included the following files in your document head:


 src="http://yui.yahooapis.com/2.5.1/build/yahoo-dom-event/yahoo-dom-event.js" type="text/javascript">>


 src="http://yui.yahooapis.com/2.5.1/build/animation/animation-min.js" type="text/javascript">>


Finally, you must also create an element that you actually want to apply the animation with an id of "myDiv" for the above examples to work.
				
				]]></description>
      <pubDate>Wed, 14 May 2008 18:09:13 -0700</pubDate>
      <guid>http://virb.com/hayes/posts/text/617157</guid>
    </item>
    <item>
      <title>Mach-II 1.6 Beta Slated for Early June</title>
      <link>http://virb.com/hayes/posts/text/613376</link>
      <description><![CDATA[
				
				<a href="http://www.mach-ii.com/index.cfm/go/blog:showEntry/entryId/CF761B73%2DEA3A%2D032A%2DBF9655C0BA71975B" alt="Mach-II 1.6 Beta Release coming soon">Peter announced today on the Mach-II blog</a> to expect the 1.6 beta release in early June. This release is bundled with a few powerful and long-awaited features. Some of these include but are not limited to: logging, caching, as well as the new ColdSpring property.

Don't forget, if you are really anxious, you can always download the BER (Bleeding Edge Release) from our SVN repository as well as our nightly builds:
<a href="http://www.mach-ii.com/index.cfm/go/code/" alt="Download our Nightly Builds">http://www.mach-ii.com/index.cfm/go/code/</a>
				
				]]></description>
      <pubDate>Mon, 12 May 2008 18:46:42 -0700</pubDate>
      <guid>http://virb.com/hayes/posts/text/613376</guid>
    </item>
  </channel>
</rss>
