Wednesday, March 30, 2011

CloudSpokes Hits 2000 Members in 6 Weeks!

Yesterday was a big day in the history of CloudSpokes as we hit 2000 members! We officially launched the site six weeks ago on Valentine's Day and honestly didn't know what type of reception we'd receive.

At a pre-launch meeting we tried to set a goal for the number of members before the end of the quarter. Narinder asked for a SWAG and a number of people said 250 or 500 or possibly even 750 members. However, if you check the meeting notes, I believe I, Jeff Douglas, was the one that said 2000 members. Everyone chuckled and Narinder chimed in with 1000 just to make me sound less crazy (typically not possible but he is Narinder).

The competitions so far have been fun, exciting and challenging on broad range of topics including code obfuscation,, Facebook, Twilio, XSLT, Heroku, JavaScript, Firefox and Ruby. We'd paid out over $20,000 so far with more to come! We currently have 8 open challenges with 110+ registrants on such topics as iOS development,, Twilio, Evernote and general development.

If you have an idea for a cool challenge, submit it here. We are paying out $50 for each winning idea.

Narinder has promised a small party to celebrate. I think we are all going out for ice cream and unicorn rides!

Monday, March 28, 2011

This Firefox Extension for Salesforce is Fractastical!

Congratulations to fractastical for winning the "Beat Jeff Douglas" challenge! This is fractastical's second win and it puts him at the top of the leaderboard!

Note: You can install the plugin here.

A little background on the challenge. So about six months ago I wrote the Utility Belt, a Google Chrome extension with all kinds of nifty tools, links and shortcuts for development on the platform (you can find more details on the extension here). Frequently I would get an email asking when it would be available for Firefox as Google Chrome wasn't officially supported for at the time. I had never done a Firefox extension nor did I have the time but it was a great request.

When we started CloudSpokes, Narinder thought this would be a great challenge and named it "Beat Jeff Douglas". Yes... there were many jokes such as "is this a literal or figurative challenge?" Fortunately, fractastical was able to easily beat me. His Firefox plugin looks great and has functionality that surpasses my Chrome extension.

Here are some comments from fractastical's documentation:

The following modifications have been made to the original Utility Belt by Jeff Douglas:
  1. Convenient jQuery-powered autocomplete allows user to type in query and have the result load in iframe
  2. Added basic error handling for ID Converter. Most invalid Ids now give an error
  3. Changed HTML to conform to strict standards (e.g. closed <input /> instead of <input> )
  4. Changed various elements to conform to standard javascript usage (some things were Chrome specific)
  5. Moved javascript and css to separate files
  6. Numerous other minor modifications to get thing working in Firefox correctly
  7. Added to git repository (will place on github as soon as challenge is complete)
  8. Added close and navigation buttons so that the position of the window is not fixed
  9. Added myself to the credits
It has been tested in Firefox 3.6.x and Firefox 4 beta. There are no known bugs at this time. Enjoy!

Thursday, March 24, 2011

Our First Ruby Winner - OmniAuth for & Heroku

Actually the challenge was so tight that we declared two winners and decided to spread the love around! Congrats to everyone that participated in the OAuth2 with OmniAuth for & Heroku challenge.

