Wednesday, February 29, 2012

FAQs Done Right with!

faqFAQs are important to users and we wanted to do it right with our FAQs Done Right with Salesforce! challenge. The goal was to develop an FAQ application and Visualforce component with that allows you to target groups of users both internally and externally.

The requirements were to create a Visualforce component that allows developers to add FAQs to a Visualforce page and define which FAQ Groups display on that page. The component can be configured to either displays all question and answer combinations for the particular group or display a table of contents like structure where all of the questions display at the top of the page with questions at the bottom. We also wanted administrators to be able to mark a FAQ as “important” so that it displays at the top of any Visualforce page.

Since user feedback is so important, each FAQ should display a “Did this answer your question?” and allow the user to respond with Yes or No. User should also be able to create their own FAQ (question and answer) and submit it for approval. We wanted a simple email workflow notification system to notify an administrator.

Avidev9 and swatnew both turned in great submissions and we'll roll different parts of their entries into our production org. Congrats guys!!

Place: 1
Money: $1000
Place: 2
Money: $500

Predict Opportunity Close Dates with Google Prediction API

User-added image
We ran the Opportunity Close Predictor with Google Prediction API challenge because, frankly, we think its super slick. The Google Prediction API a cloud-based machine learning tool that can help analyze data to add features to applications like recommendation systems, upsell opportunity analysis, spam detection, customer sentiment and much more.

Fortunately Google offers a number of REST client libraries for various languages so participants submitted code in Ruby, Grails and Google Go. It was interesting that we didn't have any submissions using Java or Python which run natively on Google App Engine.

We wanted to make the applications as data agnostic as possible so developers were not required to develop an app that was tightly integrated with, just to use some sort of Opportunity data. It was their choice to either integrated directly with or use an export of data. We suggested using data points like amount, close date, customer, products, sales rep, and stage to get them started in the data training process.

Besides that, the requirements for the challenge were pretty light. Just use the Google Prediction API to predict a close date and/or probability of closing for Opportunities in We received 4 great submissions and when you have time, you must watch some of these submission videos. Some really cool work by these guys.

peakpado - demo application & submission video
Ruby on Heroku
Place: 1
Money: $1000
wcheung - demo application & submission video
Grails on Cloud Foundry
Place: 2
Money: $1000
PaulKolbovich - demo application & submission video
Google Go on App Engine
Place: 3
Money: $500
Slava - demo application
Ruby on Heroku
Place: 4
Money: $250

Cloud Merge for Google Docs

We ran our Cloud Merge for Google Docs challenge last November to build a mail merge feature from to Google Docs that would allow an administrator to set up document templates containing merge fields to populate data into a Google Doc.

The original challenge was a success but we wanted more functionality. We wanted to make Cloud Merge better and more powerful by combining related list and different types of fields so we spun up the Cloud Merge for Google Docs, Part Deux challenge using the original challenge's code as a starter.

elukaweski - submission video
Place: 1
Money: $1500
username5 - submission video
Place: 2
Money: $500
Place: 3
Money: $250

8 Submissions for our Node.js Stock Ticker Challenge

I have to admit that we love Node.js here at CloudSpokes... and apparently so do a lot of our members. We ran a Node.js Stock Ticker challenge which was to create a simple stock ticker using Node.js that fetches near-realtime stock data and display it in the browser. We were pleasantly surprised to see 8 submissions so we decided to give everyone some prize money. You can certainly expect to see more Node.js challenges in the future as there are a lot of cool uses cases for it.

akkishore - submission video
Place: 1
Money: $500
Slava - submission video
Place: 2
Money: $250
Place: 2
Money: $250
wcheung - submission video
Place: 2
Money: $250
PaulKolbovich - submission videodemo application
Place: 2
Money: $250
romin - demo application
Place: 2
Money: $250
NaleagDeco - demo application
Place: 3
Money: $100
sindujaramaraj - demo application
Place: 3
Money: $100

Monday, February 27, 2012

Oops...our bad. Dial-a-doc extended!

