Archive for June, 2008

Brian wins Mountains to Sound Race

Monday, June 30th, 2008

The 100-mile Mountains to Sound relay race was run yesterday in 90 degree heat. 25% of the proceeds of the race go to ONW/Northwest client Mountains to Sound Greenway Trust.

The race has 5 stages starting at Snoqualmie Pass at 3000′ and ending in Ballard, at sea level, a mile from my house. Most competitors are part of 5 person teams, but a few hardy souls attempt the race solo.

My friend Brian Bruininks was one of those people who ran it solo. I had the pleasure of running along with him for moral support the last 6 miles of the race, and watching as he won it all! It was truly an inspiring performance and I’m going to try to take some of his ability to “suffer well” into my next few races this summer.

Incredible work, Brian!

Also congrats to Pat Shaw who’s relay team broke the top 10 overall! Nice work Pat!

Out of range?

Wednesday, June 25th, 2008

screenshot

Is it really fair to go on vacation 1.5 miles from the iphone data coverage boundary? The wrong side of the boundary?

Anyone know where I can buy iphone methadone?

Mystery Contact Id field on Opportunity

Wednesday, June 25th, 2008

Matthew noticed that when you create an advanced formula on an Opportunity, you see a field called ContactId:

screenshot

It doesn’t show up in the Admin interface, though. And when Matthew tried to use it, it didn’t have anything in it.

Does anyone know what this lookup field is?

Here’s my optimistic speculation: they are building functionality that will automatically put the Primary Contact Role’s Contact Id in this field. Having that field on the opp would let us do more things more easily using cross-object formulas. Maybe the field made it through QA for Summer ‘08 but the rest of the functionality didn’t make the schedule.

Another speculation is that this field would work the other way–if you create an Opp with a Contact Id in this field they will get a contact role.

Another speculation? It’s neither and I’m just making stuff up. But if that’s the case, why is this field semi-visible? Where did it come from?

Update: This doesn’t appear to be related to the relatively new functionality to connect a new opportunity from a contact to the most recent campaign that contact is member of.

Plone Salesforce integration screencasts

Tuesday, June 24th, 2008

At ONE/Northwest, we’re all about using appropriate tools for the job. Because of that, we’ve done some work building connections between Salesforce.com and Plone. We love Salesforce.com for CRM functions, and Plone is great for externally facing publishing and gathering of information.

Together they can be pretty powerful. My colleague Andrew Burkhalter has produced a couple screen movies of this integration in action.

First, he shows a use case for creating a form that saves data directly to Salesforce.com. This example creates complex, related data from a single form. It’s completely flexible, and very powerful.

In this second video, Andrew walks through our new Plone RSVP product that makes it easy to publish events and take registrations directly to Salesforce.com. Again, we’ve focused on flexibility, allowing you to use any objects you want to represent events and people.

If you want an open-source CMS for managing your website that is integrated with Salesforce.com, you should check out Plone and the connections we’ve created to Salesforce.com.

VisualForce is the real deal

Monday, June 23rd, 2008

Back in February, I wrote that VisualForce was going to be a “game changer.” Now that it has been released into the wild and I’ve started to work with it, I wanted to give an update on my thoughts.

This is perhaps the most impressive technology I have seen from Salesforce.com since I started working with the app almost 4 years ago.

I don’t say this lightly. I’ve seen a lot of amazing things from Salesforce. The Ajax toolkit, Custom Objects and other deep customizations, formula fields and rollups, workflow, the Appexchange, Apex code. I loved every one of these and I know they are amazingly complex.

But VisualForce is amazing. Here are a few reasons why.

  1. Separation - UI is separated from logic is separated from data schema. This adds to readability, maintainability, and migration.
  2. Inheritance - the simple controller paradigm of using theirs, using your own, or using theirs with a slight tweak is brilliant. I couldn’t ask for a better balance of flexibility and keeping standard functionality.
  3. Look and Feel for free - how much of my life has been spent faking the Salesforce.com UI? Not another minute. Want a date picker? You’ve got it. Need a picklist lookup field? No code necessary. Oh, and it’s got the same all, some or none logic as the controllers do, so you don’t have to worry about look and feel until you want to.
  4. Browser independence - Salesforce.com has taken on the responsiblity of making VisualForce work in modern browsers. I no longer have to care about why my javascript doesn’t work in Safari.

Apex may be the most difficult technical challenge that Salesforce.com has pulled off to date. Allowing thousands of people to run crappy code in multi-tennancy without burning down the house is a feat. But VisualForce is the most impressive thing I’ve seen, much in the same way the iPhone is impressive–it’s the design that is brilliant, not the brute force technicality of it.

