<?xml version="1.0" encoding="UTF-8"?>
<!--Generated by Squarespace V5 Site Server v5.13.166 (http://www.squarespace.com) on Thu, 20 Jun 2013 12:06:34 GMT--><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><title>Blog</title><link>http://www.redargyle.com/blog/</link><description></description><lastBuildDate>Mon, 17 Jun 2013 14:02:13 +0000</lastBuildDate><copyright></copyright><language>en-US</language><generator>Squarespace V5 Site Server v5.13.166 (http://www.squarespace.com)</generator><item><title>Mike Gerholdt Joins Red Argyle as Director of Client Engagement</title><category>Announcements</category><category>Awesome</category><category>Hire</category><category>MVP</category><category>News</category><category>Red Argyle News</category><dc:creator>Garry Polmateer</dc:creator><pubDate>Mon, 17 Jun 2013 13:22:08 +0000</pubDate><link>http://www.redargyle.com/blog/2013/6/17/mike-gerholdt-joins-red-argyle-as-director-of-client-engagem.html</link><guid isPermaLink="false">671963:7841606:33913145</guid><description><![CDATA[<p><span id="docs-internal-guid-79be2d1b-5250-aa07-7bc0-b85e381336fc"> </span></p>
<p dir="ltr"><span>We are happy to announce that Mike Gerholdt is joining Red Argyle as Director of Client Engagement!</span></p>
<p dir="ltr"><span class="full-image-block ssNonEditable"><span><img style="width: 250px;" src="http://www.redargyle.com/storage/Red%20Square%202.png?__SQUARESPACE_CACHEVERSION=1371476290555" alt="" /></span></span></p>
<p dir="ltr">Mike Gerholdt is the founder of <a href="http://www.buttonclickadmin.com">ButtonClickAdmin.com</a>, which is one of the top Salesforce blogs (and now, <a href="http://buttonclickadmin.com/thebuttonclickadminpodcast/">podcast</a>!). &nbsp;As one of the inaugural members to the <a href="http://www.salesforce.com/mvp/">Salesforce MVP Program</a>,&nbsp;his dedication to the community has been recognized since 2010. &nbsp;His former tenure included managing a 350 seat implementation over 6 years, growing adoption by 1200%. &nbsp;</p>
<p dir="ltr"><span>As Red Argyle has grown, we have the desire to build a new practice. We were in need of someone who can be focused on ensuring the continued success and adoption of projects. &nbsp;This success management is what Mike is going to bring to the table. &nbsp;Between crafting world class training, adoption plans, and coaching stakeholder groups to maximize their Salesforce experience, Mike will be ensuring that the long term success of a project is attained and measured. &nbsp;A project is much more than a build and a go-live. &nbsp;The magic happens months after go-live, and we&rsquo;re going to make sure our customers get the benefit of this.</span></p>
<p dir="ltr"><span>In addition to project and client involvement, we&rsquo;re excited to begin our quest to make Red Argyle&rsquo;s blog truly world class. &nbsp;Between Mike&rsquo;s astuteness, consistency, and creativity, we can&rsquo;t wait to have his insights contributing to our blog. &nbsp;You can be sure that we&rsquo;ll be bringing some great content to the table both from Mike and also the rest of our talented team.</span></p>
<p dir="ltr"><span>This truly is an exciting announcement for us to make and a very exciting time for Red Argyle, our customers, and the Salesforce community. &nbsp;We are committed to being the best, and one step to getting us there is to have the best people on our team. &nbsp;Please join me in welcoming Mike, and let&rsquo;s go get AWESOME!</span></p>
<div><span><br /></span></div>
<p>&nbsp;</p>]]></description><wfw:commentRss>http://www.redargyle.com/blog/rss-comments-entry-33913145.xml</wfw:commentRss></item><item><title>Salesforce Acquires ExactTarget - Some Thoughts</title><dc:creator>Garry Polmateer</dc:creator><pubDate>Tue, 04 Jun 2013 12:46:30 +0000</pubDate><link>http://www.redargyle.com/blog/2013/6/4/salesforce-acquires-exacttarget-some-thoughts.html</link><guid isPermaLink="false">671963:7841606:33850412</guid><description><![CDATA[<p>I woke up this morning with my twitter feed abuzz with some exciting news - that Salesforce has acquired ExactTarget, an email marketing and automation provider.</p>
<p><span class="full-image-block ssNonEditable"><span><img src="http://www.redargyle.com/storage/sfandet.jpg?__SQUARESPACE_CACHEVERSION=1370350973604" alt="" /></span></span></p>
<p>Having worked with Salesforce since 2008, &nbsp;there's always been the gap that Salesforce didn't do email marketing. &nbsp;The good side was that there were a host of options to manage it, the bad side was that reviewing the host, making a selection, and implementing was tougher than a first party email marketing approach.</p>
<p>Another big missing piece was lead automation &amp; drip campaigns. &nbsp;We've done some amazing things with workflow rules &amp; creative criteria &amp; time triggers but you can only take that so far before needing a more robust system.</p>
<p>In mid 2012, Red Argyle became an ExactTarget partner. &nbsp;We always liked ExactTarget's data model and deep integration with Salesforce. &nbsp;It actually used Salesforce data instead of hosting its own external database. &nbsp;In late 2012 ExactTarget acquired Pardot, a lead automation &amp; email marketing company. &nbsp;Pardot brought some nice perks and helped round out ExactTarget's suite of offerings.</p>
<p>And then today (a whopping 6 months later...), Salesforce is buying the whole shebang. &nbsp;So looking forward, this opens up a a few exciting avenues (<em>Safe Harbor, Safe Harbor, etc. etc.</em>)</p>
<ul>
<li>The acquisition will help position Salesforce to compete with their rivals who also recently made email marketing acquisitions.</li>
<li>The Pardot/ExactTarget offering brings a LOT of features to the table which are a great fit into the Salesforce CRM offering. &nbsp;There's not to much overlap here, Salesforce has a space carved out within their functionality.</li>
<li>Coupling the power of ExactTarget with the magic of the Marketing Cloud, I can foresee some amazing analytics that go far beyond anything available today. &nbsp;More than just email analytics, but true, 360 degree campaign management across all Social Media properties.</li>
<li>Implementing ExactTarget is about to get a whole lot easier. &nbsp;With the application being first party implementing ExactTarget in the future may be as easy as checking a few boxes and you're off to the races.</li>
<li>I don't expect any immediate changes, enhancements will begin rolling out over the course of the next several releases.</li>
</ul>
<p>&nbsp;</p>
<p>So what do you think? &nbsp;Any predictions? &nbsp;Excited about this play?</p>]]></description><wfw:commentRss>http://www.redargyle.com/blog/rss-comments-entry-33850412.xml</wfw:commentRss></item><item><title>Setting up a Continuous Integration server for Force.com Development</title><category>EC2</category><category>Jenkins</category><category>force.com</category><dc:creator>Zach Horton</dc:creator><pubDate>Thu, 30 May 2013 13:10:10 +0000</pubDate><link>http://www.redargyle.com/blog/2013/5/30/setting-up-a-continuous-integration-server-for-forcecom-deve.html</link><guid isPermaLink="false">671963:7841606:33788492</guid><description><![CDATA[<p>As the Red Argyle dev team ramps up, we&rsquo;ve been looking for more efficient ways to manage code. Originally, our team development approach was everyone editing code and configuration in one central org. This leads to problems when developers are working in the same file or if someone saves some broken code which prevents others from working. Not efficient. So we&rsquo;ve decided to shift our practices to be more inline with the Salesforce prescribed method of development in which each developer has their own org and changes are pushed into a central org when they are complete.</p>
<p>After doing some research we decided to use a continuous integration setup. We are using Jenkins hosted on an Amazon EC2 instance and we&rsquo;re using Git as a central repository that each developer pushes their code to. The goal is to have each developer working in their own isolated environment and pushing their changes, when they are completed and tested, into the repository which then sends the changes into a client facing sandbox. Once a developer pushes their changes to the repo, the other developers can then pull down the new changes and apply them to their org. Adding a Git repo helps us to merge changes that have happened to the same file and adds some much needed versioning to the code behind our applications.</p>
<p><strong>Server Setup<br /></strong>While looking for information on how to setup Jenkins on EC2 I came across an AMI (Amazon managed image) that <a href="http://bracketlabs.com/" target="_blank">Bracket Labs</a> had put together that includes Jenkins and the Force.com Migration tool. The AMI is can be downloaded from <a href="http://thecloudmarket.com/image/ami-ed7a5da8--bracket-labs-jenkins" target="_blank">here</a>. Click the Amazon Web Services logo which will launch your EC2 instance wizard. Now you&rsquo;ll need to walk through the steps to setup your server. I left everything at its default except when it came to the Key Pairing step. Key Pairing is basically a password file that you will need to connect to your instance. If you need help setting up a Key Pair check out the <a href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/generating-a-keypair.html" target="_blank">User Guide</a>. Select or create a Key Pair for this instance. On the next page, select an existing security group or create a new one. I recommend creating rules for SSH(port 22), HTTP(port 80), HTTPS(port 443) and FTP(port 21). Finish up by clicking continue, reviewing your settings and clicking launch.</p>
<p>The Bracket Labs AMI is hosted on the US West (N. California) Region, which is great if you are from that area. Red Argyle is an east coast company so hosting the server on the west coast might add a bit of lag to our requests. No worries, EC2 instances can be moved using <a href="https://cloudyscripts.com/tool/show/5" target="_blank">CloudyScripts free tool</a>. Make sure you create temporary AWS Access Keys and Key Pairs for this activity and delete them when you are done.</p>
<p>Your instance now lives at an assigned url, Public DNS. But in order to get your server connected to your sandbox org down the line you should assign it an IP address so you can add it to you org&rsquo;s network access settings. Towards the bottom of the left side bar is the link to manage Elastic IPs. Allocate a new address and associate it to your instance.&nbsp;</p>
<p>You can now connect to Jenkins by going to the IP address of your instance on port :8080. It should look something like</p>
<p style="padding-left: 30px;">http://192.168.0.0:8080</p>
<p>The AMI you have installed will already have a few jobs setup. Take a look at how they're configured, and also check out Bracket Labs&rsquo; git repo for their <a href="https://github.com/BracketLabs/AppExchange-Team-Development-on-Force.com-Platform-Demo" target="_blank">DreamForce Team Development presentation.</a> So far you have enough to get you started. I&rsquo;ll post again soon with more details on how we expanded on this setup to meet our development needs.</p>
<p><strong>References<br /></strong><a href="https://github.com/BracketLabs/AppExchange-Team-Development-on-Force.com-Platform-Demo" target="_blank">Brack Labs Team Delevlopment Demo<br /></a><a href="http://thecloudmarket.com/image/ami-ed7a5da8--bracket-labs-jenkins" target="_blank">Bracket Labs Jenkins AMI<br /></a><a href="https://cloudyscripts.com/tool/show/5" target="_blank">CloudyScripts Instance Migration Tool</a>&nbsp;<br /><a href="http://markunsworth.com/2012/02/11/setting-up-a-jenkins-build-server-on-ec2/" target="_blank">Helpful blog post<br /></a><a href="http://www.slideshare.net/developerforce/df121281-patterson" target="_blank">Team Development on Force.com with Github and Ant - A Red Argyle DF12 Presentation</a></p>]]></description><wfw:commentRss>http://www.redargyle.com/blog/rss-comments-entry-33788492.xml</wfw:commentRss></item><item><title>Summer '13 Glitch with Id.getSObjectType()</title><dc:creator>Tom Patros</dc:creator><pubDate>Wed, 15 May 2013 17:56:58 +0000</pubDate><link>http://www.redargyle.com/blog/2013/5/15/summer-13-glitch-with-idgetsobjecttype.html</link><guid isPermaLink="false">671963:7841606:33718845</guid><description><![CDATA[<p>Last weekend, the sandbox for one of our active projects was updated to the Summer &lsquo;13 Salesforce release. We discovered a nuanced issue related to the release that was affecting the Id.getSObjectType() method in Apex.</p>
<p><strong>Update</strong>: It looks like other folks have identified and are discussing some similar issues in <a href="http://forums.sforce.com/t5/Apex-Code-Development/Summer-13-now-working-always-with-18-char-IDs-This-can-cause/td-p/617997">this Force.com community thread</a>.</p>
<p>There&rsquo;s some moving parts here, so let&rsquo;s set up a scenario. First, we have a Visualforce page which uses a standard controller (in this case, the Account object). This VF page references a Visualforce Component that exposes a &ldquo;recordId&rdquo; attribute. Basically, we&rsquo;re passing the SFID of the record this VF page references down to the VF component:</p>
<p><script src="https://gist.github.com/tompatros/5591262.js"></script></p>
<p>The guts of the VF component looks like this:</p>
<p><script src="https://gist.github.com/tompatros/5591267.js"></script></p>
<p>The MyComponentController controller for the VF component looks like this:</p>
<p><script src="https://gist.github.com/tompatros/5591272.js"></script></p>
<p>Prior to Summer &lsquo;13, this worked without any issues. However, after the release, we started getting low-level Salesforce &ldquo;unexpected errors&rdquo; when the recordId.getSObjectType() method was called.</p>
<p>It seems that, in Summer &lsquo;13, Visualforce components are not correctly passing a Salesforce Id as a true Id data type. My best guess is it&rsquo;s actually passing it as a String. Since getSObjectType() is not a method on the String data type, I think that&rsquo;s where the unexpected Salesforce error kicks in.</p>
<p>To workaround this, we changed the recordId property in MyComponentController from an Id to a String data type. Next, we added a new property called recordSFID with a data type of Id, which we populate by casting recordId to an Id data type. Finally, we swapped our reference in the sot getting from recordId to recordSFID.</p>
<p>Final code is below:</p>
<p><strong>Visualforce Page (no change here):</strong></p>
<p><script src="https://gist.github.com/tompatros/5591262.js"></script></p>
<p><strong>Visualforce Component (changes commented):</strong></p>
<p><script src="https://gist.github.com/tompatros/5591279.js"></script></p>
<p><strong>MyComponentController Apex Controller (changes commented):</strong></p>
<p><script src="https://gist.github.com/tompatros/5591295.js"></script></p>]]></description><wfw:commentRss>http://www.redargyle.com/blog/rss-comments-entry-33718845.xml</wfw:commentRss></item><item><title>Proud to Announce - High Five! is Live on the AppExchange</title><category>Appexchange</category><category>Application</category><category>Awesome</category><category>High Five</category><category>Red Argyle News</category><dc:creator>Garry Polmateer</dc:creator><pubDate>Wed, 15 May 2013 13:15:56 +0000</pubDate><link>http://www.redargyle.com/blog/2013/5/15/proud-to-announce-high-five-is-live-on-the-appexchange.html</link><guid isPermaLink="false">671963:7841606:33717576</guid><description><![CDATA[<p>This application has a funny story.</p>
<p>Late in 2012, I was asked to post to the Salesforce community blog. &nbsp;I wrote this article:</p>
<p><a href="http://blogs.salesforce.com/company/2012/12/5-fields-every-salesforce-instance-should-have.html">http://blogs.salesforce.com/company/2012/12/5-fields-every-salesforce-instance-should-have.html</a></p>
<p>As it turns out, I got some feedback, folks thought I was on to something. &nbsp;They asked me "Hey, can I get the 5 fields?". &nbsp;So, I did the thing any Salesforce ISV partner would do, I turned it onto an application!</p>
<p><span class="full-image-block ssNonEditable"><span><a href="https://appexchange.salesforce.com/listingDetail?listingId=a0N3000000B3GloEAF"><img src="http://www.redargyle.com/storage/High%20Five%20Tile%20Logo.png?__SQUARESPACE_CACHEVERSION=1368624213017" alt="" /></a></span></span></p>
<p>So here it is, hereby dubbed "High Five!", THE 5 fields every Salesforce instance should have, along with a few bonus reports, FREE and ready for installation:</p>
<p><a href="https://appexchange.salesforce.com/listingDetail?listingId=a0N3000000B3GloEAF">https://appexchange.salesforce.com/listingDetail?listingId=a0N3000000B3GloEAF</a></p>
<p>I love how we were able to take an idea, "Appify it", and get it posted to share with the world in a very short period of time. &nbsp;Sure, it's a simple application, but simple or complex, the process is the same. &nbsp;Idea to market quick and not having to build the infrastructure!</p>
<p>If you install the application, I'd love to hear your feedback or if I can make any enhancements. &nbsp;Have at it!</p>]]></description><wfw:commentRss>http://www.redargyle.com/blog/rss-comments-entry-33717576.xml</wfw:commentRss></item><item><title>Business, Rob Roy Style</title><dc:creator>Garry Polmateer</dc:creator><pubDate>Mon, 13 May 2013 22:46:23 +0000</pubDate><link>http://www.redargyle.com/blog/2013/5/13/business-rob-roy-style.html</link><guid isPermaLink="false">671963:7841606:33709199</guid><description><![CDATA[<p>A while back I watched &ldquo;Rob Roy&rdquo; and wrote an entire blog post about how we can learn some interesting business lessons from the way the character played by Liam Neeson survived sword fights.</p>
<p><span class="full-image-block ssNonEditable"><span><img style="width: 175px;" src="http://www.redargyle.com/storage/robroy.jpg?__SQUARESPACE_CACHEVERSION=1368485316048" alt="" /></span></span></p>
<p>The post sucked.&nbsp; Maybe my nicely crafted bullet points with a situation and takeaway seemed like a good idea at the time, but reading back into it, I sadly realized&hellip; &ldquo;this is crap&rdquo;.</p>
<p>It was a good movie, just probably not good blog/mashup material.&nbsp; So maybe the lesson from this whole exercise isn&rsquo;t about how winning sword fights can also help you win at business, but how we shouldn&rsquo;t be afriad to abandon something that&rsquo;s no good.</p>
<p>I spent two hours writing that blog post.&nbsp; I knew it was no good and considered publishing it.&nbsp;&nbsp; And didn&rsquo;t.&nbsp; Have you ever been tempted to launch something that was not good simply because you spent time on it?&nbsp; Is your company carrying around business processes because someone spent time on them?</p>
<p>Time to get ruthless!&nbsp; Not &ldquo;I&rsquo;m going to be rude and hurt people&rsquo;s feelings&rdquo; ruthless, but being &ldquo;honest with yourself&rdquo; ruthless.&nbsp; If you know something is crap, admit it and determine how to decrapify it or get rid of it.&nbsp; That&rsquo;s what Rob Roy MacGregor would have done.</p>]]></description><wfw:commentRss>http://www.redargyle.com/blog/rss-comments-entry-33709199.xml</wfw:commentRss></item><item><title>What I'd Say to Myself 10 Years Ago</title><dc:creator>Garry Polmateer</dc:creator><pubDate>Fri, 10 May 2013 00:37:23 +0000</pubDate><link>http://www.redargyle.com/blog/2013/5/9/what-id-say-to-myself-10-years-ago.html</link><guid isPermaLink="false">671963:7841606:33653417</guid><description><![CDATA[<p><span id="docs-internal-guid-7174de04-8bdf-1ad6-42d5-c1064926154d"> </span></p>
<p dir="ltr">So 10 years ago today, I graduated from college. &nbsp;Maybe I&rsquo;m feeling a little bit wistful, 10 years is kind of a big deal, or maybe it&rsquo;s because I&rsquo;m going to be a Dad in a few short weeks. &nbsp;I was thinking the other day, what if I could teleport back to my 10-years-ago-self and give my former self a pep talk. &nbsp;What would I say?</p>
<p style="text-align: left;"><span class="full-image-block ssNonEditable"><span><img style="width: 150px;" src="http://www.redargyle.com/storage/10yearagoself.jpg?__SQUARESPACE_CACHEVERSION=1368148588268" alt="" /></span><span class="thumbnail-caption" style="width: 150px;">On that fateful day 10 years ago</span></span></p>
<p dir="ltr"><span>First I&rsquo;d give myself a disclaimer and say &ldquo;Hey self, you think you&rsquo;re way smarter than you are and you&rsquo;re probably not going to listen to me. &nbsp;But that&rsquo;s okay because truthfully, the only way you&rsquo;ll learn this stuff is to mess it up anyways.&rdquo;</span></p>
<p dir="ltr"><span>Then I&rsquo;d go on to give my former self some pointers of what I did learn over the years...</span></p>
<ul>
<li>Don&rsquo;t dress for the job you have, don&rsquo;t dress for the job you want, but dress to be yourself. &nbsp;However, looking dapper does not hurt.</li>
<li>Don&rsquo;t be worried that you got a degree that&rsquo;s not business oriented. &nbsp;Revel in it. &nbsp;You&rsquo;ve just learned a set of skills that are applicable in any business. &nbsp;Problem solving? &nbsp;Check. &nbsp;Public speaking? Check. &nbsp;It&rsquo;s not what your degree is in, but what you choose to do with it that matters.</li>
<li>Tattoos hurt a lot less than you think.</li>
<li>Keep on taking the long view. &nbsp;It makes failures seem that much smaller and successes feel more like a stepping stone than the destination.</li>
<li>Speaking of failure, buckle up, because you&rsquo;re going to have a lot of those!</li>
<li>Don&rsquo;t ever stop loving Volkswagens. &nbsp;And (hint, hint), you&rsquo;re going to build one of the best of them. &nbsp;You&rsquo;ll succeed because you stuck to it and didn&rsquo;t give up.</li>
<li>Spend as much time as you can with your family, it&rsquo;ll be the best times that you remember.</li>
<li>Don&rsquo;t ever quit playing music.</li>
<li>Growing up sucks so resist with all your power! &nbsp;Keep that child-like interest, it will serve you well.</li>
<li>Stay tuned, because in a year P90X will be invented. &nbsp;Buy it and never stop doing it. &nbsp;Sometimes you&rsquo;ll fall off the wagon but keep on getting back on, you won&rsquo;t regret it, not ever.</li>
<li>You&rsquo;ll catch the biggest fish by spending more time with your pole in the water. &nbsp;Every cast you create an opportunity. &nbsp;This works for fishing and life in general. &nbsp;Keep trying to create opportunities.</li>
<li>It&rsquo;s okay if you say &ldquo;Awesome&rdquo; a lot. &nbsp;Just make sure that you are doing something awesome.</li>
<li>Speed is motion. &nbsp;Velocity is motion with a direction. &nbsp;Think velocity, not speed. &nbsp;Pick a direction and keep moving foreward.</li>
<li>Keep on having a good time, no matter what. &nbsp;You have one life, live it dude!</li>
</ul>
<p style="text-align: left;"><span class="full-image-block ssNonEditable"><span><img style="width: 150px;" src="http://www.redargyle.com/storage/now.jpg?__SQUARESPACE_CACHEVERSION=1368148643114" alt="" /></span><span class="thumbnail-caption" style="width: 150px;">Still smiling today!</span></span></p>
<p dir="ltr"><span>I&rsquo;m sure I&rsquo;d be tempted to tell my former self to invest in Salesforce.com, get a job in the cloud technology and make sure I go to the first Dreamforce, but I&rsquo;d be a little worried about creating a fold in the space-time continuum which would probably destroy the universe.&nbsp;</span></p>
<p dir="ltr"><span>Question for you - what advice would you give 10-years-younger self if you could talk to them right now? &nbsp;Feel free to leave a comment with your pointers! &nbsp;Thanks for reading. &nbsp;-Garry</span></p>
<div style="font-weight: bold;"><span><br /></span></div>
<p>&nbsp;</p>]]></description><wfw:commentRss>http://www.redargyle.com/blog/rss-comments-entry-33653417.xml</wfw:commentRss></item><item><title>Mobile Development: Go Hybrid</title><dc:creator>Tom Patros</dc:creator><pubDate>Tue, 07 May 2013 13:17:39 +0000</pubDate><link>http://www.redargyle.com/blog/2013/5/7/mobile-development-go-hybrid.html</link><guid isPermaLink="false">671963:7841606:33613260</guid><description><![CDATA[<p>Zach Horton and I split east coast destinations for Salesforce&rsquo;s <a href="http://www2.developerforce.com/mobile/developer-week">Mobile Developer Week</a>. Zach <a href="http://open.spotify.com/track/2kf767S4oj5KKVLZKEG4gw">shipped up to Boston</a>, and I headed over the border to Toronto to hang out with the illustrious <a href="https://twitter.com/metadaddy">Pat Patterson</a>.</p>
<p>During <a href="http://www.youtube.com/watch?v=fG_OvWdfgVc">Pat&rsquo;s presentation</a>, he described mobile development approaches using the Salesforce Mobile SDK in three flavors:</p>
<ol>
<li>HTML5 - web apps built with a mobile-friendly (aka <a href="http://www.abookapart.com/products/responsive-web-design">responsive</a>) design in mind.</li>
<li>Hybrid - HTML5 apps (see previous bullet) enhanced with a simple Native wrapper (see next bullet), allowing developers to access some hardware on the device (camera, voice, etc)</li>
<li>Native - apps built using the iOS or Android mobile platforms, allowing developers to access all hardware on the device beyond the &ldquo;wrapper&rdquo; mentioned above.</li>
</ol>
<p>Clearly, the level of sophistication of an app increases as you read down the bullets. The tradeoff? So does the level of complexity to develop them.</p>
<p>I would recommend that any Force.com developer building a mobile app to &ldquo;go hybrid&rdquo;. Force.com devs already have the skills to build an HTML5 app quickly, and the wrapper needed to go from HTML5 to a Hybrid app is a weekend project away for any nerd that can&rsquo;t seem to get their fix of code during the workweek (read: all of us).</p>
<p>Also, Force.com developers typically build business apps. A mobile app will likely plug a specific hole for your company. It would benefit from a device-specific user interface and some streamlined functions, but it probably won&rsquo;t benefit from a graphics accelerator or a multicore processor that native development may afford. While an &ldquo;Angry Birds : Salesforce Edition&rdquo; sounds intriguing (and I&rsquo;ll let you all decide which Salesforce executive aligns with which bird), &ldquo;Lead Closer 9000 Extreme Edition&rdquo; is probably closer to our development reality.</p>
<p>Finally (and at risk of showing of my development ineptitude), native development is hard! I&rsquo;ve picked up XCode three or four times, only to put it back down in a huff, grumbling to myself &ldquo;Objective-C makes me feel stupid&rdquo;! No doubt, there are developers who would laugh at this, but to hark back to my previous point, if you don&rsquo;t need the sophistication of a native app, you don&rsquo;t need the complexity of developing it.</p>
<p>Save time. Save money. Go faster. Go hybrid.</p>
<p>Now, throw tomatoes (or angry birds) at me in the comments.</p>]]></description><wfw:commentRss>http://www.redargyle.com/blog/rss-comments-entry-33613260.xml</wfw:commentRss></item><item><title>Dropbox + Bookmarks = Sanity</title><dc:creator>Tom Patros</dc:creator><pubDate>Fri, 05 Apr 2013 19:40:05 +0000</pubDate><link>http://www.redargyle.com/blog/2013/4/5/dropbox-bookmarks-sanity.html</link><guid isPermaLink="false">671963:7841606:33254156</guid><description><![CDATA[<p>We use <a href="http://www.dropbox.com">Dropbox</a> to store our "non-office" documents. Image files, PDFs, <a href="http://www.omnigroup.com/products/omnigraffle/">Omnigraffle</a> diagrams, data downloads, and the like are a great fit for Dropbox's powerful syncing and backup capabilities (it also helps keep them out of email inboxes).</p>

