<?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>zelph.com &#187; Work</title>
	<atom:link href="http://www.zelph.com/archives/category/general/work/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.zelph.com</link>
	<description>Aaron Barker's random bablings</description>
	<lastBuildDate>Wed, 13 Feb 2008 19:35:33 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Huh? What did you say?</title>
		<link>http://www.zelph.com/archives/2004/08/12/huh-what-did-you-say/</link>
		<comments>http://www.zelph.com/archives/2004/08/12/huh-what-did-you-say/#comments</comments>
		<pubDate>Fri, 13 Aug 2004 04:16:05 +0000</pubDate>
		<dc:creator>Aaron</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.zelph.com/archives/2004/08/12/huh-what-did-you-say/</guid>
		<description><![CDATA[Went out last night to support a fellow team member from Sprint as his band, One Degree of Difference, were in the finals for some local competition.  It was some form of speed/hard metal (not sure what they classify themselves as), and the place they had it at had more speakers then people.  [...]]]></description>
			<content:encoded><![CDATA[<p>Went out last night to support a fellow team member from Sprint as his band, <a href="http://www.onedegreedifference.com/WWW/">One Degree of Difference</a>, were in the finals for some local competition.  It was some form of speed/hard metal (not sure what they classify themselves as), and the place they had it at had more speakers then people.  Basically the loudest sounds I have ever heard (and am still hearing)&#8230; and my ears and I aren&#8217;t on speaking terms at the moment.  Another co-worker that went had to go home early from work because his head was hurting so bad.</p>
<p>I don&#8217;t drink or smoke, but I&#8217;ve hear how bad that stuff makes people feel as well.  Mix all of the above into one experince and I have no idea how you could subject your body to that on a regular basis.  It was quite painful for one night, I just can&#8217;t imagine doing it over and over.</p>
<p>As per the band themselves&#8230; the music sounded very tight, at least when it wasn&#8217;t so overpowering that I couldn&#8217;t actualy discern one thing from another. I know it&#8217;s just my own opinion, but music is not enjoyable at that volume.   When I focused on each individual instrument, I could hear (again, on occasion) some real quality.  It&#8217;s just a shame that for me it was 95% &#8220;too much of a good thing&#8221; for me.  I think I understood 10-15 words out of the entire set that they played so that begs the question&#8230; why even write lyrics if they can&#8217;t be understood?  Anyway&#8230; they took 2nd place, much to the dismay of the crowd who were largely their loyal followers.</p>
<p>24 hours later my ears are still ringing and have a constant ache.  Can it really be&#8230; that&#8230; I&#8217;m getting too old for this stuff??  *sigh*</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zelph.com/archives/2004/08/12/huh-what-did-you-say/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using IFR at Sprint</title>
		<link>http://www.zelph.com/archives/2004/06/20/using-ifr-at-sprint/</link>
		<comments>http://www.zelph.com/archives/2004/06/20/using-ifr-at-sprint/#comments</comments>
		<pubDate>Tue, 25 May 2004 20:21:01 +0000</pubDate>
		<dc:creator>Aaron</dc:creator>
				<category><![CDATA[Code related]]></category>
		<category><![CDATA[JavaScript/DOM]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.zelph.com/archives/2004/06/20/using-ifr-at-sprint/</guid>
		<description><![CDATA[Introduction
This lengthy article is here to describe the process of how Shaun Inman&#8217;s IFR technique came to be used on Sprint.com and SprintPCS.com.  This is my first write-up of the process involved in implementing a major new standard, and I didn&#8217;t take the notes I should have along the way&#8230; so please bear with [...]]]></description>
			<content:encoded><![CDATA[<h4>Introduction</h4>
<p>This lengthy article is here to describe the process of how <a href="http://www.shauninman.com/" title="My hero">Shaun Inman</a>&#8217;s IFR technique came to be used on <a href="http://www.sprint.com/">Sprint.com</a> and <a href="http://www.sprintpcs.com/">SprintPCS.com</a>.  This is my first write-up of the process involved in implementing a major new standard, and I didn&#8217;t take the notes I should have along the way&#8230; so please bear with me.</p>
<p><span id="more-11"></span></p>
<p>While the majority of <a href="http://www.shauninman.com/mentary/past/ifr_an_fir_alternative.php" title="The goods are released to the world">Shaun&#8217;s IFR script</a> (<a href="http://www.shauninman.com/mentary/past/ifr_revisited_and_revised.php" title="The goods become gooder">revised</a>) has been re-written for our own use, the basic concepts are already described in his articles above about how it works.  Not all of our pages are updated to use the flash headings yet, and may not be for some time (CMS integration and the like).  On Sprint.com, the <a href="http://www.sprint.com/business/" title="Recently XHTML-ized">business section</a> is using it, and on SprintPCS.com most of the shop side is using it (ex: <a href="http://www1.sprintpcs.com/explore/ueContent.jsp?scTopic=servicesFeatures" title="Whole section is using it">1</a>, <a href="http://www.sprintpcs.com/sitemap/" title="sprintpcs.com sitemap">2</a>, <a href="http://www1.sprintpcs.com/explore/PhonesAccessories/PhoneDetails.jsp?selectSkuId=samsungvi660" title="PCS Phone details">3</a>, <a href="http://www1.sprintpcs.com/explore/ueContent.jsp?scTopic=specialOffers" title="Special Offers - whole section">4</a>, <a href="http://www1.sprintpcs.com/explore/ueContent.jsp?scTopic=greatPhonesServices" title="Why Sprint?">5</a>), but not Manage (yet).</p>
<p>This all started when Shaun first launched IFR on his site, not his official documented launch linked above, but when he first started using it on his site.  A co-worker, <a href="http://www.point-break.com/" title="Sprints resident CSS/Standards Evangelist">France</a>, noticed it and sent me the link.  We were quite impressed and discussed how cool it would be to use on our sites here at work.  At that time we used one of the first <a href="http://www.stopdesign.com/articles/replace_text/">FIR</a> techniques for all H1&#8217;s and H2&#8217;s across the site which ended up being hundreds of titles and the maintenance was insane.</p>
<p>We discussed it kind of as a cool concept and left it at that, thinking that the &#8220;powers that be&#8221; wouldn&#8217;t go for such a prominant Flash element being used across the site.  But when I went home that night, I couldn&#8217;t enjoy my TV shows, I couldn&#8217;t game (*sigh*) and I couldn&#8217;t sleep because I couldn&#8217;t get the concept out of my head.  It was ruining my life. I came back in the next morning and spent every extra second I had on figuring out how I could make it work for us.  I went through every line of his script and picked it apart to see what made it tick.  In the end, I thought that it was something that was doable.</p>
<h4>Difficulties abound</h4>
<p>After making an initial draft of the script and discovering that I actually had a clue about what was going on in it, we started coming up with issues that we would need to overcome for it to work on our site.  Several of them we thought were insurmountable, and would make it so that we couldn&#8217;t complete the project.  But thanks to many great discussions where we just talked things out, and bounced ideas off of each other, we were able to overcome each problem that was presented.  This was a great testament to working as a team and not being afraid to ask for help.  I will go through each of the problems that I can remember, and what we did to overcome them.</p>
<ul>
<li><strong>Special Characters</strong> &#8211; The most troubling issue we saw at the outset was the need to compensate for was our extensive use of special characters in our copyrighted, registered, trademarked, and service marked product names.  This is where I first went to our resident Flash guru Lars Hacking to see what he thought.  This one gave us the biggest hang up.  He had some great ideas, and started tinkering in his free time at how to make it happen.  To compensate for characters that are not easily passed into flash, I check for those characters and replace them with characters we are fairly certain that we won&#8217;t need as themselves (ie: ~`{}[]).  Then on the Flash side, Lars takes them and puts in what it is supposed to be there.</li>
<li><strong>Our grid</strong> &#8211; Our site is based on a grid that we must follow.  We have 3 columns for the content, and a given module can span 1, 2 or 3 of those columns.  So the swf files had to vary in width to fit in the size of module they were currently in.  To do this I walk up the DOM structure (many thanks to PPK and his <a href="http://www.quirksmode.org/">invaluable site</a>) checking the className&#8217;s of each parent until I find one with one of our specific class names that designate width.  Once that is found (and I know which one it is), I can set the width that I have to work with and go from there.</li>
<li><strong>Underlined H2&#8217;s</strong> &#8211; We have two different kinds of titles, plain text, and underlined.  To compensate for this I did the same DOM walking above to see if we were inside of a container that had the className that would dictate an underlined version.</li>
<li><strong>Two-line H2&#8217;s</strong> &#8211; We have some instances where we allow our graphical h2&#8217;s to wrap to two-lines.  Using the same technique that Lars uses for counting in the flash, I find the actual width of the text in question (by character, specific to our font) and if it is greater then the width found in &#8220;Our grid&#8221; above I know to switch to the 2-line .swf version.  We do not allow 2-line underlined headings, so luckily we didn&#8217;t have to compensate for that mixture. As an FYI, H1&#8217;s are not allowed more then one line either.</li>
<li><strong>Error headings</strong> &#8211; Our error module has different font and background colors.  I again walk the DOM to find the container we are in, and then pass along the hex of the colors to be used for this given module.  The flash then applies the passed colors to the output.</li>
<li><strong>FOUC</strong> &#8211; We noticed (as did Shaun&#8217;s readers) that there was a breif Flash Of Unstyled Content before the flash headings kicked in.  To compensate for this, immediately after the flash version check is done, we load a .css file that updates the headings to be white text so that they are not seen.  So we aren&#8217;t really eliminating the FOUC, but changing it to something that you can&#8217;t really see.  We also add a second script (could be a few lines really, but using a remote script gives us better future control) to the end of the page that tells the Flash functions to fire.  This saves us a little more time by firing before the &#8220;onload&#8221; goes, just in case a single graphic is holding things up or something.  We set a variable to make sure that we don&#8217;t run it again &#8220;onload&#8221;.  This way the second file is optional, and can only help if it is used.</li>
<li><strong>Content behind the flash</strong> &#8211; Our H1&#8217;s sometimes sit on top of graphics.  To be more pleasing to the eye, the graphics will some times come up into the H1 row, when there is room for it to do so.  With Flash transparency not being completely sound, we couldn&#8217;t just allow the H1 swf to go the full width of the module overlapping the parts of the image that came up into the H1 space.  We had to use the text width determination mentioned above to determine the width of the text and then call an associated swf file that was sized close to that width (rounded up to the nearest 10px).  So we had 20 some odd templates for each width between 170-360.</li>
</ul>
<h4>Selling it to the people in authority</h4>
<p>After getting the majority of the above squared away so that we could be confident in saying that this is a solution that we could accomplish, we set up a meeting with our Web Standards comittee to show them this crazy idea.  Some of the points we were sure to make are as follows:</p>
<ul>
<li>Stats for our site say that more then 90% of our visitors had the Flash version we were targeting</li>
<li>This would save tons in labor costs</li>
<li>This would make our turn around time much faster</li>
<li>There would be graceful degredation for those without flash, using our accepted &#8220;non-image&#8221; standards</li>
<li>There would be very limited code impact, as all we have to do is add the call to the .js file on any page we want it to work on.  No need to go back to each heading and edit anything (as long as the page was built following our established structure)</li>
<li>Did we mention the large reduction in cost??? =)</li>
</ul>
<p>We must have put just enough &#8220;stuff&#8221; in their coffee cause they said &#8220;ok&#8230; go ahead and test it&#8221;.  So we put up a few test pages in production to see if anyone would notice, or complain.  We asked some visitors if anyone saw any issues on the pages in question.  A few noticed the FOUC, but after the fixes were put in place mentions of that problem went away.  Only one user (at sprintusers.com) noticed that we were using Flash, and that was because he had an extension on Mozilla that put an icon on any Flash elements on the page (asked him in a PM about it for those who can&#8217;t find mention in the thread).</p>
<p>After a few weeks of the above, we met again to discuss the results.  We had received no complaints, were able to show the results from the above informal forum polls, and had a few improvements to show over our first meeting.  They continued to like it (nothing in the coffee this time) and said they would take it to the people who paid the bills.  Since bill payers like numbers, below are some of the numbers we provided to give to them. These numbers are just educated guesses, and I am not sure how far off from reality they are.</p>
<p><strong>Bandwidth</strong><br />
26 K Savings in shop.css code (when we finally remove all reference to graphic titles)<br />
8 k Savings in heads.css code (when we finally remove all reference to graphic titles)<br />
20 K Savings in the actual graphics (average of .5k each X 40 titles per session [total guess])</p>
<p>54 K Total savings per visitor</p>
<p>With an average of 8 Million visitors per month, if on the low end we figure that they each download things only once, and then it&#8217;s cached for the rest of the monthâ€¦ we save 432 Gig a month of traffic.  With a conservative estimate of $1.00 per Gig, that is $5,000 in annual savings.  If we go to the other extreme and say there is NO caching, and every file is downloaded every time, we are looking at 7,000 Gig savings a month, for an annual savings of $84,000. The true amount lies somewhere in between.</p>
<p><strong>Server Load</strong><br />
We will be switching from 3-5 unique titles per page, to 6 total files that will cache for all pages.  Doing some math off the top of my head, that should save us 472 Million file loads per month (130 Million page views per month  X 4 titles per page = 520 Million vs 8 Million visitors X 6 files  = 48 Million files loaded).  This doesn&#8217;t even consider the <a href="http://weblogs.mozillazine.org/hyatt/archives/2003_12.html#004504">Safari bug</a> that loads all 300-500 graphics each time they view a page that won&#8217;t be an issue any more.  I can&#8217;t venture to guess how this will effect server performance, and how that transfers into a dollar amount.</p>
<p>While we were in beta testing with this project, Shaun released his articles on how to implement his IFR solution.  We were able to gleen a few tidbits from the article to reduce our flash file count from 40+ to 6 or so which helped alot.</p>
<p>The above are based off our current standing. It does not consider additional titles and size associated with them that could be added throughout the year.</p>
<p><strong>Work load</strong><br />
Guesses that are probably on the low side:</p>
<ul>
<li>VizD&#8217;s save 30-40 hrs a year</li>
<li>Code save 60-80 hrs a year</li>
</ul>
<p>If you did a conservative estimate of the time to create, cutout, save, add to code, add to stylesheet, test, check in, etcâ€¦ for each title,  we figure around a total of 5 minutes per image.</p>
<p>An example: A recent <a href="http://www.point-break.com/waves/in-the-cove/wwwsprintcombusiness-a-css-mega-relaunch/" title="France's write-up on the launch">business site re-launch</a>, which consolidated and simplified 7,000 pages, started with the flash titles from the get-go.  In the end they had 1,253 H1&#8217;s and 3,841 H2&#8217;s.  At the above average of 5 minutes per imageâ€¦ that is over 400 hours of time saved.  If you figure a professionals time at $50/hr that is a $20,000 savings for this project alone. (wish I could say the check was in the mail Shaun&#8230; but you know how it goes;)</p>
<p>After all of the above, we got approval to move forward with using it on the site and it has become a standard to be used across the comapny.  Naturally something like this doesn&#8217;t happen over night, so we have been updating what we can, when we can.  The above business site launch was a huge proof for the technique in both ease of use, and cost savings.  More pages will come online as they are edited, and as we find ways to get it put into existing Content Management Systems.</p>
<h4>Bring it on home</h4>
<p>To sum up&#8230; our old process for adding a new title was along the lines of the following:</p>
<ol>
<li>Put text inside of h1 or h2 tag</li>
<li>Try and find the title we wanted in our current list of titles in the .css file (an occasionally alphabetized list, that had a few different naming conventions introduced to it as we went along)</li>
<li>If we didn&#8217;t find it in the list, request the title from our Visual Designers</li>
<li>Get the image from VizD, rename as appropriate and place in the correct folder</li>
<li>Add a line to the .css file with a unique ID for this title.</li>
<li>Add the above ID to the .html file</li>
<li>Check the .html, .css and .gif file into cvs</li>
<li>Since the above are in different directoriesâ€¦ go back and check in the ones you missed or forgot to flag correctly.</li>
<li>&#8220;Enjoy&#8221; the fruits of our labor</li>
</ol>
<p>The new process</p>
<ol>
<li>Put text inside of h1 or h2 tag</li>
<li>Check .html into cvs</li>
<li>Enjoy the fruits of our labor</li>
</ol>
<p>Gotta love the simplicity.</p>
<p>Thanks and praise go to Shaun and his innovative thinking and willingness to share with the community (even though I was trying to steal it before he offered it up *gulp*). While our script is 99% re-written, it is still IFR at it&#8217;s heart.  Many thanks also go to all those involved with this project at Sprint for making it happen.  In no particular order&#8230; <a href="http://www.point-break.com/" title="One more link for good measure">France</a>, Lars, Candice, Jenney and Kirk.</p>
<p>If anyone actually reads this, maybe I&#8217;ll do a future article breaking down the actual code and why I did things the way I did&#8230; then the REAL guru&#8217;s can come in and tell me how to do it better =)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zelph.com/archives/2004/06/20/using-ifr-at-sprint/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>LinkedIn</title>
		<link>http://www.zelph.com/archives/2004/05/13/linkedin/</link>
		<comments>http://www.zelph.com/archives/2004/05/13/linkedin/#comments</comments>
		<pubDate>Thu, 13 May 2004 19:37:02 +0000</pubDate>
		<dc:creator>Aaron</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.zelph.com/archives/2004/05/13/linkedin/</guid>
		<description><![CDATA[Alex sent me an invite to become a part of LinkedIn today.  It&#8217;s a relatively new site that is kind of like Friendster and other social type sites, but it is geared specifically to the professional scene, and the &#8220;network&#8221; that so many strive to have.
I&#8217;ve sent it on to a few other people [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://3bh.belchak.com/">Alex</a> sent me an invite to become a part of <a href="http://www.linkedin.com/">LinkedIn</a> today.  It&#8217;s a relatively new site that is kind of like Friendster and other social type sites, but it is geared specifically to the professional scene, and the &#8220;network&#8221; that so many strive to have.</p>
<p>I&#8217;ve sent it on to a few other people tht I know and now have a whopping 4 people in my network.  Hopefully it will catch on, and seems to be doing rather well thus far with only being a few days old.</p>
<p>There is an interesting discussion going on <a href="http://joi.ito.com/archives/2003/05/07/linkedin_launches.html">over here</a> that even the CEO of LinkedIn has joined in on.  It is cool to note that several bugs or features were mentioned in the discussion that have since been added or resolved.  So it looks like they have some pretty good response time on improving the site.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zelph.com/archives/2004/05/13/linkedin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
