<?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>PixelMEDIA &#187; Application development</title>
	<atom:link href="http://www.pixelmedia.com/blog/tag/application-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.pixelmedia.com/blog</link>
	<description>The official staff chatter blox</description>
	<lastBuildDate>Thu, 22 Dec 2011 15:55:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>&#8220;Bzzy&#8221; Takes Aim At Distracted Driving.</title>
		<link>http://www.pixelmedia.com/blog/bzzy-mobile-application/</link>
		<comments>http://www.pixelmedia.com/blog/bzzy-mobile-application/#comments</comments>
		<pubDate>Mon, 11 Apr 2011 15:23:57 +0000</pubDate>
		<pxlAuthorId>1</pxlAuthorId>
		<dc:creator>PixelMEDIA</dc:creator>
				<category><![CDATA[Application development]]></category>
		<category><![CDATA[Bzzy]]></category>
		<category><![CDATA[Mobile design]]></category>
		<category><![CDATA[News and events]]></category>
		<category><![CDATA[Our perspectives]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[website]]></category>

		<guid isPermaLink="false">http://www.pixelmedia.com/blog/?p=1845</guid>
		<description><![CDATA[Distracted driving has been called a “deadly epidemic” by U.S. Transportation Secretary Ray LaHood. According to the Department of Transportation, 5,500 people in the United States were killed and another half a million were injured in accidents related to distracted &#8230; <a href="http://www.pixelmedia.com/blog/bzzy-mobile-application/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Distracted driving has been called a “deadly epidemic” by U.S. Transportation Secretary Ray LaHood.</p>
<p>According to the Department of Transportation, 5,500 people in the United States were killed and another half a million were injured in accidents related to distracted driving in 2009.</p>
<p>“It only takes a moment of distraction to cause a tragedy,” said Jim Guest, president of Consumers Union, the nonprofit publisher of Consumer Reports. “No text or call is worth a life.”</p>
<p>Now a Portsmouth, N.H.-based company has launched a mobile phone application that will let others know when someone is unavailable to text.</p>
<div id="attachment_1847" class="wp-caption alignleft" style="width: 310px"><a href="http://www.bzzyapp.com/"><img class="size-medium wp-image-1847 " title="Bzzy by PixelMEDIA" src="http://www.pixelmedia.com/blog/wp-content/uploads/2011/04/PixelMEDIABzzy-300x227.jpg" alt="“Bzzy” is a free download in April during National Distracted Driving Awareness Month." width="300" height="227" /></a><p class="wp-caption-text">Download at www.bzzyapp.com</p></div>
<p>“Bzzy” is being offered as a <strong><a title="Stay focused.  Get Bzzy now for Free in April!" href="http://www.bzzyapp.com">free download in April</a></strong> during National Distracted Driving Awareness Month. Bzzy automatically responds to texts using either a pre-set or customized message.</p>
<p>Activate the application and incoming texters will be sent a response: “I am driving,” “I am viewing (a movie)” or a custom message.  All texts received are still available on the phone once the person is ready to respond.</p>
<p>“It’s about staying focused, on whatever you are doing, but especially on driving when your life and others on the road are at risk,” said Erik Dodier, CEO of PixelMEDIA. “Bzzy will remove the urgency we feel to reply back right away, and instead let those who are trying to reach us know we are unavailable.”</p>
<p>The goal is to allow people to focus on what they’re doing, whether it’s driving or even watching a movie or playing with their kids, without being distracted by texts.</p>
<p>“There’s something about a text that seems so instantaneous,” Dodier said. “But we all know there are times we should just let others know we’re temporarily unavailable.”</p>
<p>Dodier said 10 percent of any future proceeds from the product will be donated to efforts aimed at increasing the awareness of the dangers of distracted driving.</p>
<p>Bzzy is currently available on Android phones only, however, PixelMEDIA  is looking at offering Bzzy for iPhones in the future.</p>
<p>“Take a step toward driving safer, download Bzzy for free through April 30<sup>th</sup> at <strong><a title="Stay Focused. Download Bzzy for Free in April!" href="http://www.bzzyapp.com/">www.Bzzyapp.com</a></strong>,” Dodier said. “It will allow a driver’s focus to stay where it should be, on the road.”</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmedia.com/blog/bzzy-mobile-application/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>PixelMEDIA’s Samuel Adams Website Selected as a 2010 MITX Interactive Awards Finalist</title>
		<link>http://www.pixelmedia.com/blog/mitx-2010/</link>
		<comments>http://www.pixelmedia.com/blog/mitx-2010/#comments</comments>
		<pubDate>Mon, 18 Oct 2010 17:44:46 +0000</pubDate>
		<pxlAuthorId>31</pxlAuthorId>
		<dc:creator>Julie Forest</dc:creator>
				<category><![CDATA[News and events]]></category>
		<category><![CDATA[Website design]]></category>
		<category><![CDATA[Application development]]></category>
		<category><![CDATA[awards]]></category>
		<category><![CDATA[Experience Design]]></category>
		<category><![CDATA[MITX]]></category>

		<guid isPermaLink="false">http://www.pixelmedia.com/blog/?p=1542</guid>
		<description><![CDATA[PixelMEDIA is a finalist in the Consumer Goods category for Boston Beer Company&#8217;s new Samuel Adams website for the 15th Annual MITX Interactive Awards. Held annually by the Massachusetts Innovation &#38; Technology Exchange, the MITX Awards recognize excellence in the &#8230; <a href="http://www.pixelmedia.com/blog/mitx-2010/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>PixelMEDIA is a finalist in the Consumer Goods category for Boston Beer Company&#8217;s new Samuel Adams website for the 15th Annual MITX Interactive Awards. Held annually by the Massachusetts Innovation &amp; Technology Exchange, the MITX Awards recognize excellence in the creation of web innovations designed, produced or developed in New England.</p>
<p><span id="more-1542"></span></p>
<p>Since 1996 the MITX Awards has grown to the largest and most prestigious awards competition in the country for technology innovations and celebrates the best creative and technological accomplishments emerging from New England.</p>
<p>The new Samuel Adams website features an extensive guide to Sam Adams beers and recommended food pairings; behind-the-scenes information on the people and the process behind Sam Adams; and a wide range of opportunities for beer enthusiasts to “share the passion.” The architecture, labeling, and design were inspired by the content. “It’s a treat to have great content to work with,” says Thomas Obrey, Co-founder of PixelMEDIA, Inc. “It kept the team’s thinking fresh from start to finish—every page was like its own mini-project.”</p>
<p>The new website delivers an enormous amount of valuable information to a passionate, engaged audience through the use of engaging information, education, videos, and social media connections. The content does not trail off after the top level pages, it becomes richer and more rewarding. And the information it provides can truly enhance the real-world enjoyment of food and beer.</p>
<p>For PixelMEDIA’s web development team, the diversity of page designs required a lot of deft HTML coding and some brand-new approaches. To honor its social responsibility commitment, Boston Beer insisted on maintaining its 2-step age verification. In addition, the PixelMEDIA team customized a set of content management tools (CMTs) for News, Events, and other time-sensitive content. They even implemented an e-store where Sam Adams fans could buy clothing, accessories, and Samuel Adams Boston Lager® glassware.</p>
<p>“It’s a tremendous accomplishment to be recognized along with our clients as a finalist in the MITX Awards,” said Erik Dodier, President and Co-founder of PixelMEDIA, Inc. “To be selected as the best of the best among such a vast array of talent in the region is quite an honor, and we’re proud to be a part of it again this year.”</p>
<p>PixelMEDIA will be recognized with the other finalists in the category of Consumer Goods at a gala awards ceremony traditionally attended by over 1,000 of the region’s top interactive marketing and technology professionals. Winners will be announced at the ceremony in the Boston Marriott Copley Place on Thursday, November 18th at 6pm.</p>
<p><strong> </strong><strong>About MITX</strong><br />
The Massachusetts Innovation &amp; Technology Exchange (MITX) is the region’s premier professional organization for the Internet business and marketing industry. Reaching more than 7,500 professionals in New England, MITX is the community for thought leadership, building business relationships and professional training and development. Members of the MITX community take advantage of events, sponsorships, speaking opportunities and networking to make business connections and exchange ideas. With more than 60 events annually, MITX provides its members with the opportunity to promote their companies to targeted audiences and provides a valuable forum for networking with other likeminded peers to source potential business leads, partnerships, ideas, and funding. MITX is headquartered in Cambridge, MA. Visit us at <a title="MITX" href="http://www.mitx.org" target="_self">www.mitx.org</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmedia.com/blog/mitx-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>E-Commerce Scalability: Planning for the Future</title>
		<link>http://www.pixelmedia.com/blog/ecommerce-scalability/</link>
		<comments>http://www.pixelmedia.com/blog/ecommerce-scalability/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 17:36:48 +0000</pubDate>
		<pxlAuthorId>33</pxlAuthorId>
		<dc:creator>jdavis</dc:creator>
				<category><![CDATA[Application development]]></category>
		<category><![CDATA[Strategic planning]]></category>
		<category><![CDATA[ecommerce]]></category>
		<category><![CDATA[scalability]]></category>
		<category><![CDATA[system architecture]]></category>

		<guid isPermaLink="false">http://www.pixelmedia.com/blog/?p=1237</guid>
		<description><![CDATA[For the majority of my career I've worked on and around e-commerce sites, and I’ve seen a broad range of database designs and site architectures. Within that broad range I’ve seen many good and bad practices, and one of the worst is to design an e-commerce site that can’t scale to meet the business’s future needs. These sites tend to be havens for odd bugs and are likely to become maintenance nightmares. <a href="http://www.pixelmedia.com/blog/ecommerce-scalability/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>For the majority of my career I&#8217;ve worked on and around e-commerce sites, and I’ve seen a broad range of database designs and site architectures. Within that broad range I’ve seen many good and bad practices, and one of the worst is to design an e-commerce site that can’t scale to meet the business’s future needs. These sites tend to be havens for odd bugs and are likely to become maintenance nightmares.<span id="more-1237"></span></p>
<p>Scalability takes many forms &#8211; for example, the ability to easily add new hardware or bandwidth to handle increases in usage &#8211; but as it pertains e-commerce, the area that needs the most scalability is the catalog: the product data, the categorization, and the vast amounts of meta-data that typically accompany them. Both the database and the code need to be designed in such a way that a site can launch with a blue one-size-fits-all baseball cap; the following day add a t-shirt with three sizes and six colors; and three weeks later add a mountaineering package that includes a shell of any available size and color, ski pants of any size and color, and a head lamp.</p>
<p>If the site had been designed to handle only the baseball cap, the seller wouldn&#8217;t have been able to start selling those t-shirts without major system rework – and every new product type and customization option would require even more.  By spending the extra time and effort to design a robust database and site architecture, the seller can effortlessly add new product types and avoid the delay and expense of modifying an existing system.</p>
<p>Product variations are only the tip of the iceberg. If the site will eventually support international ordering, there are postal codes, taxes, and translations/localization to consider. There may be multiple shipping handlers (e.g. UPS, FedEx, USPS) and payment processors (e.g. PayPal, Authorize.Net). The areas of scalability within an e-commerce site area are endless, and the more features a seller would like to scale, the more time they’ll invest on requirements gathering, planning, design, and development.  If the seller really is only going to sell t-shirts and use PayPal as their payment processor, then designing a more robust system would be overkill. However, any seller who is already selling a wide variety of products, is planning to expand their product line, or is struggling with the limits of their existing system should seriously consider the extra time and expenditure required to create a scalable system.</p>
<div style="width: 1px;height: 1px;overflow: hidden"><!--[if gte mso 9]&gt;  Normal 0     false false false  EN-US X-NONE X-NONE                           &lt;![endif]--><!--[if gte mso 9]&gt;                                                                                                                                            &lt;![endif]--><!--[if !supportAnnotations]--><!--  -->//  bw + bsl &amp;&amp; x + aw &#8211; ah / 2 &#8211; cw &gt;= bsl )<br />
{ c.style.left = x + aw &#8211; ah / 2 &#8211; cw; }<br />
else<br />
{ c.style.left = x + ah / 2; }<br />
if (y + ch + ah / 2 &gt; bh + bst &amp;&amp; y + ah / 2 &#8211; ch &gt;= bst )<br />
{ c.style.top = y + ah / 2 &#8211; ch; }<br />
else<br />
{ c.style.top = y + ah / 2; }<br />
c.style.visibility = &#8220;visible&#8221;;<br />
}	}	}<br />
function msoCommentHide(com_id)<br />
{<br />
if(msoBrowserCheck())<br />
{<br />
c = document.all(com_id);<br />
if (null != c &amp;&amp; null == c.length)<br />
{<br />
c.style.visibility = &#8220;hidden&#8221;;<br />
c.style.left = -1000;<br />
c.style.top = -1000;<br />
} }<br />
}<br />
function msoBrowserCheck()<br />
{<br />
ms = navigator.appVersion.indexOf(&#8220;MSIE&#8221;);<br />
vers = navigator.appVersion.substring(ms + 5, ms + 6);<br />
ie4 = (ms &gt; 0) &amp;&amp; (parseInt(vers) &gt;= 4);<br />
return ie4;<br />
}<br />
if (msoBrowserCheck())<br />
{<br />
document.styleSheets.dynCom.addRule(&#8220;.msocomanchor&#8221;,&#8221;background: infobackground&#8221;);<br />
document.styleSheets.dynCom.addRule(&#8220;.msocomoff&#8221;,&#8221;display: none&#8221;);<br />
document.styleSheets.dynCom.addRule(&#8220;.msocomtxt&#8221;,&#8221;visibility: hidden&#8221;);<br />
document.styleSheets.dynCom.addRule(&#8220;.msocomtxt&#8221;,&#8221;position: absolute&#8221;);<br />
document.styleSheets.dynCom.addRule(&#8220;.msocomtxt&#8221;,&#8221;top: -1000&#8243;);<br />
document.styleSheets.dynCom.addRule(&#8220;.msocomtxt&#8221;,&#8221;left: -1000&#8243;);<br />
document.styleSheets.dynCom.addRule(&#8220;.msocomtxt&#8221;,&#8221;width: 33%&#8221;);<br />
document.styleSheets.dynCom.addRule(&#8220;.msocomtxt&#8221;,&#8221;background: infobackground&#8221;);<br />
document.styleSheets.dynCom.addRule(&#8220;.msocomtxt&#8221;,&#8221;color: infotext&#8221;);<br />
document.styleSheets.dynCom.addRule(&#8220;.msocomtxt&#8221;,&#8221;border-top: 1pt solid threedlightshadow&#8221;);<br />
document.styleSheets.dynCom.addRule(&#8220;.msocomtxt&#8221;,&#8221;border-right: 2pt solid threedshadow&#8221;);<br />
document.styleSheets.dynCom.addRule(&#8220;.msocomtxt&#8221;,&#8221;border-bottom: 2pt solid threedshadow&#8221;);<br />
document.styleSheets.dynCom.addRule(&#8220;.msocomtxt&#8221;,&#8221;border-left: 1pt solid threedlightshadow&#8221;);<br />
document.styleSheets.dynCom.addRule(&#8220;.msocomtxt&#8221;,&#8221;padding: 3pt 3pt 3pt 3pt&#8221;);<br />
document.styleSheets.dynCom.addRule(&#8220;.msocomtxt&#8221;,&#8221;z-index: 100&#8243;);<br />
}<br />
// ]]&gt;<!--[endif]--><!--  /* Font Definitions */  @font-face 	{font-family:"Cambria Math"; 	panose-1:2 4 5 3 5 4 6 3 2 4; 	mso-font-charset:1; 	mso-generic-font-family:roman; 	mso-font-format:other; 	mso-font-pitch:variable; 	mso-font-signature:0 0 0 0 0 0;} @font-face 	{font-family:Calibri; 	panose-1:2 15 5 2 2 2 4 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1073750139 0 0 159 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:""; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:10.0pt; 	margin-left:0in; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} p.MsoCommentText, li.MsoCommentText, div.MsoCommentText 	{mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-link:"Comment Text Char"; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:10.0pt; 	margin-left:0in; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} span.MsoCommentReference 	{mso-style-noshow:yes; 	mso-style-priority:99; 	mso-ansi-font-size:8.0pt; 	mso-bidi-font-size:8.0pt;} span.CommentTextChar 	{mso-style-name:"Comment Text Char"; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-unhide:no; 	mso-style-locked:yes; 	mso-style-link:"Comment Text"; 	mso-ansi-font-size:10.0pt; 	mso-bidi-font-size:10.0pt;} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} .MsoPapDefault 	{mso-style-type:export-only; 	margin-bottom:10.0pt; 	line-height:115%;} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.0in 1.0in 1.0in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --><!--[if gte mso 10]&gt; &lt;!   /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:&quot;Table Normal&quot;; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:&quot;&quot;; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin-top:0in; 	mso-para-margin-right:0in; 	mso-para-margin-bottom:10.0pt; 	mso-para-margin-left:0in; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:&quot;Times New Roman&quot;; 	mso-fareast-theme-font:minor-fareast; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin;} --> <!--[endif]--><!--[if gte mso 9]&gt;  &lt;![endif]--><!--[if gte mso 9]&gt;   &lt;![endif]--></p>
<p class="MsoNormal" style="margin-bottom: 0.0001pt;line-height: normal"><span>For the majority of my career I&#8217;ve worked on and around e-commerce sites, and I’ve seen a broad range of database designs and site architectures. Within that broad range </span><span class="MsoCommentReference"><span>I’ve seen many good and bad practices, and one of the worst is to design an e-commerce site that can’t scale to meet the business’s future needs</span></span><span>. These sites tend to be havens for odd bugs and are likely to become maintenance nightmares. </span></p>
<p class="MsoNormal" style="margin-bottom: 0.0001pt;line-height: normal"><span> </span></p>
<p class="MsoNormal" style="margin-bottom: 0.0001pt;line-height: normal"><span>Scalability takes many forms &#8211; for example, the ability to easily add new hardware or bandwidth to handle increases in usage &#8211; but as it pertains e-commerce, the area that needs the most scalability is the <a>catalog</a></span><span class="MsoCommentReference"><span style="font-size: 8pt"><!--[if !supportAnnotations]--><a id="_anchor_1" class="msocomanchor" name="_msoanchor_1" href="#_msocom_1">[c1]</a><!--[endif]--><span> </span></span></span><span>: the product data, the categorization, and the vast amounts of meta-data that typically accompany them. Both the database and the code need to be designed in such a way that a site can launch with a blue one-size-fits-all baseball cap; the following day add a t-shirt with three sizes and six colors; and three weeks later add a mountaineering package that includes a shell of any available size and color, ski pants of any size and color, and a head lamp.</span></p>
<p class="MsoNormal" style="margin-bottom: 0.0001pt;line-height: normal"><span> </span></p>
<p class="MsoNormal" style="margin-bottom: 0.0001pt;line-height: normal"><span>If the site had been designed to handle only the baseball cap, the seller wouldn&#8217;t have been able to start selling those t-shirts without <a>major system rework – and every new product type and customization option would </a>require even more.<span> </span>By spending the extra time and effort to design a robust database and site architecture, the seller can effortlessly add new product types and avoid the delay and expense of modifying an existing system.</span></p>
<p class="MsoNormal" style="margin-bottom: 0.0001pt;line-height: normal"><span> </span></p>
<p class="MsoNormal" style="margin-bottom: 0.0001pt;line-height: normal"><span>Product variations are only the tip of the iceberg. If the site will eventually support international ordering, there are postal codes, taxes, and translations/localization to consider. There may be multiple shipping handlers (e.g. UPS, FedEx, USPS) and payment processors (e.g. PayPal, Authorize.Net). The areas of scalability within an e-commerce site area are endless, and the more features a seller would like to scale, the more time they’ll invest on requirements gathering, planning, design, and development.<span> </span>If the seller really is only going to sell t-shirts and use PayPal as their payment processor, then designing a more robust system would be overkill. However, any seller who is already selling a wide variety of products, is planning to expand their product line, or is struggling with the limits of their existing system should seriously consider the extra time and expenditure required to create a scalable system.</span></p>
<p class="MsoNormal">
<div><!--[if !supportAnnotations]--></p>
<hr class="msocomoff" size="1" /><!--[endif]--></p>
<div><!--[if !supportAnnotations]--></p>
<div class="msocomtxt"><!--[endif]--><span><!--[if !supportAnnotations]--><a name="_msocom_1"></a><!--[endif]--></span></p>
<p class="MsoCommentText"><span class="MsoCommentReference"><span style="font-size: 8pt"><span> <!--[if !supportAnnotations]--><a class="msocomoff" href="#_msoanchor_1">[c1]</a><!--[endif]--></span></span></span>Is this a fair way to encapsulate what you say next?</p>
<p><!--[if !supportAnnotations]--></p>
</div>
<p><!--[endif]--></p>
</div>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmedia.com/blog/ecommerce-scalability/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The end of IE6? It’s time to upgrade your browser</title>
		<link>http://www.pixelmedia.com/blog/the-end-of-ie6-its-time-to-upgrade-your-browser/</link>
		<comments>http://www.pixelmedia.com/blog/the-end-of-ie6-its-time-to-upgrade-your-browser/#comments</comments>
		<pubDate>Fri, 22 Jan 2010 15:23:58 +0000</pubDate>
		<pxlAuthorId>32</pxlAuthorId>
		<dc:creator>Patricia Powers</dc:creator>
				<category><![CDATA[Application development]]></category>
		<category><![CDATA[Website design]]></category>
		<category><![CDATA[browers]]></category>
		<category><![CDATA[IE6]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://www.pixelmedia.com/blog/?p=1180</guid>
		<description><![CDATA[Will 2010 finally be the year that Internet Explorer 6 (IE6) loses enough market share that developers no longer need to support it?  I know I speak for not only myself but for many of my developer colleagues when I &#8230; <a href="http://www.pixelmedia.com/blog/the-end-of-ie6-its-time-to-upgrade-your-browser/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Will 2010 finally be the year that Internet Explorer 6 (IE6) loses enough market share that developers no longer need to support it?  I know I speak for not only myself but for many of my developer colleagues when I say, “one can hope!”  IE6 will be 9 years old this year and yet there is still a column for it on our QA checklist.   Windows has come out with two newer (and better) browsers within the last 9 years that we also support; yet developers typically code for the most recent version of Firefox, Chrome, Safari and Opera.  So why do we need to support a version of IE that in today’s technology space is equivalent to a fossil?<span id="more-1180"></span></p>
<p>It’s simple.  People are still using it. Even though the market share is declining, at <a href="http://marketshare.hitslink.com/browser-market-share.aspx?qprid=2" target="_blank">last look</a> IE6 still makes up about 20% of the market.  Buy why?  To compare a modern browser to IE6 would be like comparing a Corvette to a horse and buggy.  It lacks the bells and whistles of the newer browsers, it’s less secure, it doesn’t support png transparancy and it doesn’t support today’s web standards &#8211; which causes developers everywhere hours of frustration.</p>
<p>Ultimately, having to support IE6 is hindering the advancement of websites both in design and functionality.  With the release of HTML5 on the horizon, the web is about to take on a whole new direction and will leave those that don’t support it in the dust.  IE6 users will start to notice sites that look broken or simply do not work.  They will get messages asking them to upgrade (if they haven’t already.)  Even bigger sites like Facebook, YouTube and Digg are starting to limit their support of the browser.</p>
<p>So, my question to you is do you use IE6?  If so, why?  Is it a choice? Are you restricted by your IT department?  Did you just not know there was a difference between browsers, or that there are better ones out there?  Have you noticed sites are prompting you to upgrade, look broken or just don’t work?  Please, leave your answers in the comments.  I’d love to hear from you!</p>
<p>If you are looking for an upgrade try one of these:</p>
<ul>
<li><a href="http://www.mozilla.com/en-US/firefox/upgrade.html" target="_blank">Firefox 3.5</a></li>
<li><a href="http://www.google.com/chrome" target="_blank">Google Chrome</a></li>
<li><a href="http://www.microsoft.com/nz/windows/internet-explorer/default.aspx" target="_blank">Internet Explorer 8</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmedia.com/blog/the-end-of-ie6-its-time-to-upgrade-your-browser/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Bauer’s premium stick-buying site gets a new look and a new platform</title>
		<link>http://www.pixelmedia.com/blog/bauer-premium-stick-buying-site-gets-a-new-look-and-a-new-platform/</link>
		<comments>http://www.pixelmedia.com/blog/bauer-premium-stick-buying-site-gets-a-new-look-and-a-new-platform/#comments</comments>
		<pubDate>Sun, 15 Nov 2009 19:57:31 +0000</pubDate>
		<pxlAuthorId>1</pxlAuthorId>
		<dc:creator>PixelMEDIA</dc:creator>
				<category><![CDATA[Case studies]]></category>
		<category><![CDATA[Application development]]></category>
		<category><![CDATA[Bauer Hockey]]></category>
		<category><![CDATA[ecommerce]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://blog.pixelmedia.com/?p=1064</guid>
		<description><![CDATA[In mid-July, two hockey sticks showed up on the desk of designer Onur Orhon. These weren’t the ordinary sticks you’d see at a sporting goods store: they were prototypes straight from the headquarters of Bauer Hockey, of the updated One95 &#8230; <a href="http://www.pixelmedia.com/blog/bauer-premium-stick-buying-site-gets-a-new-look-and-a-new-platform/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>In mid-July, two hockey sticks showed up on the desk of designer Onur Orhon.  These weren’t the ordinary sticks you’d see at a sporting goods store: they were prototypes straight from the headquarters of Bauer Hockey, of the updated One95 stick and the brand-new Vapor X:60.  All the hockey fans at PixelMEDIA crowded around and hefted the sticks, inspecting the technical innovations and admiring their lighter weight.</p>
<p>The sticks stayed in the office through the fall, as the PixelMEDIA team worked to bring them online.  Bauer Hockey hired PixelMEDIA to tackle the <a href="http://www.bauer.com/mybauer" target="new">MY BAUER</a> project, a rich Flash application where players can purchase and personalize Bauer’s top-of-the-line sticks.  From choosing a pattern, grip, and color to printing a player’s name right on the stick, MY BAUER walks users through their choices and gives a three-dimensional preview of their purchase.<span id="more-1064"></span></p>
<p>PixelMEDIA was tasked with updating the site’s look and overhauling the platform that supported it.  For Bauer, administering the site would be easier than ever, from managing attributes to handing out discount codes.  And the modular, flexible Flash client delivered faster performance and paved the way to new sticks.</p>
<p>For PixelMEDIA, working on MY BAUER meant creating a rich retail experience.  The stick models had to look good and load quickly.  Customers demanded a full-featured shopping experience, where they could tweak their stick for hours, store it in an online “stick rack” and then share it with a teammate, or say, a parent with a credit card.  And the bilingual site made players feel at home whether they logged on from Madison, Wisconsin or Saint-Jérôme, Quebec.</p>
<p>Since MY BAUER launched, PixelMEDIA has had the pleasure of working closely with the Bauer team to maintain and enhance the site, and to launch new product lines – like the Vapor X:60 goalie stick, available as of December.</p>
<blockquote><p>The upgrades in the technology of MY BAUER allows us to easily update the wide variety of choices we are able to provide the consumer as well as enhance the overall user experience. —Evan Baker, Product Line Manager, Sticks, Bauer Hockey.</p></blockquote>
<p><strong>The Impact</strong></p>
<ul>
<li>Deliver a new look and rebrand for Bauer’s premium retail experience</li>
<li>Design a bi-lingual site with fully configurable product options</li>
<li>Support transactions in multiple currencies</li>
<li>Move MY BAUER to a new e-commerce platform, for simpler maintenance and greater reliability</li>
<li>Replace the existing stick configurator with a modular, easy-to-update Flash client</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmedia.com/blog/bauer-premium-stick-buying-site-gets-a-new-look-and-a-new-platform/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASP.NET XML Caching Gotcha</title>
		<link>http://www.pixelmedia.com/blog/asp-net-xml-caching-gotcha/</link>
		<comments>http://www.pixelmedia.com/blog/asp-net-xml-caching-gotcha/#comments</comments>
		<pubDate>Thu, 08 Oct 2009 19:16:51 +0000</pubDate>
		<pxlAuthorId>25</pxlAuthorId>
		<dc:creator>Kyle Heon</dc:creator>
				<category><![CDATA[Application development]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Caching]]></category>
		<category><![CDATA[Navigation]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[XSL]]></category>

		<guid isPermaLink="false">http://blog.pixelmedia.com/?p=595</guid>
		<description><![CDATA[This entry is a slightly updated re-post of an article found on my personal blog. Recently we had a site that was getting ready to go live, hosted on a 64-bit version of Windows Server 2008 (IIS7). I won&#8217;t bore &#8230; <a href="http://www.pixelmedia.com/blog/asp-net-xml-caching-gotcha/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><em>This entry is a slightly updated re-post of an <a href="http://www.kyleheon.com/articles/2009/09/18/xml-caching-in-asp-net-can-be-dangerous-to-your-health" target="_blank">article</a> found on my personal blog.</em></p>
<p>Recently we had a site that was getting ready to go live, hosted on a 64-bit version of Windows Server 2008 (IIS7). I won&#8217;t bore you with all the details of all the issues we worked through but we had one nasty issue that, as soon as it occurred it brought the server down; 100% CPU usage by the w3wp.exe process and memory usage steadily climbing. Our error logger was catching primarily one xml argument exception (but with a few variations).</p>
<p><span id="more-595"></span>A partial stack trace looked like this:</p>
<p><code lang="csharp"><br />
System.Web.HttpUnhandledException: Exception of type 'System.Web.HttpUnhandledException' was thrown. ---&gt; System.ArgumentException: The node to be removed is not a child of this node.<br />
at System.Xml.XmlNode.RemoveChild(XmlNode oldChild)<br />
at System.Xml.XmlNode.RemoveAll()<br />
at System.Xml.XmlElement.RemoveAll()<br />
</code></p>
<p>This error was at the heart of our navigation framework which makes heavy use of xml and xsl. The process we go through for building a pages navigation looks something like this:</p>
<ul>
<li>Check to see if the xml navigation file has been cached, if so get it from cache, otherwise load it and cache it.</li>
<li>When navigation is ready to be rendered, it is first manipulated to add in an xml node section that stores the current pages selected states.</li>
<li>The modified (in memory) xml is then passed to the desired xsl which handles converting the xml to xhtml and returning the transformed string.</li>
</ul>
<p>Originally the process of modifying the xml (in memory) looked like this:</p>
<p><code lang="csharp"><br />
protected virtual void AddNavigationSelectedStates()<br />
{<br />
XmlNode navigationScheme = this._xml.SelectSingleNode("navigationScheme");<br />
XmlNode selected = this._xml.CreateNode(XmlNodeType.Element, "selected", "");<br />
if (null != navigationScheme.SelectSingleNode("selected"))<br />
{<br />
selected = navigationScheme.SelectSingleNode("selected");<br />
selected.RemoveAll();<br />
}</code></p>
<p>for (int i = 0; i &lt; base.Selected.Count; i++)<br />
{<br />
XmlElement choice = this._xml.CreateElement(&#8220;choice&#8221;);<br />
choice.SetAttribute(&#8220;level&#8221;, (i + 1).ToString());<br />
choice.InnerText = base.Selected[i].ToString();</p>
<p>selected.AppendChild(choice);<br />
}<br />
navigationScheme.InsertBefore(selected, this._xml.SelectSingleNode(&#8220;//navigationScheme/mainNav&#8221;));<br />
}</p>
<p>During stress testing we identified that the problem code was the <code>if (null != navigationScheme.SelectSingleNode("selected"))</code> block. As I was the original developer I struggled to remember why such code was there, given that this node should never exist as the page builds. So, after reproducing the errors locally with the above code I removed the if statement and retested. Not a single error. Quickly browsed the site and didn&#8217;t notice any issues (I should have looked harder, there were plenty).</p>
<p>We posted an updated build, stress tested the site, still no errors. Then another developer noticed that the site navigation wasn&#8217;t working properly. So, back into the source I went. Digging deep I eventually found that each time the <code>XmlNode navigationScheme = this._xml.SelectSingleNode("navigationScheme");</code> was run, the  section of the document grew with all previous &#8220;choices&#8221;.</p>
<p>Through more debugging and some pair programming with a <a href="http://blog.pixelmedia.com/author/rstorch/" target="_blank">fellow developer</a> (and a lot of discussion about what was really happening) we discovered that, while we were never stuffing the modified xml back into cache, it was indeed being updated. I&#8217;m still trying to determine why this is but I think I have read somewhere that XmlDocument objects are in memory structures that are passed by reference (and not by value as I originally thought).</p>
<p>Armed with this information we attempted to clone the document and modify that and while that ultimately worked, it didn&#8217;t fit into the system we had for navigation render behavior. With some changes to how we passed along the modified xml we ended up with this modified method (name changed to better reflect it&#8217;s newer intent):</p>
<p><code lang="csharp"><br />
public virtual XmlDocument SelectedStatesXml()<br />
{<br />
XmlDocument xmlDoc = (XmlDocument)this._xml.CloneNode(true);<br />
XmlNode navigationScheme = xmlDoc.SelectSingleNode("navigationScheme");<br />
XmlNode selected = xmlDoc.CreateNode(XmlNodeType.Element, "selected", "");</code></p>
<p>for (int i = 0; i &lt; base.Selected.Count; i++)<br />
{<br />
XmlElement choice = xmlDoc.CreateElement(&#8220;choice&#8221;);<br />
choice.SetAttribute(&#8220;level&#8221;, (i + 1).ToString());<br />
choice.InnerText = base.Selected[i].ToString();</p>
<p>selected.AppendChild(choice);<br />
}<br />
navigationScheme.InsertBefore(selected, xmlDoc.SelectSingleNode(&#8220;//navigationScheme/mainNav&#8221;));<br />
return xmlDoc;<br />
}</p>
<p>Be sure to note in the code above, the call to <code>(XmlDocument)this._xml.CloneNode(true);</code> as this is important. We are doing a deep copy of the entire XmlDocument. Manipulation is done strictly to the clone and never the master xml document. So now when we call out to render navigation, it looks like this:</p>
<p><code lang="csharp"><br />
return base.OutputNavigation(<br />
new XslTransformBehaviour(<br />
((XmlNavigation)this.Navigation).SelectedStatesXml(),<br />
XslHelper.GetTransformer(path),<br />
((XmlNavigation)this.Navigation).NavigationArguments<br />
)<br />
);<br />
</code></p>
<p>I hope this helps someone someday. I don&#8217;t think this behavior is something I&#8217;m going to forget any time soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmedia.com/blog/asp-net-xml-caching-gotcha/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Binding a click event inside a click event with jQuery</title>
		<link>http://www.pixelmedia.com/blog/binding-a-click-event-inside-a-click-event-with-jquery/</link>
		<comments>http://www.pixelmedia.com/blog/binding-a-click-event-inside-a-click-event-with-jquery/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 15:47:37 +0000</pubDate>
		<pxlAuthorId>21</pxlAuthorId>
		<dc:creator>Jeff L</dc:creator>
				<category><![CDATA[Application development]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://blog.pixelmedia.com/?p=457</guid>
		<description><![CDATA[I was recently working on coding a design that included a simple type of faux select element. It was basically an unordered list that expanded and collapsed when you clicked a link. As it was styled similar to a select &#8230; <a href="http://www.pixelmedia.com/blog/binding-a-click-event-inside-a-click-event-with-jquery/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I was recently working on coding a design that included a simple type of faux select element. It was basically an unordered list that expanded and collapsed when you clicked a link. As it was styled similar to a select element, the JavaScript behaviors were similar as well. Clicking the link expanded the list underneath it, and you could then choose a link inside the list and navigate away from the page, or click the original link to close the list again.</p>
<p>The client, however, found this a bit confusing<span id="more-457"></span>—once they had expanded the hidden list, it wasn&#8217;t obvious to them how to close it. They wanted to be able to click somewhere else on the page and have the list close so they could continue browsing. No problem, I figured, a few JavaScript tweaks and we&#8217;d be all set. Simply putting a click event on the body element to close the list would be pretty straightforward.</p>
<p>Lets take a look at the code we used:<br />
<code></p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> initFauxSelect<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'a.showSelect'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      e.<span style="color: #660066;">preventDefault</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #003366; font-weight: bold;">var</span> $theList <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">parent</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.fauxSelect'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">next</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.selectList'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      hideShow<span style="color: #009900;">&#40;</span>$theList<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> hideShow<span style="color: #009900;">&#40;</span>obj<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  $theList <span style="color: #339933;">=</span> obj<span style="color: #339933;">;</span>
  <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>$theList.<span style="color: #000066; font-weight: bold;">is</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">':visible'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    $theList.<span style="color: #660066;">hide</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
    $theList.<span style="color: #660066;">show</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p></code></p>
<p>It&#8217;s a simple click event on <code>a.showSelect</code> that calls the <code>hideShow()</code> function. If the list is visible, hide it, otherwise show it.</p>
<p>I figured it would be as simple as binding a new click event to the <code>body</code> tag whenever we show the list. The new event would hide the list when someone clicked elsewhere on the page. Let&#8217;s look at the updated <code>hideShow()</code> code:</p>
<p><code></p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> hideShow<span style="color: #009900;">&#40;</span>obj<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  $theList <span style="color: #339933;">=</span> obj<span style="color: #339933;">;</span>
  <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>$theList.<span style="color: #000066; font-weight: bold;">is</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">':visible'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    $theList.<span style="color: #660066;">hide</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'body'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">unbind</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'click.fauxselect'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
    $theList.<span style="color: #660066;">show</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'body'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">bind</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'click.fauxselect'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      $theList.<span style="color: #660066;">hide</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'body'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">unbind</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'click.fauxselect'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p></code></p>
<p>Now, whenever we&#8217;re showing the list, we&#8217;re creating a new click event on the <code>body</code> that hides the list. It also unbinds itself once its job is done. If someone closes the list by clicking <code>a.showSelect</code> again, we also unbind the event just to keep things clean.</p>
<p>However, I ran into a problem. The event I was binding to the body was being called right away, which stopped the list from ever appearing! It seemed a bit strange, as my assumption was that you&#8217;d never want your new event to fire as the same time as the current event.</p>
<p>Thankfully, there&#8217;s an easy way prevent this from happening. In our original click event on the <code>.showSelect</code> element, we need to stop that event from bubbling up the DOM.</p>
<p><code></p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> initShortcutsSelect<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'a.showSelect'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    e.<span style="color: #660066;">preventDefault</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    e.<span style="color: #660066;">stopPropagation</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  <span style="color: #006600; font-style: italic;">// ----- ADDED THIS LINE</span>
    <span style="color: #003366; font-weight: bold;">var</span> $theList <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">parent</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.fauxSelect'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">next</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.selectList'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    hideShow<span style="color: #009900;">&#40;</span>$theList<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p></code></p>
<p>By telling the event to stopPropagation, it never bubbles up the DOM, never reaches the <code>body</code> and never calls the new click event you bound there until the user actually clicks the body.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmedia.com/blog/binding-a-click-event-inside-a-click-event-with-jquery/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>PixelMEDIA supports Holloway Prize winners with strategy, design, and development services</title>
		<link>http://www.pixelmedia.com/blog/pixelmedia-supports-holloway-prize-winners-with-strategy-design-and-development-services/</link>
		<comments>http://www.pixelmedia.com/blog/pixelmedia-supports-holloway-prize-winners-with-strategy-design-and-development-services/#comments</comments>
		<pubDate>Mon, 10 Aug 2009 21:19:39 +0000</pubDate>
		<pxlAuthorId>1</pxlAuthorId>
		<dc:creator>PixelMEDIA</dc:creator>
				<category><![CDATA[News and events]]></category>
		<category><![CDATA[Application development]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[strategy]]></category>

		<guid isPermaLink="false">http://blog.pixelmedia.com/?p=886</guid>
		<description><![CDATA[An active supporter of the University of New Hampshire and the Whittemore School of Business, web strategy and design agency PixelMEDIA is giving its PixelMEDIA Web Marketing Services Award to three entries in the 2009 Paul J. Holloway Prize Innovation-to-Market &#8230; <a href="http://www.pixelmedia.com/blog/pixelmedia-supports-holloway-prize-winners-with-strategy-design-and-development-services/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>An active supporter of the University of New Hampshire and the Whittemore School of Business, web strategy and design agency PixelMEDIA is giving its PixelMEDIA Web Marketing Services Award to three entries in the 2009 Paul J. Holloway Prize Innovation-to-Market Competition.</p>
<p><span id="more-886"></span>The PixelMEDIA award provides a complete set of strategy, design, and development services, valued at approximately $50,000, to the first- and second-place winners as well as to a third entry selected by PixelMEDIA. Scheduled to be launched by the end of the summer, each recipient will have new tools to assist with bringing the winning plans and products to market.</p>
<p>According to Dan Innis, the Dean of the Whittemore School of Business and Economics, “The Holloway competition is a great opportunity for our students to present their ideas to a panel of experienced business people. Their input helps the students improve the work they have done. We’re excited to have PixelMEDIA as a partner in the Holloway competition. PixelMEDIA’s support of the student’s web marketing needs will enable the students to communicate and market their products and ideas to investors and companies.”</p>
<p>This year’s first place winner was PhD candidate Christopher Suprock of Suprock Technologies. His product, the Wireless Sensor Integrated Metal Cutting Tool Holder, combines metal cutting tools and wireless sensors and enables customers to solve complex machining problems and manufacture parts more quickly and safely. The second-place prize was awarded to Whittemore School students Jason Norton, Michelle Pirro, and Cole Connolly for ComposiMold, a reusable mold-making material derived from a safe, natural polymer designed for at-home crafters, artists, and artisans.</p>
<p>In addition to the winning entries, PixelMEDIA chose the work of graduate student Alexander Shyrokov as the third recipient of the PixelMEDIA Award. Shyrokov’s project, the Software Skydiving Simulator, is a PC-based training tool that can be used by individuals at all experience levels, from the person about to make their first jump to the skilled jumper who wants to experiment with more intricate and expensive jumps.</p>
<p>The PixelMEDIA Web Marketing Services Award was established to provide a professional set of web marketing tools to future business leaders and groundbreaking not-for-profit organizations. The award offers full strategy, design and development services as well as professional consulting and channel guidance.</p>
<p>PixelMEDIA cofounder and CEO Erik Dodier participated in the judging, and co-founder Thomas Obrey will provide strategy and oversight of the three initiatives. “Everyone at PixelMEDIA is looking forward to working with the Holloway prize winners,” says Obrey, “It gives us a chance to support some amazing ideas and talented students, but also all the great work UNH and the Whittemore School do to build our economy and community.”</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmedia.com/blog/pixelmedia-supports-holloway-prize-winners-with-strategy-design-and-development-services/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dynamically setting the height of an iframe</title>
		<link>http://www.pixelmedia.com/blog/dynamic-iframe-height/</link>
		<comments>http://www.pixelmedia.com/blog/dynamic-iframe-height/#comments</comments>
		<pubDate>Fri, 13 Feb 2009 18:41:36 +0000</pubDate>
		<pxlAuthorId>21</pxlAuthorId>
		<dc:creator>Jeff L</dc:creator>
				<category><![CDATA[Application development]]></category>
		<category><![CDATA[iframe]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://blog.pixelmedia.com/?p=181</guid>
		<description><![CDATA[Recently, we had a situation that required us to pull in some content from one server to another using an iframe. Generally, this is something we would try to avoid, but we needed to pull some data from a new &#8230; <a href="http://www.pixelmedia.com/blog/dynamic-iframe-height/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Recently, we had a situation that required us to pull in some content from one server to another using an iframe. Generally, this is something we would try to avoid, but we needed to pull some data from a new .NET application into a legacy ColdFusion application.</p>
<p>Unfortunately, the height of the page being pulled in would vary wildly. This led to a fairly disappointing experience where the page was either far too long, or content in the iframe was cut off and the user had to scroll within the iframe to see everything.</p>
<p>We came up with what we thought might be an interesting solution. If the page loading inside of the iframe (the child page) could calculate its height, and somehow let the parent page know, the parent page should be able to reset the height of the iframe.</p>
<p><span id="more-181"></span></p>
<p>With a little <a href="http://tagneto.blogspot.com/2006/10/ie-7-and-iframe-apis-part-2.html?showComment=1163531700000#c116353170380763551" target="_blank">inspiration</a>, we came up with a pretty neat solution that we&#8217;d like to share. Our solution requires that you have the ability to edit the code of both the parent and child pages.</p>
<p>The child page being loaded into the iframe will simply reset the location of the parent page, and include a hash with the height of itself.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>script src<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.js&quot;</span><span style="color: #339933;">&gt;&lt;/</span>script<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>script<span style="color: #339933;">&gt;</span>
<span style="color: #003366; font-weight: bold;">var</span> parentUrl <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;http://example/iframe-outside.html&quot;</span><span style="color: #339933;">;</span>
setHash <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    parent.<span style="color: #660066;">location</span> <span style="color: #339933;">=</span> parentUrl <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;#&quot;</span> <span style="color: #339933;">+</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'body'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">height</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></pre></td></tr></table></div>

<p>We&#8217;re using <a href="http://jquery.com/" target="_blank">jQuery </a>here to easily get the height of the &lt;body&gt; tag.</p>
<p>On the parent page that includes the iframe, we&#8217;ll again use jQuery and write a small function that gets the height from the hash in the URL, and uses that to reset the height of the iframe.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>8
9
10
11
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> setHeight<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #003366; font-weight: bold;">var</span> newHeight <span style="color: #339933;">=</span> parseInt<span style="color: #009900;">&#40;</span>location.<span style="color: #660066;">hash</span>.<span style="color: #660066;">substring</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #CC0000;">50</span><span style="color: #339933;">;</span>
    $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#hashFrame'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'height'</span><span style="color: #339933;">,</span> newHeight<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>We ran into a bit of an issue: the page we were loading was taking a few seconds to load, and we didn&#8217;t want to set our height on the iframe until the content within the iframe had finished loading (and it had a chance to set the proper height to the url hash).</p>
<p>More jQuery to the rescue! The jQuery .load() method allowed us to call our setHeight() function after the iframe had finished loading.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>12
13
14
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#hashFrame'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">load</span><span style="color: #009900;">&#40;</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    setHeight<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Putting it all together gave us a great way to use our new application inside our legacy application, and make it faily seamless to the end user.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmedia.com/blog/dynamic-iframe-height/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Industry leader in two-wheeled electric transportation brings motion and emotion online</title>
		<link>http://www.pixelmedia.com/blog/industry-leader-in-two-wheeled-electric-transportation-brings-motion-and-emotion-online/</link>
		<comments>http://www.pixelmedia.com/blog/industry-leader-in-two-wheeled-electric-transportation-brings-motion-and-emotion-online/#comments</comments>
		<pubDate>Mon, 05 Nov 2007 16:28:05 +0000</pubDate>
		<pxlAuthorId>1</pxlAuthorId>
		<dc:creator>PixelMEDIA</dc:creator>
				<category><![CDATA[Case studies]]></category>
		<category><![CDATA[Application development]]></category>
		<category><![CDATA[flash design]]></category>
		<category><![CDATA[salesforce integration]]></category>
		<category><![CDATA[strategy]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[user research]]></category>

		<guid isPermaLink="false">http://blog.pixelmedia.com/?p=992</guid>
		<description><![CDATA[Business Challenge Move people. That was the challenge that Segway®, the creators of the iconic personal transporters, presented to PixelMEDIA. Segway knows that once people experience riding a Segway PT, they want to own one. They needed a partner who &#8230; <a href="http://www.pixelmedia.com/blog/industry-leader-in-two-wheeled-electric-transportation-brings-motion-and-emotion-online/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><strong>Business Challenge</strong><br />
Move people. That was the challenge that Segway®, the creators of the iconic personal transporters, presented to PixelMEDIA. Segway knows that once people experience riding a Segway PT, they want to own one. They needed a partner who could bring that same emotional energy and feeling online. This was a key driver for their website redesign: drive interaction, encourage a test drive, and link potential buyers to product dealers. The new website needed to reflect the motion, innovation, and selling points of their products—all while serving Segway’s three primary target audiences: individuals, businesses, and police and government.<span id="more-992"></span></p>
<p><strong>PixelMEDIA Solution</strong><br />
PixelMEDIA accepted the challenge and worked to create an experience as emotional and intuitive as the products themselves. Incorporating motion and rich media into the new website brings the products to life. A sense of global reach and availability is apparent through specialized content and navigation for target audiences. The new website meets the needs and desires of many—Segway, their users, and partners alike. The innovative solution delivers a compelling and immersive feeling by incorporating various features and tools:</p>
<ul>
<li> Audience segmentation and contextual content</li>
<li> 3D animation and product renderings</li>
<li> XML-driven Flash® video players</li>
<li> Dealer locators</li>
<li> User-created content and forums</li>
</ul>
<blockquote>
<p class="MsoNormal">Our new website does much more than inform; it instantly provides visitors with the opportunity to see how our product works, while infusing the emotional Segway experience.” —Eric Fleming, Marketing Communications Manager, Segway</p>
</blockquote>
<p><strong>The Impact</strong><br />
The launch of the redesigned <a href="http://www.segway.com">Segway website</a> has increased the tools and knowledge available to customers and potential buyers worldwide.</p>
<ul>
<li> Target audiences can easily find the Segway product that best fits their lifestyle and needs</li>
<li> Customers and fans can view the exhilarating sensation of riding a Segway before purchasing</li>
<li> Segway dealers can be easily located for trial rides and purchasing</li>
</ul>
<p><strong>For this initiative, PixelMEDIA provided</strong></p>
<ul>
<li> User research and usability testing</li>
<li>User experience strategy and design</li>
<li> Flash® design and development</li>
<li> Site development and application programming</li>
<li> Third-party application integration with Salesforce.com</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmedia.com/blog/industry-leader-in-two-wheeled-electric-transportation-brings-motion-and-emotion-online/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