So it looks like in our excitement to get the initial Box contests up and running we didn't give folks enough lead time on the first challenge (Dial-a-Doc).  Sorry about that!  To make it up to you, we've extended the challenge until next Monday, March 5th and also increased the prize money (now $1,000 for 1st place and $500 for 2nd).  So load up your Box APIs, set your Twilio SMSes to maximum, and code up a winner!  Make it so.

Box Sweepstakes Week 2 Winners!

And the winners of the Box Sweepstakes for week 2 are:

idev42             $100
Quipeace         This awesome Box dev T-shirt --->
akshaysuri       50GB Box upgrade

Congratulations to our winners!  The weekly sweepstakes is still running, so if you haven't already submitted an entry, do it now!  It only takes 2 minutes and you can win cool stuff like jdev42, Quipeace, and akshaysuri did!

Friday, February 24, 2012

Get your CloudSpokes...!

Looking to add some tech schwag to your wardrobe?

We're teaming up with the team over at for the month of March. provides a fresh shirt of the month featuring the logos of new start up companies.

CloudSpokes is going to be the featured shirt for March if you're interested in grabbing a limited edition CloudSpokes shirt.

Automate Chores with Selenium

No one likes clicking buttons when making configuration changes in but it's a fact of life in our business. We wanted to do less actual work so we ran our Automate Salesforce Config Changes with Selenium challenge to provide more time to play Jenga.

The Metadata API is a great invention. It allows you to script updates, synchronize changes between orgs and much more! Sadly, not everything in is updateable via the Metadata API. Nothing is more painful than setting field level security for 10+ profiles on 10+ custom objects.

Our goal with this challenge was to make the lives of countless "Button Click Admins" more enjoyable by automating this task with Selenium. In case you don't know, Selenium automates browsers. That's it. You can record your button clicks in one org and then play them back in another org to produce the same results. These script can generate Java code so we it would be cool to make this process repeatable by scripting it with ANT.

If you hate clicking buttons a much as we do, check out the video submissions from our winners. Some really cool stuff!
peakpado - video submission
Place: 1
Money: $1000
jordanbaucke - video submission
Place: 2
Money: $1000
Place: 3
Money: $250

Thursday, February 23, 2012

Urgent Ninja vs Samurai Poll!

We need your help!  All progress on the new badge system here at CloudSpokes HQ has ground to a halt as the team has exhausted three white boards, several dry erase markers, and five nerf swords debating whether the "Samurai" badge or the "Ninja" badge should be the highest ranking in CloudSpokes land.  Since we've fought to a standstill (in other words, Sal lost) we need the community to weigh in.  What rank do you think best describes the ultimate mastery of code?

No plans this weekend? Hack it up with Box and Appcelerator!

We've extended the deadline for our Mobile Awesomeness with Box and Appcelerator challenge due to popular demand. So if you want to get your feet wet with some mobile technologies, show off how #awesome you are or make a little prize money on the side ($2000 up for grabs!), definitely check out this challenge.

The challenge is to use Appcelerator's Titanium to build a mobile app that leverages Box’s API to store, manage, and share content. The challenge is wide open, because we want to see what you can do with these two powerful platforms! Appcelerator has created a Box module for Titanium to help you implement Box’s functionality.

What are you waiting for? Get started hacking away! Oh.. and don't forget to register for our Box Badge Sweepstakes challenge, where Box is giving away some really cool cash and schwag just for signing for a Box account.

Tuesday, February 21, 2012

Box Sweepstakes Week 1 Winners!

And the winners of the Box Sweepstakes for week 1 are:

mirfan00         $100
Corycowgill     This awesome Box dev T-shirt --->
phaniram        50GB Box upgrade

Congratulations to our winners!  The weekly sweepstakes is still running, so if you haven't already submitted an entry, do it now!  It only takes 2 minutes and you can win cool stuff like mirfan00, Corycowgill, and phaniram did!

Thursday, February 16, 2012

