Setting up your Ruby on Rails environment for


Like many of you, I was excited about the announcement regarding Heroku at Dreamforce.  I wanted to learn more about Ruby and Heroku and what better way to learn a new programming language than to write and deploy an application.  Though I found the getting started article useful, it assumes you have a working environment.  This article shows you how you can easily setup a working environment on a windows machine. 

The Big Picture

Before we get started, it is useful to understand how the toolkit fits into the overall Ruby environment. Ruby is a programming language  and Rails is a web application framework.  The… Continue reading

De-mystifying & optimizing view state

HTTP is a stateless protocol.  Your Visualforce pages though may need to maintain state across multiple HTTP requests / postbacks.  Visualforce automatically does this for you with view state making your job as a developer easier.  Find out more about what is in view state, the new view state inspector in Summer '10 and best practices for optimizing view state for page performance in this article … Continue reading

Chatter and Event Driven Architecture (EDA)

One of the things that stuck me while watching the Chatter presentation and demo  was the asynchronous and event driven nature of the collaboration taking place.  As an example, any number of activities happening at your customer account – identification of a new opportunity, a project being completed, etc. can be treated as event that can be handled by the right people or system which in turn could trigger additional events and so on. 

Let us look at a few of the attributes of this style of interaction.

  • The entity(either a person or a system) triggering the event just broadcasts/publishes the event without any knowledge of who may be interested in that -

Chatter – this changes everything!

As you may have heard announced a new platform for enterprise collaboration called Chatter.  Most people have access to cooler, newer technologies in their homes compared to what they are forced to use at work – slower machines, restricted set of phones they can use and e-mail being the primary way to collaborate.  In terms of collaboration, the consumer web has moved much, much ahead – so much so that most high school and college students now primarily use facebook and other social media tools to communicate with each other.  What if the same collaboration paradigm is bought inside the enterprise keeping the… Continue reading

Adobe Flex and some great coffee

Flex enables you to make your applications visually compelling by incorporating animation and rich media into your user interface.  If you are here at Dreamforce, I would strongly encourage you to stop by the Stratus Cafe where you will get a chance to see some really cool applications – the range of things you can do with your UI is truly amazing.  And as an added bonus, they have a Batista brewing some strong coffee – so you can get your caffeine fix as well.

I am co-presenting two sessions around bringing and Flex together for your applications.  The… Continue reading

Do you want to learn more about Flash Builder for

If like me you are excited about the recent announcement about the Rich Internet Applications (RIA) you can build with and Adobe's Flash builder you don't want to miss the tech talk tomorrow.  It is being delivered by Markus Spohn from and James Ward from Adobe.  Markus & James will be going over the details of this offerings – the architecture, the types of applications you can build along with a few demos and ofcourse answer all your questions.

If you haven't already registered – you can do so here .  See you tomorrow! … Continue reading

Quiz – how can you have 100% test coverage in Sandbox and 0% in production?

Answer – if your test suite is not self contained i.e. it depends on specific data in Sandbox.

I got a call from one of our customers today about not being able to deploy into their production org due to inadequate test coverage even though they were getting 100% coverage in their development sandbox.  Our support tracked it down to hard coded test methods.  If your test methods depend on specific data in an org and you move such a test method to a different org, it will fail.

Here is an example where the record Id is hardcoded…..

Introducing the Consultant Resource Center


We are excited to announce the Consultant Resource Center. Our consulting partner ecosystem is growing, spanning every geography
and vertical, actively searching for the right content for the right project.
To help you be more successful with projects and customers, we
have consolidated many valuable resources on this site. Our goal is to make
your life easier by providing you with timely and relevant technical content.

The Consultant Resource Center will help you find the best content on a particular topic and will also
function as a repository for tools you find useful when you are implementing
Salesforce products for your customer, such as requirement gathering… Continue reading

A hog in armour is still but a hog

There are two distinct approaches that the industry has taken towards platform as a service (PaaS).  The first approach is offering an integrated and vastly simplified programming model in the cloud.  This provides all the infrastructural benefits of Cloud Computing like multi-tenancy, automatic upgrades & elastic infrastructure PLUS it speeds up application development considerably. is representative of this approach. I would also encourage you to checkout Mike Kreaden and Peter Coffee's blogs.  Mike relates to 4GL environment and Peter refers to three independent studies which quantify the productivity improvements of developing on – one study found a… Continue reading

Partitioning your data with Divisions for usability & performance

Data partitioning is a database technique commonly used to improve performance and manageability.  Salesforce provides a feature called Divisions that lets you partition your records into logical sections. As an example, you can divide your customer records based on their geographical location by creating divisions called US, EMEA and APAC.  The users in these regions can then be enabled to use these division. One of the benefits of doing so would be that division specific searches and division specific list views will provide them with data that is most relevant to them.  The other potential benefit is performance.  I was… Continue reading