<?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/"
xmlns:series="http://unfoldingneurons.com/"
><channel><title>David Walsh :: Legendary scribbles about JavaScript, HTML5, AJAX, PHP, CSS, and ∞. &#187; Bookmarking / Social</title> <atom:link href="http://davidwalsh.name/tutorials/bookmarking/feed" rel="self" type="application/rss+xml" /><link>http://davidwalsh.name</link> <description>Legendary scribbles about JavaScript, HTML5, AJAX, PHP, CSS, and ∞.</description> <lastBuildDate>Sun, 20 May 2012 22:40:48 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.2</generator> <item><title>XBox Live Gamer&#160;API</title><link>http://davidwalsh.name/xbox-api</link> <comments>http://davidwalsh.name/xbox-api#comments</comments> <pubDate>Tue, 22 Nov 2011 15:45:49 +0000</pubDate> <dc:creator>David Walsh</dc:creator> <category><![CDATA[APIs]]></category> <category><![CDATA[Bookmarking / Social]]></category> <category><![CDATA[PHP]]></category><guid
isPermaLink="false">http://davidwalsh.name/?p=5334</guid> <description><![CDATA[I&#8217;ve thought long and hard about this, and I still can&#8217;t decide whether or not I should consider myself a &#8220;gamer.&#8221; During my lifetime, I&#8217;ve owned an original Nintendo, Sega Genesis, Nintendo64 (best controller of any console ever), wii, and XBox 360. I used to have a horrible habit of downloading pirating games, but that&#8217;s [...]<p><a
href="http://davidwalsh.name/xbox-api">XBox Live Gamer&nbsp;API</a> is a post from: <a
href="http://davidwalsh.name">David Walsh :: Legendary scribbles about JavaScript, HTML5, AJAX, PHP, CSS, and ∞.</a></p> ]]></description> <content:encoded><![CDATA[<p><a
href="http://davidwalsh.name/dw-content/xbox-api.php"><img
src="http://davidwalsh.name/dw-content/xbox.jpg" alt="XBox Live API" /></a></p><p>I&#8217;ve thought long and hard about this, and I still can&#8217;t decide whether or not I should consider myself a &#8220;gamer.&#8221;  During my lifetime, I&#8217;ve owned an original Nintendo, Sega Genesis, Nintendo64 (best controller of any console ever), wii, and XBox 360.  I used to have a horrible habit of downloading pirating games, but that&#8217;s long and over with.  Anyways, the only game I&#8217;ve played consistently over the past three years is Call of Duty.  Which one?  Whichever the latest Call of Duty has been most recently released.  I don&#8217;t even care to attempt the story mode;  I simply want to log on and shoot each and every one of you I encounter.</p><p>My sharpshooter status aside, I&#8217;ve always been <del>surprised</del> upset that Microsoft has never provided an API for the vast amount of information about users, the games they play, and statistics within the games.  Namely, I&#8217;d like to publicly shame every n00b I&#8217;ve baptized with my sniper rifle.  I recently found a great gamer API effort by XBoxLeaders.com.  While their API can&#8217;t tell me the titles and emblems I&#8217;ve earned in Modern Warfare 3, I can get some relevant information about my user, my status, and the games I&#8217;ve recently dominated.</p><div
class="actions"><a
href="http://davidwalsh.name/dw-content/xbox-api.php" class="demo">View Demo</a><div
class="clear"></div></div><h2>The&nbsp;PHP</h2><p>The API is incredibly simple to use: simply send the the gamertag and response type you desire:</p><pre class="php">
// Settings
$gamertag = 'dwalsh83';
$profileUrl = 'http://www.xboxleaders.com/api/profile/'.$gamertag.'.json';

// Get information about me
$info = file_get_contents($profileUrl);

// To JSON
$json = json_decode($info);
$user = $json-&gt;user;
</pre><p>The response will look like this:</p><pre class="javascript">
{
  "status": {
    "is_valid": "yes",
    "is_cheater": "no",
    "tier": "gold"
  },
  "profile": {
    "gamertag": "dwalsh83",
    "gamerscore": 300,
    "reputation": 20,
    "gender": "male",
    "motto": "Watch your head.",
    "name": "David Walsh",
    "location": "Madison, WI, US",
    "bio": "There is, and only can be, Call of Duty.",
    "url": "http:\/\/live.xbox.com\/en-US\/Profile?gamertag=dwalsh83",
    "avatar_tile": "http:\/\/image.xboxlive.com\/global\/t.fffe07d1\/tile\/0\/2000b",
    "avatar_small": "http:\/\/avatar.xboxlive.com\/avatar\/dwalsh83\/avatarpic-s.png",
    "avatar_large": "http:\/\/avatar.xboxlive.com\/avatar\/dwalsh83\/avatarpic-l.png",
    "avatar_body": "http:\/\/avatar.xboxlive.com\/avatar\/dwalsh83\/avatar-body.png",
    "launch_team_xbl": "no",
    "launch_team_nxe": "no",
    "launch_team_kin": "no"
  }
}
</pre><p>As you can see, you get basic account information (name, bio, etc) but also a bit of information about the games the user has been playing recently.  You also get links to images for the user and said games.  What you choose to do with this information is up to you;  you could put together a really basic gamercard:</p><pre class="php">
&lt;style&gt;
	
	.gamercard {
		border: 1px solid #bdbec1;
		padding: 10px;
		width: 600px;
		font-family: arial, sans-serif;
		font-size: 12px;
		color: #bdbec1;
		
		background-image: -webkit-linear-gradient(#ddd, #fff, #e9fdce);
		background-image: -moz-linear-gradient(top, #ddd, #fff, #e9fdce);
		background-image: -ms-linear-gradient(#ddd, #fff, #e9fdce);
		background-image: -o-linear-gradient(#ddd, #fff, #e9fdce);
		background-image: linear-gradient(#ddd, #fff, #e9fdce);
	}
	
	.gamercard img {
		display: block;
	}
	
	.gamercard .avatar {
		float: right;
		width: 150px;
		height: 300px;
		margin: -60px 0 0 50px;
	}
	
	.gamercard h1 {
		font-weight: normal;
	}
		
		.gamercard h1 img {
			display: inline-block; 
			padding-right: 10px;
			width: 24px; 
			height: 24px;
		}
		
		.gamercard h1 a {
			text-decoration: none;
		}
		
			.gamercard h1 a:hover {
				background: #bbe6a6;
				color: #333;
			}
			
	.gamercard h2 {
		color: #111;
		font-size: 16px;
		font-weight: normal;
		margin-top: 15px;
	}
	
	.gamercard ul {
		list-style-type: none;
	}
		.gamercard ul li {
			padding-top: 8px;
		}
			
			.gamercard ul li strong {
				color: #666;
			}
			
	.gamercard ul.games li {
		display: inline-block; 
		margin-right: 20px;
		text-align: center;
		font-weight: bold;
		width: 85px;
		vertical-align: top;
	}
		.gamercard ul.games li img {
			margin: 0 auto;
			width: 85px;
		}
	
	.gamercard a {
		color: #78bb58;
	}
	
	.gamercard .clear {
		clear: both;
	}
	
&lt;/style&gt;

&lt;!-- gamercard --&gt;
&lt;div class="gamercard"&gt;
	
	&lt;!-- profile image --&gt;
	&lt;img src="&lt;?php echo $profile-&gt;avatar_body; ?&gt;" alt="&lt;?php echo $profile-&gt;gamertag; ?&gt;" class="avatar" /&gt;

	&lt;!-- gamer name --&gt;
	&lt;h1&gt;&lt;img src="&lt;?php echo $profile-&gt;avatar_tile; ?&gt;" alt="&lt;?php echo $profile-&gt;gamertag; ?&gt;" /&gt;&lt;a href="&lt;?php echo $profile-&gt;profile_link; ?&gt;"&gt;&lt;?php echo $profile-&gt;gamertag; ?&gt;&lt;/a&gt;&lt;/h1&gt;

	&lt;!-- personal info --&gt;
	&lt;h2&gt;The Legend&lt;/h2&gt;
	&lt;ul&gt;
		&lt;li&gt;&lt;strong&gt;Name:&lt;/strong&gt; &lt;?php echo $profile-&gt;name; ?&gt;&lt;/li&gt;
		&lt;li&gt;&lt;strong&gt;Bio:&lt;/strong&gt; &lt;?php echo $profile-&gt;bio; ?&gt;&lt;/li&gt;
		&lt;li&gt;&lt;strong&gt;Location:&lt;/strong&gt; &lt;?php echo $profile-&gt;location; ?&gt;&lt;/li&gt;
		&lt;li&gt;&lt;strong&gt;Gender:&lt;/strong&gt; &lt;?php echo $profile-&gt;gender; ?&gt;&lt;/li&gt;
		&lt;li&gt;&lt;strong&gt;Motto:&lt;/strong&gt; &lt;?php echo $profile-&gt;motto; ?&gt;&lt;/li&gt;
		&lt;li&gt;&lt;strong&gt;Online:&lt;/strong&gt; &lt;?php echo $profile-&gt;online ? "Online" : "Offline"; ?&gt;&lt;/li&gt;
		&lt;li&gt;&lt;strong&gt;Status:&lt;/strong&gt; &lt;?php echo $profile-&gt;online ? $profile-&gt;online_status : "(none)"; ?&gt;&lt;/li&gt;
	&lt;/ul&gt;

	&lt;?php if($profile-&gt;recent_games): ?&gt;
	&lt;!-- recent games --&gt;
	&lt;h2&gt;Recent Games&lt;/h2&gt;
	&lt;ul class="games"&gt;
		&lt;?php foreach($profile-&gt;recent_games as $game): ?&gt;
			 &lt;li&gt;&lt;a href="&lt;?php echo $game-&gt;marketplace_url; ?&gt;"&gt;&lt;img src="&lt;?php echo $game-&gt;small_boxart; ?&gt;" alt="&lt;?php echo $game-&gt;title; ?&gt;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;?php echo $game-&gt;title; ?&gt;&lt;/li&gt; 
		&lt;?php endforeach; ?&gt;
	&lt;/ul&gt;
	&lt;?php endif; ?&gt;
	
	&lt;div class="clear"&gt;&lt;/div&gt;
&lt;/div&gt;
</pre><p>Don&#8217;t forget to cache the responses you get back from the API for faster performance!</p><div
class="actions"><a
href="http://davidwalsh.name/dw-content/xbox-api.php" class="demo">View Demo</a><div
class="clear"></div></div><p>In the end, I&#8217;m not sure how feasible it would be to create a true API for XBox and its games.  I assume each game and online service stores its information on the game creator&#8217;s own servers, so the information you could get would be minimal and fragmented at best.  It would be nice if the creators of Call of Duty could put something out there for assassins like me, but they&#8217;re probably all trying to find a way to improve the horrible spawn positioning logic.  Awesome work by XBoxLeaders.com in this effort though &#8212; it&#8217;s given me a great start at a fun project.</p><p><a
href="http://davidwalsh.name/xbox-api">XBox Live Gamer&nbsp;API</a> is a post from: <a
href="http://davidwalsh.name">David Walsh :: Legendary scribbles about JavaScript, HTML5, AJAX, PHP, CSS, and ∞.</a></p> ]]></content:encoded> <wfw:commentRss>http://davidwalsh.name/xbox-api/feed</wfw:commentRss> <slash:comments>13</slash:comments> </item> <item><title>Facebook Open Graph META&#160;Tags</title><link>http://davidwalsh.name/facebook-meta-tags</link> <comments>http://davidwalsh.name/facebook-meta-tags#comments</comments> <pubDate>Mon, 25 Apr 2011 14:24:28 +0000</pubDate> <dc:creator>David Walsh</dc:creator> <category><![CDATA[APIs]]></category> <category><![CDATA[Bookmarking / Social]]></category><guid
isPermaLink="false">http://davidwalsh.name/?p=5208</guid> <description><![CDATA[It&#8217;s no secret that Facebook has become a major traffic driver for all types of websites.  Nowadays even large corporations steer consumers toward their Facebook pages instead of the corporate websites directly.  And of course there are Facebook &#8220;Like&#8221; and &#8220;Recommend&#8221; widgets on every website.  One problem I&#8217;ve always found with sharing URLs on Facebook [...]<p><a
href="http://davidwalsh.name/facebook-meta-tags">Facebook Open Graph META&nbsp;Tags</a> is a post from: <a
href="http://davidwalsh.name">David Walsh :: Legendary scribbles about JavaScript, HTML5, AJAX, PHP, CSS, and ∞.</a></p> ]]></description> <content:encoded><![CDATA[<img
src="http://davidwalsh.name/dw-content/facebook-developers-logo.png" alt="Facebook META Tags Open Graph" class="image" /><p>It&#8217;s no secret that Facebook has become a major traffic driver for all types of websites.  Nowadays even large corporations steer consumers toward their Facebook pages instead of the corporate websites directly.  And of course there are Facebook &#8220;Like&#8221; and &#8220;Recommend&#8221; widgets on every website.  One problem I&#8217;ve always found with sharing URLs on Facebook is that you often have no control over the image and description text that accompany the URL.  Had I known about Facebook Open Graph API, I would&#8217;ve known the solution to that problem.</p><p>Facebook&#8217;s Open Graph protocol allows for web developers to turn their websites into Facebook &#8220;graph&#8221; objects, allowing a certain level of customization over how information is carried over from a non-Facebook website to Facebook when a page is &#8220;recommended&#8221;, &#8220;liked&#8221;, or just generally shared.  The information is set via custom META tags on the source page.  Let&#8217;s take a look at the different META tags Facebook uses to allow you to customize how your website is shared.</p><div
class="actions"><a
href="http://davidwalsh.name/dw-content/facebook-metas.php" class="demo">View Demo</a><div
class="clear"></div></div><p>All of Facebook&#8217;s Open Graph META tags are prefixed with <code>og:</code>, then continued with more specific the specific property to be set.  The data relative to the property set goes within the <code>content</code> attribute:</p><pre class="html">
&lt;meta property="og:{tagName}" content="{tagValue}"/&gt; 
</pre><p>Using this simple META tag strategy, you can tell Facebook what images, text, and more to use when sharing your webpage.  Let&#8217;s review a few key META tags!</p><h2>Facebook Open Graph Meta&nbsp;Tags</h2><h3>image</h3><p>The image META tag directs Facebook to use the specified image when the page is shared:</p><pre class="html">
&lt;meta property="og:image" content="http://davidwalsh.name/wp-content/themes/klass/img/facebooklogo.png"/&gt;
</pre><p>It&#8217;s best to use a square image, as Facebook displays them in that matter. That image should be at least 50&#215;50 in any of the usually supported image forms (JPG, PNG, etc.)</p><h3>title</h3><p>The title to accompany the URL:</p><pre class="html">
&lt;meta property="og:title" content="Facebook Open Graph META Tags"/&gt;
</pre><p>In most cases, this should be the article or page title.</p><h3>url</h3><p>The URL should be the <a
href="http://davidwalsh.name/canonical-link-rel">canonical address</a> for the given page:</p><pre class="html">
&lt;meta property="og:url" content="http://davidwalsh.name/facebook-meta-tags"/&gt;
</pre><p>Familiarize yourself with the <a
href="http://davidwalsh.name/canonical-link-rel">canonical LINK</a> type if you aren&#8217;t aware of its purpose &#8212; it could help your SEO out greatly!</p><h3>site_name</h3><p>Provides Facebook the name that you would like your website to be recognized by:</p><pre class="html">
&lt;meta property="og:site_name" content="David Walsh Blog"/&gt;
</pre><p>This is very useful as Facebook may have no way of knowing outside of this META tag.</p><h3>type</h3><p>Provides Facebook the type of website that you would like your website to be categorized by:</p><pre class="html">
&lt;meta property="og:type" content="blog"/&gt;
</pre><p>Read the <a
href="http://developers.facebook.com/docs/opengraph/#types" rel="nofollow">complete list of website types</a> to best categorize your website.</p><p
style="text-align:center;"> <img
src="http://davidwalsh.name/dw-content/david-facebook-share.png" alt="Facebook Open Graph" style="border:1px solid #ccc;padding:5px;margin:10px auto;display:block;" /></p><h2>More Facebook Open Graph META&nbsp;Tags</h2><p>The META tags provided above are just a few of the special Open Graph META tags sniffed by Facebook.  Open Graph also specified META tags for:</p><ul><li>Facebook Application-specific settings, if your website also has a Facebook app</li><li>Activities</li><li>Businesses</li><li>Groups</li><li>Locations</li></ul><p>Visit the <a
href="http://developers.facebook.com/docs/opengraph/" rel="nofollow">Facebook Open Graph page</a> to retrieve more details about each META tag and its intended information.  Facebook also provides a <a
href="http://developers.facebook.com/tools/lint" rel="nofollow">Lint tool</a> to help you validate what you&#8217;re sending!</p><div
class="actions"><a
href="http://davidwalsh.name/dw-content/facebook-metas.php" class="demo">View Demo</a><div
class="clear"></div></div><p>The Open Graph protocol is a great way to not only share a page&#8217;s information but to also control how your site&#8217;s information is shared.  Using these META tags could be the difference in attracting just a few visitors from Facebook or attracting loads of visitors because your shared links provide useful keywords and imagery!</p><p><a
href="http://davidwalsh.name/facebook-meta-tags">Facebook Open Graph META&nbsp;Tags</a> is a post from: <a
href="http://davidwalsh.name">David Walsh :: Legendary scribbles about JavaScript, HTML5, AJAX, PHP, CSS, and ∞.</a></p> ]]></content:encoded> <wfw:commentRss>http://davidwalsh.name/facebook-meta-tags/feed</wfw:commentRss> <slash:comments>29</slash:comments> </item> <item><title>Facebook-Style Modal Box Using&#160;MooTools</title><link>http://davidwalsh.name/facebook-modal-mootools</link> <comments>http://davidwalsh.name/facebook-modal-mootools#comments</comments> <pubDate>Tue, 07 Apr 2009 12:35:40 +0000</pubDate> <dc:creator>David Walsh</dc:creator> <category><![CDATA[Blog]]></category> <category><![CDATA[Bookmarking / Social]]></category> <category><![CDATA[CSS]]></category> <category><![CDATA[JavaScript]]></category> <category><![CDATA[Markup]]></category> <category><![CDATA[MooTools]]></category><guid
isPermaLink="false">http://davidwalsh.name/?p=1965</guid> <description><![CDATA[In my oh-so-humble opinion, Facebook&#8217;s Modal box is the best modal box around. It&#8217;s lightweight, subtle, and very stylish. I&#8217;ve taken Facebook&#8217;s imagery and CSS and combined it with MooTools&#8217; awesome functionality to duplicate the effect. View Demo The&#160;Imagery Facebook uses a funky sprite for their modal box. Pretty cool though. The&#160;CSS /* from facebook [...]<p><a
href="http://davidwalsh.name/facebook-modal-mootools">Facebook-Style Modal Box Using&nbsp;MooTools</a> is a post from: <a
href="http://davidwalsh.name">David Walsh :: Legendary scribbles about JavaScript, HTML5, AJAX, PHP, CSS, and ∞.</a></p> ]]></description> <content:encoded><![CDATA[<p>In my oh-so-humble opinion, Facebook&#8217;s Modal box is the best modal box around.  It&#8217;s lightweight, subtle, and very stylish.  I&#8217;ve taken Facebook&#8217;s imagery and CSS and combined it with MooTools&#8217; awesome functionality to duplicate the effect.</p><p><img
src="http://davidwalsh.name/dw-content/facebook-modal-example.jpg" alt="Facebook Example" /></p><div
class="actions"> <a
href="http://davidwalsh.name/dw-content/facebook-modal.php" class="demo">View Demo</a><div
class="clear"></div></div><h2>The&nbsp;Imagery</h2><p> <img
src="http://davidwalsh.name/dw-content/facebook-pop-dialog-sprite.png" alt="Facebook Modal" /> <img
src="http://davidwalsh.name/dw-content/facebook-overlay.png" alt="Facebook Modal" /></p><p>Facebook uses a funky sprite for their modal box.  Pretty cool though.</p><h2>The&nbsp;CSS</h2><pre class="css">
/* from facebook */
.generic_dialog { height:0; left:0; overflow:visible; position:fixed; /*dw*/ top:0; width:100%; z-index:101; }
#generic_dialog_iframe { left:0; position:absolute; top:0; z-index:3; }
.generic_dialog .generic_dialog_popup { height:0; overflow:visible; position:relative; }
.generic_dialog div.dialog_loading 		{ background-color:#F2F2F2; border:1px solid #606060; font-size:24px; padding:10px; }
#generic_dialog_overlay { display:block; left:0; position:absolute; top:0; width:100%; z-index:100; }
.dialog_body .dialog_content_img { float:left; margin-right:15px; }
.dialog_body .dialog_content_txt { float:left; padding-bottom:5px; width:300px; }
.dialog_body .dialog_content_body { padding-bottom:13px; } 
.dialog_body .form_label { padding-right:5px; }
.dark_dialog_overlay { background-image:url(facebook-overlay.png); background-repeat:repeat; }
* html .dark_dialog_overlay { background-color:transparent; background-image:url(blank.gif); }
.full_bleed .pop_dialog_table td.pop_content .dialog_body { padding:0; } 
table.pop_dialog_table { border-collapse:collapse; direction:ltr; margin:auto; table-layout:fixed; width:465px; }
td.pop_topleft, td.pop_topright, td.pop_bottomleft, td.pop_bottomright { height:10px; overflow:hidden; padding:0 !important; width:10px !important; }
td.pop_topleft { background:transparent url(facebook-pop-dialog-sprite.png) no-repeat scroll 0 0; }
td.pop_topright { background:transparent url(facebook-pop-dialog-sprite.png) no-repeat scroll 0 -10px; }
td.pop_bottomleft { background:transparent url(facebook-pop-dialog-sprite.png) no-repeat scroll 0 -20px; }
td.pop_bottomright { background:transparent url(facebook-pop-dialog-sprite.png) no-repeat scroll 0 -30px; }
td.pop_top, td.pop_bottom { background:transparent url(facebook-pop-dialog-sprite.png) repeat-x scroll 0 -40px; }
td.pop_side { background:transparent url(facebook-pop-dialog-sprite.png) repeat-y scroll -10px 0; }
td.pop_content { background-color:white; direction:ltr; padding:0; }
.pop_dialog_rtl td.pop_content { direction:rtl; }
td.pop_content h2.dialog_title { background:#6D84B4 none repeat scroll 0 0; border:1px solid #3B5998; color:white; font-size:14px; font-weight:bold; margin:0; }
td.pop_content h2.dialog_loading { background:#6D84B4 url(facebook-indicator_white_small.gif) no-repeat scroll 400px 10px; padding-right:40px; }
td.pop_content h2 span { display:block; padding:4px 10px 5px; }
td.pop_content .dialog_content { background:#FFFFFF none repeat scroll 0 0; border-color:#555555; border-style:solid; border-width:0 1px 1px; }
td.pop_content .dialog_body { border-bottom:1px solid #CCCCCC; padding:10px; }
td.pop_content .dialog_summary { background:#F2F2F2 none repeat scroll 0 0; border-bottom:1px solid #CCCCCC; padding:8px 10px; }
td.pop_content .dialog_buttons { background:#F2F2F2 none repeat scroll 0 0; padding:8px; text-align:right; }
td.pop_content .dialog_buttons input { margin-left:5px; }
td.pop_content .dialog_buttons_msg { float:left; padding:5px 0 0; }
td.pop_content .dialog_footer { background:#F2F2F2 none repeat scroll 0 50%; }

/* david walsh custom */
#fb-modal	{ display:none; }
#fb-close	{ cursor:pointer; }
.info		{ width:280px; float:left; font-size:11px; color:#666; }
.info b	{ color:#000; }
.image	{ width:200px; float:left; margin-right:10px; }
</pre><p>Most of this CSS was copied straight from Facebook&#8217;s stylesheets.  You&#8217;ll see a bit of custom CSS at the bottom but that&#8217;s just me customizing the content in the modal box.</p><h2>The MooTools&nbsp;JavaScript</h2><pre class="js">
window.addEvent('domready',function() {
	/* hide using opacity on page load */
	$('fb-modal').setStyles({
		opacity:0,
		display:'block'
	});
	/* hiders */
	$('fb-close').addEvent('click',function(e) { $('fb-modal').fade('out'); });
	window.addEvent('keypress',function(e) { if(e.key == 'esc') { $('fb-modal').fade('out'); } });
	$(document.body).addEvent('click',function(e) { 
		if($('fb-modal').get('opacity') == 1 &#038;&#038; !e.target.getParent('.generic_dialog')) { 
			$('fb-modal').fade('out'); 
		} 
	});
	/* click to show */
	$('fb-trigger').addEvent('click',function() {
		$('fb-modal').fade('in');
	});
});
</pre><p>Fade in. Fade out.  Too easy with MooTools!</p><div
class="actions"> <a
href="http://davidwalsh.name/dw-content/facebook-modal.php" class="demo">View Demo</a><div
class="clear"></div></div><p>Just because Facebook has more resources than you doesn&#8217;t mean your site can&#8217;t look as good as Facebook!</p><p><a
href="http://davidwalsh.name/facebook-modal-mootools">Facebook-Style Modal Box Using&nbsp;MooTools</a> is a post from: <a
href="http://davidwalsh.name">David Walsh :: Legendary scribbles about JavaScript, HTML5, AJAX, PHP, CSS, and ∞.</a></p> ]]></content:encoded> <wfw:commentRss>http://davidwalsh.name/facebook-modal-mootools/feed</wfw:commentRss> <slash:comments>59</slash:comments> </item> <item><title>Create Digg URLs Using&#160;PHP</title><link>http://davidwalsh.name/create-digg-url-php</link> <comments>http://davidwalsh.name/create-digg-url-php#comments</comments> <pubDate>Mon, 06 Apr 2009 12:16:59 +0000</pubDate> <dc:creator>David Walsh</dc:creator> <category><![CDATA[Bookmarking / Social]]></category> <category><![CDATA[PHP]]></category><guid
isPermaLink="false">http://davidwalsh.name/?p=2032</guid> <description><![CDATA[Digg recently came out with a sweet new feature that allows users to create Tiny Digg URLs which show a Digg banner at the top allowing easy access to vote for the article from the page. While I love visiting Digg every once in a while, I&#8217;d rather grab the URL remotely. Here&#8217;s how to [...]<p><a
href="http://davidwalsh.name/create-digg-url-php">Create Digg URLs Using&nbsp;PHP</a> is a post from: <a
href="http://davidwalsh.name">David Walsh :: Legendary scribbles about JavaScript, HTML5, AJAX, PHP, CSS, and ∞.</a></p> ]]></description> <content:encoded><![CDATA[<img
src="http://davidwalsh.name/dw-content/digg-guy.jpg" class="image" /><p>Digg recently came out with a sweet new feature that allows users to create Tiny Digg URLs which show a Digg banner at the top allowing easy access to vote for the article from the page.  While I love visiting Digg every once in a while, I&#8217;d rather grab the URL remotely.  Here&#8217;s how to do so using PHP.</p><h2>The&nbsp;PHP</h2><pre class="php">
/* function that grabs the response from digg */
function get_digg_url($url,$app_key)
{
	$return_xml = file_get_contents('http://services.digg.com/url/short/create?type=xml&#038;appkey='.urlencode($app_key).'&#038;url='.urlencode($url));
	$digg_url = get_match('/short_url="(.*)"/isU',$return_xml);
	return $digg_url;
}

/* function that runs a regex to scrub for the url */
function get_match($regex,$content)
{
	preg_match($regex,$content,$matches);
	return $matches[1];
}

/* important! set a fake user agent */
ini_set('user_agent','Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6');

/* url i want the digg URL for, and my app key which is a URL */
$url = 'http://davidwalsh.name/penetrated-diggnation';
$app = 'http://davidwalsh.name';

/* get the digg URL! */
$digg_url = get_digg_url($url,$app);  //returns:  http://digg.com/u1DOk
</pre><p>Very quick and simple.  You could also use PHP&#8217;s cURL library if you wanted.</p><h2>The XML&nbsp;Response</h2><pre class="xml">
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;shorturls count="1" offset="0" timestamp="1238884894" total="1"&gt;
	&lt;shorturl link="http://davidwalsh.name/penetrated-diggnation" short_url="http://digg.com/u1DOk" view_count="0"/&gt;
&lt;/shorturls&gt;
</pre><p>XML is a beautiful thing, isn&#8217;t it?  You may also request a JSON response.</p><p>Like this Digg article?  I suppose you could Digg it!  Or you can check out the time <a
href="http://davidwalsh.name/penetrated-diggnation">I was featured on DiggNation!</a></p><p><a
href="http://davidwalsh.name/create-digg-url-php">Create Digg URLs Using&nbsp;PHP</a> is a post from: <a
href="http://davidwalsh.name">David Walsh :: Legendary scribbles about JavaScript, HTML5, AJAX, PHP, CSS, and ∞.</a></p> ]]></content:encoded> <wfw:commentRss>http://davidwalsh.name/create-digg-url-php/feed</wfw:commentRss> <slash:comments>7</slash:comments> </item> <item><title>Following MooTools on&#160;Twitter</title><link>http://davidwalsh.name/follow-mootools-twitter</link> <comments>http://davidwalsh.name/follow-mootools-twitter#comments</comments> <pubDate>Mon, 09 Mar 2009 12:33:09 +0000</pubDate> <dc:creator>David Walsh</dc:creator> <category><![CDATA[Bookmarking / Social]]></category> <category><![CDATA[MooTools]]></category><guid
isPermaLink="false">http://davidwalsh.name/?p=1777</guid> <description><![CDATA[A while back I posted links to various official and unofficial websites that would keep you up to date on the MooTools project. Here are a bunch of Twitter-related links that will get you even closer to the project. MooTools Devs &#38;&#160;Contributors Official Twitter Account Jan Kassens Aaron Newton Thomas Aylott Christoph Pojer Harald Kirschner [...]<p><a
href="http://davidwalsh.name/follow-mootools-twitter">Following MooTools on&nbsp;Twitter</a> is a post from: <a
href="http://davidwalsh.name">David Walsh :: Legendary scribbles about JavaScript, HTML5, AJAX, PHP, CSS, and ∞.</a></p> ]]></description> <content:encoded><![CDATA[<p>A while back I posted links to various official and unofficial websites that would keep you up to date on the MooTools project.  Here are a bunch of Twitter-related links that will get you even closer to the project.</p><h2>MooTools Devs &amp;&nbsp;Contributors</h2><ul><li><a
href="http://twitter.com/mootools">Official Twitter Account</a></li><li><a
href="http://twitter.com/kassens">Jan Kassens </a></li><li><a
href="http://twitter.com/anutron">Aaron Newton</a></li><li><a
href="http://twitter.com/subtleGradient">Thomas Aylott</a></li><li><a
href="http://twitter.com/cpojer">Christoph Pojer</a></li><li><a
href="http://twitter.com/digitarald">Harald Kirschner</a></li><li><a
href="http://twitter.com/tomocchino">Tom Occhino</a></li><li><a
href="http://twitter.com/rauchg">Guillermo Rauch</a></li><li><a
href="http://twitter.com/_nw_">Nathan White</a></li></ul><h2>Automated&nbsp;Accounts</h2><ul><li><a
href="http://twitter.com/clientcide">Clientcide</a></li><li><a
href="http://twitter.com/mootools_core">MooTools Core Updates (from Github)</a></li><li><a
href="http://search.twitter.com/search?q=mootools">&#8220;MooTools&#8221; Twitter Search</a></li></ul><p>Many of the accounts above are tweeted to often so if you follow MooTools you should follow the developers above.</p><p><a
href="http://davidwalsh.name/follow-mootools-twitter">Following MooTools on&nbsp;Twitter</a> is a post from: <a
href="http://davidwalsh.name">David Walsh :: Legendary scribbles about JavaScript, HTML5, AJAX, PHP, CSS, and ∞.</a></p> ]]></content:encoded> <wfw:commentRss>http://davidwalsh.name/follow-mootools-twitter/feed</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>MooTools TwitterGitter&#160;Plugin</title><link>http://davidwalsh.name/mootools-twitter-plugin</link> <comments>http://davidwalsh.name/mootools-twitter-plugin#comments</comments> <pubDate>Wed, 04 Mar 2009 13:38:08 +0000</pubDate> <dc:creator>David Walsh</dc:creator> <category><![CDATA[APIs]]></category> <category><![CDATA[Bookmarking / Social]]></category> <category><![CDATA[MooTools]]></category><guid
isPermaLink="false">http://davidwalsh.name/?p=1468</guid> <description><![CDATA[Everyone loves Twitter. Everyone loves MooTools. That&#8217;s why everyone should love TwitterGitter, a MooTools plugin that retrieves a user&#8217;s recent tweets and allows the user to format them however the user would like. TwitterGitter allows the user to choose the number of tweets to retrieve and returns an object containing the data provided by Twitter. [...]<p><a
href="http://davidwalsh.name/mootools-twitter-plugin">MooTools TwitterGitter&nbsp;Plugin</a> is a post from: <a
href="http://davidwalsh.name">David Walsh :: Legendary scribbles about JavaScript, HTML5, AJAX, PHP, CSS, and ∞.</a></p> ]]></description> <content:encoded><![CDATA[<a
href="http://davidwalsh.name/dw-content/twitter-gitter.php"><img
src="http://davidwalsh.name/dw-content/twitter-gitter.png" class="image" alt="TwitterGitter" /></a><p>Everyone loves Twitter.  Everyone loves MooTools.  That&#8217;s why everyone should love TwitterGitter, a MooTools plugin that retrieves a user&#8217;s recent tweets and allows the user to format them however the user would like.  TwitterGitter allows the user to choose the number of tweets to retrieve and returns an object containing the data provided by Twitter.</p><div
class="actions"> <a
href="http://davidwalsh.name/dw-content/twitter-gitter.php" class="demo">View Demo</a> <a
href="http://davidwalsh.name/js" class="download">Download</a><div
class="clear"></div></div><h2>Twitter&#8217;s Response&nbsp;Object</h2><pre class="js">
JsonP.requestors.request_0.handleResults(
	[
		{
			"created_at":"Mon Feb 09 23:38:33 +0000 2009",
			"user": {
				"description":"",
				"url":"http:\/\/davidwalsh.name",
				"name":"davidwalshblog",
				"protected":false,
				"followers_count":639,
				"profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/57860553\/footer-logo_normal.jpg",
				"location":"Madison, WI, US",
				"screen_name":"davidwalshblog",
				"id":15759583
			},
			"in_reply_to_user_id":null,
			"in_reply_to_status_id":null,
			"in_reply_to_screen_name":null,
			"truncated":false,
			"text":"Just got home from work.  Enjoying a Heineken.  Going to write some articles.",
			"id":1193654096,
			"favorited":false,
			"source":"&lt;a href=\"http:\/\/www.netvibes.com\/subscribe.php?module=Twitter\"&gt;Netvibes&lt;\/a&gt;"
		},
		{
			"in_reply_to_screen_name":null,
			"user": {
				"description":"",
				"screen_name":"davidwalshblog",
				"followers_count":639,
				"url":"http:\/\/davidwalsh.name",
				"name":"davidwalshblog",
				"protected":false,
				"profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/57860553\/footer-logo_normal.jpg",
				"location":"Madison, WI, US",
				"id":15759583
			},
			"created_at":"Mon Feb 09 21:58:00 +0000 2009",
			"truncated":false,
			"favorited":false,
			"in_reply_to_user_id":null,
			"text":"Yep, it's decided...writing articles tonight.",
			"id":1193352388,
			"in_reply_to_status_id":null,
			"source":"web"
		},
		//....
	]
);
</pre><p>Above is a sample of what is returned by Twitter.</p><h2>The MooTools&nbsp;Plugin</h2><pre class="js">
var TwitterGitter = new Class({
	
	//implements
	Implements: [Options,Events],

	//options
	options: {
		count: 2,
		sinceID: 1,
		link: true,
		onRequest: $empty,
		onComplete: $empty
	},
	
	//initialization
	initialize: function(username,options) {
		//set options
		this.setOptions(options);
		this.info = {};
		this.username = username;
	},
	
	//get it!
	retrieve: function() {
		new JsonP('http://twitter.com/statuses/user_timeline/' + this.username + '.json',{
			data: {
				count: this.options.count,
				since_id: this.options.sinceID
			},
			onRequest: this.fireEvent('request'),
			onComplete: function(data) {
				//linkify?
				if(this.options.link) {
					data.each(function(tweet) { tweet.text = this.linkify(tweet.text); },this);
				}
				//complete!
				this.fireEvent('complete',[data,data[0].user]);
			}.bind(this)
		}).request();
		return this;
	},
	
	//format
	linkify: function(text) {
		//courtesy of Jeremy Parrish (rrish.org)
		return text.replace(/(https?:\/\/\S+)/gi,'&lt;a href="$1"&gt;$1&lt;/a&gt;').replace(/(^|\s)@(\w+)/g,'$1&lt;a href="http://twitter.com/$2"&gt;@$2&lt;/a&gt;').replace(/(^|\s)#(\w+)/g,'$1#&lt;a href="http://search.twitter.com/search?q=%23$2"&gt;$2&lt;/a&gt;');
	}
});
</pre><p><em>Note:  you will need to download Aaron Newton&#8217;s JSONP plugin <a
href="http://clientcide.com/js">here</a>.</em></p><p> Parameters include:</p><ul><li><span
class="param">username</span>: Your Twitter user handle.</li></ul><p> Options of the TwitterGitter class include:</p><ul><li><span
class="param">count</span>: <em>(defaults to 2)</em> The number of tweets you would like returned.</li><li><span
class="param">sinceID</span>: <em>(defaults to 1)</em> The baseline for the tweets to be returned.</li><li><span
class="param">link</span>:: <em>(defaults to true)</em> Want the class to linkify URLs, @ replies, and #topics?</li></ul><p> Events include:</p><ul><li><span
class="param">onRequest</span>: The function to execute when the TwitterGitter request is made.</li><li><span
class="param">onComplete</span>: The function to execute when the TwitterGitter request is complete.  This is where you want to put your tweet formatting.</li></ul><h2>Sample&nbsp;Usage</h2><pre class="js">
window.addEvent('domready',function() {
	$('git').addEvent('click',function(e) {
		e.stop();
		$('tweets-here').set('html','');
		//get information
		var myTwitterGitter = new TwitterGitter($('username').value,{
			count: 5,
			onComplete: function(tweets,user) {
				tweets.each(function(tweet,i) {
					new Element('div',{
						html: '&lt;img src="' + user.profile_image_url.replace("\\",'') + '" align="left" alt="' + user.name + '" /&gt; &lt;strong&gt;' + user.name + '&lt;/strong&gt;&lt;br /&gt;' + tweet.text + '&lt;br /&gt;&lt;span&gt;' + tweet.created_at + ' via ' + tweet.source.replace("\\",'') + '&lt;/span&gt;',
						'class': 'tweet clear'
					}).inject('tweets-here');
				});
			}
		}).retrieve();
	});
});
</pre><div
class="actions"> <a
href="http://davidwalsh.name/dw-content/twitter-gitter.php" class="demo">View Demo</a> <a
href="http://davidwalsh.name/js" class="download">Download</a><div
class="clear"></div></div><p>Make sure to check out the demo.  If you happen to use this, be sure to post a link &#8212; I&#8217;d love to see what you&#8217;ve done.  Happy tweeting!</p><p><a
href="http://davidwalsh.name/mootools-twitter-plugin">MooTools TwitterGitter&nbsp;Plugin</a> is a post from: <a
href="http://davidwalsh.name">David Walsh :: Legendary scribbles about JavaScript, HTML5, AJAX, PHP, CSS, and ∞.</a></p> ]]></content:encoded> <wfw:commentRss>http://davidwalsh.name/mootools-twitter-plugin/feed</wfw:commentRss> <slash:comments>41</slash:comments> </item> <item><title>Script &amp; Style Revamp with Submission&#160;Favelet</title><link>http://davidwalsh.name/script-style-favelet</link> <comments>http://davidwalsh.name/script-style-favelet#comments</comments> <pubDate>Wed, 18 Feb 2009 14:09:50 +0000</pubDate> <dc:creator>David Walsh</dc:creator> <category><![CDATA[Bookmarking / Social]]></category> <category><![CDATA[JavaScript]]></category><guid
isPermaLink="false">http://davidwalsh.name/?p=1622</guid> <description><![CDATA[It&#8217;s been six months and some change since the launch of Script &#38; Style and the website is doing extremely well. Traffic continues to rise, our RSS feed subscriber count is close to 4,000, the submissions continue to be quality, and we&#8217;re slowly adding new features to the site. We&#8217;ve recently taken some time to [...]<p><a
href="http://davidwalsh.name/script-style-favelet">Script &#038; Style Revamp with Submission&nbsp;Favelet</a> is a post from: <a
href="http://davidwalsh.name">David Walsh :: Legendary scribbles about JavaScript, HTML5, AJAX, PHP, CSS, and ∞.</a></p> ]]></description> <content:encoded><![CDATA[<p>It&#8217;s been six months and some change since the launch of <a
href="http://scriptandstyle.com">Script &amp; Style</a> and the website is doing extremely well.  Traffic continues to rise, our RSS feed subscriber count is close to 4,000, the submissions continue to be quality, and we&#8217;re slowly adding new features to the site.  We&#8217;ve recently taken some time to revamp the website to continue its growth.</p><p><strong><a
href="http://css-tricks.com/script-style-redesign/">Click here to read Chris Coyier&#8217;s article with regard to the site redesign.</a></strong></p><p>The newest code snippet we&#8217;ve added to enhance your S&amp;S experience is a submission favelet/bookmarklet.  This new favelet allows you to quickly submit the article you&#8217;re reading, no matter what the source, to Script &amp; Style.  All you need to do is select/highlight the text you&#8217;d like to act as the article description and click the favelet.  A new window will appear with the submission screen already filled out for you!</p><div
class="actions"> <a
href="http://davidwalsh.name/dw-content/favelet.php" class="demo">View Demo</a><div
class="clear"></div></div><h2>The Favelet&nbsp;Code</h2><pre class="js">
//favelet modified from:  http://cubicle17.com/post/32941821/bookmarklet-search-netflix
(function()%7Bvar%20d=document,w=window,ds=d.getSelection,ws=w.getSelection,ss=d.selection,e=encodeURIComponent;t=(ws)%3Fws():(ds)%3Fds():(ss)%3Fss.createRange().text:'';t=(t.toString().length)%3Ft:prompt('Please select article description text.','');if(t)%7Ba='http://www.scriptandstyle.com/submit%3Ftitle=' + e(document.title) + '%26url=' + e(window.location) + '%26content=';u=a+e(t);f=function()%7Bx=w.open(u,'nfx','scrollbars=1,toolbar=0,resizable=1,status=1,width=600,height=600');if(!x)w.location.href=u;%7D;if(/Firefox/.test(navigator.userAgent))setTimeout(f,0);else%20f();%7D%7D)();
</pre><p>Don&#8217;t worry about the mess of code.  All you need to do is drag the link to your &#8220;favorites&#8221; toolbar and it will work on any site you visit!</p><div
class="actions"> <a
href="http://davidwalsh.name/dw-content/favelet.php" class="demo">View Demo</a><div
class="clear"></div></div><p>Jump on over to <a
href="http://scriptandstyle.com">Script &amp; Style</a> to check out the new look and be sure to grab the <a
href="javascript:(function()%7Bvar%20d=document,w=window,ds=d.getSelection,ws=w.getSelection,ss=d.selection,e=encodeURIComponent;t=(ws)%3Fws():(ds)%3Fds():(ss)%3Fss.createRange().text:'';t=(t.toString().length)%3Ft:prompt('Please select article description text.','');if(t)%7Ba='http://www.scriptandstyle.com/submit%3Ftitle=' + e(document.title) + '%26url=' + e(window.location) + '%26content=';u=a+e(t);f=function()%7Bx=w.open(u,'nfx','scrollbars=1,toolbar=0,resizable=1,status=1,width=600,height=600');if(!x)w.location.href=u;%7D;if(/Firefox/.test(navigator.userAgent))setTimeout(f,0);else%20f();%7D%7D)();">Script &amp; Style favelet</a>!</p><p><a
href="http://davidwalsh.name/script-style-favelet">Script &#038; Style Revamp with Submission&nbsp;Favelet</a> is a post from: <a
href="http://davidwalsh.name">David Walsh :: Legendary scribbles about JavaScript, HTML5, AJAX, PHP, CSS, and ∞.</a></p> ]]></content:encoded> <wfw:commentRss>http://davidwalsh.name/script-style-favelet/feed</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Get a URL&#8217;s de.licio.us Count Using&#160;JavaScript</title><link>http://davidwalsh.name/delicious-url-count-javascript</link> <comments>http://davidwalsh.name/delicious-url-count-javascript#comments</comments> <pubDate>Mon, 12 Jan 2009 14:02:02 +0000</pubDate> <dc:creator>David Walsh</dc:creator> <category><![CDATA[APIs]]></category> <category><![CDATA[Bookmarking / Social]]></category> <category><![CDATA[JavaScript]]></category><guid
isPermaLink="false">http://davidwalsh.name/?p=1206</guid> <description><![CDATA[When I put together my new theme, I made it a goal to integrate more of the social bookmarking websites. The benefit to me is that my articles and website will get more attention. The benefit to you is that you can save / bookmark / share my articles easier. I&#8217;ve found the most useful [...]<p><a
href="http://davidwalsh.name/delicious-url-count-javascript">Get a URL&#8217;s de.licio.us Count Using&nbsp;JavaScript</a> is a post from: <a
href="http://davidwalsh.name">David Walsh :: Legendary scribbles about JavaScript, HTML5, AJAX, PHP, CSS, and ∞.</a></p> ]]></description> <content:encoded><![CDATA[<p>When I put together my new theme, I made it a goal to integrate more of the social bookmarking websites.  The benefit to me is that my articles and website will get more attention.  The benefit to you is that you can save / bookmark / share my articles easier.</p><p>I&#8217;ve found the most useful bookmarking site to be <a
href="http://delicious.com">de.licio.us</a>.  De.licio.us provides a very simple API which allows me access information about who has bookmarked my articles quickly.  Here&#8217;s how to pull the bookmark count for a specified URL.</p><h2>The&nbsp;JavaScript</h2><pre class="js">
&lt;script type="text/javascript"&gt;
//the callback -- what do we do with the json response?
function get_delicious_count(info) { 
	//get the number of saves
	var num = info[0].total_posts
	//if none, do nothing
	if(!num) return;
	//if some, I add the number to the end of my link, like at the top of every one of my article posts.
	return $('delic').set({ 
		'text': $('delic').get('text') + ' (' + num + ')',
		'title': num + ' people found this post delicious!'
	});
}
&lt;/script&gt;


&lt;script src='http://badges.del.icio.us/feeds/json/url/data?url=http://davidwalsh.name/delicious-url-count-javascript&#038;callback=get_delicious_count'&gt;&lt;/script&gt;
</pre><p> You need to place your function code before the second JavaScript tag which goes to de.licio.us to get the statistic information.  Note that you need to provide the URL to check and a callback function which will handle the data.</p><p>When you receive the data, you can do whatever you want to format it.  On this site, I get the count and append it to the &#8220;de.licio.us&#8221; link at the top of the article.  How would you use this data?</p><p><a
href="http://davidwalsh.name/delicious-url-count-javascript">Get a URL&#8217;s de.licio.us Count Using&nbsp;JavaScript</a> is a post from: <a
href="http://davidwalsh.name">David Walsh :: Legendary scribbles about JavaScript, HTML5, AJAX, PHP, CSS, and ∞.</a></p> ]]></content:encoded> <wfw:commentRss>http://davidwalsh.name/delicious-url-count-javascript/feed</wfw:commentRss> <slash:comments>7</slash:comments> </item> <item><title>6 Reasons I&#8217;m Glad I Joined&#160;Twitter</title><link>http://davidwalsh.name/reasons-join-twitter</link> <comments>http://davidwalsh.name/reasons-join-twitter#comments</comments> <pubDate>Thu, 02 Oct 2008 12:57:18 +0000</pubDate> <dc:creator>David Walsh</dc:creator> <category><![CDATA[Bookmarking / Social]]></category><guid
isPermaLink="false">http://davidwalsh.name/?p=478</guid> <description><![CDATA[For the longest time I refused to do the Twitter thing. Looking back it seems stupid but I just would not join the craze. Two months and 350 updates later, I&#8217;m a proud card-carrying Twitter fanboy. Here are 6 reasons I&#8217;m glad I joined Twitter. I get more reader&#160;interaction I recognize that many of the [...]<p><a
href="http://davidwalsh.name/reasons-join-twitter">6 Reasons I&#8217;m Glad I Joined&nbsp;Twitter</a> is a post from: <a
href="http://davidwalsh.name">David Walsh :: Legendary scribbles about JavaScript, HTML5, AJAX, PHP, CSS, and ∞.</a></p> ]]></description> <content:encoded><![CDATA[<p>For the longest time I refused to do the Twitter thing.  Looking back it seems stupid but I just would not join the craze.  Two months and 350 updates later, I&#8217;m a proud card-carrying Twitter fanboy.  Here are 6 reasons I&#8217;m glad I joined Twitter.</p><h2>I get more reader&nbsp;interaction</h2><p>I recognize that many of the readers of this blog follow me on Twitter.  I love when I get comments on my articles and that has spilled into my Twitter account.  Every once in a while I solicit feedback and there&#8217;s never a shortage of responses.  I value the time people give me when they respond so if any of you read this, thank you for responding to my quips.</p><h2>I need a place I can vent to fellow web&nbsp;developers</h2><p>When I see that a customer who required CMS capabilities has completely messed up their website by using 28 colors and sizes of text or another customer has a 12 year old managing their website, I simply MUST share this with fellow developers.</p><h2>There&#8217;s no better place to throw a quick razz at web&nbsp;friends</h2><p>While developers usually respect each others choices in tools (PHP vs. Rails, MooTools vs. jQuery), I couldn&#8217;t, however, live with myself if I didn&#8217;t take a quick, harmless shot at jQuery and Firefox team member <a
href="http://twitter.com/reybango">@reybango</a>.  Of course, he never hesitates to throw a shot my way too! Just a little fun to help us get through the day.</p><h2>Sometimes you just want to make a pithy&nbsp;comment</h2><p>Whether we know it or not, we&#8217;re all smart asses.  Really.  And every once in a while we need to rail off a relatively meaningless, witty 140 character or less sentence.  Twitter is the perfect place to do so.</p><h2>It&#8217;s fun to hear what other programmers think about non-web topics (aka devs have&nbsp;personalities?)</h2><p>Web is a huge and ever growing topic, but I don&#8217;t always want to hear other developers talk about it.  What does <a
href="http://twitter.com/chriscoyier">@chriscoyier </a>think about <a
href="http://twitter.com/chriscoyier/statuses/942045472">peanut butter vendors</a>? <a
href="http://twitter.com/emwendelin">@emwendelin</a> spent a night with his uncle &#8212; <a
href="http://twitter.com/emwendelin/statuses/938132472">how did it go</a>?  It&#8217;s good to get a taste of what other techies are really like away from the computer.</p><h2>You get 140 characters or&nbsp;less</h2><p>I don&#8217;t have time to write novels and I don&#8217;t want to read yours.  The 140 character limit forces me (and you) to be brief and creative with your messages and that&#8217;s the best thing in the world when I&#8217;m busy but need a little intrigue.</p><p>Did I miss something?  Share!</p><p><a
href="http://davidwalsh.name/reasons-join-twitter">6 Reasons I&#8217;m Glad I Joined&nbsp;Twitter</a> is a post from: <a
href="http://davidwalsh.name">David Walsh :: Legendary scribbles about JavaScript, HTML5, AJAX, PHP, CSS, and ∞.</a></p> ]]></content:encoded> <wfw:commentRss>http://davidwalsh.name/reasons-join-twitter/feed</wfw:commentRss> <slash:comments>5</slash:comments> </item> <item><title>Digg Homepage!!&#160;Woohooo!!</title><link>http://davidwalsh.name/digg-homepage-woohooo</link> <comments>http://davidwalsh.name/digg-homepage-woohooo#comments</comments> <pubDate>Thu, 28 Feb 2008 18:42:17 +0000</pubDate> <dc:creator>David Walsh</dc:creator> <category><![CDATA[Blog]]></category> <category><![CDATA[Bookmarking / Social]]></category><guid
isPermaLink="false">http://davidwalsh.name/digg-homepage-woohooo/</guid> <description><![CDATA[I made the Digg homepage for the first time! Sweet. Nothing like a front page promotion! Subsequently, DZone&#8217;s server crashed quickly. Ooops!Digg Homepage!!&#160;Woohooo!! is a post from: David Walsh :: Legendary scribbles about JavaScript, HTML5, AJAX, PHP, CSS, and ∞.<p><a
href="http://davidwalsh.name/digg-homepage-woohooo">Digg Homepage!!&nbsp;Woohooo!!</a> is a post from: <a
href="http://davidwalsh.name">David Walsh :: Legendary scribbles about JavaScript, HTML5, AJAX, PHP, CSS, and ∞.</a></p> ]]></description> <content:encoded><![CDATA[<p><img
src="http://davidwalsh.name/dw-content/digg-guy.jpg" class="image" /></p><p>I made the Digg homepage for the first time!  Sweet.  Nothing like a front page promotion!</p><p><em>Subsequently, DZone&#8217;s server crashed quickly.  Ooops!</em></p><p><a
href="http://davidwalsh.name/digg-homepage-woohooo">Digg Homepage!!&nbsp;Woohooo!!</a> is a post from: <a
href="http://davidwalsh.name">David Walsh :: Legendary scribbles about JavaScript, HTML5, AJAX, PHP, CSS, and ∞.</a></p> ]]></content:encoded> <wfw:commentRss>http://davidwalsh.name/digg-homepage-woohooo/feed</wfw:commentRss> <slash:comments>4</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced (User agent is rejected)
Database Caching 1/67 queries in 0.108 seconds using disk: basic
Object Caching 1443/1556 objects using disk: basic

Served from: davidwalsh.name @ 2012-05-23 22:17:29 -->