<p>However, one challenge we had in the past was aligning Google Docs, project websites (like <a href="http://basecamp.com/">Basecamp</a>) and other apps with related assets that are stored in Dropbox. The old-school-yet-effective solution: bookmarks in a folder.</p>

<p>Here's how we do it:</p>

<p>1. Open the Dropbox folder on your machine (we organize our Dropbox folders to align with projects):</p>


<p><img src="https://www.evernote.com/shard/s153/sh/65fff719-e925-4069-b479-84ea61195e9f/bb9b95adb348914231f9f234f0f94ff6/deep/0/Screenshot%204/5/13%203:48%20PM.jpg?__SQUARESPACE_CACHEVERSION=1365191294949" alt="" /></p>

<p><br />2. Navigate in your browser to the page / app / Google Doc you want to track alongside your Dropbox assets:</p>

<p><img src="https://www.evernote.com/shard/s153/sh/96bb47d3-142b-41ad-b3b6-b9c17c0f5fc5/65cee58dc2a18f2393887b327696245d/deep/0/Screenshot%204/5/13%203:49%20PM.jpg?__SQUARESPACE_CACHEVERSION=1365191422468" alt="" /></p>

<p><br />3. Click and drag the web page icon into your Dropbox folder:</p>

<p><img src="https://www.evernote.com/shard/s153/sh/9f1f96a6-41fd-4a43-96da-e980bc636db5/d34d194c368b11e3d364206355c1bca6/deep/0/Screenshot%204/5/13%203:51%20PM.jpg?__SQUARESPACE_CACHEVERSION=1365191523372" alt="" /></p>

