<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>WebServiceable &#187; Code</title>
	<atom:link href="http://webserviceable.com/topic/code/feed/" rel="self" type="application/rss+xml" />
	<link>http://webserviceable.com</link>
	<description>Mashups, APIs, Custom APIs. Information Shared.</description>
	<lastBuildDate>Mon, 23 Nov 2009 19:10:32 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>How to Create a GreaseMonkey Script using JQuery and SelectorGadget</title>
		<link>http://webserviceable.com/2009/02/27/how-to-create-a-greasemonkey-script-using-jquery-and-selectorgadget/</link>
		<comments>http://webserviceable.com/2009/02/27/how-to-create-a-greasemonkey-script-using-jquery-and-selectorgadget/#comments</comments>
		<pubDate>Fri, 27 Feb 2009 21:16:13 +0000</pubDate>
		<dc:creator>electBlake</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[GreaseMonkey]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[SelectorGadget]]></category>
		<category><![CDATA[TechCrunch]]></category>

		<guid isPermaLink="false">http://webserviceable.com/?p=109</guid>
		<description><![CDATA[Hello Hello,
I am here again, only an hour after I originally posted about this great new tool to give you a tutorial I quickly wrapped up about using the SelectorGadget Bookmarklet Tool and JQuery to create a simple GreaseMonkey userscript.
SelectorGadget Background
SelectorGadget is a great new bookmarklet tool that you can use on any website to [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p><img style="float: left; margin-left: 10px; margin-right: 10px;" src="http://theappslab.com/wp-content/uploads/2009/01/inspector-gadget.jpg" alt="" />Hello Hello,</p>
<p>I am here again, only an hour after I originally posted about this great new tool to give you a tutorial I quickly wrapped up about using the SelectorGadget Bookmarklet Tool and JQuery to create a simple GreaseMonkey userscript.</p>
<h3>SelectorGadget Background</h3>
<p>SelectorGadget is a great new bookmarklet tool that you can use on <em>any</em> website to select html elements on the page dynamically! The real power of SelectorGadget is that is that it automatically selects similar elements! So as you select what you want and don&#8217;t want, it will work towards selecting the exact elements on the page you want, for example the titles of blog posts! (I&#8217;ll give a tutorial below)</p>
<p>The Official Description is (lifted from the official homepage)</p>
<blockquote><p>&#8220;SelectorGadget is an open source bookmarklet that makes <a href="http://www.w3.org/TR/CSS2/selector.html" target="_blank" >CSS selector</a> generation and discovery on complicated sites a breeze. Just drag the bookmarklet to your bookmark bar, then go to any page and press it. A box will open in the bottom right of the website. Click on a page element that you would like your selector to match (it will turn green). SelectorGadget will then generate a minimal CSS selector for that element, and will highlight (yellow) everything that is matched by the selector.&#8221;</p>
</blockquote>
<p>If you go to the SelectorGadget Homepage you can see a great tutorial video on the basics on using SelectorGadget, I&#8217;ll quickly run through the minimal installation process to save you click around until you want to do your additional research <img src='http://webserviceable.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><span id="more-109"></span></p>
<h4>How to Install SelectorGadget</h4>
<ol>
<li>Go to the SelectorGadget Homepage</li>
<li>Scroll to the bottom of the page and find the  link &#8220;Drag this link to your bookmark bar: <a href="javascript:(function(){var%20s=document.createElement('div');s.innerHTML='Loading...';s.style.color='black';s.style.padding='20px';s.style.position='fixed';s.style.zIndex='9999';s.style.fontSize='3.0em';s.style.border='2px%20solid%20black';s.style.right='40px';s.style.top='40px';s.setAttribute('class','selector_gadget_loading');s.style.background='white';document.body.appendChild(s);s=document.createElement('script');s.setAttribute('type','text/javascript');s.setAttribute('src','http://www.selectorgadget.com/stable/lib/selectorgadget.js?raw=true" target="_blank" );document.body.appendChild(s);})();">SelectorGadget</a>&#8220;<em><br />
 note: you can drag the link above into your toolbar, but it is highly recommended you go to the official website to get the latest version.</em></li>
<li>Drag the link &#8220;SelectGadget&#8221; into your toolbar.</li>
<li>You should now see a link that looks like: <img class="alignnone size-full wp-image-111" title="SelectorGadget Bookmarklet in Toolbar" src="http://webserviceable.com/wp-content/uploads/2009/02/picture-18.png" alt="SelectorGadget Bookmarklet in Toolbar" width="107" height="30" /></li>
<li>Your good to go!</li>
</ol>
<p>Ok, now that you have the bookmarklet installed, lets take a look at a tutorial to get your started.</p>
<h3>SelectorGadget + JQuery Tutorial to Create a GreaseMonkey Script</h3>
<p>GreaseMonkey is a platform for installing little javascript applications to change the websites you view. GreaseMonkey can all links to download files located on a page, and can even pre-load information or load widget from other sites entirely!</p>
<p>If your curious about GreaseMonkey you can <a href="http://diveintogreasemonkey.org/install/what-is-greasemonkey.html" target="_blank" title="What is GreaseMonkey?" >read about what it is here</a> or just <a target="_blank" title="Install GreaseMonkey" href="https://addons.mozilla.org/en-US/firefox/addon/748">install the firefox plugin here<br />
 </a></p>
<h4><strong>Tutorial Goal</strong></h4>
<p>In this tutorial we are going to add google search icons to each post listed on TechCrunch.com</p>
<h4><strong>The TechCrunch Improved View GreaseMonkey Tutorial<br />
 </strong></h4>
<ol>
<li>
<p><strong>Browse to TechCrunch.com and Click on the SelectorGadget Bookmarklet</strong></p>
<p><strong> </strong>You should see the SelectorGadget widget on your screen like so: <img class="alignnone size-full wp-image-112" title="SelectGadget Widget" src="http://webserviceable.com/wp-content/uploads/2009/02/picture-19.png" alt="SelectGadget Widget" width="435" height="35" /></p>
</li>
<li>
<p><strong>Now Click on the title of a news post, and you should see it turn green to indicate it&#8217;s been selected.</strong></p>
<p>You will also see yellow highlights on the screen, these are the elements that SelectorGadget&#8217;s engine believes you want to select also:</p>
<p><img class="alignnone size-full wp-image-113" title="picture-12" src="http://webserviceable.com/wp-content/uploads/2009/02/picture-12.png" alt="picture-12" width="470" height="339" /></p>
</li>
<li>
<p><strong>We only want the titles for this tutorial so lets hover over one of the highlighten areas and click to remove them.</strong></p>
<p>You&#8217;ll notice that it turns orange to show that it will be taken out of the SelectorGadget selection and the engine should re-adjust its auto-selection to meet your needs:</p>
<p><img class="alignnone size-full wp-image-114" title="picture-13" src="http://webserviceable.com/wp-content/uploads/2009/02/picture-13.png" alt="picture-13" width="452" height="74" /></p>
</li>
<li>
<p>Now you should have only the titles selected!</p>
<p><img class="alignnone size-full wp-image-115" title="picture-14" src="http://webserviceable.com/wp-content/uploads/2009/02/picture-14.png" alt="picture-14" width="459" height="454" /></p>
</li>
<li>
<p><strong>Now you have a clean CSS Selector you can use.</strong></p>
<p>The SelectorGadget Widget now gives a very clean CSS Selector you can use in ANY of you applications, ours is: <br />
 <strong>.excerpt_header a</strong></p>
<p><img class="alignnone size-full wp-image-116" title="picture-15" src="http://webserviceable.com/wp-content/uploads/2009/02/picture-15.png" alt="picture-15" width="491" height="27" /></p>
<p>In my original post I explained some of the <a href="http://webserviceable.com/2009/02/27/introducing-selectorgadget-dapper-style-dom-selection-for-jquery-javascript-and-beyond/" >uses I could imagine for SelectorGadget</a>, feel free to check those out now <img src='http://webserviceable.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
</li>
<li>
<p><strong>This tutorials goal focused on the Widget itself, so I won&#8217;t go into ALOT of depth with the GreaseMonkey widget, but I&#8217;ll explain how this selector is used in a userscript <img src='http://webserviceable.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </strong></p>
<p>I promised JQuery for this tutorial, so I am going to use the following simple integration I found here: http://internetducttape.com/2008/05/08/greasemonkey-ninja-jquery/</p>
</li>
<li>
<p><strong>The Template for this Userscript can be found in:<a href="http://webserviceable.com/dev/jquery-template.js" > jquery-template.js</a></strong></p>
<p><strong> </strong>The important section (and the only section we really need to change is):</p>
<p>// All your GM code must be inside this function<br />
 function letsJQuery() {</p>
<p><em><strong>// CODE GOES HERE</strong></em></p>
<p>}</p>
</li>
<li>
<p><strong>Now lets grab the titles of the page using jquery:</strong></p>
<p>titles = $(&#8217;.excerpt_header a&#8217;);</p>
</li>
<li>
<p><strong>Now that we have an array of the titles in JQuery, we can add a link!</strong></p>
<p>First we pull the text from the title of the news post, and then add a little google icon which links to the google search for that news post:</p>
<p>$(titles).each(function(i) {<br />
 title_text = $(this).attr(&#8217;innerHTML&#8217;);<br />
 $(this).after(&#8217;&lt;a style=&#8221;margin:5px;&#8221; target=&#8221;_blank&#8221; href=&#8221;http://google.com/search?q=&#8217;+title_text+&#8217;&#8221;&gt;&lt;img src=&#8221;http://www.mindzilla.com/grabicon.cgi/google.png?uri=google.com&amp;format=png&#8221; alt=&#8221;Search on Google.com&#8221; /&gt;&lt;/a&gt;&#8217;);<br />
 }</p>
<p>(you&#8217;ll notice I use a webservice to grab google&#8217;s icon, I&#8217;m lazy and I think for this tutorial its fine, this script is not ment for production use)</p>
</li>
<li>
<p><strong>Now, if you install this user script, you can see that it adds google links to all of the titles at TechCrunch.com!</strong></p>
</li>
<li>
<p><strong>You can install this tutorials userscript by browsing to: <a href="http://webserviceable.com/dev/techcrunch_improved_view.user.js" >webserviceable.com/dev/techcrunch_improved_view.user.js</a></strong></p>
<p>You&#8217;ll know see little google icons on every post at techcrunch.com!</p>
<p><img class="alignnone size-full wp-image-120" title="SelectorGadget + JQuery + GreaseMonkey on TechCrunch.com!" src="http://webserviceable.com/wp-content/uploads/2009/02/picture-20.png" alt="SelectorGadget + JQuery + GreaseMonkey on TechCrunch.com!" width="606" height="102" /></p>
</li>
<li>
<p><strong>Oops! If you were following the tutorial exactly, you&#8217;ll have noticed that the script doens&#8217;t work on the post view.</strong></p>
<p>We can fix that in a snap! Simply repeat the steps above but on any of the post pages at TechCrunch.com, and you will be given a css selector for the title on post pages that looks like this:</p>
<p><img class="alignnone size-full wp-image-119" title="picture-17" src="http://webserviceable.com/wp-content/uploads/2009/02/picture-17.png" alt="picture-17" width="416" height="31" /></p>
</li>
<li>
<h4><strong>Now we add this selector into our script in the exact same way we did before and we have a working script!</strong></h4>
</li>
</ol>
<p>Ok, so thats it! Enjoy the tutorial, and leave any comments if you want some clarification. Be sure to checkout the final version of the userscript <a href="http://webserviceable.com/dev/techcrunch_improved_view.user.js" >techcrunch_improved_view.user.js</a></p>
<p><strong>as a round-up I&#8217;ll make a nice list of the technologies mentioned and the links to learn about them.</strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong> </strong></p>
<h4><strong>SelectorGadget</strong></h4>
<p>An innovating and intelligent HTML selecting engine for generating dynamic css selectors</p>
<ul>
<li>Homepage: <a href="http://www.selectorgadget.com" target="_blank" >http://www.selectorgadget.com</a></li>
<li>Basic How to Video: <a href="http://www.selectorgadget.com" target="_blank" >http://www.selectorgadget.com</a></li>
<li><a href="http://webserviceable.com/2009/02/27/introducing-selectorgadget-dapper-style-dom-selection-for-jquery-javascript-and-beyond/" title="SelectorGadget on Webserviceable.com" >Initial Post on Webserviceable.com &#8211; Overview, Ideas, Foreseeable Uses</a></li>
</ul>
<h4><strong>JQuery</strong></h4>
<p><strong> </strong>Very popular javascript framework</p>
<ul>
<li>Homepage: <a href="http://jquery.com" target="_blank" >http://jquery.com</a></li>
<li>Documentation: <a href="http://docs.jquery.com" target="_blank" >http://docs.jquery.com</a></li>
<li>Direct Download: <a href="http://code.google.com/p/jqueryjs/downloads/detail?name=jquery-1.3.2.min.js&amp;downloadBtn=" target="_blank" >http://code.google.com/p/jqueryjs/downloads/detail?name=jquery-1.3.2.min.js&amp;downloadBtn=</a></li>
<li>JQuery on Google&#8217;s Ajaxlibs &#8211; <a href="http://code.google.com/apis/ajaxlibs/documentation/index.html#jquery" target="_blank" >http://code.google.com/apis/ajaxlibs/documentation/index.html#jquery</a></li>
<li>GreaseMonkey and JQuery &#8211; <a href="http://internetducttape.com/2008/05/08/greasemonkey-ninja-jquery/" target="_blank" >http://internetducttape.com/2008/05/08/greasemonkey-ninja-jquery/</a></li>
</ul>
<h4><strong>GreaseMonkey</strong></h4>
<p>A very cool javascript plugin engine for your browser that allows you to add functionality/information to any website.</p>
<ul>
<li>Homepage: <a href="http://diveintogreasemonkey.org/" target="_blank" >http://diveintogreasemonkey.org/</a></li>
<li>Blog: <a href="http://www.greasespot.net/" target="_blank" >http://www.greasespot.net/</a></li>
<li>Wiki: <a href="http://wiki.greasespot.net/Main_Page" target="_blank" >http://wiki.greasespot.net/Main_Page</a></li>
<li>Direct Download: <a href="https://addons.mozilla.org/en-US/firefox/addon/748" target="_blank" >https://addons.mozilla.org/en-US/firefox/addon/748</a></li>
<li>GreaseMonkey and JQuery: <a href="http://internetducttape.com/2008/05/08/greasemonkey-ninja-jquery/" target="_blank" >http://internetducttape.com/2008/05/08/greasemonkey-ninja-jquery/</a></li>
</ul>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://webserviceable.com/2009/02/27/how-to-create-a-greasemonkey-script-using-jquery-and-selectorgadget/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Drop.io for PHP, iPhone, Ruby and Additional Tutorials / Resources</title>
		<link>http://webserviceable.com/2009/02/14/dropio-for-php-iphone-ruby-and-additional-tutorials-resources/</link>
		<comments>http://webserviceable.com/2009/02/14/dropio-for-php-iphone-ruby-and-additional-tutorials-resources/#comments</comments>
		<pubDate>Sat, 14 Feb 2009 15:16:21 +0000</pubDate>
		<dc:creator>electBlake</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[drop.io]]></category>

		<guid isPermaLink="false">http://webserviceable.com/?p=87</guid>
		<description><![CDATA[
I was doing some follow-up on my old posts (the 6 of them, heh) and I realized I didn&#8217;t post any good tutorials or resources for the drop.io post, I&#8217;ll organize them into languages and you can take it from there.
The resources after the fold  

PHP Drop.io Libraries and Resources


Slawcup&#8217;s PHP Library &#8211; This [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p><img style="float: left;" src="http://drop.io/images/logo.png" alt="Drop.io " width="200" height="60" /></p>
<p>I was doing some follow-up on my old posts (the 6 of them, heh) and I realized I didn&#8217;t post any good tutorials or resources for the drop.io post, I&#8217;ll organize them into languages and you can take it from there.</p>
<p>The resources after the fold <img src='http://webserviceable.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><span id="more-87"></span></p>
<h3>PHP Drop.io Libraries and Resources<br />
</h3>
<ul>
<li><a href="http://github.com/slawcup/drop.io-api-php/tree/master" target="_blank" title="Drop.io API PHP Library" >Slawcup&#8217;s PHP Library</a> &#8211; This Drop.io API Wrapper for PHP was originally discovered through the <a href="http://groups.google.com/group/dropio-api/browse_thread/thread/b855bbc618c5149b" target="_blank" >drop.io google group</a> I stumbled upon what looks to be the start of a decent php library for the drop.io API @ github.com/<a href="http://slawcup.com/" target="_blank" >slawcup</a></li>
<li>Simple PHP Snipplet for Drop.io File Uploading:<br />
 via <a href="http://groups.google.com/group/dropio-api/browse_thread/thread/8ed7b17412670bb9?hl=pt-BR&amp;ie=UTF-8&amp;q=upload++curl+post+file&amp;pli=1" target="_blank" title="drop.io" >drop.io google group and spaghetti:</a><br />
 <div><div class="wp-synhighlighter-expanded"><a target="_blank" href="#codesyntax1"  onClick="javascript:wpContainer=this.parentNode.parentNode.getElementsByTagName('div')[1];	if(wpContainer.style.display=='none') {wpContainer.style.display=''; this.parentNode.className='wp-synhighlighter-expanded'} 	else {wpContainer.style.display='none'; this.parentNode.className='wp-synhighlighter-collapsed'}">Code</a></div><div class="wp-synhighlighter-inner"><pre class="php" style="font-family:monospace;"><ol><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000; font-weight: bold;">&lt;?php</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"> <span style="color: #000088;">$apiKey</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'yourKey'</span><span style="color: #339933;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"> <span style="color: #000088;">$apiToken</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'yourToken'</span><span style="color: #339933;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"> <span style="color: #000088;">$apiDropName</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'yourDropName'</span><span style="color: #339933;">;</span></div></li><li style="font-weight: bold; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"> <span style="color: #000088;">$apiVersion</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'1.0'</span><span style="color: #339933;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"> <span style="color: #000088;">$apiUploadURL</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'http://assets.drop.io/upload" name="#codesyntax1"></a><a style="wp-synhighlighter-title" </span><span style="color: #339933;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"> <span style="color: #000088;">$file</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'/path/to/file.ext'</span><span style="color: #339933;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp;</div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp;</div></li><li style="font-weight: bold; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000088;">$curl</span> <span style="color: #339933;">=</span> curl_init<span style="color: #009900;">&#40;</span><span style="color: #000088;">$apiUploadURL</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"> curl_setopt <span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl</span><span style="color: #339933;">,</span> CURLOPT_POST<span style="color: #339933;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"> curl_setopt <span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl</span><span style="color: #339933;">,</span> CURLOPT_RETURNTRANSFER<span style="color: #339933;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"> curl_setopt <span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl</span><span style="color: #339933;">,</span> CURLOPT_POSTFIELDS<span style="color: #339933;">,</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a> <span style="color: #009900;">&#40;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"> <span style="color: #0000ff;">'version'</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">&quot;<span style="color: #006699; font-weight: bold;">$apiVersion</span>&quot;</span><span style="color: #339933;">,</span></div></li><li style="font-weight: bold; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"> <span style="color: #0000ff;">'api_key'</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">&quot;<span style="color: #006699; font-weight: bold;">$apiKey</span>&quot;</span><span style="color: #339933;">,</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"> <span style="color: #0000ff;">'token'</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">&quot;<span style="color: #006699; font-weight: bold;">$apiToken</span>&quot;</span><span style="color: #339933;">,</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"> <span style="color: #0000ff;">'drop_name'</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">&quot;<span style="color: #006699; font-weight: bold;">$apiDropName</span>&quot;</span><span style="color: #339933;">,</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"> <span style="color: #0000ff;">'file'</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">&quot;@<span style="color: #006699; font-weight: bold;">$file</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"> <span style="color: #000088;">$response</span> <span style="color: #339933;">=</span> curl_exec <span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl</span><span style="color: #009900;">&#41;</span> or <a target="_blank" href="http://www.php.net/die" ><span style="color: #990000;">die</span></a> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;there was a problem with the</span></div></li><li style="font-weight: bold; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #0000ff;"> upload, please try again&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"> curl_close <span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><a target="_blank" href="http://www.php.net/echo" ><span style="color: #990000;">echo</span></a> <span style="color: #0000ff;">&quot;File uploaded.&quot;</span><span style="color: #339933;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000; font-weight: bold;">?&gt;</span></div></li></ol></pre></div></div></p>
</li>
</ul>
<h3>iPhone aka Objective-C Drop.io Libraries and Resources</h3>
<ul>
<li>
<p><a href="http://drop.io/DropKit" target="_blank" title="Drop.io + iPhone" >DropKit</a> &#8211; Objective-C or iPhone Drop.io API Wrapper and Library via drop.io/DropKit</p>
</li>
<li><a href="http://drop.io/Droppler" target="_blank" >Droppler </a>- The first iPhone drop.io app!</li>
</ul>
<h3>Ruby Drop.io Libraries and Resources</h3>
<ul>
<li><a href="https://rubyforge.org/frs/?group_id=7284" target="_blank" title="Drop.io Ruby Gem" >Drop.io Ruby Gem</a> &#8211; I believe this is the official repository as I did read on the google group that drop.io dev team would be releasing a ruby library @ rubyforge.net</li>
</ul>
<h3>Other</h3>
<ul>
<li><a href="http://drop.io/firefox" target="_blank" >Drop.io Firefox Plugin</a></li>
<li><a href="http://groups.google.com/group/dropio-api/web/example-apps" target="_blank" >Drop.io Example Applications!</a> &#8211; drop.io api example applications.</li>
</ul>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://webserviceable.com/2009/02/14/dropio-for-php-iphone-ruby-and-additional-tutorials-resources/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Last.fm API for CodeIgniter &#8211; ci-phplastfmapi</title>
		<link>http://webserviceable.com/2009/02/06/lastfm-api-for-codeigniter-ci-phplastfmapi/</link>
		<comments>http://webserviceable.com/2009/02/06/lastfm-api-for-codeigniter-ci-phplastfmapi/#comments</comments>
		<pubDate>Fri, 06 Feb 2009 18:45:44 +0000</pubDate>
		<dc:creator>electBlake</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[CodeIgniter]]></category>
		<category><![CDATA[Last.fm]]></category>

		<guid isPermaLink="false">http://webserviceable.com/?p=21</guid>
		<description><![CDATA[ is a great php framework and lately I&#8217;ve been playing with it on my personal projects. Many of those personal projects are music related so of course I am using the last.fm api.
While looking for various ways of integrating the last.fm api into my application I stumbled upon the very well developer PHP LastFM [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.CodeIgniter.com" target="_blank"  target="_blank"><img src="http://codeigniter.com/images/design/ci_logo2.gif" alt="" width="170" height="73" /></a> is a great php framework and lately I&#8217;ve been playing with it on my personal projects. Many of those personal projects are music related so of course I am using the last.fm api.</p>
<p>While looking for various ways of integrating the last.fm api into my application I stumbled upon the very well developer <a href="http://www.matto1990.com/lastfm_protocol/" target="_blank" title="php last.fm api library"  target="_blank">PHP LastFM API</a> also known as &#8220;lastfm_protocol&#8221; and from their documentation and organization you can see that its top notch.</p>
<p>The PHP LastFM Api <a href="http://apps.sourceforge.net/mediawiki/phplastfmapi/index.php?title=Method_Reference" target="_blank"  target="_blank">seems to expose</a> every method that the <a href="http://www.last.fm/api/intro" target="_blank" title="last.fm api methods and services documentation"  target="_blank">official last.fm api supports</a>.</p>
<p>So I&#8217;ve written this lightweight wrapper for the library that allows you to expose the full functionality of matto1990&#8217;s library without touching it (allowing for updates to PHP LastFM Api to unaffect the CodeIgniter Library)</p>
<p>Note: I am releasing this without much support but please comment here and I&#8217;ll attend to all of your inquiries!<br />
 How to Install</p>
<ul>
<li>Download using the link below</li>
<li>Extract the zip file on your computer</li>
<li>Upload the files into the appropriate file structure (those of you comfortable with the &#8220;merge&#8221; upload, do so)</li>
<li>User: $this-&gt;load-&gt;library(&#8217;CI_LastFmAPI&#8217;); in your code or add CI_LastFmAPI to your config/autoload.php</li>
<li>Use the documentation for using the phplastfmapi</li>
</ul>
<h3>The Links<br />
</h3>
<ul>
<li><a href="http://code.google.com/p/ci-phplastfmapi/" target="_blank" >ci-phplastfmapi Project Homepage</a></li>
<li><a href="http://ci-phplastfmapi.googlecode.com/files/ci-phplastfmapi.zip" target="_blank" >Download ci-phplastfmapi</a></li>
<li><a href="http://www.matto1990.com/lastfm_protocol/" target="_blank" >matto1990&#8217;s phplastfmapi homepage</a></li>
</ul>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://webserviceable.com/2009/02/06/lastfm-api-for-codeigniter-ci-phplastfmapi/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Google Likes OAuth and 15 Resources to Get Started!</title>
		<link>http://webserviceable.com/2009/01/30/google-likes-oauth-and-15-resources-to-get-started/</link>
		<comments>http://webserviceable.com/2009/01/30/google-likes-oauth-and-15-resources-to-get-started/#comments</comments>
		<pubDate>Fri, 30 Jan 2009 19:29:09 +0000</pubDate>
		<dc:creator>electBlake</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[OAuth]]></category>
		<category><![CDATA[OpenID]]></category>

		<guid isPermaLink="false">http://webserviceable.com/?p=26</guid>
		<description><![CDATA[
is an &#8220;open protocol to allow secure API authorization  in a simple and standard method from desktop and web applications.&#8221;
What does OAuth really mean?
Well, lets break the above description down into some key phrases and the pieces should come together.

 a &#8220;protocol&#8221; is a standardized method for the communication of two computers. For instance [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p><em><a target="_blank" href="#15_Resources_for_OAuth_Programming"></a></em></p>
<p><a href="http://oauth.net" target="_blank" title="Open Source API Authentication Protocol"  target="_blank"><img title="An open protocol to allow secure API authorization" src="http://oauth.net/images/oauth-logo.png" alt="OAuth.net" width="175" height="50" /></a>is an &#8220;<strong>open protocol</strong> to allow <strong>secure API authorization </strong> in a <strong>simple</strong> and <strong>standard</strong> method from desktop and web applications.&#8221;</p>
<h3>What does OAuth really mean?</h3>
<p>Well, lets break the above description down into some key phrases and the pieces should come together.</p>
<ul>
<li> a &#8220;protocol&#8221; is a standardized method for the communication of two computers. For instance HTTP is the standardized way of a webserver communicating with your computer when you browse a website.</li>
<li>&#8220;open&#8221; comes from the fact that <a href="http://code.google.com/p/oauth/" target="_blank" title="OAuth.net Source Reposity"  target="_blank">this protocol is open source</a> and can be viewed, downloaded, and maintained by anyone who is willing to take up the torch. </li>
<li>&#8220;secure API authorization&#8221; is the functionality that OAuth.net gives to its stakeholders &#8211; the ability for a developer to download OAuth.net and secure their API access without having to write a unique (and possibly bug filled) authentication!
<ul>
</ul>
</li>
</ul>
<h2>Brief History of OAuth<br />
</h2>
<p>With its <a href="http://oauth.net/about" target="_blank"  target="_blank">draft and proposal process starting in April of 2006</a>, and the <a href="http://code.google.com/p/oauth/source/detail?r=2" target="_blank" title="OAuth.net Initial Commit"  target="_blank">first lines of code made available in Augest 2007</a>, OAuth.net is young but has seen some massive uptake.</p>
<p>Originally draft to solve problems integrating OpenID with twitter.com (<em>the</em> microblogging site we all know and love), OAuth had google&#8217;s interest from the beginning when DeWitt Clinton from Google (a &#8220;<a href="http://en.wikipedia.org/wiki/OpenID#People" target="_blank" >corporate member</a>&#8221; of the OpenID Foundation) got interested, &#8220;if only as a stakeholder&#8221;.</p>
<p>With its contributors looking to have <a href="http://oauth.net/code" target="_blank" >every major language covered</a>, OAuth should allow any developer to take advantage of the strength of open-source in their API Authentication process!</p>
<p><strong>The Google Story and 15 Resources to Get Started with OAuth when you</strong><span id="more-26"></span></p>
<h2>Google and OAuth?!</h2>
<p>A year after first commits to OAuths repository we can now see the real fruits of DeWitt&#8217;s interest as Google has officially announced a &#8220;<a href="http://step2.googlecode.com/svn/spec/openid_oauth_extension/latest/openid_oauth_extension.html" target="_blank" title="Google's Hybrid Protocol - OAuth + OpenID" >Hybrid Protocol</a>&#8221; that combines OpenID identity management with OAuth&#8217;s authorization process. Google looks to be taking OAuth and its existing OpenID integrations to the next level and whether we know it or not, google will be running OAuth in the background soon! Read up on OAuth and Google on <a href="http://sites.google.com/site/oauthgoog/Home" target="_blank" >OAuthGoog</a> which looks to be headed up by Eric Sachs over at <a href="http://oauthgoog.blogspot.com/" target="_blank" >oauthgoog.blogspot.com</a>.</p>
<h2>Final Thoughts &amp; Credits<br />
</h2>
<p>I caught wind of OAuth through Yariv Adan on the <a href="http://googledataapis.blogspot.com/2009/01/bringing-openid-and-oauth-together.html" target="_blank"  target="_blank">Google Data APIs Blog</a> via the almighty <a href="http://blog.programmableweb.com/2009/01/30/google-combines-openid-and-oauth-in-new-hybrid-protocol/" target="_blank" title="Programmable Web: OAuth + OpenID = Google Hybrid Protocol"  target="_blank">ProgrammableWeb</a>, and I&#8217;m excited to see what happens next!</p>
<p>With sites like Digg.com, Yahoo.com, Google.com, and the fanboys of each pillar of internet glory supporting OpenID OAuth will be finding its home amoung the giants of industry and the movers of global information.</p>
<h1><a name="15_Resources_for_OAuth_Programming"></a>15 OAuth Resources for Programming &amp; Learning!<br />
</h1>
<p>Having friends like Google and an older-brother like OpenID has its advantages. Massive Interest. There are already guides and tutorials and resources popping up for integrating OAuth into <strong>your</strong> (web)application. I&#8217;ve collected a few of them below to get you off to the races.</p>
<h3><strong>OAuth Basic Information and Documentation</strong></h3>
<ul>
<li><a href="http://oauth.net/documentation/getting-started" target="_blank" >Official &#8220;Getting Started&#8221;</a> on oauth.net &#8211; basic overview</li>
<li><a href="http://www.slideshare.net/leahculver/oauth-open-api-authentication" target="_blank" >OAuth Basic Introduction Slides</a> on slideshare.net &#8211; A simple outline of how OAuth works outlined in slides.</li>
<li><a href="http://www.hueniverse.com/hueniverse/2007/10/beginners-guide.html" target="_blank" >A Beginners Guide to OAuth</a> &#8211; <a href="http://www.hueniverse.com/hueniverse/2007/10/beginners-guide.html" target="_blank" >part 1</a> / <a href="http://www.hueniverse.com/hueniverse/2007/10/beginners-gui-1.html" target="_blank" >part 2</a> on hueniverse.com &#8211; A comprehensive post about how OAuth works, a visual map, and a thorough walkthrough of OAuth</li>
</ul>
<h3><strong>OAuth Testing &amp; Examples</strong></h3>
<ul>
<li><a href="http://googlecodesamples.com/oauth_playground/" target="_blank" >OAuth Playground</a> on googlecodesamples.com &#8211; Code examples of OAuth on virtually all of the Google Data APIs</li>
<li><a href="http://term.ie/oauth/example/" target="_blank" >OAuth Test Server</a> on term.ie &#8211; get testing!</li>
<li><a href="http://oauth-sandbox.mediamatic.nl/index.php" target="_blank" >OAuth Sandbox</a> on mediamatic.nl &#8211; a sandboxed OAuth Testing Environment</li>
</ul>
<h3><strong>OAuth in Ruby</strong></h3>
<ul>
<li><a href="http://oauth.rubyforge.org/" target="_blank" >An OAuth Ruby Gem</a> on rubyforge.org &#8211; try it out! let me know in comments!</li>
<li><a href="http://code.google.com/p/oauth-plugin/" target="_blank" >The Start of an OAuth Ruby Gem</a> on code.google.com &#8211; seems a little stale (last entry into repository is last jan 08) but might be worth a compile!</li>
<li><a href="http://stakeventures.com/articles/2008/02/23/developing-oauth-clients-in-ruby" target="_blank" >Developing OAuth Clients in Ruby</a> on stakeventures.com &#8211; a great tutorial for getting OAuth up and running in Ruby</li>
</ul>
<h3><strong>OAuth in PHP and PHP Applications</strong></h3>
<ul>
<li><a href="http://code.google.com/p/oauth-php/" target="_blank" >oauth-php</a> on code.google.com &#8211; <a name="OAuth_Consumer_And_Server_Library_For_PHP">PHP library for OAuth consumers and servers. Complete with an extensible OAuth store, including a full working implementation of a MySQL store. </a></li>
<li><a href="http://cakebaker.42dh.com/downloads/oauth-component-for-cakephp/" target="_blank" >OAuth Component for CakePHP</a> on cakebaker.com &#8211; Looks to be the definitive OAuth Component for CakePHP</li>
<li><a href="http://cakebaker.42dh.com/2008/09/01/using-oauth-enabled-apis-with-cakephp/" target="_blank" >OAuth Component for CakePHP Tutorial</a> on cakebaker.com &#8211; How to get OAuth working with CakePHP</li>
<li><a href="http://framework.zend.com/wiki/pages/viewpage.action?pageId=37957" target="_blank" >OAuth for Zend Framework</a> on zend.com- OAuth Library built with the Zend Framework (great for stand-alone use!)</li>
<li><a href="http://sumitk.net/oauth_to_drupal_and_servicesAPI" target="_blank" >OAuth and Drupal Services API</a> on sumitk.net &#8211; for the Popular PHP CMS (peusdo framework) Drupal</li>
</ul>
<h3><strong>OAuth on the iPhone!</strong></h3>
<ul>
<li><a href="http://immike.net/blog/2008/09/08/oauth-on-the-iphone/" target="_blank" >OAuth on the iPhone</a> on immike.net &#8211; !</li>
</ul>
<h3><strong>OAuth Feeds &amp; Sites</strong></h3>
<ul>
<li><a href="http://twitter.com/oauth" target="_blank" >http://twitter.com/oauth</a></li>
<li><a href="http://oauth.net" target="_blank" >http://oauth.net</a></li>
<li><a href="http://oauth.net" target="_blank" >http://blog.oauth.net</a></li>
</ul>
<p>If you find any more sites or anything that I&#8217;ve missed please drop me a line in the comments and I&#8217;ll be sure to revise and give credit! Thanks!</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://webserviceable.com/2009/01/30/google-likes-oauth-and-15-resources-to-get-started/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
