Cubic Compass Software

Author

Mike Leach

Profile

Search

Calendar

<March 2010>
SunMonTueWedThuFriSat
28123456
78910111213
14151617181920
21222324252627
28293031123
45678910

I've started a new blog at http://www.embracingthecloud.com dedicated to web development in the cloud.

And, BTW I'm Tweeting a lot more than blogging these days. You can find me on Twitter at @dlog.

Posted: Tuesday, November 10, 2009 4:45:55 AM (GMT Standard Time, UTC+00:00)  #   
Comments [0]  | 
The following announcement just went out to Dialogue Developers today. Dialogue Script is a Domain Specific Language (DSL) that runs on the IronPython Dynamic Language Runtime (DLR).

As an i-Dialogue Developer working with Dialogue Script, I wanted to share a couple changes in the next release:
  • Dialogue Script will be upgraded to run on the newer IronPython v2.6 engine
  • JScript will no longer be supported
The upgrade from IronPython from v2.0 to v2.6 will result in a tremendous performance improvement and provide access to a broader set of features and 3rd party libraries.

JScript will no longer be supported in the next release. The Scripting language option (see attached screenshot) will be removed from Advanced settings. All editors will default to using the IronPython engine.

Q: How does this change impact me?
A: If you're not using JScript, then this update should have no impact. You still may want to test any Dialogue Script after the update to ensure there are no adverse effects.

Q: How can I determine if JScript is being used on my site/portal?
A: The attached Dialogue Script will be added to your portal and run prior to the next update. If JScript is found, the portal will not be updated and you'll be notified with recommendations on how to migrate the JScript to Python. If a Cubic Compass Professional Services Developer originally developed the JScript for you, then the migration will happen automatically under your existing support agreement.

Q: What can I expect during the upgrade?
A: The upgrade will only take 5 minutes. Customers with a sandbox portal will have their sandbox updated first for staged deployment and testing. All other portals will have their live production site updated. If test accounts are available, we will login to the portal after the upgrade and conduct high-level testing on dynamic pages.

Q: Will this update impact Salesforce integration?
A: No. Dialogue Script (IronPython) is not used in the core Salesforce integration module.

Q: When will this update happen?
A: We will internally beta test this new IronPython engine for 30 days before making this change publicly available in early December 2009. Sandbox portals will be updated as soon as possible.


Thanks, and happy DScript coding!

Posted: Friday, October 23, 2009 8:14:27 PM (GMT Standard Time, UTC+00:00)  #   
Comments [0]  | 
Job Title: .NET Web Developer (C#/JQuery)
Job Submitted By: Cubic Compass
Job Description: Cubic Compass has a need for a web developer with an emphasis on the following technologies: 
* C# 
* JQuery 
* JQuery UI (themes, widgets) 
* AJAX driven, single-page web applications 

Experience with any dynamically typed scripting language, such as Python or Ruby, is also preferred for doing server-side AJAX handlers. 

You'll be developing a Facebook-like interface for business customer service and support sites. 

Some application modules you'll be working on: 
* Communities 
* Collaborative case management 
* Knowledge base search 
* Idea management 
* Document management 
* Account management
* Event management

The development team is distributed. We meet at Nedspace in Portland Oldtown about once per week, then work from home (or Starbucks, or wherever). 

We're open to various working relationships depending on experience and location (contract, part-time, full-time). 

Please contact jobs@cubiccompass.com for more information. 

Please pass this job posting along to others who may be interested or qualified.

Posted: Wednesday, October 21, 2009 5:47:32 PM (GMT Standard Time, UTC+00:00)  #   
Comments [0]  | 

The new "Cycle" framework for i-Dialogue is quite addictive. Being 100% AJAX-based, all aspects of Cycle applications are extremely responsive and only update the portions of the screen being updated (as opposed to traditional multi-page websites. That seems so 1999 now ;-) )

Also new to Cycle is inline configuration management. It's no longer required to go to separate setting pages to configure an application. Users with administrative permissions will see various links "inline" with application they are using.

Cycle applications have the following administrative and configuration options: Statistics, Permissions, Configuration, Run Tests. Run Tests is currently only available to Admins while in beta, but may remain visible in the future.

  • Statistics provides an integrated reporting dashboard into each application. I'm really excited about this feature since it leverages a data warehouse I developed years ago, which has largely gone unused in our Salesforce integrated portals. The data warehouse captures nightly measures for time-series analysis of common Service and Support metrics using the Google charts API.
  • Permissions is a simple role-based permissions matrix that requires no coding to grant/deny access to various features based on role.
  • Configuration provides global settings applicable to all users, such as fields to display.
  • Run Tests just provides simple red/green lights on the health of the application. This is particularly useful during installation since the tests will primarily validate that all dependencies exist, such as AppExchange packages or custom field configurations.