<p><br />4. Bask in the lo-fidelity organizational glory!</p>

<p>When you do this on a Mac, you will get a ".webloc" file in Dropbox. Double-clicking the file will open a browser and take you to the corresponding page (again, you can do this for anything that has a URL - Google Doc, web app, etc). The file will also sync to everyone else you've shared the Dropbox folder with, keeping your project team in sync and (hopefully) helping to end the "hey where did that thing go?" conversation.</p>

<p>We're all Mac-folk here at Red Argyle, but I'm not sure if that same file format will work on a PC. If not, I suspect a similar format would result if you followed this same process.</p>]]></description><wfw:commentRss>http://www.redargyle.com/blog/rss-comments-entry-33254156.xml</wfw:commentRss></item><item><title>Why We Became a Heroku Partner</title><dc:creator>Tom Patros</dc:creator><pubDate>Wed, 13 Feb 2013 02:08:00 +0000</pubDate><link>http://www.redargyle.com/blog/2013/2/12/why-we-became-a-heroku-partner.html</link><guid isPermaLink="false">671963:7841606:32794725</guid><description><![CDATA[<p>Red Argyle recently migrated several apps from an existing provider to <a href="http://www.heroku.com/">Heroku</a> for one of our clients - and we couldn't be happier.</p>
<p>Simply put, Heroku is a platform for building, deploying and managing applications. It is probably best described by comparing it to how we used to develop, deploy and support apps in the days before Heroku.</p>
<p><strong>Before Heroku</strong></p>
<ol>
<li>Build an app.</li>
<li>Find a server. Hope that the server is reliable. Hope that the server is configured in such a way that our app will actually run on it.</li>
<li>Figure out how to get the code for the app on the server. Forget FTP credentials. Call tech support.</li>
<li>Figure out where to put the database that the app needs to store all the data. This often means repeating step 1.</li>
<li>Deploy the app. Use the hope-and-pray method of performance monitoring.</li>
<li>Determine that, based on said hope-and-pray method, that there is a performance issue. Somewhere. Maybe with the web server. Maybe with the database server. Maybe the connection between them. Maybe with something else that we don't understand.</li>
<li>Endure occasional panic-stricken cold sweats and sleepless nights.</li>
</ol>
<p><strong>With Heroku</strong></p>
<ol>
<li>Build an app.</li>
<li>Check a box to enable a database.</li>
<li>Check a box to enable performance monitoring.</li>
<li>Deploy the app.</li>
<li>Watch the logs from the monitoring app.</li>
<li>Push buttons to increase performance throughput.</li>
<li>No sweating. Nights are for sleeping.</li>
</ol>
<p>As you might expect, we prefer the latter. Heroku eliminates all the tasks that have nothing to do with building an app, allowing us to focus on what's important: the app itself.</p>
<p>It's this freedom that's allowing us to dive into much more challenging and exciting projects than we would have in the past. No matter the language, integration points, scale or complexity, Heroku has our back.</p>
<p>That's why <a href="http://partners.heroku.com/red-argyle">we became a Heroku Partner</a> - we firmly believe in Heroku's capabilities and direction, and have committed to running all of our applications on the platform.</p>]]></description><wfw:commentRss>http://www.redargyle.com/blog/rss-comments-entry-32794725.xml</wfw:commentRss></item></channel></rss>