Developer Challenge to Connect Box & Podio: And the Winner is…

Ryan Nichols
Guest Blogger: Ryan Nichols

Ryan Nichols is the VP of Apps at Podio, a work platform for collaborative project management. Ryan's passion is bringing together tech and business to change how people work - you'll often find him tweeting about the #FutureOfWork, and Podio's impact on that revolution.

A few weeks ago, we were thrilled to see Box offer $1000 to the developer who built the best integration between Box’s powerful file sharing service & Podio’s work platform. This is one of our most requested integrations, and we were excited to see what the CloudSpokes developer community could do!

Well, the results are in, and we’re impressed. The specific challenge was to develop a web service that integrates Box into Podio. It required of two parts: a public web site for users to setup their connection, and a backend service to check for new or changed files in Box and put them into a custom Podio App, where they can be associated with Projects, Customers, Events, or any other workflow.

This is a good example of how multiple cloud services with open APIs can be loosely coupled by a new ecosystem of cloud developers to do amazingly innovative things. Podio makes it easy for businesspeople to build their work apps, oftentimes centered around documents and files. Box has a fantastic file sharing service. With a $1000 prize and 3 weeks of time, the 30,000 developers on CloudSpokes brought Podio and Box together in a great proof of concept. Just think about think about what would have happened if you’d put out the same challenge to a Sharepoint developer community!

Congrats to our winner, Akkishore. You can watch a technical walkthrough of the integration that he built here, but here are some of the things we found most interesting reviewing his submission:
  • Integrations can be simple: The app build by Akkishore consists of less than 500 lines of Python code, including the code for authenticating and communicating with the Podio and Box APIs.
  • Auth doesn’t need to be a headache: With OAuth evolving to become the de-facto standard for authentication, it has become much easier for developers to authenticate users with 3rd party apps and much more secure for users to provide access to their data. Passwords are never shared with 3rd parties, and users can revoke the given permissions at any time.
  • APIs are more than just data: The Podio API allows developers to do anything users can do through the Podio interface. This means that Akkishore’s winning solution is not limited to just creating, updating and deleting items on Podio, it can also create the app the file items are put in. The user is free to change the app through the Podio interface– this will not break the integration. 3rd party solutions can create all kinds of apps on Podio, thus making an experience tailor-made for the specific integration.
  • Full integrations > Mashups: The automatic synchronization between the folder in Box and the app in Podio is a powerful feature that enables users on Podio to be notified if a file is changed in Box, and ensures that the two are always in sync. Automatically running 3rd party integrations like this can really help drive helpful information into Podio, right into your workflow

So congrats to Akkishore– your submission has inspired us. Stay tuned for more news on this topic!

Tuesday, February 14, 2012

Happy Birthday! We Made This for You.

Today is Valentine's Day, but it's also the 1st Anniversary of CloudSpokes!  As a gift to all of you that have helped make our (not so) little community successful, here's a little something we put together for you.  Hope you enjoy it!

Guest Blogger: CloudSpokes Rocks

Daniel Llewellyn
Guest Blogger: Daniel Llewellyn

Dan (aka Kenji776), the first CloudSpoker to reach 10 wins, and now the first to break the $20K mark in contest earnings, has written an excellent post on his blog that we wanted to share as part of our guest blogger entries. He's also now the first CloudSpoker to guest blog twice for us - a true pioneer.

Dan, who hails from Minnesota, works with Apex, Visualforce, Coldfusion, SQL, lots of Javascript hacking, and has been known to play with some C# here and there. 

So, a bit of an exiting milestone today. I am the first developer to break the $20,000 mark on, just one day short of the year anniversary of Cloudspokes itself, and what a crazy year it has been. I feel like I have learned more in this last year than I have in the last several combined! I’ve had some really good competition, put together some awesome applications, and been blown away by some of the things I’ve seen other competitors put together. Thanks to Cloudspokes I’ve I wrote my first Python and Google apps application, broke into jQuery mobile development, learned integration with Twilio, google maps, and so much more. I suppose at a time like this, it’s a bit natural to reflect on where I came from and how I got here.

