<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>The Dev Shack</title>
	
	<link>http://www.thedevshack.com</link>
	<description>Thoughts From the World of Tech</description>
	<lastBuildDate>Wed, 14 Jul 2010 14:30:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/TheDevShack" /><feedburner:info uri="thedevshack" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>TheDevShack</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>My Favorite Android Apps – #1 Touiteur</title>
		<link>http://feedproxy.google.com/~r/TheDevShack/~3/2aXc1uHGl2o/</link>
		<comments>http://www.thedevshack.com/my-favorite-android-apps-%e2%80%93-1-touiteur/#comments</comments>
		<pubDate>Wed, 14 Jul 2010 14:30:06 +0000</pubDate>
		<dc:creator>Mike Fleming</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://www.thedevshack.com/?p=386</guid>
		<description><![CDATA[#1 &#8211; Touiteur I am a huge fan of Twitter.  I mostly use it for keeping up with news and sports and for a few aggregators I run.  In looking... <a href='http://www.thedevshack.com/my-favorite-android-apps-%e2%80%93-1-touiteur/'>(read the rest)</a>]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.thedevshack.com%2Fmy-favorite-android-apps-%25e2%2580%2593-1-touiteur%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.thedevshack.com%2Fmy-favorite-android-apps-%25e2%2580%2593-1-touiteur%2F&amp;source=magnetion&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>#1 &#8211; <a href="http://apps.doubletwist.com/Touiteur-(Twitter)/-7825631675319322627" target="_blank">Touiteur</a></p>
<p>I am a huge fan of Twitter.  I mostly use it for keeping up with news and sports and for a few aggregators I run.  In looking for a Twitter app there is one requirement that is a must for me: merged timelines.  I have multiple accounts and enjoy having them in a merged view.  Many of the Twitter apps support multiple accounts, but not merged timelines.  My first Twitter app I used on my Droid was the popular Twidroid application.  It had the features I used the most so I purchased the pro version of it and have used it for quite a period of time.  I used Twidroid until 3 weeks ago, when I came across Touiteur.  Touiteur is now my main Twitter app on my Droid.</p>
<p>Touiteur has most of the same features as Twidroid does, but the user interface is much nicer in my opinion.  It also does a much better job of remembering where you last left off when viewing your timeline.  Twidroid would frequently forget where I left off viewing and would assume I had read all of the tweets.  Touiteur not only merges the main timeline, but also merges the replies and direct messages from all the accounts.</p>
<p>Some of the other features I take advantage of:</p>
<ul>
<li>Bit.ly URL shortening with the option of using your own API key</li>
<li>Support for multiple photo services with Tweetphoto, Twitpic and YFrog</li>
<li>Support for Twitter lists</li>
<li>Search</li>
<li>Trends</li>
<li>Favorites</li>
</ul>
<p>The market contains many difference choices of apps for use with Twitter, but this one has worked the best for me given some of my needs.  Touiteur is also available via a pro version which unlocks a few more features.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TheDevShack?a=2aXc1uHGl2o:3AR9FpvrUMQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TheDevShack?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=2aXc1uHGl2o:3AR9FpvrUMQ:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/TheDevShack?i=2aXc1uHGl2o:3AR9FpvrUMQ:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=2aXc1uHGl2o:3AR9FpvrUMQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TheDevShack?i=2aXc1uHGl2o:3AR9FpvrUMQ:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=2aXc1uHGl2o:3AR9FpvrUMQ:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/TheDevShack?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=2aXc1uHGl2o:3AR9FpvrUMQ:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/TheDevShack?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=2aXc1uHGl2o:3AR9FpvrUMQ:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/TheDevShack?i=2aXc1uHGl2o:3AR9FpvrUMQ:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=2aXc1uHGl2o:3AR9FpvrUMQ:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/TheDevShack?d=l6gmwiTKsz0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TheDevShack/~4/2aXc1uHGl2o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.thedevshack.com/my-favorite-android-apps-%e2%80%93-1-touiteur/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.thedevshack.com/my-favorite-android-apps-%e2%80%93-1-touiteur/</feedburner:origLink></item>
		<item>
		<title>My Favorite Android Apps – #2 SlingPlayer</title>
		<link>http://feedproxy.google.com/~r/TheDevShack/~3/Pfqu2uCeDcQ/</link>
		<comments>http://www.thedevshack.com/my-favorite-android-apps-%e2%80%93-2-slingplayer/#comments</comments>
		<pubDate>Tue, 13 Jul 2010 16:16:44 +0000</pubDate>
		<dc:creator>Mike Fleming</dc:creator>
				<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://www.thedevshack.com/?p=381</guid>
		<description><![CDATA[This is the third post in the series about my favorite Android apps. #2 &#8211; SlingPlayer I have been an avid SlingBox user for many, many years. In fact I... <a href='http://www.thedevshack.com/my-favorite-android-apps-%e2%80%93-2-slingplayer/'>(read the rest)</a>]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.thedevshack.com%2Fmy-favorite-android-apps-%25e2%2580%2593-2-slingplayer%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.thedevshack.com%2Fmy-favorite-android-apps-%25e2%2580%2593-2-slingplayer%2F&amp;source=magnetion&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>This is the third post in the series about my favorite Android apps.</p>
<p>#2 &#8211; <a href="http://apps.doubletwist.com/SlingPlayer-Mobile/161689847495694066" target="_blank">SlingPlayer</a></p>
<p>I have been an avid SlingBox user for many, many years.  In fact I would bet I have one of the first devices they made, and it still works like a champ.  When I first picked up my Droid, I was bummed to see there was no SlingPlayer app at the time.  Previously I was a BlackBerry user and there was an available app for that device.  Finally a few weeks ago the SlingPlayer app went live on the market.  I quickly hit the market and found the app.  To my chagrin I noticed the message that stated the app would only work with the newer models of the SlingBox.  As much as that sucked I didn&#8217;t believe it, as the SlingBox just streams via HTTP.  Browsing around the net for a few minutes I found many folks who said it did work with their older device just fine.  So I bit the bullet and purchased the app.  I was able to quickly confirm it did work perfect with my older SlingBox.</p>
<p>If you are not familiar with the SlingBox, it allows you to watch and control your TV remotely.  You have full control via a virtual remote control for viewing, including controlling your DVR, etc&#8230;  The SlingPlayer is currently available for the PC and many cellular operating systems, including the iPhone and Android.</p>
<p>The Android app streams awesome for me.  Do note, that part of this will be due to the upload speed on your home network as well as the download speed you currently have on your phone.  I have the maxed out U-Verse connection at home so I have a great deal of upload stream to use.  Very rarely do I have issues with streaming, and normally when I do it&#8217;s due to the lack of a cell signal.  In fact, over the weekend I had to make a run to Lowe&#8217;s for some supplies, and watched the Tour de France the entire time I was in Lowe&#8217;s with no issues.  I also use it from home, with my Droid connected via my wireless network.  This works extremely well also.</p>
<p>The one big drawback to this app is the price.  It&#8217;s $29.99 which is very pricy for a mobile application, although in my opinion it is worth the price.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TheDevShack?a=Pfqu2uCeDcQ:jIHMWm-FWS8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TheDevShack?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=Pfqu2uCeDcQ:jIHMWm-FWS8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/TheDevShack?i=Pfqu2uCeDcQ:jIHMWm-FWS8:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=Pfqu2uCeDcQ:jIHMWm-FWS8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TheDevShack?i=Pfqu2uCeDcQ:jIHMWm-FWS8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=Pfqu2uCeDcQ:jIHMWm-FWS8:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/TheDevShack?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=Pfqu2uCeDcQ:jIHMWm-FWS8:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/TheDevShack?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=Pfqu2uCeDcQ:jIHMWm-FWS8:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/TheDevShack?i=Pfqu2uCeDcQ:jIHMWm-FWS8:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=Pfqu2uCeDcQ:jIHMWm-FWS8:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/TheDevShack?d=l6gmwiTKsz0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TheDevShack/~4/Pfqu2uCeDcQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.thedevshack.com/my-favorite-android-apps-%e2%80%93-2-slingplayer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.thedevshack.com/my-favorite-android-apps-%e2%80%93-2-slingplayer/</feedburner:origLink></item>
		<item>
		<title>Google Releases App Inventor for Android</title>
		<link>http://feedproxy.google.com/~r/TheDevShack/~3/pDJJ_F6EBEo/</link>
		<comments>http://www.thedevshack.com/google-releases-app-inventor-for-android/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 16:13:02 +0000</pubDate>
		<dc:creator>Mike Fleming</dc:creator>
				<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://www.thedevshack.com/?p=379</guid>
		<description><![CDATA[Google has released their App Inventor for Android. I have not had a chance yet to play around with this, but on the surface it appears slick. Google claims you... <a href='http://www.thedevshack.com/google-releases-app-inventor-for-android/'>(read the rest)</a>]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.thedevshack.com%2Fgoogle-releases-app-inventor-for-android%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.thedevshack.com%2Fgoogle-releases-app-inventor-for-android%2F&amp;source=magnetion&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Google has released their App Inventor for Android.  I have not had a chance yet to play around with this, but on the surface it appears slick.  Google claims you do not need to be a programmer to create the apps.  So it sort of sounds like a WYSIWYG application for creating apps.  From the site they state:</p>
<p>&#8220;To use App Inventor, you do not need to be a developer. App Inventor requires NO programming knowledge. This is because instead of writing code, you visually design the way the app looks and use blocks to specify the app&#8217;s behavior.&#8221;</p>
<p>You can read all about the <a href="http://appinventor.googlelabs.com/about/" target="_blank">App Inventor from the site</a>.  Has anyone had a chance to use this yet?  If so, drop a comment with your experiences.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TheDevShack?a=pDJJ_F6EBEo:Dhg_n3i6x68:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TheDevShack?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=pDJJ_F6EBEo:Dhg_n3i6x68:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/TheDevShack?i=pDJJ_F6EBEo:Dhg_n3i6x68:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=pDJJ_F6EBEo:Dhg_n3i6x68:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TheDevShack?i=pDJJ_F6EBEo:Dhg_n3i6x68:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=pDJJ_F6EBEo:Dhg_n3i6x68:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/TheDevShack?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=pDJJ_F6EBEo:Dhg_n3i6x68:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/TheDevShack?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=pDJJ_F6EBEo:Dhg_n3i6x68:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/TheDevShack?i=pDJJ_F6EBEo:Dhg_n3i6x68:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=pDJJ_F6EBEo:Dhg_n3i6x68:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/TheDevShack?d=l6gmwiTKsz0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TheDevShack/~4/pDJJ_F6EBEo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.thedevshack.com/google-releases-app-inventor-for-android/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.thedevshack.com/google-releases-app-inventor-for-android/</feedburner:origLink></item>
		<item>
		<title>My Favorite Android Apps – #3 MLB At Bat ’10</title>
		<link>http://feedproxy.google.com/~r/TheDevShack/~3/lvYiRKrpH0g/</link>
		<comments>http://www.thedevshack.com/my-favorite-android-apps-%e2%80%93-3-mlb-at-bat-10/#comments</comments>
		<pubDate>Fri, 09 Jul 2010 14:00:30 +0000</pubDate>
		<dc:creator>Mike Fleming</dc:creator>
				<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://www.thedevshack.com/?p=377</guid>
		<description><![CDATA[This is the second post in the series about my favorite Android apps. #3 – MLB At Bat ‘10 MLB At Bat is a baseball fan’s dream app. If you... <a href='http://www.thedevshack.com/my-favorite-android-apps-%e2%80%93-3-mlb-at-bat-10/'>(read the rest)</a>]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.thedevshack.com%2Fmy-favorite-android-apps-%25e2%2580%2593-3-mlb-at-bat-10%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.thedevshack.com%2Fmy-favorite-android-apps-%25e2%2580%2593-3-mlb-at-bat-10%2F&amp;source=magnetion&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>This is the second post in the series about my favorite Android apps.</p>
<p>#3 – <a href="http://apps.doubletwist.com/MLB.com-At-Bat-2010/7762615090851387850" target="_blank">MLB At Bat ‘10</a></p>
<p>MLB At Bat is a baseball fan’s dream app.  If you are not a fan of baseball, you can probably skip this review, although some of the technology itself is so cool you may want to hear about it or try it out for yourself.</p>
<p>One of the great things about this app for me, is it allows me to easily keep up with my favorite couple of teams.  Both of the teams I follow closely are out of market for me, so without something like this I cannot catch live coverage of their games.  So what exactly does MLB At Bat provide?</p>
<p>The coolest feature of this app is live game audio from EVERY MLB game.  To take that a step further, for each game you can also select the radio broadcast from either the home or away team.  The streaming piece works very well, as I will often dock my Droid in the car if there is a game being played on my drive home from work.</p>
<p>Another cool feature of MLB At Bat is the live pitch by pitch coverage.  It displays each pitch and lets you know what happens.  It also displays the pitch type (fastball, slider, etc…) and the pitch speed.  This comes in handy if you are trying to catch up with the game quickly.</p>
<p>Video highlights are also included in the app.  During the live games you catch video replays of the important plays a few minutes after they happen, and you can also catch the recaps of the games.  The app also provides the normal news and standings around baseball.</p>
<p>The app does lack one feature that would send it over the edge: live game video.  The iPhone version of the app has this feature, so my guess is this should be added in the future.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TheDevShack?a=lvYiRKrpH0g:SX7URuNTHIA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TheDevShack?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=lvYiRKrpH0g:SX7URuNTHIA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/TheDevShack?i=lvYiRKrpH0g:SX7URuNTHIA:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=lvYiRKrpH0g:SX7URuNTHIA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TheDevShack?i=lvYiRKrpH0g:SX7URuNTHIA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=lvYiRKrpH0g:SX7URuNTHIA:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/TheDevShack?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=lvYiRKrpH0g:SX7URuNTHIA:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/TheDevShack?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=lvYiRKrpH0g:SX7URuNTHIA:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/TheDevShack?i=lvYiRKrpH0g:SX7URuNTHIA:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=lvYiRKrpH0g:SX7URuNTHIA:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/TheDevShack?d=l6gmwiTKsz0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TheDevShack/~4/lvYiRKrpH0g" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.thedevshack.com/my-favorite-android-apps-%e2%80%93-3-mlb-at-bat-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.thedevshack.com/my-favorite-android-apps-%e2%80%93-3-mlb-at-bat-10/</feedburner:origLink></item>
		<item>
		<title>My Favorite Android Apps – #4 AppAware</title>
		<link>http://feedproxy.google.com/~r/TheDevShack/~3/wNLmlSJ1JMM/</link>
		<comments>http://www.thedevshack.com/my-favorite-android-apps-%e2%80%93-4-appaware/#comments</comments>
		<pubDate>Tue, 06 Jul 2010 14:18:33 +0000</pubDate>
		<dc:creator>Mike Fleming</dc:creator>
				<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://www.thedevshack.com/?p=374</guid>
		<description><![CDATA[This is the second post in the series about my favorite Android apps. #4 &#8211; AppAware I stumbled across AppAware about three months ago. At first I really did not... <a href='http://www.thedevshack.com/my-favorite-android-apps-%e2%80%93-4-appaware/'>(read the rest)</a>]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.thedevshack.com%2Fmy-favorite-android-apps-%25e2%2580%2593-4-appaware%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.thedevshack.com%2Fmy-favorite-android-apps-%25e2%2580%2593-4-appaware%2F&amp;source=magnetion&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>This is the second post in the series about my favorite Android apps.</p>
<p>#4 &#8211; <a href="http://apps.doubletwist.com/AppAware-Market-and-Twitter/8601102907098179120" target="_blank">AppAware</a></p>
<p>I stumbled across AppAware about three months ago.  At first I really did not get the point of what it was all about.  It markets itself as the social market for Android.  So in a nutshell what does this app do?  It helps you find apps.</p>
<p>When you install AppAware it hooks into your installed applications.  So it is aware of what you have installed, which apps you update and which apps you delete.  Using this data from users around the globe it will then compile a list of the top apps.  You can view the top installs in the last hour, the last day or the last week.  So it lets you easily see the most popular apps.</p>
<p>To take it a step further, once you click on an individual app to view the details it shows you a list of installs and uninstalls.  Using that data you can get a feel for how worthwhile the app is.  If it has 100 installs, and then 75 uninstalls it probably means folks downloaded it, tried it out, and decided it wasn&#8217;t worth keeping.  On the flip side if there were few uninstalls it probably means it&#8217;s a worthwhile app, and thus worth checking out.  If you want to check it out AppAware provides a direct link to the Android Market where you can install the app.</p>
<p>The main screen of AppAware also provides a little neat interface that displays in real time app installs and uninstalls.  So it allows you to see these in a refreshing timeline view.</p>
<p>AppAware has some other features that are optional that I do not use.  One of these features allows you to share via your Twitter account  which apps you are installing.  You can also enable the GPS location which will allow you to track the data mentioned above based on your location, so you can see the popular apps within a certain radius of your GPS point.</p>
<p>The reason I dig this app is the ease at which I can find new and popular apps.  I have stumbled across some of my favorite ones using AppAware.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TheDevShack?a=wNLmlSJ1JMM:a2Pxs3YfkD8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TheDevShack?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=wNLmlSJ1JMM:a2Pxs3YfkD8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/TheDevShack?i=wNLmlSJ1JMM:a2Pxs3YfkD8:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=wNLmlSJ1JMM:a2Pxs3YfkD8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TheDevShack?i=wNLmlSJ1JMM:a2Pxs3YfkD8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=wNLmlSJ1JMM:a2Pxs3YfkD8:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/TheDevShack?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=wNLmlSJ1JMM:a2Pxs3YfkD8:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/TheDevShack?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=wNLmlSJ1JMM:a2Pxs3YfkD8:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/TheDevShack?i=wNLmlSJ1JMM:a2Pxs3YfkD8:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=wNLmlSJ1JMM:a2Pxs3YfkD8:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/TheDevShack?d=l6gmwiTKsz0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TheDevShack/~4/wNLmlSJ1JMM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.thedevshack.com/my-favorite-android-apps-%e2%80%93-4-appaware/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.thedevshack.com/my-favorite-android-apps-%e2%80%93-4-appaware/</feedburner:origLink></item>
		<item>
		<title>My Favorite Android Apps – #5 Remote Desktop</title>
		<link>http://feedproxy.google.com/~r/TheDevShack/~3/3VEEhOOv1kg/</link>
		<comments>http://www.thedevshack.com/my-favorite-android-apps-5-remote-desktop/#comments</comments>
		<pubDate>Mon, 05 Jul 2010 18:11:13 +0000</pubDate>
		<dc:creator>Mike Fleming</dc:creator>
				<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://www.thedevshack.com/?p=367</guid>
		<description><![CDATA[In the coming days I will be counting down my top 5 favorite Android apps. I currently have a Verizon Motorola Droid and cannot sing the praises of this device... <a href='http://www.thedevshack.com/my-favorite-android-apps-5-remote-desktop/'>(read the rest)</a>]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.thedevshack.com%2Fmy-favorite-android-apps-5-remote-desktop%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.thedevshack.com%2Fmy-favorite-android-apps-5-remote-desktop%2F&amp;source=magnetion&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>In the coming days I will be counting down my top 5 favorite Android apps.  I currently have a Verizon Motorola Droid and cannot sing the praises of this device enough.</p>
<p>#5 &#8211; <a href="http://apps.doubletwist.com/Remote-Desktop-Client/7894146482652681161" target="_blank">Remote Desktop</a></p>
<p>I&#8217;ll start this little review by explaining  how I discovered this app.  My wife and I adopted a son in Florida and had a very long drive back to our home.  An hour or so into our trip I received an email from a hosting client saying their website appeared to be down.  Using another great app called Ping, I was able to determine the server itself was up and responding via a ping, but it was not serving web pages powered by ColdFusion.  It was fairly obvious the ColdFusion service needed a restart, but how would I do that from the car with no access to a computer?  After a quick search on the market I came across the Remote Desktop app.  I purchased the app and within minutes I was logged onto my server via the Droid.  I was able to restart the service and return everything back to normal.  How cool is that?  Amazing what technology can do these days.</p>
<p>The app itself actually has a nice interface given the real estate of the Droid screen dimensions.  You can easily scroll and within minutes you will get used to the tap, double tap and delayed tap that allows you to perform the actions on the remote machine.  It also allows you to store different connections so you can easily remote into a machine with a single tap of the screen.  An optional (but highly recommended) setting also allows you to set up a master password, which must be typed in every time the app is opened.</p>
<p>I would highly recommended this app if you are tasked with keeping servers online.  It gives you peace of mind knowing you can access a server from your phone.  It&#8217;s also handy just logging into your own workstation from time to time as well.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TheDevShack?a=3VEEhOOv1kg:mEL5hWO90oI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TheDevShack?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=3VEEhOOv1kg:mEL5hWO90oI:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/TheDevShack?i=3VEEhOOv1kg:mEL5hWO90oI:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=3VEEhOOv1kg:mEL5hWO90oI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TheDevShack?i=3VEEhOOv1kg:mEL5hWO90oI:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=3VEEhOOv1kg:mEL5hWO90oI:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/TheDevShack?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=3VEEhOOv1kg:mEL5hWO90oI:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/TheDevShack?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=3VEEhOOv1kg:mEL5hWO90oI:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/TheDevShack?i=3VEEhOOv1kg:mEL5hWO90oI:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=3VEEhOOv1kg:mEL5hWO90oI:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/TheDevShack?d=l6gmwiTKsz0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TheDevShack/~4/3VEEhOOv1kg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.thedevshack.com/my-favorite-android-apps-5-remote-desktop/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://www.thedevshack.com/my-favorite-android-apps-5-remote-desktop/</feedburner:origLink></item>
		<item>
		<title>The Killer iRobot Is Here</title>
		<link>http://feedproxy.google.com/~r/TheDevShack/~3/CKDStfCJXxA/</link>
		<comments>http://www.thedevshack.com/the-killer-irobot-is-here/#comments</comments>
		<pubDate>Wed, 02 Jun 2010 11:15:06 +0000</pubDate>
		<dc:creator>Mike Fleming</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.thedevshack.com/?p=363</guid>
		<description><![CDATA[Sometimes you come across some cool technology that you must share. This iRobot video is one of those. Definitely some cool technology involved here.]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.thedevshack.com%2Fthe-killer-irobot-is-here%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.thedevshack.com%2Fthe-killer-irobot-is-here%2F&amp;source=magnetion&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Sometimes you come across some cool technology that you must share.  This iRobot video is one of those.  Definitely some cool technology involved here.</p>
<div align="center">
<object width="500" height="405"><param name="movie" value="http://www.youtube.com/v/A3jab7rnIL0&#038;hl=en_US&#038;fs=1&#038;rel=0&#038;color1=0x3a3a3a&#038;color2=0x999999&#038;border=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/A3jab7rnIL0&#038;hl=en_US&#038;fs=1&#038;rel=0&#038;color1=0x3a3a3a&#038;color2=0x999999&#038;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="500" height="405"></embed></object>
</div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TheDevShack?a=CKDStfCJXxA:k68heHrl3cM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TheDevShack?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=CKDStfCJXxA:k68heHrl3cM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/TheDevShack?i=CKDStfCJXxA:k68heHrl3cM:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=CKDStfCJXxA:k68heHrl3cM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TheDevShack?i=CKDStfCJXxA:k68heHrl3cM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=CKDStfCJXxA:k68heHrl3cM:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/TheDevShack?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=CKDStfCJXxA:k68heHrl3cM:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/TheDevShack?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=CKDStfCJXxA:k68heHrl3cM:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/TheDevShack?i=CKDStfCJXxA:k68heHrl3cM:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=CKDStfCJXxA:k68heHrl3cM:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/TheDevShack?d=l6gmwiTKsz0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TheDevShack/~4/CKDStfCJXxA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.thedevshack.com/the-killer-irobot-is-here/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.thedevshack.com/the-killer-irobot-is-here/</feedburner:origLink></item>
		<item>
		<title>Geocode Addresses in T-SQL</title>
		<link>http://feedproxy.google.com/~r/TheDevShack/~3/E6xFwSxbvmM/</link>
		<comments>http://www.thedevshack.com/geocode-addresses-in-t-sql/#comments</comments>
		<pubDate>Fri, 21 May 2010 00:49:06 +0000</pubDate>
		<dc:creator>Mike Fleming</dc:creator>
				<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://www.thedevshack.com/?p=357</guid>
		<description><![CDATA[Just wanted to pass along this article from SQLServerCentral on how you can use Google&#8217;s Geocode API within T-SQL. This is some very slick code. Geocode Addresses in T-SQL]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.thedevshack.com%2Fgeocode-addresses-in-t-sql%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.thedevshack.com%2Fgeocode-addresses-in-t-sql%2F&amp;source=magnetion&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Just wanted to pass along this article from SQLServerCentral on how you can use Google&#8217;s Geocode API within T-SQL.  This is some very slick code.</p>
<p><a href="http://www.sqlservercentral.com/articles/geocode/70061/">Geocode Addresses in T-SQL</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TheDevShack?a=E6xFwSxbvmM:wG-jmP-dYFk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TheDevShack?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=E6xFwSxbvmM:wG-jmP-dYFk:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/TheDevShack?i=E6xFwSxbvmM:wG-jmP-dYFk:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=E6xFwSxbvmM:wG-jmP-dYFk:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TheDevShack?i=E6xFwSxbvmM:wG-jmP-dYFk:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=E6xFwSxbvmM:wG-jmP-dYFk:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/TheDevShack?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=E6xFwSxbvmM:wG-jmP-dYFk:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/TheDevShack?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=E6xFwSxbvmM:wG-jmP-dYFk:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/TheDevShack?i=E6xFwSxbvmM:wG-jmP-dYFk:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=E6xFwSxbvmM:wG-jmP-dYFk:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/TheDevShack?d=l6gmwiTKsz0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TheDevShack/~4/E6xFwSxbvmM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.thedevshack.com/geocode-addresses-in-t-sql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.thedevshack.com/geocode-addresses-in-t-sql/</feedburner:origLink></item>
		<item>
		<title>Post #2: Use the .NET TweetSharp Library to Integrate with Twitter via OAuth</title>
		<link>http://feedproxy.google.com/~r/TheDevShack/~3/HYP8yn8drPw/</link>
		<comments>http://www.thedevshack.com/post-2-use-the-net-tweetsharp-library-to-integrate-with-twitter-via-oauth/#comments</comments>
		<pubDate>Mon, 23 Nov 2009 12:42:55 +0000</pubDate>
		<dc:creator>Mike Fleming</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://www.thedevshack.com/?p=350</guid>
		<description><![CDATA[Today&#8217;s post is the second in a series explaining how to integrate TweetSharp into your .NET application using OAuth.&#160; In our first post we covered the basics of registering a... <a href='http://www.thedevshack.com/post-2-use-the-net-tweetsharp-library-to-integrate-with-twitter-via-oauth/'>(read the rest)</a>]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.thedevshack.com%2Fpost-2-use-the-net-tweetsharp-library-to-integrate-with-twitter-via-oauth%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.thedevshack.com%2Fpost-2-use-the-net-tweetsharp-library-to-integrate-with-twitter-via-oauth%2F&amp;source=magnetion&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Today&#8217;s post is the second in a series explaining how to integrate TweetSharp into your .NET application using OAuth.&nbsp; In our first post we covered the basics of registering a new application with Twitter.&nbsp; This post will cover how you ask, then grant access from someone&#8217;s Twitter account to your new application using OAuth.<span id="more-350"></span></p>
<p>We will start by creating a very simple page in our application with a single button.&nbsp; When clicked the button will begin the OAuth process via Twitter.&nbsp; Essentially, the user will tell us they would like to grant acesss to their account from our application.&nbsp; From there we will take their request, send the request to Twitter, then grab the response.</p>
<p>So our first step is to create a way for the user to let us know they would like to use our app.&nbsp; As stated above, this will just be a simple button they user will click to start the process.</p>
<p><code lang="csharp[lines]"><%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>       </p>
<p><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">       </p>
<p><html xmlns="http://www.w3.org/1999/xhtml"><br />
<head runat="server">       </p>
<p></head><br />
<body>       </p>
<form id="form1" runat="server">
<div>
            <strong>Clicking the button below will start the OAuth process, which will grant our application access to your Twitter account.</strong></p>
<p>            <asp:Button ID="oauthButton" runat="server" Text="Grant Access" OnClick="Oauth_Click" />
        </div>
</p></form>
<p></body><br />
</html></code></p>
<p>In our code behind we will start our process in the function tied to our button.&nbsp; You will notice that I have set some variables that hold some of the values we set up in the first post.&nbsp; When you registered your new application with Twitter they set us up a Consumer Key and a Consumer Secret.&nbsp; We will use these as part of the request we pass back to Twitter.&nbsp; So make sure you replace the variables below with the values from your application.&nbsp; We have tied our click event to a function named Oauth_Click.&nbsp; This function starts our OAuth process.&nbsp; We first set up our request, then pass our user to Twitter.</p>
<p><code lang="csharp[lines]">using System;<br />
using Dimebrain.TweetSharp.Extensions;<br />
using Dimebrain.TweetSharp.Fluent;<br />
using Dimebrain.TweetSharp.Model;     </p>
<p>public partial class _Default : System.Web.UI.Page<br />
{<br />
    private string _consumerKey = "YourKey";<br />
    private string _consumerSecret = "YourSecret";     </p>
<p>    protected void Page_Load(object sender, EventArgs e)<br />
    {     </p>
<p>    }     </p>
<p>    protected void Oauth_Click(Object sender, EventArgs e)<br />
    {<br />
        var request = GetRequestToken();     </p>
<p>        var authorizeUrl = FluentTwitter.CreateRequest()<br />
            .Authentication<br />
            .GetAuthorizationUrl(request.Token);     </p>
<p>        Response.Redirect(authorizeUrl);<br />
    }     </p>
<p>    private OAuthToken GetRequestToken()<br />
    {<br />
        var requestToken = FluentTwitter.CreateRequest()<br />
            .Authentication.GetRequestToken(_consumerKey, _consumerSecret);     </p>
<p>        var response = requestToken.Request();<br />
        var result = response.AsToken();     </p>
<p>        if (result == null)<br />
        {<br />
            var error = response.AsError();<br />
            if (error != null)<br />
            {<br />
                throw new Exception(error.ErrorMessage);<br />
            }<br />
        }     </p>
<p>        return result;<br />
    }<br />
}</code></p>
<p>So when our user clicks the button, they will see a message from Twitter asking if they would like to grant our app access.&nbsp; From here the user can log into their Twitter account and verify our access to their account.</p>
<p>Easy so far!&nbsp; Our last piece of completing the OAuth access is set up our callback URL.&nbsp; Remember from our first post that we set up a callback URL as part of setting up our application.&nbsp; This URL is where Twitter will send the response back to our application.&nbsp; From here, we need to verify our response, then store the returned OAuth information for the user.</p>
<p>I set up my callback URL as welcome.aspx.&nbsp; The display of this page is just a label, where we can pass the result to our user.</p>
<p><code lang="csharp[lines]"><%@ Page Language="C#" AutoEventWireup="true" CodeFile="welcome.aspx.cs" Inherits="welcome" %>     </p>
<p><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">     </p>
<p><html xmlns="http://www.w3.org/1999/xhtml"><br />
<head runat="server">     </p>
<p></head><br />
<body>     </p>
<form id="form1" runat="server">
<div>
        <asp:Label ID="welcomeLabel" runat="server" />
    </div>
</p></form>
<p></body><br />
</html></code></p>
<p>Once again in our code behind we will use the Consumer Key and Consumer Secret variables for our application.&nbsp; When this page is loaded we will first check to make sure we have a valid request that has been returned from Twitter.&nbsp; If not, you can trap this and do something like send the user back to our default page to try again.&nbsp; If we do have a valid request returned, we can validate the credentials passed back to us and display a nice neat welcome message to our user.</p>
<p><code lang="csharp[lines]">using System;<br />
using Dimebrain.TweetSharp.Extensions;<br />
using Dimebrain.TweetSharp.Fluent;<br />
using Dimebrain.TweetSharp.Model;    </p>
<p>public partial class welcome : System.Web.UI.Page<br />
{<br />
    private string _consumerKey = "YourKey";<br />
    private string _consumerSecret = "YourSecret";    </p>
<p>    protected void Page_Load(object sender, EventArgs e)<br />
    {<br />
        var requestToken = Request["oauth_token"];<br />
        if (requestToken == null)<br />
        {<br />
            //place your error code here, as no token was returned<br />
        }<br />
        else<br />
        {<br />
            // exchange returned request token for access token<br />
            var access = GetAccessToken(requestToken);    </p>
<p>            //verify returned info<br />
            var query = FluentTwitter.CreateRequest()<br />
                .AuthenticateWith(_consumerKey,<br />
                                  _consumerSecret,<br />
                                  access.Token,<br />
                                  access.TokenSecret)<br />
                .Account()<br />
                .VerifyCredentials()<br />
                .AsXml();    </p>
<p>            var response = query.Request();<br />
            var identity = response.AsUser();    </p>
<p>//store the returned values for future use<br />
//access.Token<br />
//access.TokenSecret    </p>
<p>            //display welcome message<br />
            welcomeLabel.Text = "Welcome " + identity.ScreenName + ", you now have access to our demo application.";<br />
        }<br />
    }    </p>
<p>    private OAuthToken GetAccessToken(string requestToken)<br />
    {<br />
        var accessToken = FluentTwitter.CreateRequest()<br />
            .Authentication.GetAccessToken(_consumerKey, _consumerSecret, requestToken);    </p>
<p>        var response = accessToken.Request();<br />
        var result = response.AsToken();    </p>
<p>        return result;<br />
    }<br />
}</code></p>
<p>We have now successfully set up access to our application for a user via OAuth.&nbsp; One step that is not in this demo is storing the values returned from Twitter.&nbsp; Depending on what you plan to do with your app, you will need to store these values for future API requests.&nbsp; TweetSharp will return to you two variables, Token and TokenSecret for the user.&nbsp; In my apps I store these in a database to grab for future use.</p>
<p>That&#8217;s it for today&#8217;s post.&nbsp; Our final post in this series will show you how to post status updates via your application.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TheDevShack?a=HYP8yn8drPw:1gbfRgoETew:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TheDevShack?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=HYP8yn8drPw:1gbfRgoETew:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/TheDevShack?i=HYP8yn8drPw:1gbfRgoETew:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=HYP8yn8drPw:1gbfRgoETew:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TheDevShack?i=HYP8yn8drPw:1gbfRgoETew:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=HYP8yn8drPw:1gbfRgoETew:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/TheDevShack?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=HYP8yn8drPw:1gbfRgoETew:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/TheDevShack?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=HYP8yn8drPw:1gbfRgoETew:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/TheDevShack?i=HYP8yn8drPw:1gbfRgoETew:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=HYP8yn8drPw:1gbfRgoETew:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/TheDevShack?d=l6gmwiTKsz0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TheDevShack/~4/HYP8yn8drPw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.thedevshack.com/post-2-use-the-net-tweetsharp-library-to-integrate-with-twitter-via-oauth/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.thedevshack.com/post-2-use-the-net-tweetsharp-library-to-integrate-with-twitter-via-oauth/</feedburner:origLink></item>
		<item>
		<title>New Series: Use the .NET TweetSharp Library to Integrate with Twitter via OAuth</title>
		<link>http://feedproxy.google.com/~r/TheDevShack/~3/y4YDzGYYn7E/</link>
		<comments>http://www.thedevshack.com/new-series-use-the-net-tweetsharp-library-to-integrate-with-twitter-via-oauth/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 12:52:05 +0000</pubDate>
		<dc:creator>Mike Fleming</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://www.thedevshack.com/?p=345</guid>
		<description><![CDATA[This is the first post on a new series I will be posting on integrating TweetSharp into your .NET applications.&#160; It will also show you how to use OAuth, as... <a href='http://www.thedevshack.com/new-series-use-the-net-tweetsharp-library-to-integrate-with-twitter-via-oauth/'>(read the rest)</a>]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.thedevshack.com%2Fnew-series-use-the-net-tweetsharp-library-to-integrate-with-twitter-via-oauth%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.thedevshack.com%2Fnew-series-use-the-net-tweetsharp-library-to-integrate-with-twitter-via-oauth%2F&amp;source=magnetion&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>This is the first post on a new series I will be posting on integrating <a href="http://tweetsharp.com" target="_blank">TweetSharp</a> into your .NET applications.&nbsp; It will also show you how to use <a href="http://oauth.net" target="_blank">OAuth</a>, as all the examples will be connecting to Twitter via OAuth.<span id="more-345"></span></p>
<p>So what is TweetSharp?&nbsp; It&#8217;s a .NET library that hooks 100% into the Twitter API.&nbsp; The project is constantly updated as bugs and enhancements are pushed out to the Twitter API.&nbsp; I have been using TweetSharp in an application I wrote 6 months ago and it has worked flawless.</p>
<p>I will start by explaining what this series will cover.&nbsp; In the first post I will go over how you actually create an application on your Twitter account.&nbsp; By the end we will be grabbing our security tokens via OAuth and posting status updates to Twitter via OAuth.</p>
<p>Our first step in setting up our little application will be to register a new app with Twitter.&nbsp; In order to use the OAuth features, you must start by doing this.&nbsp; So let&#8217;s get started.</p>
<p>Log into your Twitter account via the web.&nbsp; Once you are logged in point your browser to <a href="http://twitter.com/apps">http://twitter.com/apps</a> where you will see a listing of your current apps, or a link to register a new application.</p>
<p><img class="size-full wp-image-346 alignnone" title="series1-1" src="http://www.thedevshack.com/wp-content/uploads/2009/11/series1-1.gif" alt="series1-1" width="585" height="428" /></p>
<p>Click on the link to register a new application.&nbsp; From this page you can start to enter in the details of your new application including an icon and the name of your app.&nbsp; Our most important areas of the signup for this post are to set the application type to &#8220;Browser&#8221;, the default access type to &#8220;Read &amp; Write&#8221; and the Callback URL.&nbsp; The Callback URL is where Twitter where send the user to after they grant your application access to their account via OAuth.&nbsp; We will discuss the code on this page in another post.&nbsp; It&#8217;s also important to note that this URL needs to be publicly available.&nbsp; For now set this to the full URL of your callback page.</p>
<p>Once you submit this page you will be taken to the main screen for your new application.&nbsp; Take note of all the information returned on this page, as it will be critical later on!&nbsp; Both the consumer key and the consumer secret fields will be used in our code to work with OAuth.</p>
<p>So now that your new app is set up, you can read a little more about <a href="http://tweetsharp.com" target="_blank">TweetSharp</a> and go ahead and <a href="http://tweetsharp.googlecode.com/" target="_blank">download</a> the library.&nbsp; Our next post will explain how to authorize a user&#8217;s Twitter account to use your application via OAuth.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TheDevShack?a=y4YDzGYYn7E:Xg98S6_rLgg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TheDevShack?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=y4YDzGYYn7E:Xg98S6_rLgg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/TheDevShack?i=y4YDzGYYn7E:Xg98S6_rLgg:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=y4YDzGYYn7E:Xg98S6_rLgg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TheDevShack?i=y4YDzGYYn7E:Xg98S6_rLgg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=y4YDzGYYn7E:Xg98S6_rLgg:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/TheDevShack?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=y4YDzGYYn7E:Xg98S6_rLgg:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/TheDevShack?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=y4YDzGYYn7E:Xg98S6_rLgg:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/TheDevShack?i=y4YDzGYYn7E:Xg98S6_rLgg:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheDevShack?a=y4YDzGYYn7E:Xg98S6_rLgg:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/TheDevShack?d=l6gmwiTKsz0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TheDevShack/~4/y4YDzGYYn7E" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.thedevshack.com/new-series-use-the-net-tweetsharp-library-to-integrate-with-twitter-via-oauth/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.thedevshack.com/new-series-use-the-net-tweetsharp-library-to-integrate-with-twitter-via-oauth/</feedburner:origLink></item>
	</channel>
</rss>