So a couple of weeks ago the idea for this challenge came to me on an email thread with Quinton Wall ( and Ben Scofield (Heroku) as I was having problems coding an OAuth2 solution for in Ruby for the REST API. Ben made the suggestion that instead of requiring developers to implement their own solution (who here likes to do the OAuth dance?), why not give back to the community by building out a strategy for OmniAuth. The package already supports OAuth for Facebook, GitHub, LinkedIn, Twitter and many, many more providers so it seemed logical. (BTW, while the challenge was under way, Quinton Wall wrote a great article entitled, Build Mobile Apps in the Cloud with Omniauth, Httparty and

We received three high quality submissions and have awarded the following prizes. We were a little more generous than we originally planned to be so we hope the winners don't mind.

  1. mbleigh - $1500
  2. sbfaulkner - $750
  3. jacobdam

Part of the requirements were to provide a link to the application running on Heroku. You can test out the OAuth functionality yourself and see a list of accounts from your Developer org.

I've already spoken with project owner of OmniAuth (he happened to be one of the three submitters) and he stated, "Once I have resolution on the 500 error issue, I will be rolling this into the official OmniAuth repository as well".

Wednesday, March 23, 2011

You'll "Like" this Winner!

We really "like" the fact that we have a winner for our Facebook "Like Box" Visualforce Component challenge. Congratulations to Shanmuk1729 who made a cool $600 for building a nifty little Visualforce Component that displays a Like Box social plugin on a Visualforce page.

The Like Box is a social plugin that enables Facebook Page owners to attract and gain Likes from their own website. The Like Box enables users to:
  • See how many users already like this Page, and which of their friends like it too
  • Read recent posts from the Page
  • Like the Page with one click, without needing to visit the Page
We wrote this challenge with the new Toolkit for Facebook specifically in mind. Hopefully we'll be able to include this component in the toolkit.

Friday, March 18, 2011

Calling out another winner!

Very excited to call out another winner for the SFDC Case by Phone via Twilio Challenge: nkhan took first place with a working submission! Congrats nkhan!

nkhan documented his submission, detailing how quick and easy it was for him to create Salesforce cases over the phone using the Twilio API. He was then able to build the entire application in just three Salesforce VisualForce pages.

More contests and winners to come this week!

Announcing the CloudSpokes Developer Evangelist - Jeff Douglas

Beginning next week I'll be starting a new position at Appirio on the CloudSpokes team. One of the great things about Appirio is that, like the cloud computing industry in general, the only constant is change and new opportunities are always being incubated within our company. Since I started with Appirio I've been on the delivery team working 40-60 hours a week on client projects. I absolutely love it! In between my "normal" working hours I squeeze in blogging, tinkering with new technologies, developing demos and writing articles for It's always a blast and never a dull moment.

About a year ago we started work on our CloudSpokes community. We ran it internally for awhile to flesh out the concept and work out the kinks and finally launched it last Valentine's Day. CloudSpokes allows developers to participate in challenges, build a diverse portfolio of technology skills, learn something new, and even earn a little cash on the side as well (btw... take 15 seconds and join the commuity so you can see what cool things are going on). We've completed some pretty great challenges in our first month such as building out OAuth2 support for Ruby to authorize Heroku apps for, a Firefox plugin utility for developers, a "Cloudy Code Obfuscator" and some XSLT transformations for customer projects. We currently have challenges for HTML5, an iPhone app for Admins and a Google chat bot. There's more fun to come as we will be announcing as series of related challenges to really energize the community site. We've pledged to give away $1 million in prize money so we have to get crackin'!

CloudSpokes is off to a great start but Appirio wants it make it #superfrickinawesome! So beginning next week I'll start my new position as Developer Evangelist for Appirio and CloudSpokes. Half of my time will still be down in the trenches of client projects but the other half will be devoted CloudSpokes and the developer community in general. What does this mean for me and hopefully the community?
  • Part of my job will be helping the CloudSpokes team develop new challenges, judge contest submissions and manage the day to day operations of the site.
  • I'll get to concentrate on blog posts and demos to help enterprises accelerate their adoption of the cloud. Since we focus on technologies such as, Google, Heroku, VMforce, Amazon Web Services, Workday, Twilio and mobile, you should expect to see more coming your way.
  • I've always been not-so-secretly jealous of the Developer Evangelists, so now I'll get a chance to (hopefully) work with them more closely. We are also fostering relationships with evangelists from Heroku, Twilio, VMware and AWS so our goal is to include them more in the community. We may have an exciting announcement on this front soon.
  • I'm a little ADD (actually, my wife says I have ADSO... Attention Deficit... oh! Shiny Object!!) so anything new is fun for me. I'm really excited that I'll be able to work with new and emerging technologies that I typically am not exposed to. I'm really getting my hands dirty with Ruby and Heroku and I think that will be a focus for awhile. I'll also be getting into mobile stuff for iOS, Android, Sencha and HTML5.
  • My new role should also prevent my wife from divorcing me as my working hours shouldn't be as crazy.
So if you have any ideas on what you would like to see or what you think I should do, the please drop me a line!

Wednesday, March 16, 2011

Great ideas and another winner!

We have already received some great ideas for CloudSpokes contests. Today we have two announcements in regards to our ideas competition.

First congratulations to knthornt for his idea for an iPhone administration app. This is a fantastic idea since it makes life easier for SFDC administrators and their significant others! Any application that improves work life balance is ok in our book. You'll be able to compete to help build this application by registering for this contest.

Our second announcement is we are going to be running our idea contest all year long. We'll be announcing winners through out the year for this contest. Keep the ideas coming and we look forward to launching them at CloudSpokes and seeing your ideas be brought to life!

Tuesday, March 15, 2011

First Winner!

We are pleased to announced our first winner for the CloudSpokes community! In fact the submissions were both great we decided to name two first place winners!

In no particular order, fractastical submitted a project incorporating his username! His project included Apex code with embedded Javascript which displayed a Mandelbrot fractal. The code uses the HTML5 to display another fractal with fractal lightning! You can see the submission here on fractastical's website. If you think you can figure out this code take a peek at a screen shot of the code below.

Next up is Aiis and his submission of an HTML/JS Connect4 game. Give it a try and then try to read the obfuscated code. It definitely brings me back to my childhood to play a game of Connect 4. To make it hard to read, Aiis used the following techniques:
  • Nested tertiary operators
  • Large amount of global variables
  • Multiple information encoding methods
  • Unused garbage variables and functions
  • Lack of tabbing or organized white-space
  • Multiple functions to perform the same task
  • Unintuitive order of function parameter passing
  • Extra curly-braces, { and }, which are not required
  • Functions definitions placed in random order on page
  • Variables defined by a large offset in a long string
  • Unnecessary use of binary operators in arithmetic operations
  • Not all global variables are declared and initialized together
  • One-character and random two-character variable and function names
  • Several variables used to represent the same values as other variables
  • Functions that use local variables with the same names as global variables
  • Several nested functions that may affect global variables used by other functions
  • Long string composed of many variable length strings to make finding offset more difficult

Here is a screenshot of his code:

Sunday, March 6, 2011

More About The Concept of Crowdsourcing

Crowdsourcing and its growing impact on a number of areas reveals just a small part of its overall potential. Very often I get requests for more information on this, so I thought I'd pull out some useful articles to get you started:

  • Lakhani -- Harvard Business Review - Draws on open source and lessons from Innocentive
  • Rise of Crowdsourcing - Wired -- 2006 piece on the emergence of these new models
  • HBR Blog - Business Ideas from the cloud - Discusses how to create a vibrant community and highlights Netflix and GE
  • HPN Healthcare competition - O'Reilly Radar - How crowdsourcing is being applied to one of the biggest social issues of our time
Could list hundreds of others, here is one of my favorite stories is from one of my favorite sites. tells the story of how Goldcorp used crowdsourcing to increase their market cap from 100M to 9B !
Post your favorite stories here and/or to twitter and include our @cloudspokes handle !