It’s funny, I’ve come this far, and I still feel like I know nothing. I really am just some chump who pretends he is some kind of programmer. I don’t really have a software design pattern (outside of scribble some shit on paper then start writing code), I don’t use git or even really any kind of version control. I never took programming classes in college, or even been part of a team outside of a small web dev gig back in my mid teens. I don’t understand machine language, and never got pointers. Polymorphism, introspection, and reflection are all concepts I barely grasp. The highest level math course I took in college was college algebra. I fell into development, just as a natural evolution of my love for computers. I guess what I’m really getting at here is ‘If I can do it, anyone can’. You wanna write code? Do it. You don’t need some impressive pedigree or a an expensive degree. It couldn’t be any easier to start than it is today. Go fire up a Salesforce dev org. Maybe get a google app engine app going. Get some free web hosting somewhere. Just… do it.

More important than anything else is just being tenacious, knowing the answer is out there somewhere you just have to find it. Then, once you find it, make it better. Make it faster, sleeker, more efficient. For all my shortcomings, these are the two attributes I claim to have that if anything in myself have carried me this far. I’m stubborn as a mule, but clever as fox. I don’t accept answers I don’t like, and am willing to try shit that seems impossible. Everything that seems nuts just looks like another opportunity to do something no-one else wants to. Perhaps because I’m not bogged down with all the traditional developmental knowledge and mentality I see things a bit different. Who knows?

I want to give a shout out to some of the people who have helped make me the developer I am. Guys like Jason Venable, Simon Fell, Jeff Douglas, Ritesh Aswaney, Matthew Lamb, Andy Boettcher, Daniel Hoechst, Richard Tuttle, and many many more. Here’s hoping one day I can be even half as skilled as you guys are. It’s thanks to guys like these, that dudes like me even have a shot; because they are out there helping us. Of course, thanks to Cloudspokes itself for pushing me to see what I can do when challenged. I never would have guessed I was capable of half the things I produced in the last year. It’s truly an amazing community and a great tool for personal, and professional development.

Looking forward to the next year. See you all in the cloud.

Monday, February 13, 2012

March Madness is Coming!

As stadiums across the US get ready for the craziness of the annual NCAA basketball tournament, we here at CloudSpokes are preparing for our own version of March Madness, with daily $1,000 "Quick Quiz" code challenges.  These mini-contests will be ten questions long and winners will be determined by 1) the number of correct answers and 2) the total time it took the participant to answer those questions.

If you want to get an idea of what these will look like, check out the Javascript Skills Assessment Interface challenge.  We're building the Quick Quiz interface from the winning submission (we've done a thorough code review, but if you see that mbleigh is winning every quiz, we trust you'll let us know!)

In the meantime, we need your help to decide what programming languages we should include in these quizzes.  Please take a moment to fill in the below survey and let us know what languages you would like to show off your skills in!

Happy Valentine's Day! We Love Apps!

We launched the Valentine's Day app challenge with the hope of building an app to help you plan or experience a great Valentine's Day.  The participants at CloudSpokes took it a step further and the top three submissions all decided they'd help you find a date!

The third place app was created by aslambari and it is a chat application running on top of Salesforce Sites.  You can imagine in the future a chat room for single developers to chat and meet hosted on Salesforce.

Both the first and second place app, took it a step further and integrated with Twilio.  Kenji776 beat out PaulKolbovich for the first place by adding in several additional features like profiles and geolocation.  With PaulKolbovich's Google App Engine app, you can send anonymous SMS messages using Twilio to someone you are interested in and if they are interested they can contact you back making an instant match.

Kenji776's app was built on Salesforce and integrates with Twilio and location based services.  The system will create a phone call between two interested parties without requiring the participants to share their phone numbers.  You can watch a video for his application here:

We Made CloudSpokes Scoring More Transparent

