<?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>Todd Huss &#187; Javascript</title>
	<atom:link href="http://gabrito.com/post/category/technical/javascript/feed" rel="self" type="application/rss+xml" />
	<link>http://gabrito.com</link>
	<description>Anecdotes on Technology Leadership, Ruby, Java, Scala, Cloud Computing, Open-Source, SEO, and Design</description>
	<lastBuildDate>Thu, 08 Dec 2011 00:21:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Selenium Continuous Integration Runner</title>
		<link>http://gabrito.com/post/selenium-continuous-integration-runner</link>
		<comments>http://gabrito.com/post/selenium-continuous-integration-runner#comments</comments>
		<pubDate>Sat, 10 Jan 2009 20:34:47 +0000</pubDate>
		<dc:creator>Todd Huss</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Quality Assurance]]></category>
		<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://gabrito.com/?p=227</guid>
		<description><![CDATA[At Common Sense Media I wanted to get some functional testing up and running that didn&#8217;t require a lot of user training for the QA folks. I also wanted those tests to run in our Rightscale/Amazon EC2 hosted Hudson continuous &#8230; <a href="http://gabrito.com/post/selenium-continuous-integration-runner">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://seleniumhq.org/" target="_blank"><img src="http://gabrito.com/wp-content/uploads/2009/01/selenium1.png" alt="selenium" title="selenium" width="200" height="181" class="alignleft size-full wp-image-226" /></a> At <a href="http://www.commonsensemedia.org/">Common Sense Media</a> I wanted to get some functional testing up and running that didn&#8217;t require a lot of user training for the QA folks. I also wanted those tests to run in our <a href="http://www.rightscale.com/">Rightscale</a>/<a href="http://aws.amazon.com/ec2/">Amazon EC2</a> hosted <a href="https://hudson.dev.java.net/">Hudson continuous integration server</a>. As a result I&#8217;ve published the:</p>
<p><a href="http://github.com/thuss/selenium-continuous-integration-runner/tree/master"> Selenium Selenese Continuous Integration Runner</a> </p>
<p>on GitHub in the hopes that it will save other people time when trying to get their Selenese tests running from a continuous integration server. It&#8217;s very simple but one thing I battled with was that I had to patch the selenium JAR to get it to work with Firefox 3.0. It should work fine in any continuous integration server regardless if it&#8217;s <a href="https://hudson.dev.java.net/">Hudson</a>, <a href="http://studios.thoughtworks.com/cruise-continuous-integration">Cruise</a>, <a href="http://cruisecontrol.sourceforge.net/">Cruise Control</a>, <a href="http://www.atlassian.com/software/bamboo/">Bamboo</a>, etc.</p>
<p>The functional testing products I&#8217;ve used that drive a real browser include <a href="http://www.automatedqa.com/">Test Complete (commercial)</a>, <a href="http://seleniumhq.org/">Selenium</a>, and <a href="http://wtr.rubyforge.org/">Watir</a>. I think all 3 do a good job but one thing I like about Selenium is that it&#8217;s dirt simple to get a user productive with the Selenium IDE Firefox plugin. However, that benefit is also the most limiting factor of the <a href="http://seleniumhq.org/">Selenium IDE</a> which is that to be able to re-open tests in Selenium IDE you have to save them as Selenese (which is the most limited of the testing languages that Selenium supports). Still, I think Selenese is a reasonable choice for a lot of organizations that need a moderately sophisticated functional test suite.</p>
]]></content:encoded>
			<wfw:commentRss>http://gabrito.com/post/selenium-continuous-integration-runner/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Simple CMS using Google Spreadsheet API</title>
		<link>http://gabrito.com/post/simple-cms-using-google-spreadsheet-api</link>
		<comments>http://gabrito.com/post/simple-cms-using-google-spreadsheet-api#comments</comments>
		<pubDate>Tue, 12 Jun 2007 17:05:05 +0000</pubDate>
		<dc:creator>Todd Huss</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Software Engineering]]></category>

		<guid isPermaLink="false">http://gabrito.com/post/simple-cms-using-google-spreadsheet-api</guid>
		<description><![CDATA[Update 6/14/2007: Dion Almaer has published a nice Javascript helper which makes working with spreadsheets much nicer, I&#8217;ve moved my stuff to it and it&#8217;s a big improvement over using the Google JSON api directly. Publishing dynamic content on your &#8230; <a href="http://gabrito.com/post/simple-cms-using-google-spreadsheet-api">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><strong>Update 6/14/2007:</strong> <a href="http://www.almaer.com/blog/archives/001516.html">Dion Almaer has published a nice Javascript helper</a> which makes working with spreadsheets much nicer, I&#8217;ve moved my stuff to it and it&#8217;s a big improvement over using the Google JSON api directly.</p>
<p>Publishing dynamic content on your website in a format that you can style with CSS has gotten a whole lot easier with Google&#8217;s simple JSON based Javascript API&#8217;s. The two I&#8217;ve found myself playing with lately are the <a href="http://code.google.com/apis/ajaxfeeds/">Google Ajax Feed API</a> for publishing RSS and Atom feeds and the <a href="http://code.google.com/apis/spreadsheets/overview.html">Google Spreadsheet API<br />
</a> for publishing little snippets of text that should be easily editable.</p>
<p>Say you want a simple headline on your homepage that you can change daily. Here&#8217;s how you&#8217;d do it with the Google Spreadsheet API:</p>
<p><strong>1.</strong> Create a spreadsheet making the first row the column headers (important because you&#8217;ll refer to the cell by the column header):</p>
<p><img src='http://gabrito.com/wp-content/uploads/2007/06/easycmsspreadsheet.png' alt='easycmsspreadsheet.png' /><br />
<span id="more-178"></span><br />
<strong>2.</strong> Go to the publish tab and publish the spreadsheet: <a href="http://spreadsheets.google.com/pub?key=pouqRkV5D_eZT_VdOKu7CQA">http://spreadsheets.google.com/pub?key=pouqRkV5D_eZT_VdOKu7CQA</a>. Note in this example the key is <strong>pouqRkV5D_eZT_VdOKu7CQA</strong></p>
<p><!--adsense--></p>
<p><strong>3.</strong> Use a simple container div and some javascript to display the field:</p>
<pre>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&amp;lt;div id=&quot;headline&quot;&amp;gt;&amp;lt;/div&amp;gt;<br />
&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;<br />
function displayContent(json) { document.getElementById('headline').innerHTML = json.feed.entry[0].gsx$html.$t; }<br />
&amp;lt;/script&amp;gt;<br />
&amp;lt;script type=&quot;text/javascript&quot; <br />
src=&quot;http://spreadsheets.google.com/feeds/list/&lt;b&gt;pouqRkV5D_eZT_VdOKu7CQA&lt;/b&gt;/od6/public/values?alt=json-in-script&amp;amp;callback=displayContent&quot;&amp;gt;<br />
&amp;lt;/script&amp;gt;</div></div>
</pre>
<p><strong>Note:</strong> the spreadsheet key in the URL that needs to be replaced. Also, entry[0] refers to row 2 in the spreadsheet (because row 1 contains the column headers and is not considered an entry):</p>
<p><strong>4.</strong> The text appears dynamically on the page:</p>
<p>Palm releases Linux based <a href="http://www.palm.com/us/products/mobilecompanion/foleo/">Foleo</a></p>
<p><strong>5.</strong> When it&#8217;s time to update, make your changes to the spreadsheet, go the publish tab, and republish it and the changes will appear on your site!</p>
<p>The only real downside I can think of with this simple approach is that it&#8217;s not SEO friendly so if you want all search engine crawlers to follow those links you publish, you&#8217;re better off with a non-javascript solution. The <a href="http://groups.google.com/group/Google-Spreadsheets-Data-API">Spreadsheets API google group</a> is a good resource and <a href="http://imagine-it.org/google/spreadsheets/gadgets_all.html">Pamela Fox has some examples to look at</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://gabrito.com/post/simple-cms-using-google-spreadsheet-api/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Ajax enabling crusty legacy webapps with Prototype</title>
		<link>http://gabrito.com/post/ajax-enabling-crusty-legacy-webapps-with-prototype</link>
		<comments>http://gabrito.com/post/ajax-enabling-crusty-legacy-webapps-with-prototype#comments</comments>
		<pubDate>Sun, 26 Nov 2006 19:35:18 +0000</pubDate>
		<dc:creator>Todd Huss</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://gabrito.com/post/ajax-enabling-crusty-legacy-webapps-with-prototype</guid>
		<description><![CDATA[With all of the hype around Ajax it&#8217;s easy to think you might need an MVC framework with baked in Ajax support like Rails ActionPack or JBoss Seam to make Ajax easy. However, libraries like Prototype (which is what Rails &#8230; <a href="http://gabrito.com/post/ajax-enabling-crusty-legacy-webapps-with-prototype">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>With all of the hype around Ajax it&#8217;s easy to think you might need an MVC framework with baked in Ajax support like <a href="http://www.rubyonrails.org/">Rails ActionPack</a> or <a href="http://www.jboss.com/products/seam">JBoss Seam</a> to make Ajax easy. However, libraries like <a href="http://prototype.conio.net/">Prototype</a> (which is what Rails uses) make it so easy that it&#8217;s a snap to Ajax enable even the crustiest legacy web application!</p>
<p>Let&#8217;s take a look at what it takes to put a simple unordered list on a page with a refresh button to refresh the list without doing and page reload and then we&#8217;ll spruce it up a bit:<br />
<span id="more-162"></span><br />
1. First we&#8217;ll need a URL that should return the content of the list and say we&#8217;re working in a crusty old CGI environment so we&#8217;ll call it <strong>/cgi-bin/friends_online.cgi</strong> and say it returns the list of your friends that are online:</p>
<pre>&lt;ul&gt;
&lt;li&gt;Mr Bigglesworth&lt;/li&gt;
&lt;li&gt;Austin Powers&lt;/li&gt;
&lt;/ul&gt;</pre>
<p>2. Now on the page where we want to include the list of our friends that are online we&#8217;ll need to include <a href="http://prototype.conio.net/dist/prototype-1.4.0.js">prototype.js</a> in the head section of the page:</p>
<pre>&lt;script src="/js/prototype.js" type="text/javascript"&gt;&lt;/script&gt;</pre>
<p><!--adsense--></p>
<p>3. Let&#8217;s look at how simple this can be:</p>
<pre>&lt;div id="friends_online"&gt;
... friends online ...
&lt;/div&gt;
&lt;a href="javascript:var x=new Ajax.Updater('friends_online','/cgi-bin/friends_online.cgi')"&gt;Refresh&lt;/a&gt;</pre>
<p>When you hit the refresh button the contents of the friends_online div will be replaced with the output from friends_online.cgi, it&#8217;s that easy! Now let&#8217;s spruce it up a bit.</p>
<p>4. Since we&#8217;re not concerned with server load in this example we&#8217;ll populate the dynamic list using Ajax the first time the page loads as well. While we&#8217;re at it let&#8217;s also hide the <strong>Refresh</strong> button and <strong>friends_online</strong> div while the refresh is happening and <a href="http://www.sanbaldo.com/wordpress/1/ajax_gif/">display an animated loading gif</a>. Here&#8217;s what that would look like:</p>
<pre>&lt;div id="friends_online"&gt;&lt;/div&gt;
&lt;img id="loading" src="loading.gif" alt="Loading"/&gt;
&lt;a id="refresh" href="javascript:friendsOnline()"&gt;Refresh&lt;/a&gt;

&lt;script type="text/javascript"&gt;
function friendsOnline() {
	$('friends_online').style.display = 'none';
	$('refresh').style.display = 'none';
	$('loading').style.display = 'inline';
	new Ajax.Updater('friends_online', '/cgi-bin/friends_online.cgi', {
		parameters: 'key=value&amp;key2=value2',
		method: 'get',
		onComplete: function () {
			$('friends_online').style.display = 'block';
			$('refresh').style.display = 'inline';
			$('loading').style.display = 'none';
		}
	});
}
Event.observe(window, 'load', friendsOnline, false); // This calls friendsOnline on page load
&lt;/script&gt;</pre>
<p>I put in the parameters just to illustrate how to pass parameters with the URL. If I were to take this one step further I&#8217;d put the Javascript into a separate .js file and use <a href="http://wiki.script.aculo.us/scriptaculous/show/CombinationEffectsDemo">Script.aculo.us Effects.js BlindUp and BlindDown</a> to animate hiding and un-hiding the <strong>friends_online</strong> div. Hopefully you can see how much power Prototype gives you and how easy it can be to Ajax enable a legacy web application!</p>
]]></content:encoded>
			<wfw:commentRss>http://gabrito.com/post/ajax-enabling-crusty-legacy-webapps-with-prototype/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Javascript debugging in Internet Explorer</title>
		<link>http://gabrito.com/post/javascript-debugging-in-internet-explorer</link>
		<comments>http://gabrito.com/post/javascript-debugging-in-internet-explorer#comments</comments>
		<pubDate>Tue, 21 Nov 2006 17:35:27 +0000</pubDate>
		<dc:creator>Todd Huss</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://gabrito.com/post/javascript-debugging-in-internet-explorer</guid>
		<description><![CDATA[It always drives me nuts when I get a Javascript error in Internet Explorer that I can&#8217;t reproduce in Firefox because I&#8217;m used to debugging Javascript in Firefox with Firebug. I finally had to buckle down and figure out how &#8230; <a href="http://gabrito.com/post/javascript-debugging-in-internet-explorer">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>It always drives me nuts when I get a Javascript error in Internet Explorer that I can&#8217;t reproduce in Firefox because I&#8217;m used to debugging Javascript in Firefox with Firebug. I finally had to buckle down and figure out how to debug Javascript in IE and fortunately the <a href="http://blogs.msdn.com/ie/archive/2004/10/26/247912.aspx">IE Blog has a nice post on how to do this</a>. The solution I used:</p>
<p><!--adsense--></p>
<p>1. Install the free <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=2f465be0-94fd-4569-b3c4-dffdf19ccd99&#038;displaylang=en">Microsoft Script Debugger</a><br />
2. In Internet Explorer:<br/></p>
<pre>Tools->Internet Options…->Advanced->Disable Script Debugging (Internet Explorer)
Tools->Internet Options…->Advanced->Disable Script Debugging (Other)</pre>
<p>3. Hit a page with a Javascript error and it asks you <strong>Do you wish to Debug?</strong> and click <strong>Yes</strong></p>
<p>It&#8217;ll bring up the debugger with a nice yellow line on the Javascript causing the error.</p>
]]></content:encoded>
			<wfw:commentRss>http://gabrito.com/post/javascript-debugging-in-internet-explorer/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Deferring ad loading on your pages to avoid unnecessary outages</title>
		<link>http://gabrito.com/post/deferring-ad-loading-on-your-pages-to-avoid-unnecessary-outages</link>
		<comments>http://gabrito.com/post/deferring-ad-loading-on-your-pages-to-avoid-unnecessary-outages#comments</comments>
		<pubDate>Wed, 04 Oct 2006 03:49:30 +0000</pubDate>
		<dc:creator>Todd Huss</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://gabrito.com/post/deferring-ad-loading-on-your-pages-to-avoid-unnecessary-outages</guid>
		<description><![CDATA[At GreatSchools we&#8217;ve had 3rd party ad server outages or slowness effectively make our site unusable as users browsers waited for certain ads to render before rendering the rest of the page. I had originally thought just specifying height and &#8230; <a href="http://gabrito.com/post/deferring-ad-loading-on-your-pages-to-avoid-unnecessary-outages">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>At <a href="http://www.greatschools.net">GreatSchools</a> we&#8217;ve had 3rd party ad server outages or slowness effectively make our site unusable as users browsers waited for certain ads to render before rendering the rest of the page. I had originally thought just specifying height and width of the div element around the ad would be enough for the browser to move on given a slow ad load but in my tests with various ad servers that turned out not to be the case. After some research I discovered that the trick that some sites (such as <a href="http://digg.com">Digg.com</a>) employ is called source ordered content where you put the content in the order you&#8217;d really like it in (be it for SEO or for deferring ad calls) and then using CSS or Javascript to move it to the proper place.<br />
<span id="more-156"></span><br />
In this particular case I needed the ads to be called at the end of the page so that the browser would always render the full XHTML page to the user right away so that slow loading ads didn&#8217;t delay the rendering of the page.</p>
<p>To address this I wrote a simple javascript solution. Here&#8217;s how it works: </p>
<p><!--adsense--></p>
<p>1. I put my <a target="_blank" href="http://gabrito.com/files/deferredcontent.js">deferredcontent.js</a> code that I wrote in the head tag<br />
<strong style="font-size:.9em">&lt;script type=&#8221;text/javascript&#8221; src=&#8221;/js/deferredcontent.js&#8221;&gt;&lt;/script&gt;</strong><br />
2. I added an <strong style="font-size:.9em">onload=&#8221;relocateDeferredContent();&#8221;</strong> to the body tag<br />
3. I put an empty div tag where I ultimately wanted the content to end up. E.g <strong style="font-size:.9em">&lt;div id=&#8221;adleaderboard&#8221;&gt;&lt;/div&gt;</strong><br />
4. I put the deferred content in a display:none div just before the closing body tag at the very end of the page and put each block of code I wanted to relocate in a div with an id of defer-IDFROMSTEP3<br />
<strong style="font-size:.9em"><br />
&lt;div style=&#8221;display:none&#8221;&gt;<br />
&lt;div id=&#8221;defer-adleaderboard&#8221;&gt;<br />
[Ad code goes here]<br />
&lt;/div&gt;<br />
&lt;/div&gt;<br />
</strong></p>
<p>If you want to see it in action you can see it on this <a target="_blank" href="http://www.greatschools.net/city/San_Francisco/CA">San Francisco schools</a> page.</p>
]]></content:encoded>
			<wfw:commentRss>http://gabrito.com/post/deferring-ad-loading-on-your-pages-to-avoid-unnecessary-outages/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Enhancements to subModal</title>
		<link>http://gabrito.com/post/enhancements-to-submodal</link>
		<comments>http://gabrito.com/post/enhancements-to-submodal#comments</comments>
		<pubDate>Sat, 11 Mar 2006 01:03:11 +0000</pubDate>
		<dc:creator>Todd Huss</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://gabrito.com/post/enhancements-to-submodal</guid>
		<description><![CDATA[I started hacking around with subModal (modal javascript windows with background shading) this morning to add some features I liked in Lightbox Gone Wild. You can try it out and download my changes to subModal here. They are: Convert an &#8230; <a href="http://gabrito.com/post/enhancements-to-submodal">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>
I started hacking around with <a href="http://www.subimage.com/dhtml/subModal/">subModal</a> (modal javascript windows with background shading) this morning to add some features I liked in <a href="http://particletree.com/features/lightbox-gone-wild/">Lightbox Gone Wild</a>. You can try it out and download <a href="http://gabrito.com/files/subModal/">my changes to subModal here</a>. They are<span id="more-111"></span>:
</p>
<ol>
<li>Convert an href into a modal window just by setting its class=&#8221;submodal&#8221;. Now you can do
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&amp;lt;a href=&quot;foo.html&quot; class=&quot;submodal&quot;&amp;gt;foo&amp;lt;/a&amp;gt;</div></div>
<p>and when you click the link the contents will show up in a modal window. Previously submodal required specifying onclick functions and duplicating the target URL.</li>
<li>You no longer need to put special div containers in each individual page, subModal.js now adds them to the DOM for you.</li>
<li>I fixed a bug in Opera where one of the subModal functions that gets triggered on page load was called infintely.</li>
<li>Moved all the javascript into subModal.js and removed common.js</li>
<li>Safari active scrollbar fix suggested by <a href="http://springdeveloper.com/">Thomas Risberg</a> in a comment on this post.</li>
</ol>
<p>
Here is the file with my changes: <a href="/files/subModal.zip">subModal.zip</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://gabrito.com/post/enhancements-to-submodal/feed</wfw:commentRss>
		<slash:comments>31</slash:comments>
		</item>
		<item>
		<title>Hiring a web front-end engineer and a rant</title>
		<link>http://gabrito.com/post/hiring-a-front-end-web-developer-and-a-rant</link>
		<comments>http://gabrito.com/post/hiring-a-front-end-web-developer-and-a-rant#comments</comments>
		<pubDate>Wed, 08 Mar 2006 23:39:58 +0000</pubDate>
		<dc:creator>Todd Huss</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://gabrito.com/post/hiring-a-front-end-web-developer-and-a-rant</guid>
		<description><![CDATA[Update 3/28/06: Still looking&#8230; not for a web designer but a web front-end engineer. Jemery does a good job of describing the distrinction. No doubt about it, this is a hot skill set that is extremely hard to find! I&#8217;m &#8230; <a href="http://gabrito.com/post/hiring-a-front-end-web-developer-and-a-rant">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><strong>Update 3/28/06</strong>: Still looking&#8230; not for a web designer but a web front-end engineer. <a href="http://jeremy.zawodny.com/blog/archives/006497.html">Jemery does a good job of describing the distrinction</a>. No doubt about it, this is a hot skill set that is extremely hard to find!</p>
<p>
I&#8217;m <a href="http://www.craigslist.org/sfc/eng/142113953.html">hiring a front-end web developer (contract or FTE)</a> for either on-site or remote work. This is not a web designer or graphics designer job but rather a technical front-end developer, someone with crazy XHTML/CSS/Javascript skills<span id="more-110"></span> that can work in our JSPX environment. If you or someone you know fits the bill and is looking, leave a link to their portfolio site as a comment here or drop an email to the address in the <a href="http://www.craigslist.org/sfc/eng/142113953.html">job posting</a>. <a href="http://www.greatschools.net/">GreatSchools</a> is a great place to work and we get a ton of traffic so your work will be seen by several million people per month!
</p>
<p><!--adsense--></p>
<p><div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;strong&gt;&amp;lt;rant&amp;gt;&lt;/strong&gt;</div></div>
<p>Here&#8217;s a tip if you&#8217;re considering applying, the first thing I&#8217;ll do is go to your portfolio website and do a view source. Save us both time and only apply if your portfolio website W3C validates XHTML and shows proper usage and understanding of CSS. While I&#8217;ll eventually look at the work you did for other companies, I generally take it for granted that you did your portfolio site by yourself so it weighs more heavily than anything else! Having a blog is also a good thing, it&#8217;ll show me that you have enough enthusiasm for the work you do to take the initiative to write about it!
</p>
<p>
Of the 40 or so portfolio websites I&#8217;ve visited today, only 1 person&#8217;s validated and demonstrated proper usage of XHTML and CSS. Please, is the bar really that low? Disprove my pessimism and leave a link to your kick-ass validating XHTML portfolio site (or a friends) as a comment here, even if you&#8217;re not looking I&#8217;d like to see some better examples than I&#8217;ve seen today!</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;strong&gt;&amp;lt;/rant&amp;gt;&lt;/strong&gt;</div></div>
</p>
<p>Related reading: <a href="http://blogs.atlassian.com/rebelutionary/archives/000480.html">Applying for a job HOWTO</a></p>
]]></content:encoded>
			<wfw:commentRss>http://gabrito.com/post/hiring-a-front-end-web-developer-and-a-rant/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Modal windows with Javascript and CSS</title>
		<link>http://gabrito.com/post/modal-dialog-box-solutions-with-javascript-and-css</link>
		<comments>http://gabrito.com/post/modal-dialog-box-solutions-with-javascript-and-css#comments</comments>
		<pubDate>Wed, 08 Mar 2006 16:10:41 +0000</pubDate>
		<dc:creator>Todd Huss</dc:creator>
				<category><![CDATA[Desktop]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://gabrito.com/post/modal-dialog-box-solutions-with-javascript-and-css</guid>
		<description><![CDATA[One of the side projects I spent a little time on today was researching the use of on-page modal dialog boxes using Javascript and CSS that shade or darken the rest of the page while they are open. It looks &#8230; <a href="http://gabrito.com/post/modal-dialog-box-solutions-with-javascript-and-css">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>
One of the side projects I spent a little time on today was researching the use of on-page modal dialog boxes using Javascript and CSS that shade or darken the rest of the page while they are open. It looks like it will be an easy job thanks to these two solutions that are made freely available:<span id="more-109"></span>
</p>
<ul>
<li><a href="http://particletree.com/examples/lightbox/">Lightbox Gone Wild</a>: this is a nice solution based on <a href="http://www.huddletogether.com/projects/lightbox/">Lightbox</a> and <a href="http://prototype.conio.net/">Prototype</a> but a bit heavy weight due to the inclusion of prototype.js. If you haven&#8217;t seen the original lightbox effect <a href="http://www.huddletogether.com/projects/lightbox/">check it out</a>!</li>
<li><a href="http://www.subimage.com/dhtml/subModal/">SubModal</a>: looks like it was started from scratch and is lightweight.</li>
</ul>
<p>
I&#8217;m leaning towards subModal right now since Lightbox uses prototype.js which adds 48K to the first page view. We serve around 150,000 unique visitors per day so adding prototype would result in an additional 150 * 48K = 7GB of bandwidth usage per day (we&#8217;re not currently running mod_gzip).
</p>
<p>
Update: here are some other solutions including <a href="http://www.codeproject.com/useritems/js_floating_dimming_div.asp">a draggable one</a>, <a href="http://www.dynamicdrive.com/dynamicindex8/dhtmlwindow.htm">DHTML Window (draggable but no shading)</a>, <a href="http://www.blakems.com/sandbox/inline-popups.html#">draggable with shading or fixed position</a>, and <a href="http://www.scriptasylum.com/misc/popup/popup.html">Popup Window 4.5</a>
</p>
<p>
Related reading: <a href="http://looksgoodworkswell.blogspot.com/2005/11/popups-with-twist.html">Popups with a twist</a>, <a href="http://www.subimage.com/sublog/">Sublog: author of subModal&#8217;s blog</a>, and <a href="http://www.blakems.com/archives/000074.html">Inline popups</a></p>
]]></content:encoded>
			<wfw:commentRss>http://gabrito.com/post/modal-dialog-box-solutions-with-javascript-and-css/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