The video below is an inside peak at the event management module.

Posted: Tuesday, October 20, 2009 10:44:53 PM (GMT Standard Time, UTC+00:00)  #   
Comments [0]  | 
The following Dialogue Script is handy for taking a snapshot of any Salesforce record and generating a restore script.

An example use case might be testing a portal application experience for a first time Contact visitor. Upon logging in several Contact fields may get updated, requiring a manual restore of certain fields to re-test.

The codegen script below allows for one-click restore of the test Contact record to quickly resume testing.

<h1>Generate Salesforce Record Baseline Script</h1>
Object Type: <dlog:TextBox id="ObjectType" />
RecordId: <dlog:TextBox id="RecordID" />
<dlog:Button id="SubmitButton" Text="Generate Baseline Script" /><br/>
<dlog:Label id="Output" />
<%
from CubicCompass.Portal.Webparts.Salesforce.sForce import *

def CodeGen():
objectDescription = SalesforceSettings.Instance.SForceService.describeSObject(ObjectType.Text)
query = "select "
for field in objectDescription.fields:
query += field.name + ", "

query = query.TrimEnd(", ".ToCharArray())
query += " from " + ObjectType.Text

if RecordID.Text.Length > 0:
query += " where Id='" + RecordID.Text + "'"

result = SalesforceSettings.Instance.SForceService.query(query)
if result.size == 0:
Output.Text = "record not found"
return

sObject = SalesforceObject(result.records[0])

indent = "    "
code = "def Reset" + ObjectType.Text + "Defaults():<br/>"
code += indent + "sforce = SalesforceWebService()<br/>"
code += indent + "sforce.SalesforceRecordID = \"" + RecordID.Text + "\"<br/>"
for field in objectDescription.fields:
if field.updateable == False:
continue
code += indent + "sforce.AddField(\"" + field.name + "\", \"" + sObject.GetProperty(field.name) + "\")<br/>"

code += indent + "sforce.UpdateObject(\"" + ObjectType.Text + "\")<br/>"
Output.Text = code

if Page.IsPostBack:
if ObjectType.Text.Length == 0 or RecordID.Text.Length == 0:
Output.Text = "missing values"
else:
CodeGen()

else:
ObjectType.Text = "Account"
RecordID.Text = "testRecordId"
%>
Posted: Monday, October 19, 2009 4:57:39 PM (GMT Standard Time, UTC+00:00)  #   
Comments [0]  | 
"Cloud computing". You probably couldn't invent a more confusing term. Let's break its meaning down from 3 perspectives.

1) Consumer / Business User:
The value of "the cloud" to consumers and business users is their ability to roam. Today you may be using Outlook on your PC. When you go on vacation you take your laptop with you because your software is installed on that computer. By moving your email to "the cloud", suddenly you're able to access your email from anywhere from any device. Your phone, an Internet cafe... anywhere connected to the Internet.

Do you have a huge collection of MP3s on your personal computer? Then you're probably aware of the overhead to maintain such a collection and the limitations that personal storage imposes (not to mention copyright concerns... shame on you ;-) ). Moving to a cloud-based music streaming service lets someone else manage your libraries and enables you to "roam" without constraint.

Pretty much any business software need can be addressed by "the cloud". Just take a look around your office and gradually starting replacing the ball and chain of on-premise apps with Internet based solutions. CRM, email, financials, backups, customer service and support, collaboration software.

Your "Kool-Aid" alert should probably be going off by now. No, not "everything" can be moved into the cloud. But portions of software can be moved to the cloud to give you a roaming experience. Photoshop designers will not find an equivalent Internet based application, but you can host your PSD and graphic assets files on a "cloud storage" service to open up collaboration, provide peace of mind by having off-site backups, and facilitating access to those files from your work/home/netbook computers.

Does "the cloud" seem less confusing now? Sure it does. It's a no brainer. It just makes sense that this trend will continue. Next...

2) Financial Users:
If you bought an ERP/CRM solution in the 90's, it was likely capitalized as an asset to the company and depreciated over time. But "cloud" software is just another operating expense, like electricity or water. You control the throttle of how much of the technology to use and pay a monthly or annual subscription.

Is "the cloud" even less confusing now? Sure. Who wants to own and maintain business software as an asset? Nobody. Next...