We love transparency.
Our goal here at CloudSpokes is to make the judging process for challenges as open and transparent as possible. After a winner is announced for a challenge we think that the public should be able to see all of the individual scorecards for each particpant. Not only does this keep the process transparent but also provides valuable feedback for the participants from the judges and other participants.

We also think that participants should have access to all of the code that is submitted for a challenge. That way the challenge is not only about winning money and badges but becomes a learning process as well. The whole community becomes better from the shared submissions.

We ran our CloudSpokes Public Scorecard Service challenge to build the Apex REST service to return the scorecard results for a challenge. There is no front-end design work involved, just the Apex REST service that will call from the CloudSpokes rails site. It was interesting to see that the submissions were not from our usual (large) pool of normal developers. First and second place were won by members that came to CloudSpokes with other skills besides Apex and Visualforce and have gravitated to these challenges over time. We recently announced that the result from this challenge are already live on the site. 

Place: 1
Money: $500
Place: 2
Money: $150
Place: 3
Money: $100

Friday, February 10, 2012

Ninja Badge Exchange with CloudFoundry and Grails

We are in the process of adding a new gamification service to CloudSpokes using Badgeville. We recently completed the portion of the service with our Gamification SFDC Toolkit challenge but that left the integration part. When user events are generated in (registering for a challenge, winning money, posting a comment, etc.) they are dumped into a queue for processing. We needed to build a polling engine to retrieve these records from our gamification platform and send them to Badgeville.

Wcheung built a really slick app hosted on Cloud Foundry using Grails and Pusher. If you haven't seen some of wcheung's videos before you have to take a peek. Not only are they technically awesome to watch but his delivery skills are very entertaining. Wcheung demos are legendary inside CloudSpokes!

Place: 1
Money: $1500

Here's a the demo of the application itself and another one of the code walkthrough

This was a great submission by wcheung and we've already rolled his code into production and it's pumping gamification  data into Badgeville on a regular basis.

Thursday, February 9, 2012

Announcing the Season of Box: Badges, T-shirts, and $25,000 in Prize Money!

We're excited to announce the launch of a series of contests and sweepstakes for Box, including T-shirts, storage upgrades, and $25,000 in prizes!  All the details are below, but the first thing you should do (like, right now!) is to join this simple challenge to earn a Boxer badge by creating a Box account (if you don't have one) and generating an API key.  The whole process takes less than 2 minutes, so what are you waiting for?  Do it now!

Once you submit your API key in the Boxer badge challenge, you'll be automatically entered into a weekly drawing for the following prizes:

  • 1st prize: $100 (for 2 minutes of work)

  • 2nd prize: this awesome Box T-shirt! -->

  • 3rd prize: a 50GB Box upgrade

Even better, you will also be eligible to take part in a new series of Box contests, open only to members who have earned their Boxer badges:

Dial-a-Doc: $1,000 in prize money; closes 2/17
Mobile Awesomeness w/ Box & Appcelerator: $2,000 in prize money; closes 2/24
iPad Note Taking App Built on Box: $7,500 in prize money; closes 3/2

These contests are open today, and more contests are on their way, so don't miss out! Get your Boxer badge and win your way to fame and fortune!

RedMonk Taps a Great Conference

Based on my last few blog posts, it’s no secret - I love to eat and drink. But, I’m guessing that many of you reading this do as well. And, like myself, you may also attend industry trade shows and find that many of the things you like to do aren’t incorporated into the agenda of events. For this reason, I’m not afraid to admit that I’ve tried tirelessly to avoid traveling for conferences.

A few weeks ago was the first time I found myself truly stoked to travel to a conference. Seriously. The conference was held in an awesome city (London), had an agenda of speakers that I looked forward to hearing from, and incorporated social activities that included drinking beer and eating great food. Not to mention, the conference hosts - the folks at RedMonk - are very fun people themselves.

