<?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>Far From There</title>
	<atom:link href="http://farfromthere.org/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://farfromthere.org</link>
	<description>&#34;Business Enhancement&#34; by Antonio Herrera</description>
	<lastBuildDate>Sun, 20 May 2012 20:50:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Building Chrome Browser Extensions</title>
		<link>http://farfromthere.org/?p=32219</link>
		<comments>http://farfromthere.org/?p=32219#comments</comments>
		<pubDate>Tue, 27 Mar 2012 02:59:00 +0000</pubDate>
		<dc:creator>Antonio</dc:creator>
				<category><![CDATA[Chrome]]></category>
		<category><![CDATA[2012 Season]]></category>
		<category><![CDATA[Extension]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Livery]]></category>
		<category><![CDATA[MotoGP]]></category>

		<guid isPermaLink="false">http://farfromthere.org/?p=32219</guid>
		<description><![CDATA[Chrome is my browser of choice. Not only is it faster than all of the other browsers, it also offers a vast collection of available extensions to add on the browser to create a richer internet experience. These extensions can be useful for fun and games, to improve productivity, or to help you quickly get [...]]]></description>
			<content:encoded><![CDATA[<p>Chrome is my browser of choice. Not only is it faster than all of the other browsers, it also offers a vast collection of available extensions to add on the browser to create a richer internet experience.</p>
<p>These extensions can be useful for fun and games, to improve productivity, or to help you quickly get to the information that is relevant to your life.</p>
<p>Now I can confess that I have spent a great deal of time browsing through and playing with the mass of extensions currently available on the chrome web store. This can be fun and enlightening the first time you visit the store. It really gives you a good sense of how fast the internet is changing and becoming increasingly useful.</p>
<p>Recently I embarked on a mission to explore creating my own extension app and I wanted to write an article to help others with the process. I will use the extension which I created as an example to help you create your own. This app is real simple and it is basically a table of photos of the 2012 MotoGP rider lineup. I thought this would be cool since the 2012 MotoGP season will be here shortly.</p>
<p>The extension simply displays in a table format, photos of the riders on their bikes wearing their 2012 livery. This extension incorporates some JQuery to zoom into the photos when clicked. It is a very simple app but these extensions can really become increasingly powerful the more time you invest into their development.</p>
<p><img src="http://farfromthere.org/chrome-extension/extension.png" alt="MotoGP Chrome Extension" width="600px" /></p>
<p><strong>Let’s get started</strong></p>
<p>There are essentially three components you will need to create the extension, this is in addition to having the Chrome browser installed on your machine. The three ingredients are:</p>
<p>1. A JSON Manifest file<br />
2. A 128 x 128 pixel icon representing your extension<br />
3. An HTML web page for the content of your extension</p>
<p>The manifest file gives chrome information about your extension like the name, description, icon path and starting page path. The JSON is pretty easy to interpret :</p>
<p><strong>JSON Manifest File:</strong></p>
<p><strong>{<br />
&#8220;name&#8221;:&#8221;Mini MotoGP&#8221;,<br />
&#8220;version&#8221;: &#8220;0.1&#8243;,<br />
&#8220;icons&#8221;:{&#8220;128&#8243;: &#8220;icon.png&#8221;},<br />
&#8220;description&#8221;: &#8220;Mini MotoGP&#8221;,<br />
&#8220;browser_action&#8221;: {<br />
&#8220;default_title&#8221;: &#8220;Mini MotoGP&#8221;,<br />
&#8220;default_icon&#8221;: &#8220;icon.png&#8221;,<br />
&#8220;popup&#8221;: &#8220;load.html&#8221;<br />
},<br />
&#8220;permissions&#8221;: [<br />
"unlimitedStorage",<br />
"notifications"<br />
]<br />
}</strong></p>
<p>The load.html file below embeds an iframe page which houses all the content of the application:</p>
<p>load.html File</p>
<p><strong>&lt;html&gt;</strong><br />
<strong> &lt;head&gt;</strong><br />
<strong> &lt;style&gt;</strong><br />
<strong> body{</strong><br />
<strong> min-width:800px;</strong><br />
<strong> overflow-x:hidden;</strong><br />
<strong> overflow-y:hidden;</strong><br />
<strong> }</strong><br />
<strong> &lt;/style&gt;</strong><br />
<strong> &lt;/head&gt;</strong><br />
<strong> &lt;body&gt;</strong><br />
<strong> &lt;iframe src=&#8221;popup.html&#8221; width=&#8221;100%&#8221; height=&#8221;100%&#8221; frameborder=&#8221;0&#8243;&gt;&lt;/iframe&gt;</strong><br />
<strong> &lt;/body&gt;</strong><br />
<strong> &lt;/html&gt;</strong></p>
<p>The popup.html file is where the content of the extension exists. You don&#8217;t necessarily need to use an iframe, unless you will be referencing an external web page, but i did with this app just to keep it clean.</p>
<p>Now, to create a developer preview of your extension follow these instructions:</p>
<p>In chrome go to Tools -&gt; Options -&gt; Extensions, and at the top you will see a checkbox for Developer Mode. Check that box and then Load Unpacked Extension (you will point to the folder where you have your extensions files). Once you have loaded the unpacked extension, you should see your extension&#8217;s icon in your list of extensions.</p>
<p>To create a packed version of your app (one that you can host and distribute on your website) click Pack Extension and point Extension Root Directory to your apps folder. Do not worry about Private Key if you&#8217;re not updating an already packed extension.</p>
<p>To host your extension on the Chrome WebStore you will need to create a developer account and pay a $5 developer fee.</p>
<p>That should be it.</p>
<p>Below is the extension that I built if you&#8217;d like to try it out with chrome.</p>
<p><strong><a href="chrome-extension/MotoGP.crx">MiniMotoGP Chrome Extension</a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://farfromthere.org/?feed=rss2&#038;p=32219</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Top 11 Programming Skills of 2011</title>
		<link>http://farfromthere.org/?p=204</link>
		<comments>http://farfromthere.org/?p=204#comments</comments>
		<pubDate>Thu, 22 Dec 2011 16:37:22 +0000</pubDate>
		<dc:creator>Antonio</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://farfromthere.org/?p=204</guid>
		<description><![CDATA[Here are the top programming skills of 2011 according to Gild. Unfortunately Apex did not make the cut this year. I expect it will soon enough as Salesforce is constantly making it&#8217;s development platform innovative and powerful. The year of 2011 included many new features for Apex including the Rest API, Streaming API, Native JSON, [...]]]></description>
			<content:encoded><![CDATA[<p>Here are the top programming skills of 2011 according to Gild.</p>
<p>Unfortunately Apex did not make the cut this year. I expect it will soon enough as Salesforce is constantly making it&#8217;s development platform innovative and powerful. The year of 2011 included many new features for Apex including the <a href="http://developer.force.com/REST" title="Salesforce REST API" target="_blank">Rest API</a>, <a href="http://wiki.developerforce.com/page/Getting_Started_with_the_Force.com_Streaming_API" title="Salesforce Streaming API" target="_blank">Streaming API</a>, <a href="http://developer.force.com/releases/release/Winter12" title="Salesforce Apex Native JSON" target="_blank">Native JSON</a>, and of course <a href="http://database.com/" title="Database.com" target="_blank">Database.com</a>.</p>
<p><a href="http://blog.gild.com/blog/wp-content/uploads/2011/12/Top-Skills.gif" title="Top 2011 Programming Skills" target="_blank"><img src="http://blog.gild.com/blog/wp-content/uploads/2011/12/Top-Skills.gif" width="200" alt="Top Programming Skills of 2011" /></a></p>
<p>Source: <a href="http://www.gild.com/blog/tech-news/top-11-skills-of-2011/?utm_source=Constant%2BContact&#038;utm_medium=Email&#038;utm_campaign=GildWire%2B12%2F21%2F11" title="Top programming skills of 2011">Gild &#8211; Top 11 Programming Skills of 2011.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://farfromthere.org/?feed=rss2&#038;p=204</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eclipse Force.com IDE: &#8220;Content assist did not complete normally&#8221; bug</title>
		<link>http://farfromthere.org/?p=200</link>
		<comments>http://farfromthere.org/?p=200#comments</comments>
		<pubDate>Thu, 22 Dec 2011 16:22:57 +0000</pubDate>
		<dc:creator>Antonio</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://farfromthere.org/?p=200</guid>
		<description><![CDATA[Well i set out to find the reason why this issue seems to occur so infrequently, causing so much grief when it does occur. After spending the afternoon on this I think i found a consistent pattern and a simple fix around the issue. After trying many things like creating a different workspace, installing the [...]]]></description>
			<content:encoded><![CDATA[<p>Well i set out to find the reason why this issue seems to occur so infrequently, causing so much grief when it does occur. After spending the afternoon on this I think i found a consistent pattern and a simple fix around the issue.</p>
<p>After trying many things like creating a different workspace, installing the standalone Force.com IDE, and simply restarting the computer, all to no avail, i found that there were some projects in my eclipse ide where content assist (CA) was working correctly. The projects where CA was working were mature projects with many different types of components whithin them. </p>
<p>The new project which i just created today only had the new trigger i just started writing. In this project CA was not working. So after a few hours i made the connection that the mature projects were working correctly as a result of the components within them. </p>
<p>Here is a temporary solution:<br />
I added a class to the project which only had the trigger and WHA LA!! content assist started working for both the new class and the trigger. </p>
<p>I will be reporting this bug to the Salesforce guys.</p>
<p>Hope this helps others.</p>
]]></content:encoded>
			<wfw:commentRss>http://farfromthere.org/?feed=rss2&#038;p=200</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Now Officially a Salesforce.com Certified Developer!</title>
		<link>http://farfromthere.org/?p=194</link>
		<comments>http://farfromthere.org/?p=194#comments</comments>
		<pubDate>Mon, 05 Dec 2011 21:36:59 +0000</pubDate>
		<dc:creator>Antonio</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://farfromthere.org/?p=194</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><a href="http://farfromthere.org/wp-content/uploads/2011/12/Certified_Developer.png"><img src="http://farfromthere.org/wp-content/uploads/2011/12/Certified_Developer.png" alt="" title="Certified_Developer" width="100" class="alignnone size-full wp-image-195" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://farfromthere.org/?feed=rss2&#038;p=194</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Schedule Apex Jobs</title>
		<link>http://farfromthere.org/?p=176</link>
		<comments>http://farfromthere.org/?p=176#comments</comments>
		<pubDate>Thu, 17 Nov 2011 21:32:31 +0000</pubDate>
		<dc:creator>Antonio</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://farfromthere.org/?p=176</guid>
		<description><![CDATA[The easiest way to schedule a recurring task to run at intervals other than daily or weekly is through the system log. If your objective is to simply schedule an apex schedulable class to run on a daily or weekly basis, then using the Salesforce interface is best. This is done by going to Setup-&#62;Develop-&#62;Apex [...]]]></description>
			<content:encoded><![CDATA[<p>The easiest way to schedule a recurring task to run at intervals other than daily or weekly is through the system log.</p>
<p>If your objective is to simply schedule an apex schedulable class to run on a daily or weekly basis, then using the Salesforce interface is best. This is done by going to <em>Setup-&gt;Develop-&gt;Apex Classes then clicking on the &#8216;Schedule Apex&#8217; button</em>.</p>
<p>However if the objective is to run your class every hour, every half hour, or fifteen minutes then this quick tutorial will show you how.<br />
<span id="more-176"></span><br />
<code>//THE CLASS YOU WISH TO SCHEDULE<br />
ScheduleJob s = new ScheduleJob();<br />
//THE TIME AND FREQUENCY IT SHOULD BE SCHEDULED<br />
string crawler00 = '12 00 * * 1-12 ? *';<br />
//SCHEDULE THE CLASS BY ASSIGNING THE NAME, SCHEDULE, AND CLASS TO SCHEDULE<br />
system.schedule('Half Hr Training Session Crawler 00',crawler00,s);</code></p>
<p>Remember your class must implement the schedulable interface.</p>
<p>Copy the above code into the system log &#8216;execute&#8217; field.</p>
<p>Now watch your job run by going to <em>Setup-&gt;Administration Setup-&gt;Monitoring-&gt;Scheduled Jobs</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://farfromthere.org/?feed=rss2&#038;p=176</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Working with Javascript Remoting and VisualForce Pages</title>
		<link>http://farfromthere.org/?p=135</link>
		<comments>http://farfromthere.org/?p=135#comments</comments>
		<pubDate>Fri, 19 Aug 2011 16:43:21 +0000</pubDate>
		<dc:creator>Antonio</dc:creator>
				<category><![CDATA[Salesforce.com]]></category>
		<category><![CDATA[Visual Force Pages]]></category>

		<guid isPermaLink="false">http://farfromthere.org/?p=135</guid>
		<description><![CDATA[I use the Force.com IDE in Eclipse, and at the moment there is no support of the API version 21 or 22, or I should say there is no automatic support. If you are just getting into development with Javascript Remoting, which is useful for many things, especially incorporating jQuery into your visual force pages, [...]]]></description>
			<content:encoded><![CDATA[<p>I use the Force.com IDE in Eclipse, and at the moment there is no support of the API version 21 or 22, or I should say there is no automatic support. If you are just getting into development with Javascript Remoting, which is useful for many things, especially incorporating jQuery into your visual force pages, then you may need this post.</p>
<p>Upon starting to write my first Javascript Remoting class in eclipse, I found that @RemoteAction was not supported. This was  a bit of a shock to me as I had thought that the feature was automatically supported since it is well out of developer preview. So after digging around the internet a little, i found this solution.</p>
<p>First, update your Force.com IDE for Eclipse using the &#8216;Check for Updates&#8217; button found in the Force.com Start Page in Eclipse.</p>
<div id="attachment_136" class="wp-caption alignnone" style="width: 310px"><a href="http://farfromthere.org/wp-content/uploads/2011/08/JavascriptRemoting1.png"><img class="size-medium wp-image-136 " title="Javascript Remoting Update" src="http://farfromthere.org/wp-content/uploads/2011/08/JavascriptRemoting1-300x293.png" alt="" width="300" height="293" /></a><p class="wp-caption-text">Javascript Remoting Update</p></div>
<p>You should find the following update at the very least (assuming you have not already made this update).</p>
<div id="attachment_137" class="wp-caption alignnone" style="width: 310px"><a href="http://farfromthere.org/wp-content/uploads/2011/08/JavascriptRemoting2.png"><img class="size-medium wp-image-137" title="Force.com IDE Update" src="http://farfromthere.org/wp-content/uploads/2011/08/JavascriptRemoting2-300x177.png" alt="" width="300" height="177" /></a><p class="wp-caption-text">Force.com IDE Update</p></div>
<p>&nbsp;</p>
<p>Once you have made that update, create your Javascript Remoting Global class, then update the associated xml file for that class. Change the API version number to 21 or 22 (both worked for me).</p>
<div id="attachment_138" class="wp-caption alignnone" style="width: 310px"><a href="http://farfromthere.org/wp-content/uploads/2011/08/JavascriptRemoting3.png"><img class="size-medium wp-image-138" title="Javascript Remoting Update API Version" src="http://farfromthere.org/wp-content/uploads/2011/08/JavascriptRemoting3-300x65.png" alt="" width="300" height="65" /></a><p class="wp-caption-text">Javascript Remoting Update API Version</p></div>
<p>That should do it, you should no longer have the issue of  &#8217;@RemoteAction annotation not supported&#8217;.</p>
<p>One other crucial note: If your org uses a namespace (a package prefix) you will have to use that in your visualforce page&#8217;s javascript when calling the remote function. Example: MyOrgPrevix.MyClassController.MyRemoteFunction(Paramemters&#8230;).</p>
<p>Hope this helps.</p>
]]></content:encoded>
			<wfw:commentRss>http://farfromthere.org/?feed=rss2&#038;p=135</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Salesforce.com Advanced Queries</title>
		<link>http://farfromthere.org/?p=98</link>
		<comments>http://farfromthere.org/?p=98#comments</comments>
		<pubDate>Wed, 03 Aug 2011 00:03:01 +0000</pubDate>
		<dc:creator>Antonio</dc:creator>
				<category><![CDATA[Salesforce.com]]></category>
		<category><![CDATA[Apex]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Query]]></category>
		<category><![CDATA[Relationship]]></category>
		<category><![CDATA[SFDC]]></category>
		<category><![CDATA[SOQL]]></category>

		<guid isPermaLink="false">http://farfromthere.org/?p=98</guid>
		<description><![CDATA[I figured it wouldn&#8217;t be such a bad idea for me to post a list of advanced Salesforce.com Apex SOQL queries. This should be a good reference for the community as well as for my own personal reference. &#160; &#160; &#160; SOQL STATEMENTS SOQL OUTER JOIN [Select Name, Account__r.Name From Custom_Object__c Where Id = ‘Some [...]]]></description>
			<content:encoded><![CDATA[<p>I figured it wouldn&#8217;t be such a bad idea for me to post a list of advanced Salesforce.com Apex SOQL queries. This should be a good reference for the community as well as for my own personal reference.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong><strong>SOQL STATEMENTS</strong></strong></p>
<p><strong><strong></strong>SOQL OUTER JOIN</strong></p>
<h2><span class="Apple-style-span" style="color: #003366; font-size: 20px; font-weight: bold;">[Select Name, Account__r.Name From Custom_Object__c Where Id = ‘Some Id’]</span></h2>
<p>This query takes advantage of the parent account relationship to the custom object. Rather than issuing two query statements, one for the Custom Object related to the record with an id of ‘Some Id’, and another for the Account related to the same record with an id of ‘Some Id’, you can retrieve both values in the same query. Just as you can retrieve the account name, you can also retrieve any other field from the account using the ‘__r’ syntax. The correct syntax for you specific query can be found in the eclipse schema explorer.</p>
<p>Salesforce queries are outer join by default, however when you add a where clause on the related parent, the query becomes an inner join. Since in this instance Account is the direct parent of Custom Object, filtering out all the null parent values returns the parent record with the child record, creating an inner join.</p>
<p><strong>SOQL INNER JOIN</strong></p>
<h2><span class="Apple-style-span" style="color: #003366; font-size: 20px; font-weight: bold;">[Select Name, Account__r.Name From Custom_Object__c Where Account__c != null]</span></h2>
<p>Parent to Child Query, Filter on Child using Sub-Queries</p>
<p>This query returns all of the parent records, but will also return the child records that have a Field__c value of ‘Platypus’.<br />
<span class="Apple-style-span" style="color: #003366; font-size: 20px; font-weight: bold;">[Select Id, Name, (Select Id From Custom_Object__c Where Field__c = ‘Platypus’) From Account]</span></p>
<p>The following ‘Semi-Join’ query returns only those records with a child record which has a Field__c value of ‘Platypus’. Semi join queries are meant to be read from the bottom up.<br />
<span class="Apple-style-span" style="color: #003366; font-size: 20px; font-weight: bold;">[Select Id, Name From Account Where Id IN (Select Account__c From Custom_Object__c Where Field__c = ‘Platypus’)]</span></p>
<p>Conversely we can use an ‘Anti-Join’ query which would exclude records from the parent object, which is to say that the parent object which has child object that contains value x, will not be returned. A Semi Join query uses the IN keyword, while an Anti-Join query uses the NOT IN keyword.<br />
<span class="Apple-style-span" style="color: #003366; font-size: 20px; font-weight: bold;">[Select Id, Name From Account Where Id NOT IN (Select Account__c From Custom_Object__c Where Field__c = ‘Platypus’)]</span></p>
<p>Note: Subqueries cannot be nested and cannot contain the OR, count(), ORDER BY, or LIMIT keywords.</p>
<p><strong>Multi-Select Picklists</strong></p>
<p>It is possible to query based on field values even if that field is a multi-select picklist. The following query will return records that have a multi-select picklist field value selection of Jacket and Shirt and Shoes OR a selection of Hat. The semicolon is used to express which multiple values have been selected, in no particular order.<br />
<span class="Apple-style-span" style="color: #003366; font-size: 20px; font-weight: bold;">[Select Id, Name From Account Where Field__c INCLUDES (‘Jacket; Shirt; Shoes’, ‘Hat)]</span></p>
<p>You may also substitute INCLUDES for EXCLUDES.</p>
<p>&nbsp;</p>
<p>So that&#8217;s advanced soql queries in a nutshell. And to be honest those are not the most complicated of soql queries, but I would say they are between intermediate and advanced. Anyway let me know if this post helps you at all.</p>
<p>Thanks for stopping by.</p>
<p>Antonio</p>
]]></content:encoded>
			<wfw:commentRss>http://farfromthere.org/?feed=rss2&#038;p=98</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Salesforce vs. The Competition (Live Chart)</title>
		<link>http://farfromthere.org/?p=80</link>
		<comments>http://farfromthere.org/?p=80#comments</comments>
		<pubDate>Thu, 14 Jul 2011 20:31:07 +0000</pubDate>
		<dc:creator>Antonio</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://farfromthere.org/?p=80</guid>
		<description><![CDATA[Using Google Trends I was able to create an up-to-date snapshot of the current trend in Customer Relationship Management. Included is Salesforce and just a couple CRM rivals. To create your own Google Trends chart click here.]]></description>
			<content:encoded><![CDATA[<p>Using Google Trends I was able to create an up-to-date snapshot of the current trend in Customer Relationship Management. Included is Salesforce and just a couple CRM rivals.</p>
<p><iframe style="border: 1px solid #ccc; padding: 10px;" src="http://www.gmodules.com/ig/ifr?url=http://www.google.com/ig/modules/trends_gadget.xml&amp;source=imag&amp;up_is_init=true&amp;up_cur_term=Salesforce,Siebel,Microsoft+Dynamics,SugarCRM,Zoho+CRM" frameborder="0" scrolling="no" width="500" height="250"></iframe></p>
<p>To create your own Google Trends chart <a title="Google Trends" href="http://www.google.com/trends" target="_blank">click here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://farfromthere.org/?feed=rss2&#038;p=80</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ahah! Wallpapers Galore using Google Advanced Search</title>
		<link>http://farfromthere.org/?p=54</link>
		<comments>http://farfromthere.org/?p=54#comments</comments>
		<pubDate>Mon, 11 Jul 2011 17:34:03 +0000</pubDate>
		<dc:creator>Antonio</dc:creator>
				<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://farfromthere.org/?p=54</guid>
		<description><![CDATA[I&#8217;ve always had a hard time finding the perfect wallpaper whenever I felt like looking at something different on my desktop/laptop screen. Messing around a little with Google search I found it amazingly easy to update my wallpaper. Just go to Google, click on the images tab, and then advanced search. I entered &#8216;Mexico&#8217; in [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve always had a hard time finding the perfect wallpaper whenever I felt like looking at something different on my desktop/laptop screen.</p>
<p><a href="http://farfromthere.org/wp-content/uploads/2011/07/Google-Search.png"><img class="size-medium wp-image-56 alignnone" title="Google Search" src="http://farfromthere.org/wp-content/uploads/2011/07/Google-Search-300x206.png" alt="" width="300" height="206" /></a></p>
<p>Messing around a little with Google search I found it amazingly easy to update my wallpaper. Just go to Google, click on the images tab, and then advanced search. I entered &#8216;Mexico&#8217; in the &#8216;related to all of the world&#8217; field. Then I clicked the &#8216;Use my desktop size&#8217; link which will find all of the images out there on the web that are exactly the same dimension as your desktop screen.</p>
<p>Once I clicked the search button I had a hard time picking just one wallpaper with thousands to choose from.</p>
]]></content:encoded>
			<wfw:commentRss>http://farfromthere.org/?feed=rss2&#038;p=54</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Charts API and VisualForce Pages</title>
		<link>http://farfromthere.org/?p=36</link>
		<comments>http://farfromthere.org/?p=36#comments</comments>
		<pubDate>Mon, 11 Jul 2011 16:18:52 +0000</pubDate>
		<dc:creator>Antonio</dc:creator>
				<category><![CDATA[Salesforce.com]]></category>
		<category><![CDATA[Visual Force Pages]]></category>

		<guid isPermaLink="false">http://farfromthere.org/?p=36</guid>
		<description><![CDATA[Using the Google charts API, I was able to create a cool status bar at the top of a custom visual force page. This chart was used in conjunction with values derived from a dynamic aggregate query. The custom visual force page incorporated checkboxes, picklists and input boxes which all fed different numerical values to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="https://chart.googleapis.com/chart?chf=c,lg,0,EFEFEF,1,BBBBBB,0&amp;chxt=x&amp;chbh=a&amp;chs=300x30&amp;cht=bhs&amp;chco=FF9900,FF9900&amp;chds=0,100&amp;chd=t1:45|100https://chart.googleapis.com/chart?chf=c,lg,0,EFEFEF,1,BBBBBB,0&amp;chxt=x&amp;chbh=a&amp;chs=300x30&amp;cht=bhs&amp;chco=FF9900,FF9900&amp;chds=0,100&amp;chd=t1:45|100" target="_blank"><img class="alignnone" title="Status Bar" src="https://chart.googleapis.com/chart?chf=c,lg,0,EFEFEF,1,BBBBBB,0&amp;chxt=x&amp;chbh=a&amp;chs=300x30&amp;cht=bhs&amp;chco=FF9900,FF9900&amp;chds=0,100&amp;chd=t1:45|100" alt="Google Charts API" width="300" height="30" /></a></p>
<p>Using the Google charts API, I was able to create a cool status bar at the top of a custom visual force page. This chart was used in conjunction with values derived from a dynamic aggregate query.</p>
<p>The custom visual force page incorporated checkboxes, picklists and input boxes which all fed different numerical values to the multiple records created from the page. As these the numerical values were fed to the database, the aggregate query would kick the newly stored data back to the page and re-render the dynamic status bar.</p>
<p>The goal for the user of the page is to reach 100.  As they get closer to 100, the status bar continues to grow more orange. Once the aggregate query reaches 100 the color of the bar is completely green.</p>
<p>This was not too difficult to accomplish as the status bar is nothing more than an html image URL.</p>
<p><a href="https://chart.googleapis.com/chart?chf=c,lg,0,EFEFEF,1,BBBBBB,0&amp;chxt=x&amp;chbh=a&amp;chs=600x30&amp;cht=bhs&amp;chco=FF9900,FF9900&amp;chds=0,100&amp;chd=t1:45|100" target="_blank">https://chart.googleapis.com/chart?chf=c,lg,0,EFEFEF,1,BBBBBB,0&amp;</a></p>
<p><a href="https://chart.googleapis.com/chart?chf=c,lg,0,EFEFEF,1,BBBBBB,0&amp;chxt=x&amp;chbh=a&amp;chs=600x30&amp;cht=bhs&amp;chco=FF9900,FF9900&amp;chds=0,100&amp;chd=t1:45|100" target="_blank">chxt=x&amp;chbh=a&amp;chs=600&#215;30&amp;</a></p>
<p><a href="https://chart.googleapis.com/chart?chf=c,lg,0,EFEFEF,1,BBBBBB,0&amp;chxt=x&amp;chbh=a&amp;chs=600x30&amp;cht=bhs&amp;chco=FF9900,FF9900&amp;chds=0,100&amp;chd=t1:45|100" target="_blank">cht=bhs&amp;chco=FF9900,FF9900&amp;chds=0,100&amp;chd=t1:45|100</a></p>
<p>(You can see where I had to place the aggregate query value in the URL 45|100)</p>
<p>All of the hard work was done by Google with the development of their dynamic chart library.</p>
<p>However making a dynamic URL was what I had to accomplish in order to get this to work right. Essentially I tackled this by building the URL string within the aggregate query’s Getter/Setter method within the VisualForce Pages controller, then feeding that string to a dynamic variable which is placed in the value attribute of an &lt;apex:image&gt; component.</p>
<p>After setting this component to re-render dynamically upon specific user events with ajax, this status bar worked like a charm. This also adds a cool effect to an otherwise boring visual force page.</p>
<p>I suspect developers throughout the SFDC cloud will soon be blogging of other cool ways to incorporate Google charts into their VisualForce development.</p>
<p>Remember when using a Google chart use the <a href="https://chart.googleapis.com/">https://chart.googleapis.com/</a> domain for security.</p>
]]></content:encoded>
			<wfw:commentRss>http://farfromthere.org/?feed=rss2&#038;p=36</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

