<?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>Atlanta Jones &#187; Web Dev</title>
	<atom:link href="http://atlantajones.com/category/web-dev/feed/" rel="self" type="application/rss+xml" />
	<link>http://atlantajones.com</link>
	<description>If Geekiness Has A Name...It Must Be Atlanta Jones.</description>
	<lastBuildDate>Fri, 09 Apr 2010 02:37:09 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Even Easier jQuery Rollovers</title>
		<link>http://atlantajones.com/web-dev/even-easier-jquery-rollovers/</link>
		<comments>http://atlantajones.com/web-dev/even-easier-jquery-rollovers/#comments</comments>
		<pubDate>Thu, 03 Jul 2008 02:26:23 +0000</pubDate>
		<dc:creator>Atlanta Jones</dc:creator>
				<category><![CDATA[Web Dev]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.atlantajones.com/?p=48</guid>
		<description><![CDATA[Here&#8217;s a followup to my first jQuery tutorial posted back in September 2007. To date, that article has been viewed 3,000 times, so I&#8217;m thrilled some people have gotten some good out of it. 
Since then, I&#8217;ve honed the script even more, and wanted to share some of the improvements. 

As with the first tutorial, [...]]]></description>
			<content:encoded><![CDATA[<div class='wpfblike' style='height: 40px;'><fb:like href='http://atlantajones.com/web-dev/even-easier-jquery-rollovers/' layout='default' show_faces='false' width='400' action='like' colorscheme='light' /></div><p>Here&#8217;s a followup to my <a href="http://www.atlantajones.com/2007/09/27/easy-reusable-image-rollovers-with-jquery/">first jQuery tutorial</a> posted back in September 2007. To date, that article has been viewed 3,000 times, so I&#8217;m thrilled some people have gotten some good out of it. </p>
<p>Since then, I&#8217;ve honed the script even more, and wanted to share some of the improvements. </p>
<p><span id="more-48"></span></p>
<p>As with the first tutorial, this method makes a couple assumptions. First, it assumes your navigation buttons are within a container div identified by a unique id (ie, &#8220;nav&#8221;). It also assumes that your images follow a consistent naming scheme, such as nav_homeON.gif and nav_homeOFF.gif.</p>
<p>This tutorial is written as a standalone tutorial, so some code may be the same, or similar, to the original post. So here we go.</p>
<p>First, make sure your navigation is contained within an identifiable container:</p>

<div class="wp_syntax"><table width="500"><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre>&lt;div id=&quot;nav&quot;&gt;
	&lt;a&gt;&lt;img&gt;&lt;/a&gt;
	&lt;a&gt;&lt;img&gt;&lt;/a&gt;
&lt;/div&gt;</pre></td></tr></table></div>

<p>Then, in your javascript, make sure your jQuery code is surrounded by the usual:</p>

<div class="wp_syntax"><table width="500"><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="javascript">$<span style="color: #66cc66;">&#40;</span>document<span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">ready</span><span style="color: #66cc66;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
	<span style="color: #009900; font-style: italic;">// jquery code goes here</span>
<span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;</pre></td></tr></table></div>

<p>Now set up the mouseover event:</p>

<div class="wp_syntax"><table width="500"><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="javascript">$<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;#nav a&quot;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">mouseover</span><span style="color: #66cc66;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
<span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;</pre></td></tr></table></div>

<p>Next, set the source (src) of the image file. This is done by finding the child of the link that was moused over, in this case, an image.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript">imgsrc = $<span style="color: #66cc66;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">children</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;img&quot;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">attr</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;src&quot;</span><span style="color: #66cc66;">&#41;</span>;</pre></div></div>

<p>My original script then checked to see if the moused-over button was already &#8220;on&#8221;:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript">matches = imgsrc.<span style="color: #006600;">match</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066FF;">/_over/</span><span style="color: #66cc66;">&#41;</span>;</pre></div></div>

<p>This isn&#8217;t necessary with the revised method. Now all you need to check for was whether a valid image src was actually found. If so, then replace the word &#8216;OFF&#8217; in the filename with &#8216;ON&#8217;.</p>

<div class="wp_syntax"><table width="500"><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="javascript"><span style="color: #009900; font-style: italic;">// Fail if no image found</span>
<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #66cc66;">&#40;</span><span style="color: #000066; font-weight: bold;">typeof</span><span style="color: #66cc66;">&#40;</span>imgsrc<span style="color: #66cc66;">&#41;</span> != <span style="color: #3366CC;">'undefined'</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
	<span style="color: #009900; font-style: italic;">// Replace OFF with ON</span>
	imgsrcON = imgsrc.<span style="color: #006600;">replace</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'OFF'</span>, <span style="color: #3366CC;">'ON'</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #009900; font-style: italic;">// Now change the src to the 'ON' value</span>
	$<span style="color: #66cc66;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">children</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;img&quot;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">attr</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;src&quot;</span>, imgsrcON<span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>This method is better than the previous one as it doesn&#8217;t use regex or have to check for previously selected links. Plus, it includes better error checking to eliminate those pesky &#8220;undefined&#8221; javascript errors.</p>
<p>Handling the mouseout is the same as before. All you need to do is reset the image source to the value that was initially set on the mouseover, checking for the existence of a valid image src as before:</p>

<div class="wp_syntax"><table width="500"><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="javascript">$<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;#nav a&quot;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">mouseout</span><span style="color: #66cc66;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
	<span style="color: #009900; font-style: italic;">// trap for 'undefined' errors again</span>
	<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #66cc66;">&#40;</span><span style="color: #000066; font-weight: bold;">typeof</span><span style="color: #66cc66;">&#40;</span>imgsrc<span style="color: #66cc66;">&#41;</span> != <span style="color: #3366CC;">'undefined'</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
		$<span style="color: #66cc66;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">children</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;img&quot;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">attr</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;src&quot;</span>, imgsrc<span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;</pre></td></tr></table></div>

<p>I&#8217;ve also implemented a better preloading mechanism. This goes above the rollover code:</p>

<div class="wp_syntax"><table width="500"><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td class="code"><pre class="javascript"><span style="color: #009900; font-style: italic;">// Loop over each image within the navigation container</span>
$<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;#nav img&quot;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">each</span><span style="color: #66cc66;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
	<span style="color: #009900; font-style: italic;">// Set the original src</span>
	rollsrc = $<span style="color: #66cc66;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">attr</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;src&quot;</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #009900; font-style: italic;">// Replace OFF with ON</span>
	rollON = rollsrc.<span style="color: #006600;">replace</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'OFF'</span>, <span style="color: #3366CC;">'ON'</span><span style="color: #66cc66;">&#41;</span>;
	newImg = <span style="color: #003366; font-weight: bold;">new</span> Image<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #009900; font-style: italic;">// create new image object</span>
	$<span style="color: #66cc66;">&#40;</span>newImg<span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">attr</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;src&quot;</span>, rollON<span style="color: #66cc66;">&#41;</span>; <span style="color: #009900; font-style: italic;">// set new obj's src</span>
<span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;</pre></td></tr></table></div>

<p>Line 2 creates a loop to run the following function for every image within the #nav div. Line 4 sets the image&#8217;s file source, and line 3 replaces &#8216;OFF&#8217; with &#8216;ON&#8217;. Note that this version of the rollover script doesn&#8217;t care whether your buttons are gif&#8217;s or jpg&#8217;s.  And the last line creates a new image element with the ON state of the image.</p>
<p>You can see the script in action <a href="http://www.atlantajones.com/tutorials/rollovers2/">here</a>.<br />
Download the .js file <a href="http://www.atlantajones.com/tutorials/rollovers2/rollovers.js">here</a>.</p>
<p>Thanks for checking out this tutorial. I&#8217;ve got some other things up my sleeve that I&#8217;ll be posting soon <img src='http://atlantajones.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://atlantajones.com/web-dev/even-easier-jquery-rollovers/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>CSS3 Presentation Video</title>
		<link>http://atlantajones.com/web-dev/css3-presentation-video/</link>
		<comments>http://atlantajones.com/web-dev/css3-presentation-video/#comments</comments>
		<pubDate>Wed, 25 Jun 2008 23:34:23 +0000</pubDate>
		<dc:creator>Atlanta Jones</dc:creator>
				<category><![CDATA[Web Dev]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.atlantajones.com/?p=47</guid>
		<description><![CDATA[Here is a fully-edited video of my presentation entitled &#8220;The Future Today: CSS3 and JavaScript&#8221;, which I gave June 3rd at the Spring Break conference at Ohio University. My hope was to put this on a hosted service to absorb some bandwidth. But the Google video uploader is kind of janky and Vimeo won&#8217;t allow [...]]]></description>
			<content:encoded><![CDATA[<div class='wpfblike' style='height: 40px;'><fb:like href='http://atlantajones.com/web-dev/css3-presentation-video/' layout='default' show_faces='false' width='400' action='like' colorscheme='light' /></div><p>Here is a fully-edited video of my presentation entitled &#8220;The Future Today: CSS3 and JavaScript&#8221;, which I gave June 3rd at the Spring Break conference at Ohio University. My hope was to put this on a hosted service to absorb some bandwidth. But the Google video uploader is kind of janky and Vimeo won&#8217;t allow files over 500mb. </p>
<p>So for now, here is an encoded Flash video, hosted on my Dreamhost account. Let&#8217;s hope it holds up. As soon as I can, I&#8217;ll swap this out for something hosted elsewhere (ie, not on my dime). Enjoy, and feel free to let me know if this has been helpful.</p>
<p><span id="more-47"></span></p>
<p><script type="text/javascript" src="https://media.dreamhost.com/swfobject.js"></script></p>
<div id="player"><a href="http://www.macromedia.com/go/getflashplayer">Get the Flash Player</a> to see this player.</div>
<p><script type="text/javascript">
var so = new SWFObject('https://media.dreamhost.com/mediaplayer.swf','mpl','640','480','8');
so.addParam('allowscriptaccess','always');
so.addParam('allowfullscreen','true');
so.addVariable('height','480');
so.addVariable('width','640');
so.addVariable('file','http://atlantajones.com/video/springbreak2008.flv');
so.write('player');
</script></p>
<p>Code samples and PDF slides of this talk are <a href="/css3">available here.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://atlantajones.com/web-dev/css3-presentation-video/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Back From Spring Break</title>
		<link>http://atlantajones.com/web-dev/back-from-spring-break/</link>
		<comments>http://atlantajones.com/web-dev/back-from-spring-break/#comments</comments>
		<pubDate>Wed, 04 Jun 2008 16:43:29 +0000</pubDate>
		<dc:creator>Atlanta Jones</dc:creator>
				<category><![CDATA[Web Dev]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[presentations]]></category>

		<guid isPermaLink="false">http://www.atlantajones.com/?p=46</guid>
		<description><![CDATA[Well, sorta back; I&#8217;m waiting for my flight back to Atlanta at the Akron/Canton airport. Overall, I think this year&#8217;s Spring Break conference went well, at least what bits of it I had time to see. The first night, there was a speaker&#8217;s dinner at a swanky restaurant within Baker Center at Ohio University called [...]]]></description>
			<content:encoded><![CDATA[<div class='wpfblike' style='height: 40px;'><fb:like href='http://atlantajones.com/web-dev/back-from-spring-break/' layout='default' show_faces='false' width='400' action='like' colorscheme='light' /></div><p>Well, sorta back; I&#8217;m waiting for my flight back to Atlanta at the Akron/Canton airport. Overall, I think this year&#8217;s <a href="http://www.sbconference.com">Spring Break</a> conference went well, at least what bits of it I had time to see. The first night, there was a speaker&#8217;s dinner at a swanky restaurant within <a href="http://www.ohio.edu/center/">Baker Center</a> at <a href="http://www.ohio.edu">Ohio University</a> called <a href="http://www.ohio.edu/39/">Latitude 39</a>. It was nice to get to chat with some of the other speakers in advance of the conference. </p>
<p><strong>Code samples and slides online <a href="/css3">here</a>. Video (with slides) can be <a href="http://www.atlantajones.com/2008/06/25/css3-presentation-video/">found here.</a></strong></p>
<p>For accommodations, the university paid for a night&#8217;s stay at the <a href="http://www.ouinn.com/">Ohio University Inn</a>. It&#8217;s pretty much Athens&#8217; only &#8220;hotel&#8221;, but it was quite nice. Some last-minute slide rehearsal and tweaks, and it was up again at 6am to get ready for the big day.</p>
<p>The opening session dealt with how the linguistics department was doing English-language training for students all over the world using <a href="http://www.adobe.com/products/acrobatconnect/">Adobe Connect</a>. I&#8217;d frankly never really thought much about Connect, but their demo, while sort of clunky at times, really made me want to check it out. </p>
<p>Next, I decided to sit in on another session to kill time before my talk. This one was entitled &#8220;Get Into an AIR Application Using ActionScript 3&#8243;. I was hoping this would be more of an entry-level Adobe Air presentation, but it was incredibly complex, at least to me. Even though I&#8217;ve dabbled a bit in Air and even Actionscript, I only recognized fragments of what he was talking about. I think the guy is totally sharp and knows his stuff. I just feel he was talking at a WAY higher level than the typical Spring Break audience. Thankfully, I had an excuse to duck out early to get ready for my talk.</p>
<p>The room for my talk was somewhat of a mini-theater, in that it had two rows of seats with an aisle down the middle, a podium and screen at the far end. I think it probably seated maybe 75. As usual, I had a bit of trouble initially getting my Macbook set up the way I wanted with the projector, but not too bad. </p>
<p>To be honest, I didn&#8217;t feel super nervous. I was nervous, yes, but oddly not as much as I was to give the talk to my co-workers. I think it may be because I don&#8217;t really know the audience at a conference. So if I bomb, I never have to see those people again. If I blow it at work, I have to see those people every day <img src='http://atlantajones.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Actually, my nervousness jumped up to eleven when I looked up and sitting in the audience was none other than <a href="http://www.meyerweb.com">Eric Meyer</a> himself. Holy crap. Hopefully this realization did not affect my performance much. </p>
<p>Overall I think the talk went well and I&#8217;m satisfied with my performance, especially this being my first talk at my first conference. The head count was somewhere around 58, which isn&#8217;t too shabby, given the overall attendance of the conference.</p>
<p><a  href="http://www.flickr.com/photos/thundermutt/2550738177/" class="tt-flickr tt-flickr-Small"><img class="alignright" src="http://farm4.static.flickr.com/3125/2550738177_f9d494a702_m.jpg" alt="Eric Meyer @ Spring Break 2008" width="199" height="240" border="0" /></a> Once my session let out, we had lunch and attended Eric Meyer&#8217;s keynote &#8220;The Emerging Craftsman&#8221;. Overall, a pretty good talk. Never heard Eric speak before, but it&#8217;s clear he&#8217;s been doing it for a while. </p>
<p>Next, we attended the MooTools session. Figured it was always good to see what the non-jQuery world is up to. Unfortunately, the talk was pretty-high level, with little beginner-digestible information. And it was clear the presenter was super nervous, which didn&#8217;t help. It was still a good effort, and I&#8217;m sure a couple people got something out of it. Didn&#8217;t make me want to switch to MooTools, though. </p>
<p>The rest of the day, just kinda hung around waiting for the end-of-day session with Eric. Actually skipped the next-to-last session to go out foraging for coffee on the streets of Athens. Got totally drenched in the rain, but the iced latte was totally worth it. </p>
<p>Eric&#8217;s last session was a combination tutorial and Q&#038;A session. He presented a table-based browser timeline that was actually executed in a really interesting, clever way. Hoping he makes it available on the web. I also finally learned what the hell microformats were, and how cool they could be for our clients. </p>
<p>Thankfully, I had a chance to speak with Eric a couple times. I knew I was setting myself up for a smackdown, but I had to know what he thought of my talk. He said he was only in it for maybe the middle third, but what he thought what he saw of it was pretty good. We also talked a bit about things like jQuery, CSS3 and microformats. Was really glad to get the chance to meet him, albeit briefly. </p>
<p>Would&#8217;ve liked to have hung around for the post-conference mixer, but had another engagement and it was starting to get nasty outside. My thoughts on the conference? Overall I think it went well. It wasn&#8217;t without flaws and room for improvement. Baker Center is a fabulous venue and I&#8217;d be happy to see it held there next year. The parking is kind of bad, though, which is partially because of some nearby construction. Hopefully that can be coordinated better next year. </p>
<p>I think if I had what could be considered an actual &#8220;complaint&#8221;, it would be ensuring the subject matter and level of complexity fit more within the average audience member. I can only speak to the two sessions I sat in on that were really not geared towards beginners at all. True, the conference should not be all-newbie, either. But there needs to be a better mix and some indication to the guest what they&#8217;re getting themselves into. I&#8217;d even suggest going so far as to &#8220;pre-screen&#8221; presenters&#8217; outlines and/or slides, if for no other reason than to classify them by how advanced they are. </p>
<p>Didn&#8217;t get a chance to see me there? I&#8217;ve put the slides and code examples online, which you can <a href="/css3">find here</a>. The university videotaped each session and they&#8217;ll have those available in podcast form, although I&#8217;m not sure of the timeline. Luckily I was fortunate enough to have a buddy make the trip to Athens to videotape it as well. This way, I have a copy I can edit myself and mix in my slide screens. I hope to have this online within the next few days. </p>
<p>Once the video is online, I&#8217;d appreciate any comments, questions or other feedback anyone might have. Spring Break 2009 is March 25th!</p>
<p>Update: <a href="http://www.atlantajones.com/2008/06/25/css3-presentation-video/">Video is now online.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://atlantajones.com/web-dev/back-from-spring-break/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>ClipRunner Launches</title>
		<link>http://atlantajones.com/web-dev/cliprunner-launches/</link>
		<comments>http://atlantajones.com/web-dev/cliprunner-launches/#comments</comments>
		<pubDate>Mon, 03 Dec 2007 01:56:01 +0000</pubDate>
		<dc:creator>Atlanta Jones</dc:creator>
				<category><![CDATA[Web Dev]]></category>

		<guid isPermaLink="false">http://www.atlantajones.com/2007/12/02/cliprunner-launches/</guid>
		<description><![CDATA[Finally launched a very basic web app I&#8217;ve been piddling around with for a while. It&#8217;s called ClipRunner, and it&#8217;s only purpose is to help get bits of text from one computer to another. 
I built this mainly for my own needs. Seemed like every time I turned around, I needed to get a little [...]]]></description>
			<content:encoded><![CDATA[<div class='wpfblike' style='height: 40px;'><fb:like href='http://atlantajones.com/web-dev/cliprunner-launches/' layout='default' show_faces='false' width='400' action='like' colorscheme='light' /></div><p><a href='http://www.cliprunner.com/'><img align="right" class="alignright" src='http://www.atlantajones.com/wordpress-content/uploads/2007/12/picture-2.png' alt='ClipRunner Logo' /></a>Finally launched a <em>very</em> basic web app I&#8217;ve been piddling around with for a while. It&#8217;s called <a href="http://cliprunner.com">ClipRunner</a>, and it&#8217;s only purpose is to help get bits of text from one computer to another. </p>
<p>I built this mainly for my own needs. Seemed like every time I turned around, I needed to get a little bit of text from one place to another. Usually things like a long URL, an IP address, WEP key, or something I otherwise wouldn&#8217;t be able to remember going from one office to another. </p>
<p>The concept is pretty simple. Type or paste your text into the big field, enter a &#8220;pickup code&#8221; in the little field. Then go to the other computer and go to cliprunner.com/yourcode to retrieve it.</p>
<p>Is it secure? Well, it depends on what your criteria is. There is no real authentication, so if someone guesses your code, they&#8217;ll see it in all its glory. But as the fine print points out, be smart about it. For example, pasting a Photoshop serial number is one thing. But don&#8217;t SAY it&#8217;s a photoshop serial. And don&#8217;t use a pickup code of: photoshopserial. I think that&#8217;s pretty reasonable. </p>
<p>At any rate, I&#8217;d love to get feedback on the utility of this thing, even though I know I&#8217;ll be using it myself <img src='http://atlantajones.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://atlantajones.com/web-dev/cliprunner-launches/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Get Your Puppet On</title>
		<link>http://atlantajones.com/web-dev/get-your-puppet-on/</link>
		<comments>http://atlantajones.com/web-dev/get-your-puppet-on/#comments</comments>
		<pubDate>Tue, 13 Nov 2007 03:42:05 +0000</pubDate>
		<dc:creator>Atlanta Jones</dc:creator>
				<category><![CDATA[Web Dev]]></category>

		<guid isPermaLink="false">http://www.atlantajones.com/2007/11/12/get-your-puppet-on/</guid>
		<description><![CDATA[I’m happy to announce that I&#8217;m now on board the web development team for the video podcast called ‘dotBoom‘. I&#8217;ll be doing the PHP and Ajax work for the new site to be designed for season two. Or rather, Season 2.0.
dotBoom is a show about frustrated web designers, all done with puppets. Excuse me, people [...]]]></description>
			<content:encoded><![CDATA[<div class='wpfblike' style='height: 40px;'><fb:like href='http://atlantajones.com/web-dev/get-your-puppet-on/' layout='default' show_faces='false' width='400' action='like' colorscheme='light' /></div><p><img id="image44" class="alignright" src="http://fireboxstudios.com/blog/wp-content/uploads/dotboom1.jpg" alt="dotBoom" align="right" />I’m happy to announce that I&#8217;m now on board the web development team for the video podcast called ‘<a href="http://dotboom.ca">dotBoom</a>‘. I&#8217;ll be doing the PHP and Ajax work for the new site to be designed for season two. Or rather, Season 2.0.</p>
<p>dotBoom is a show about frustrated web designers, all done with puppets. Excuse me, people of felt. The show is created by Brian Hogg of Ontario, Canada. He also creates the puppets, sets, and performs many of the characters.</p>
<p><img id="image45" class="alignright" src="http://fireboxstudios.com/blog/wp-content/uploads/dotboom2.jpg" alt="dotBoom" align="right" />Check out their <a href="http://www.dotboom.ca/episodes.php">28 episodes</a> so far, plus all kinds of outtakes and behind-the-scenes. Be aware, that these characters are web developers, so there’s bound to be some strong language <img class="wp-smiley" src="http://fireboxstudios.com/blog/wp-includes/images/smilies/icon_smile.gif" alt=":)" /></p>
<p>More updates as they become available.</p>
]]></content:encoded>
			<wfw:commentRss>http://atlantajones.com/web-dev/get-your-puppet-on/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Easy, Reusable Image Rollovers with jQuery</title>
		<link>http://atlantajones.com/web-dev/easy-reusable-image-rollovers-with-jquery/</link>
		<comments>http://atlantajones.com/web-dev/easy-reusable-image-rollovers-with-jquery/#comments</comments>
		<pubDate>Fri, 28 Sep 2007 03:55:34 +0000</pubDate>
		<dc:creator>Atlanta Jones</dc:creator>
				<category><![CDATA[Web Dev]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.atlantajones.com/2007/09/27/easy-reusable-image-rollovers-with-jquery/</guid>
		<description><![CDATA[Okay, so this is my first jQuery tutorial (or any tutorial for that matter). So here goes&#8230;
In my own experience, image rollovers for navigation is a pretty repetitive task. Almost every site I build has them. For the longest time, I simply used the javascript spit out by Dreamweaver. Sure it worked, but it required [...]]]></description>
			<content:encoded><![CDATA[<div class='wpfblike' style='height: 40px;'><fb:like href='http://atlantajones.com/web-dev/easy-reusable-image-rollovers-with-jquery/' layout='default' show_faces='false' width='400' action='like' colorscheme='light' /></div><p>Okay, so this is my first jQuery tutorial (or <em>any</em> tutorial for that matter). So here goes&#8230;</p>
<p>In my own experience, image rollovers for navigation is a pretty repetitive task. Almost every site I build has them. For the longest time, I simply used the javascript spit out by Dreamweaver. Sure it worked, but it required including an extra javascript file, and inline javascript for mouseover and mouseout events. </p>
<p>The more I got into jQuery, the more I realized this was an ugly solution. And as I stopped using Dreamweaver for regular development over a year ago, I thought I&#8217;d come up with a solution that could just be easily dropped into each new site and would just work. </p>
<p>Before I start, I should note that usage of this script assumes a couple things. It assumes your navigation images are contained within a div with an id (I use #nav). It also assumes that your over state images are named consistently. For example, if your contact image is nav_contact.gif, your rollover image will need to be something like nav_contact_over.gif.</p>
<p>It also assumes your navigation is structured thusly:</p>

<div class="wp_syntax"><div class="code"><pre>&lt;div&gt;&lt;a&gt;&lt;img&gt;&lt;/a&gt;&lt;a&gt;&lt;img&gt;&lt;/a&gt;&lt;/div&gt;</pre></div></div>

<p>First, make sure your jQuery code is surrounded by the usual:</p>

<div class="wp_syntax"><table width="500"><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="javascript">$<span style="color: #66cc66;">&#40;</span>document<span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">ready</span><span style="color: #66cc66;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
<span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;</pre></td></tr></table></div>

<p>Now set up the mouseover event:</p>

<div class="wp_syntax"><table width="500"><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="javascript">$<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;#nav a&quot;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">mouseover</span><span style="color: #66cc66;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
<span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;</pre></td></tr></table></div>

<p>Next, set the source (src) of the image file. This is done by finding the child of the link that was moused over, in this case, an image.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript">imgsrc = $<span style="color: #66cc66;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">children</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;img&quot;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">attr</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;src&quot;</span><span style="color: #66cc66;">&#41;</span>;</pre></div></div>

<p>We&#8217;ll only perform the rollover if the image state is not already &#8220;ON&#8221;.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript">matches = imgsrc.<span style="color: #006600;">match</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066FF;">/_over/</span><span style="color: #66cc66;">&#41;</span>;</pre></div></div>

<p>If it&#8217;s not, add the &#8216;_over&#8217; bit to the filename and change the image source with attr(&#8220;src&#8221;):</p>

<div class="wp_syntax"><table width="500"><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="javascript"><span style="color: #000066; font-weight: bold;">if</span> <span style="color: #66cc66;">&#40;</span>!matches<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
	imgsrcON = imgsrc.<span style="color: #006600;">replace</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066FF;">/.<span style="color: #006600;">gif</span>$/ig</span>,<span style="color: #3366CC;">&quot;_over.gif&quot;</span><span style="color: #66cc66;">&#41;</span>;
	$<span style="color: #66cc66;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">children</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;img&quot;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">attr</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;src&quot;</span>, imgsrcON<span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>And that&#8217;s it! Handling the mouseout is pretty simple. All you need to do is reset the image source to the value that was initially set on the mouseover:</p>

<div class="wp_syntax"><table width="500"><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="javascript">$<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;#nav a&quot;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">mouseout</span><span style="color: #66cc66;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
	$<span style="color: #66cc66;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">children</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;img&quot;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">attr</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;src&quot;</span>, imgsrc<span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;</pre></td></tr></table></div>

<p>One more thing. If you have a lot of nav images, or they are not tiny files, you might want to preload them. Here is a function that will automatically preload all the images within the #nav div:</p>

<div class="wp_syntax"><table width="500"><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="javascript">$<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;#nav img&quot;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">each</span><span style="color: #66cc66;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
	rollsrc = $<span style="color: #66cc66;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">attr</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;src&quot;</span><span style="color: #66cc66;">&#41;</span>;
	rollON = rollsrc.<span style="color: #006600;">replace</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066FF;">/.<span style="color: #006600;">gif</span>$/ig</span>,<span style="color: #3366CC;">&quot;_over.gif&quot;</span><span style="color: #66cc66;">&#41;</span>;
	$<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;&lt;img&gt;&quot;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">attr</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;src&quot;</span>, rollON<span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;</pre></td></tr></table></div>

<p>Line 1 creates a loop to run the following function for every image within the #nav div. Line 2 sets the image&#8217;s filename, and line 3 replaces &#8216;.gif&#8217; with &#8216;_over.gif&#8217;. You can replace .gif with .jpg or whatever.  And line 4 creates a new image element with the ON state of the image.</p>
<p>You can see the script in action <a href="http://www.atlantajones.com/tutorials/rollovers/">here</a>.<br />
Download the .js file <a href="http://www.atlantajones.com/tutorials/rollovers/rollovers.js">here</a>.</p>
<p>So that&#8217;s it. This stuff is probably beyond basic for experienced jQuery users, but if you&#8217;re just getting started, hopefully this will help. I&#8217;ve got several other jQuery scripts like this, so hopefully this won&#8217;t be my last tutorial (even though this was more involved than I thought it was going to be <img src='http://atlantajones.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://atlantajones.com/web-dev/easy-reusable-image-rollovers-with-jquery/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
	</channel>
</rss>