Having just returned from Monki Gras, where CloudSpokes was a proud sponsor, I’m happy to say that the conference was a success. As told during the introduction, the event started out as a joke about combining beer and technology and turned into Monktoberfest - the predecessor to Monki Gras. These people are on to something - people wanted to attend a show, instead of figuring out an excuse to avoid it. For RedMonk, figuring out the recipe for a successful conference was easy - focus on technology, craft beer, great speakers, great attendees and toss in some good sushi and food.
Photo courtesy of Tom Raftery's twitter post
Besides the great conversations with attendees, talks by speakers and food, we learned a lot about beer! Thanks in particular to Melissa Cole, who was our guide for our beer tasting on Wednesday night and the author of our swag bag gift book, Let Me Tell You About Beer: A Beginner's Guide to All Things Brewed. While enjoying myself at RedMonk’s beer tasting, I realized running a good conference and brewing beer had a few things in common.

  • Wild disorganized bacteria and micro-organisms produce some of the best beer such as traditional lambics. Monki Gras itself was the first, as James described it, "Agile Conference" I attended. Like the wild bacteria, agenda and speakers were fluid and changing which made for a unique and great conference. In fact one of the reoccurring jokes soon became "James told me to talk about X but instead I'm going to talk about what I want to speak about".
  • One of the crucial ingredients to making beer is the local water. This was my first tech conference in London and it was a great experience. The tech scene was full of interesting, open and friendly people willing to share and discuss a wide range of technical topics. I definitely look forward to returning to Silicon Roundabout in the near future.
  • Another key ingredient to brewing beer is the hops. The quality and style of the hops depends on the region they are grown and you can find great hops in North America, Japan, New Zealand, Germany, and England to name a few. Following this theme, it wasn't surprising to see attendees from all over the world and a good deal of the talks were about managing distributed teams. This was a topic near and dear to hearts at CloudSpokes. In particular, Zack Urlocker COO of ZenDesk, gave a great talk on his experience managing the distributed development team for MySQL. I highly recommend downloading and reading through his great slide deck.
  • One of the best talks was by Kohsuke Kawaguchi, creator of Jenkins from CloudBees (slides), who spoke about lowering the barrier of entry for developers. A famous quote by Fritz Maytag, owner of Anchor Brewing in San Francisco summed up brewing as "we get all the ingredients together and beer makes it self". This simplistic message wasn't too different than Kawaguchi's. A good software project and process should remove obstacles to allow people to participate by having better documentation, being decomposed into smaller modules, and make it easy for people to get started with your project. Furthermore, Simon Willison discussed a rule he used building Lanyard, which I will now follow as well, only use software you can download, set up and build a hello world app in 15 minutes or less. My personal favorite point was to beware of fake extensibility. Everyone should be using the same plugin architecture and APIs whether your code is an add on or it is part of the core software project.
Like good beer, Monki Gras got even better with time. The second day was just as good if not better than the first day. It says a lot about the quality of the speakers where most of the conference shows up on time the night after a lot of beer, and stays for the entire day, even skipping over lunch!In my last post, I mentioned Steve Johnson's TED talk about where good ideas come from and the rise of the coffee house culture. I still think is a great talk, but after Monki Gras, I now have no doubt that good ideas and beer can co-exist. If you want to check out all the high quality slides Lanyard has most of them well organized for you.

Visualize Salesforce Data Dynamically with Google Maps and jQuery

Our Salesforce Mashup with jQuery & Google Maps challenge delivered some sweet applications! The rather complex requirements were to develop an interactive map representing global sales from Salesforce using Google Maps similar to this one.

Everyone jumped in with some jQuery magic to meet the UI requirements. The app required a slider component to determine the size of the project, a beginning and end year, size checkboxes and a country/state/city parameter. When the user performed the search, the map would pan to the appropriate coordinates (all of the records in are geocoded) and display data points of the records locations in The submission videos are pretty sweet so make sure you take a look. This was vishesh91's first submission and win!

vishesh91 -  submissions video
Place: 1
Money: $2500
Place: 2
Money: $750
Kenji776 - submission video
Place: 3
Money: $250

Vishesh91 submission video

Unable to display content. Adobe Flash is required.