3) Technologists:
OK, so here's where the war and source of confusion begins. Hold on to your seat. Older software companies are now recasting themselves in "the cloud". Microsoft is thinking beyond the clouds towards "Azure" blue skies. Software companies that were previously "Software-as-a-Service" are now "Leading Cloud Providers". Amazon (yeah, the folks that sell books online) have an "Elastic Cloud Computing" service. IBM, who is *way* late to the game is suddenly talking about "private clouds" and moving your business into "the cloud". There are multi-tenant, isolated tenancy, and virtual machine architectures.

More money is now being spent on marketing "the cloud" than actual R&D for building "the cloud". The positioning for "what is the cloud?" is reaching a climax as vendors seek to be associated with this new buzzword.

The bottom line? As long as whatever is being called a "cloud" enables consumers and business users to roam and the service is just an expense, then you shouldn't care about "how" a particular cloud is implemented.


 |  |  |  |  |  | 
Posted: Saturday, September 26, 2009 8:26:20 PM (GMT Standard Time, UTC+00:00)  #   
Comments [0]  | 
We're promoting a contest on 99Designs.com to redesign the logo for our i-Dialogue service and support portal.

Click this link for details. Please forward this to your Graphic Designer friends. Cash prize!

Posted: Friday, September 25, 2009 6:37:40 AM (GMT Standard Time, UTC+00:00)  #   
Comments [0]  | 
"What is Social CRM?" is a question I'll be answering often in the future as Cubic Compass moves beyond our customer portal roots to embrace a new paradigm in customer service and support.

Let me first state that there is no single agreed upon definition of "Social CRM", and you'll never be asked this question in a quiz, so there's no right or wrong answer.

The "CRM" aspect of Social CRM denotes the embracing of existing CRM systems as a basis for enabling and managing online relationships. This is where we part ways with many of our Social CRM counterparts who tend to see social business software as a replacement for CRM. For midmarket and larger companies, it becomes increasingly difficult to maintain a single version of the truth, which is why the customer record in an existing CRM system should be preserved, embraced, and extended with Social Web 2.0 features.

Long-term, it is our vision that companies will look to fulfill basic online Social CRM requirements first when selecting a CRM solution.

80% of information stored in CRM systems today is manually entered by internal Sales and Support staff. In Social CRM, only 20% of the information is internally entered. The remaining 80% of data is provided by the customers themselves, enabling a unique and new opportunity for Customer Intelligence.

Social CRM encourages online collaboration, community, and discovery... not processes. But Social CRM metrics can be used to trigger internal CRM processes, such as reviewing negatively rated Solution articles and chat sessions or following up to forum comments.

A productive discussion about Social CRM must first start by categorizing organizations as B2C or B2B. It makes perfect sense in a B2C relationship for customers to vent their frustrations with Jet Blue or Comcast through Twitter or Facebook. A B2C organization would be remiss not to utilize these tools. Most "Social CRM" solutions today take this B2C "outer locus of control" approach to monitor, integratewith, and manage broader social networks.

Many large consumer organizations have dedicated Community Managers that monitor these social networks. We expect Twitter and Facebook to gradually offer Professional versions of their service to help organizations manage these B2C Social CRM interactions.

Social CRM for B2B companies requires a much different approach, and this is our area of focus. As an example, if an Engineer at Boeing needs help with a jet engine component made by GE, he/she will *not* simply go to Twitter and attempt to describe the problem in 140 characters hoping that someone from GE will see the Tweet and respond. Instead, most customers will go to a suppliers website/customer portal to resolve their issue.

Historically, customer portals only provided some basic solution search and case management functionality. The social aspect of Social CRM now enables customer portals to be rich with the following features:
  • Search results with community driven relevance
  • Customer Roles
  • Comments
  • Discussions
  • Voting
  • Tagging
  • Rating
  • Bookmarking
These features result in a richer self-service solution that enables customers to network with others and find answers to their problems 24x7.

Social CRM provides quantifiable results:
  • Increased case deflection
  • Decreased call center calls
And qualitative improvements:
  • Greater customer satisfaction
  • Access to community of experts
  • Acknowledgement of issues
Cubic Compass Social CRM recognizes that customers can be described in far richer terms than "Lead" or "Contact" and provides support for role-based experiences, such as "Engineer", "Primary Contact", "Donor", "Volunteer", or "Gold Partner".

I'll look forward to demonstrating these features in a series of webinars over the next few months to help you experience how to get more from CRM with a Social CRM solution from Cubic Compass. We'll also be applying our Social CRM solution to a new channel management solution in late 2009, so keep an eye out for more announcements.

 |  |  |  | 
Posted: Wednesday, September 09, 2009 6:12:04 PM (GMT Standard Time, UTC+00:00)  #   
Comments [0]  |