I’ve been amazed during my learning process just how much I don’t have to do to get things to work correctly. I showed a colleague my first real VisualForce page that will replace a complex S-Control for creating multiple payments connected to an Opportunity. He liked what he saw, But he wanted me to make a change. “Add the Paid checkbox to the form where we’re creating multiple Installment records, so that users can create payments and mark them paid on creation if they want.”

To add that simple bit of functionality to the S-Control would have taken me at least 30 minutes. I would have had to change the SOQL statement to include the field. Then I would have changed the HTML table to make room for this new field. Then change the for loop in to add a new checkbox to each row of the display. And then change my update statement to get this new field from the DOM object and insert it into the new objects as they are created.

In VisualForce the change was literally 10 seconds. I told the VisualForce page that I wanted the Paid field in the table. That was it. Once VisualForce knew where I wanted the field in the UI, the rest was taken care of for me.

So congratulations to Doug Chasman who was the inspiration for VisualForce so long ago, and to Andrew Waite who has shepherded it on the difficult road to General Release. And to the myriad folks at Salesforce.com who were involved. This is killer platform technology.

Once again Salesforce.com has shown just how far ahead of other cloud databases they are. We continue to see the future of database development in Salesforce.com, and it comes once again in the form of platform design. So get your tools and your reference manuals and get at it! You have to work hard to stay in front of the wave!

Race Report: Cascade Edge Olympic 2008

Monday, June 23rd, 2008

On Saturday, I did an Olympic distance triathlon. I did the same race a year before and wrote it up here.

I am really happy with my results:

Total Time: 2:27:23
Overall place: 28th
Place in my age group: 5th

Swim split: 0:25:54
Overall Swim place: 38th

Bike split: 1:07:32
Overall bike place: 22nd
Place after the bike: 20th

Run split: 0:49:30
Overall run Place: 58th

The swim went fine. Last time I did the race I breathed every other stroke the whole .9 miles. This time I relaxed a bit and did some breathing every third stroke when things opened up a bit. The new wetsuit was great, and I hardly noticed the frigid water. I knocked almost 4 minutes off my time from last year.

I love my bike! At multiple points during the 28 mile ride I thought or even said aloud how cool a machine this bike is. It’s amazing how little energy is wasted converting muscle contraction to rolling. I hit 39.9 mph on one descent, and the bike was solid as a rock. What a blast! I was shocked to learn after the race that I was only 5 minutes off the best time overall. I’ve been focusing on the bike leg in my training, but I didn’t expect it to pay off this much. I averaged 24.6 mph.

The first mile of the run was painful. It was also painful to be passed by so many runners! In the swim you can’t really tell how well you’re doing because you’re underwater. In the bike, I don’t get passed a lot. But in the run, you hear people coming up behind you, then they pass you, and then you watch them slowly pull away. I ran around 8 minute miles, which was great for me, but I need to get to 7 minute miles to be really competitive, I think. I’m not sure that’s even possible!

I had the pleasure of traveling down and racing with John, a friend of mine from previous work experience. It’s a ton more fun doing an event with friends than going it alone. You get to tell all the race stories to someone who cares!

Salesforce makes it easier to code to Google Apps

Sunday, June 22nd, 2008

Check out this new beefy section on the Salesforce site using the Force.com Toolkit for Google Apps.

On brief look, it appears to be a bunch of Apex to make it easier to write Apex code that does things like create calendar items, contacts, blogger posts. Pretty cool concept–they’re making it tons easier for developers to add office functionality to Salesforce.com.

It’s pretty exciting. I wonder what apps they will release tomorrow? Maybe mail merge to Google Doc? Export reports to Google Spreadsheets?

Update: Adam’s announcement is here.

Scoble asks Benioff my question

Friday, June 20th, 2008

A few days ago Scoble asked for interview questions submissions via Friendfeed.com for his conversation with Marc Benioff. The video is out and Mark let me know that Scoble asks Marc Benioff my question at the 21:59 mark. Check it out!

Summer ‘08 on all servers

Monday, June 16th, 2008

As you probably know, Summer ‘08 has been deployed to all Salesforce.com servers.

In looking at the Metadata API WSDL, it has sections for Page Layouts and Workflow. Unfortunately, the new IDE that makes those items accessible isn’t released yet so we’ll have to wait to try it out.

Anyone know the release date for the next version of the IDE? Page Layouts in Eclipse will save us hours for each project we do, so we’re a bit antsy…

Another reason I love Ballard

Monday, June 9th, 2008

houseboat

Seen on my Sunday long run.