<?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>Bloggerrific</title>
	<atom:link href="http://www.davidjrush.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.davidjrush.com</link>
	<description>David J. Rush is a web designer and usability consultant in Pittsburgh who freelances and blogs about anything web related.</description>
	<lastBuildDate>Tue, 20 Mar 2012 03:06:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Opting Out Of Advertising Cookies</title>
		<link>http://www.davidjrush.com/blog/2012/01/opting-out-of-advertising-cookies/</link>
		<comments>http://www.davidjrush.com/blog/2012/01/opting-out-of-advertising-cookies/#comments</comments>
		<pubDate>Wed, 04 Jan 2012 13:00:48 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[User Experience]]></category>
		<category><![CDATA[advertising]]></category>
		<category><![CDATA[cookies]]></category>

		<guid isPermaLink="false">http://www.davidjrush.com/?p=981</guid>
		<description><![CDATA[The internet is a creepy place, if you haven&#8217;t noticed&#8230; The majority of people are oblivious to what really goes on behind the scenes. Companies buy and sell information about you more than you could imagine, and they spend a lot of money on it. One of the most common pieces of information about you [...]]]></description>
			<content:encoded><![CDATA[<p>The internet is a creepy place, if you haven&#8217;t noticed&#8230; The majority of people are oblivious to what really goes on behind the scenes. Companies buy and sell information about you more than you could imagine, and they spend a lot of money on it. One of the most common pieces of information about you is your browser history. Advertising companies set cookies in your browser when you visit certain websites, and then they use that information to target additional advertising toward you after you&#8217;ve left those sites. Let&#8217;s run through an example scenario.</p>
<p>You open up your browser to your homepage of <a href="http://www.google.com" target="_blank">Google</a> and do a search for laptops. Google keeps track of this for their future advertising usage. You click on a link to <a href="http://www.bestbuy.com" target="_blank">Best Buy</a>. Now you have another cookie indicating you went to that website to look at laptops. Then say you click on an ad while looking at laptops for a <a href="http://us.wii.com" target="_blank">Wii</a>. Now another advertising network knows you are interested in buying a Wii or other video gaming system. So with just a few pageviews, several ad networks know you want a laptop, video game system, wii, and that you were thinking about buying one at Best Buy.</p>
<p>Now, the next hour, the next day, the next week, the next month, you will see ads now targeting those exact things, Best Buy, Wii, laptops. Some people consider this a convenience and prefer that ad networks know these things about you. I however, along with many others, consider this an invasion of my privacy. I will do my own research, and I don&#8217;t need some cheap ad on the internet to tell me what to read and what to buy. That&#8217;s why I&#8217;ve opted out of advertising cookies. It is a legal requirement of advertising networks actually, which shows you how sleazy what they are doing really is. If you want to opt out of every advertising network out there, there is a fantastic non-profit resource available to you. Check out the <a href="http://www.networkadvertising.org/index.asp" target="_blank">Network Advertising Initiative</a> to get rid of all those ad networks on your computer so they can leave you alone!</p>
<p>Safe browsing&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidjrush.com/blog/2012/01/opting-out-of-advertising-cookies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Simple JQuery Tooltip</title>
		<link>http://www.davidjrush.com/blog/2011/12/simple-jquery-tooltip/</link>
		<comments>http://www.davidjrush.com/blog/2011/12/simple-jquery-tooltip/#comments</comments>
		<pubDate>Tue, 06 Dec 2011 13:00:24 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[JQuery Tutorials]]></category>
		<category><![CDATA[speech bubbles]]></category>
		<category><![CDATA[tooltips]]></category>

		<guid isPermaLink="false">http://www.davidjrush.com/?p=1106</guid>
		<description><![CDATA[There are some great JQuery tooltip plugins out there, such as qTip2. In fact, I use qTip2 on this site, and on my fulltime employer&#8217;s site, College Prowler because of how robust I think it is. However, sometimes, on smaller sites, you don&#8217;t want to load all that excessive code built to work in hundreds [...]]]></description>
			<content:encoded><![CDATA[<p>There are some great JQuery tooltip plugins out there, such as <a href="http://craigsworks.com/projects/qtip2/" target="_blank">qTip2</a>. In fact, I use qTip2 on this site, and on my fulltime employer&#8217;s site, <a href="http://collegeprowler.com" target="_blank">College Prowler</a> because of how robust I think it is. However, sometimes, on smaller sites, you don&#8217;t want to load all that excessive code built to work in hundreds of different configurations just for a handful of tooltips. Well have no fear. Here&#8217;s how you can build a simple tooltip. Using a little JQuery, and some CSS3 (for the <a href="http://www.davidjrush.com/blog/2011/11/creating-a-css-speech-bubble/">speech bubble</a> discussed in my previous article and the question mark icon) you can make your own tooltips!</p>
<p>Here&#8217;s what we&#8217;ll be making:</p>

<div class="example">
<p>This sentence needs more of an explanation for the user. <span class="question">?</span></p>
<style type="text/css">
div.example p { margin: 0px; }
span.question { cursor: pointer; display: inline-block; font-size: 13px; width: 16px; height: 16px; background-color: #89A4CC; line-height: 16px; color: White; font-weight: bold; border-radius: 8px; text-align: center; position: relative; }
span.question:hover { background-color: #3D6199; }
div.tooltip { background-color: #3D6199; color: White; position: absolute; left: 25px; top: -25px; z-index: 1000000; width: 250px; border-radius: 5px; }
div.tooltip:before { border-color: transparent #3D6199 transparent transparent; border-right: 6px solid #3D6199; border-style: solid; border-width: 6px 6px 6px 0px; content: ""; display: block; height: 0; width: 0; line-height: 0; position: absolute; top: 40%; left: -6px; }
div.tooltip p { margin: 10px; color: White; }
</style>
<script type="text/javascript">
$(document).ready(function () {
$("span.question").hover(function () {
$(this).append('<div class="tooltip"><p>This is a tooltip. It is typically used to explain something to a user without taking up space on the page.</p></div>');
}, function () {
$("div.tooltip").remove();
});
});
</script>
</div>
<div class="clear"></div>
<p>Now let&#8217;s get into the code needed to produce the example. The HTML is actually very simple. We are going to inject the content for the tooltip using JQuery so we won&#8217;t even need anything to target except the link that you hover on that triggers it.<br />
<strong>Here&#8217;s the HTML:</strong></p>
<pre class="brush: xml; title: ; notranslate">&lt;p&gt;This sentence needs more of an explanation for the user. &lt;span class=&quot;question&quot;&gt;?&lt;/span&gt;&lt;/p&gt;</pre>
<p>The CSS looks pretty long. But in reality, it is built to my own personal liking. The &quot;question&quot; class applied to a span produces the question mark circle icon. You can easily do this with an image if you prefer, or apply it to a simple link with text or a question mark without any styling. Then there are two items for the &quot;tooltip&quot; class. The first item defines what the tooltip will look like (rounded borders, background color, text styling, etc.). The pseudo class of :before (or :after if you like) inserts an item before (or after) the element it is applied to. In this particular instance, the :before statement adds the tip to the tool, which you don&#8217;t need to use if you don&#8217;t want, or again, you can use an background image if you prefer.<br />
<strong>Here&#8217;s the CSS:</strong></p>
<pre class="brush: css; title: ; notranslate">
span.question {
  cursor: pointer;
  display: inline-block;
  width: 16px;
  height: 16px;
  background-color: #89A4CC;
  line-height: 16px;
  color: White;
  font-size: 13px;
  font-weight: bold;
  border-radius: 8px;
  text-align: center;
  position: relative;
}
span.question:hover { background-color: #3D6199; }
div.tooltip {
  background-color: #3D6199;
  color: White;
  position: absolute;
  left: 25px;
  top: -25px;
  z-index: 1000000;
  width: 250px;
  border-radius: 5px;
}
div.tooltip:before {
  border-color: transparent #3D6199 transparent transparent;
  border-right: 6px solid #3D6199;
  border-style: solid;
  border-width: 6px 6px 6px 0px;
  content: &quot;&quot;;
  display: block;
  height: 0;
  width: 0;
  line-height: 0;
  position: absolute;
  top: 40%;
  left: -6px;
}
div.tooltip p {
  margin: 10px;
  color: White;
}</pre>
<p>And lastly the Javascript is actually quite simple. You use the hover toggle event (hover, then unhover) to create it. On hover, we simply append the actual tooltip div and it&#8217;s content to the question mark icon. Then on unhover, we remove the tooltip element.<br />
<strong>And finally, here&#8217;s the Javascript:</strong></p>
<pre class="brush: jscript; title: ; notranslate">
$(document).ready(function () {
  $(&quot;span.question&quot;).hover(function () {
    $(this).append('&lt;div class=&quot;tooltip&quot;&gt;&lt;p&gt;This is a tooltip. It is typically used to explain something to a user without taking up space on the page.&lt;/p&gt;&lt;/div&gt;');
  }, function () {
    $(&quot;div.tooltip&quot;).remove();
  });
});
</pre>
<p>It really isn&#8217;t that bad, and it can easily be adjusted to work for several tooltips instead of just one. Got any questions? Comments? Just ask!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidjrush.com/blog/2011/12/simple-jquery-tooltip/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Creating A CSS Speech Bubble</title>
		<link>http://www.davidjrush.com/blog/2011/11/creating-a-css-speech-bubble/</link>
		<comments>http://www.davidjrush.com/blog/2011/11/creating-a-css-speech-bubble/#comments</comments>
		<pubDate>Mon, 21 Nov 2011 13:30:13 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[CSS3 Tutorials]]></category>
		<category><![CDATA[speech bubbles]]></category>

		<guid isPermaLink="false">http://www.davidjrush.com/?p=1115</guid>
		<description><![CDATA[You&#8217;d be surprised how many things you can do with some relatively simple CSS. Even more surprising are the applications of some of the CSS pseudo classes, in particular :before and :after. These pseudo classes might seem foreign because they aren&#8217;t very commonly used, but in reality they are quite simple. They are used to [...]]]></description>
			<content:encoded><![CDATA[<p>You&#8217;d be surprised how many things you can do with some relatively simple CSS. Even more surprising are the applications of some of the CSS pseudo classes, in particular :before and :after. These pseudo classes might seem foreign because they aren&#8217;t very commonly used, but in reality they are quite simple. They are used to add content (before or after, duh!) the class they are applied to. They essentially inject an element that you can then apply additional CSS to. So the speech bubble example below is created using just a div and both pseudo classes.</p>

<div class="bubble">
<p>&ldquo;This could be a quotation from a customer or use it in an HTML cartoon you've created.<br /><br />The possibilities are endless!&rdquo;</p>
</div>
<style type="text/css">
div.bubble { display: block; margin: 0 auto 40px auto; width: 250px; background-color: White; border: solid 6px #143463; border-radius: 20px; text-align: center; position: relative; }
div.bubble p { margin: 10px; font-size: 11px; color: #143463; }
div.bubble:before, div.bubble:after { border-color: White transparent transparent transparent; border-style: solid; border-width: 20px 0px 0px 40px; content: ""; display: block; height: 0; width: 0; line-height: 0; position: absolute; z-index: 5; bottom: -20px; left: 150px; }
div.bubble:after { border-color: #143463 transparent transparent transparent; border-style: solid; border-width: 24px 0px 0px 48px; content: ""; z-index: 4; bottom: -30px; left: 148px; }
</style>
<div class="clear"></div>
<p><strong>Here&#8217;s the HTML:</strong></p>
<pre class="brush: xml; title: ; notranslate">&lt;div class=&quot;bubble&quot;&gt;
&lt;p&gt;&quot;This could be a quotation from a customer or use it in an HTML cartoon you've created.&lt;br /&gt;&lt;br /&gt;The possibilities are endless!&quot;&lt;/p&gt;
&lt;/div&gt;</pre>
<p>The CSS is pretty simple, which is good to go along with a very simple piece of HTML. The :after pseudo class creates the blue point, and the :before class creates a smaller white point that makes the blue just look like an outline. The points are actually made using two thick borders on only two sides of a block element that actually has no width or height. It was hard for me to grasp how borders create a filled element when I first saw this, but if you just play with the border widths, you&#8217;ll get the hang of it.</p>
<p><strong>Here&#8217;s the CSS:</strong></p>
<pre class="brush: css; title: ; notranslate">
div.bubble {
  display: block;
  margin: 0 auto 40px auto;
  width: 250px;
  background-color: White;
  border: solid 6px #143463;
  border-radius: 20px;
  text-align: center;
  position: relative;
}
div.bubble p {
  margin: 10px;
  font-size: 11px;
  color: #143463;
}
div.bubble:before, div.bubble:after {
  border-color: White transparent transparent transparent;
  border-style: solid;
  border-width: 20px 0px 0px 40px;
  content: &amp;quot;&amp;quot;;
  display: block;
  height: 0;
  width: 0;
  line-height: 0;
  position: absolute;
  z-index: 5;
  bottom: -20px;
  left: 150px;
}
div.bubble:after {
  border-color: #143463 transparent transparent transparent;
  border-style: solid;
  border-width: 24px 0px 0px 48px;
  content: &amp;quot;&amp;quot;;
  z-index: 4;
  bottom: -30px;
  left: 148px;
}
</pre>
<p>And that&#8217;s it! In my next post, I&#8217;ll discuss how to use this speech bubble concept to create a <a href="http://www.davidjrush.com/blog/2011/12/simple-jquery-tooltip/">JQuery Tooltip</a>. Any questions? Ask away!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidjrush.com/blog/2011/11/creating-a-css-speech-bubble/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Server And Client Side: What&#8217;s the Difference?</title>
		<link>http://www.davidjrush.com/blog/2011/11/server-and-client-side-whats-the-difference/</link>
		<comments>http://www.davidjrush.com/blog/2011/11/server-and-client-side-whats-the-difference/#comments</comments>
		<pubDate>Mon, 07 Nov 2011 14:00:18 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[User Experience]]></category>
		<category><![CDATA[Web and Graphic Design]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[client-side]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[server-side]]></category>

		<guid isPermaLink="false">http://www.davidjrush.com/?p=978</guid>
		<description><![CDATA[It&#8217;s a pretty simple question if you know how the web works, but if you don&#8217;t, it is very complicated. To succeed working in the web world, you&#8217;ve got to have a firm grasp on the difference between server-side and client-side interactions. If you want the quick answer, here you go: Server-Side: Server-side interactions require [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s a pretty simple question if you know how the web works, but if you don&#8217;t, it is very complicated. To succeed working in the web world, you&#8217;ve got to have a firm grasp on the difference between server-side and client-side interactions. If you want the quick answer, here you go:</p>
<p><strong>Server-Side</strong>: Server-side interactions require sending data to a server and the server sending data back to you, the client.</p>
<p><strong>Client-Side</strong>: Client-side interactions don&#8217;t need a server, and data is exchanged or altered on your own computer browser without sending any information to a server.</p>
<p>Now if you need the longer explanation, you&#8217;ll first need a little background on how the internet works. The internet is just a mapping of connections between millions of computers around the world. When you type in a web address&ndash;such as http://www.google.com/&ndash;your computer knows that means go find the computer somewhere in the world that has the website for Google on it (I&#8217;m really simplifying things here if you can&#8217;t tell). The computer that has Google on it is called a &quot;server&quot;. Servers aren&#8217;t typical computers. They don&#8217;t necessarily have any screens to view anything on, and for sites like Google, thousands of servers are collectively used to house the website.</p>
<p>So now that you understand the web (at least in a basic sense), we can start to learn about what server-side and client-side means with a more indepth explanation. So say you are on Google&#8217;s homepage. As a user (consumer) of Google, you can interact with their homepage in a multitude of ways. To understand each type of interaction, I&#8217;ll give an example using the <a href="http://www.google.com/" target="_blank">Google homepage</a>.</p>
<p><strong>Client-Side</strong>: When you rollover a link in the navigation bar at the top and its display changes, you&#8217;ve just triggered the most basic client-side interaction, the pseudo class :hover in CSS. For a slightly more complex client-side interaction, by clicking on the &quot;more&quot; link in the navigation bar, a menu expands with more options. This is a very typical client-side interaction using simple javascript to hide and show something on your screen. In addition to CSS and Javascript being client-side languages, you should also include HTML, the basis of all displays in the web. Without HTML, the internet would be completely different from what we know it as today, and all three of those languages are interpreted on your own computer within your own browser, needing no interaction or data transfer from a server.</p>
<p><strong>Server-Side</strong>: Now, after you&#8217;ve typed a search phrase into the search bar, when you click the &quot;Search Google&quot; button or click enter, you&#8217;ve now triggered a server-side interaction. Your computer doesn&#8217;t have the information it needs to conduct the search you are requesting, so it must send your search across a series of connections to a Google server somewhere in the world, that then sends back the results that it found for you. This is the basic concept behind server-side interactions. Typical server-side scripting languages include Perl, PHP, Java, and ASP.NET (I could keep going, but who is it really helping?). The key to identifying a server-side interaction is noting when your browser page reloads. Server-side interactions require reloading the browser window to show the results that were found. There is one exception to this rule.</p>
<p><strong>A Combination Of Both</strong>: It is possible to conduct a server-side interaction without reloading the browser window. This requires a combination of both server-side and client-side interactions. Using a subset of Javascript called <a href="http://www.davidjrush.com/blog/2010/08/ajax-what-the-heck-is-it/">AJAX</a>, we can send requests to a server, and then load those results into the client browser without a page reload. An example of this on the Google homepage is the suggested search phrases that change as you start typing. You type in a few characters, Google sends those characters to their server which then looks at frequent searches conducted by other people to make suggestions, and then sends them back and fills in the drop down menu for you to make a selection.</p>
<p>Now hopefully you&#8217;ve got a firm understanding of the difference between server and client side interactions and languages. If you&#8217;ve got any questions, don&#8217;t hesitate to ask.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidjrush.com/blog/2011/11/server-and-client-side-whats-the-difference/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JQuery: Creating a Text Watermark</title>
		<link>http://www.davidjrush.com/blog/2011/10/jquery-creating-a-textbox-text-watermark/</link>
		<comments>http://www.davidjrush.com/blog/2011/10/jquery-creating-a-textbox-text-watermark/#comments</comments>
		<pubDate>Wed, 05 Oct 2011 12:00:35 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[JQuery Tutorials]]></category>
		<category><![CDATA[javascript basics]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[watermarks]]></category>

		<guid isPermaLink="false">http://www.davidjrush.com/?p=988</guid>
		<description><![CDATA[My post on creating a text watermark with javascript has been pretty popular. One comment had to do with being able to implement that watermark without being able to edit the HTML (only having access to CSS and Javascript). The easy solution to that is using JQuery. So as a follow up to that post, [...]]]></description>
			<content:encoded><![CDATA[<p>My post on creating a <a href="http://www.davidjrush.com/blog/2011/01/javascript-creating-a-simple-textbox-watermark-with-text/">text watermark with javascript</a> has been pretty popular. One comment had to do with being able to implement that watermark without being able to edit the HTML (only having access to CSS and Javascript). The easy solution to that is using JQuery. So as a follow up to that post, I wrote a quick tutorial on a text watermark using JQuery instead of plain old Javascript. Here is an example in action:</p>
<input id="inputTextboxId" type="text" />
<script type="text/javascript">
$(document).ready(function() {
   var watermark = 'textbox watermark text';
   $('#inputTextboxId').blur(function(){
      if ($(this).val().length == 0)
         $(this).val(watermark).addClass('watermark');
   }).focus(function(){
      if ($(this).val() == watermark)
         $(this).val('').removeClass('watermark');
   }).val(watermark).addClass('watermark');;
});
</script></p>
<style type="text/css">
   input#inputTextboxId { width: 200px; margin: 10px; }
   input#inputTextboxId.watermark { color: #999; }
</style>
<p>To do this, you&#8217;ll need the following code:</p>
<p><strong>The HTML:</strong></p>
<pre class="brush: xml; title: ; notranslate">&lt;input id=&quot;inputTextboxId&quot; type=&quot;text&quot; /&gt;</pre>
<p><strong>The Javascript:</strong></p>
<pre class="brush: jscript; title: ; notranslate">
$(document).ready(function() {
 var watermark = 'textbox watermark text';
 $('#inputTextboxId').blur(function(){
  if ($(this).val().length == 0)
    $(this).val(watermark).addClass('watermark');
 }).focus(function(){
  if ($(this).val() == watermark)
    $(this).val('').removeClass('watermark');
 }).val(watermark).addClass('watermark');
});</pre>
<p>This javascript binds an event to both the blur and focus events of the input field. When the field gains focus (someone clicks in), the JS checks to see if the value of the input field is equivalent to the watermark, in which case it will clear it. When the field loses focus (someone clicks out), the JS checks to see if the field is empty, and if it is, places the watermark back in. The javascript also sets the default value of the textbox to the watermark so that you don&#8217;t have to edit the HTML at all. All of the &#8220;addClass&#8221; and &#8220;removeClass&#8221; events are only necessary if you wish to style the watermark differently than regular text input. To use this, you&#8217;ll need some CSS too.</p>
<p><strong>Lastly, the CSS if you are feeling fancy:</strong></p>
<pre class="brush: css; title: ; notranslate">input.watermark { color: #999; }</pre>
<p>That&#8217;s it! A simple text watermark using JQuery that doesn&#8217;t require touching HTML at all.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidjrush.com/blog/2011/10/jquery-creating-a-textbox-text-watermark/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

