Deprecated: Assigning the return value of new by reference is deprecated in /home/warped/public_html/sfdc-heretic/wp-content/plugins/codesnippet/codesnippet.php on line 248

Strict Standards: Non-static method GoogleSitemapGenerator::Enable() should not be called statically in /home/warped/public_html/sfdc-heretic/wp-content/plugins/sitemap.php on line 2452

Warning: Cannot modify header information - headers already sent by (output started at /home/warped/public_html/sfdc-heretic/wp-content/plugins/codesnippet/codesnippet.php:248) in /home/warped/public_html/sfdc-heretic/wp-commentsrss2.php on line 8
Comments on: Why over 40% of Salesforce.com’s traffic is Web Services - The Heretic’s View http://sfdc-heretic.warped-minds.com/2006/07/28/why-over-40-of-salesforcecoms-traffic-is-web-services-the-heretics-view/ The Salesforce Heretic - Pushing the limits of On-Demand CRM Tue, 26 Sep 2017 10:44:00 +0000 http://wordpress.org/?v=2.0.4 by: As A Service http://sfdc-heretic.warped-minds.com/2006/07/28/why-over-40-of-salesforcecoms-traffic-is-web-services-the-heretics-view/#comment-17405 Mon, 26 Mar 2007 10:14:57 +0000 http://sfdc-heretic.warped-minds.com/2006/07/28/why-over-40-of-salesforcecoms-traffic-is-web-services-the-heretics-view/#comment-17405 <strong>Apex Code for Beginners at the Salesforce.com Spring ‘07 release</strong> The final session that I attended at the launch was Apex Code for Beginners, delivered by Adam Gross. It was a great talk, providing some nice slices of Apex Code to whet your appetite. Adam sees the Apex Platform as based on five pillars: Data ... Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/warped/public_html/sfdc-heretic/wp-content/plugins/codesnippet/codesnippet.php on line 260

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/warped/public_html/sfdc-heretic/wp-content/plugins/codesnippet/codesnippet.php on line 261

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/warped/public_html/sfdc-heretic/wp-content/plugins/codesnippet/codesnippet.php on line 262

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/warped/public_html/sfdc-heretic/wp-content/plugins/codesnippet/codesnippet.php on line 263

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/warped/public_html/sfdc-heretic/wp-includes/functions-formatting.php on line 76

Apex Code for Beginners at the Salesforce.com Spring ‘07 release

The final session that I attended at the launch was Apex Code for Beginners, delivered by Adam Gross. It was a great talk, providing some nice slices of Apex Code to whet your appetite.
Adam sees the Apex Platform as based on five pillars:

Data …

]]>
by: gokubi.com » Blog Archive » Relationships http://sfdc-heretic.warped-minds.com/2006/07/28/why-over-40-of-salesforcecoms-traffic-is-web-services-the-heretics-view/#comment-7892 Sun, 07 Jan 2007 16:16:59 +0000 http://sfdc-heretic.warped-minds.com/2006/07/28/why-over-40-of-salesforcecoms-traffic-is-web-services-the-heretics-view/#comment-7892 [...] As the Salesforce Heretic says, Salesforce may see a big drop in API traffic when they implement these changes. They should remember that a drop in API traffic is probably a really good thing… [...] Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/warped/public_html/sfdc-heretic/wp-content/plugins/codesnippet/codesnippet.php on line 260

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/warped/public_html/sfdc-heretic/wp-content/plugins/codesnippet/codesnippet.php on line 261

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/warped/public_html/sfdc-heretic/wp-content/plugins/codesnippet/codesnippet.php on line 262

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/warped/public_html/sfdc-heretic/wp-content/plugins/codesnippet/codesnippet.php on line 263

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/warped/public_html/sfdc-heretic/wp-includes/functions-formatting.php on line 76

[…] As the Salesforce Heretic says, Salesforce may see a big drop in API traffic when they implement these changes. They should remember that a drop in API traffic is probably a really good thing… […]

]]>
by: Mike Schinkel http://sfdc-heretic.warped-minds.com/2006/07/28/why-over-40-of-salesforcecoms-traffic-is-web-services-the-heretics-view/#comment-1559 Thu, 17 Aug 2006 00:44:30 +0000 http://sfdc-heretic.warped-minds.com/2006/07/28/why-over-40-of-salesforcecoms-traffic-is-web-services-the-heretics-view/#comment-1559 Uh, maybe because Outlook Edition uses the API and syncs on a schedule automatically, even when the using isn't doing anything? ;-) Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/warped/public_html/sfdc-heretic/wp-content/plugins/codesnippet/codesnippet.php on line 260

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/warped/public_html/sfdc-heretic/wp-content/plugins/codesnippet/codesnippet.php on line 261

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/warped/public_html/sfdc-heretic/wp-content/plugins/codesnippet/codesnippet.php on line 262

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/warped/public_html/sfdc-heretic/wp-content/plugins/codesnippet/codesnippet.php on line 263

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/warped/public_html/sfdc-heretic/wp-includes/functions-formatting.php on line 76

Uh, maybe because Outlook Edition uses the API and syncs on a schedule automatically, even when the using isn’t doing anything? ;-)

]]>
by: Mike L. http://sfdc-heretic.warped-minds.com/2006/07/28/why-over-40-of-salesforcecoms-traffic-is-web-services-the-heretics-view/#comment-1047 Wed, 02 Aug 2006 02:09:58 +0000 http://sfdc-heretic.warped-minds.com/2006/07/28/why-over-40-of-salesforcecoms-traffic-is-web-services-the-heretics-view/#comment-1047 I suspect the asynch callback query feature, if announced at Dreamforce, will remove the need for constant pounding on the API and polling for changes. As for JOINS, I don't know. This is on my wish list too. I've developed the (bad?) habit of creating a lot of intersection objects, but this really starts chewing up the allotment of custom objects. SFDC is doing a pretty good job of providing familiar, old school relational concepts and constructs, although their underlying metabase schema is clearly not condusive to adhoc queries. The SOQL to physical SQL translation layer must be a nightmare to refactor, refine and tune. Has anyone tried building star schemas and OLAP cubes from their SFDC data? That would be the BI approach to this problem. Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/warped/public_html/sfdc-heretic/wp-content/plugins/codesnippet/codesnippet.php on line 260

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/warped/public_html/sfdc-heretic/wp-content/plugins/codesnippet/codesnippet.php on line 261

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/warped/public_html/sfdc-heretic/wp-content/plugins/codesnippet/codesnippet.php on line 262

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/warped/public_html/sfdc-heretic/wp-content/plugins/codesnippet/codesnippet.php on line 263

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/warped/public_html/sfdc-heretic/wp-includes/functions-formatting.php on line 76

I suspect the asynch callback query feature, if announced at Dreamforce, will remove the need for constant pounding on the API and polling for changes.

As for JOINS, I don’t know. This is on my wish list too. I’ve developed the (bad?) habit of creating a lot of intersection objects, but this really starts chewing up the allotment of custom objects.

SFDC is doing a pretty good job of providing familiar, old school relational concepts and constructs, although their underlying metabase schema is clearly not condusive to adhoc queries.

The SOQL to physical SQL translation layer must be a nightmare to refactor, refine and tune.

Has anyone tried building star schemas and OLAP cubes from their SFDC data? That would be the BI approach to this problem.

]]>
by: James Governor's MonkChips http://sfdc-heretic.warped-minds.com/2006/07/28/why-over-40-of-salesforcecoms-traffic-is-web-services-the-heretics-view/#comment-1028 Mon, 31 Jul 2006 14:09:30 +0000 http://sfdc-heretic.warped-minds.com/2006/07/28/why-over-40-of-salesforcecoms-traffic-is-web-services-the-heretics-view/#comment-1028 <strong>Why Building Scalable Web Sites is only Half The Problem...</strong> <a target="_blank" href="http://radar.oreilly.com/archives/2006/07/creating_scalable_websites.html" rel="nofollow"> Creating Scalable Websites</a> One concept I try and use in understanding the new world of feeds, open APIs and brittle but p... Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/warped/public_html/sfdc-heretic/wp-content/plugins/codesnippet/codesnippet.php on line 260

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/warped/public_html/sfdc-heretic/wp-content/plugins/codesnippet/codesnippet.php on line 261

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/warped/public_html/sfdc-heretic/wp-content/plugins/codesnippet/codesnippet.php on line 262

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/warped/public_html/sfdc-heretic/wp-content/plugins/codesnippet/codesnippet.php on line 263

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/warped/public_html/sfdc-heretic/wp-includes/functions-formatting.php on line 76

Why Building Scalable Web Sites is only Half The Problem…

Creating Scalable Websites

One concept I try and use in understanding the new world of feeds, open APIs and brittle but p…

]]>
by: heretic http://sfdc-heretic.warped-minds.com/2006/07/28/why-over-40-of-salesforcecoms-traffic-is-web-services-the-heretics-view/#comment-1002 Sat, 29 Jul 2006 23:35:06 +0000 http://sfdc-heretic.warped-minds.com/2006/07/28/why-over-40-of-salesforcecoms-traffic-is-web-services-the-heretics-view/#comment-1002 Dejan, "Salesforce.com is in the hosting business, not in the software development business." Your comment really brings me to a core problem @ SFDC... They are a CRM provider. They are in the hosting business (with the AppXchange edition -- no CRM). They are catering to large companies, small companies, not-for-profits. Companies in the B2B space, B2C space, and probibly a company just in space... They have companies with large integration requirements, no inegration requirements, extensive processes, and simple processes. What unites them all - SFDC wants them all as customers. You can't be everything to everybody. Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/warped/public_html/sfdc-heretic/wp-content/plugins/codesnippet/codesnippet.php on line 260

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/warped/public_html/sfdc-heretic/wp-content/plugins/codesnippet/codesnippet.php on line 261

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/warped/public_html/sfdc-heretic/wp-content/plugins/codesnippet/codesnippet.php on line 262

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/warped/public_html/sfdc-heretic/wp-content/plugins/codesnippet/codesnippet.php on line 263

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/warped/public_html/sfdc-heretic/wp-includes/functions-formatting.php on line 76

Dejan,

“Salesforce.com is in the hosting business, not in the software development business.”

Your comment really brings me to a core problem @ SFDC…

They are a CRM provider. They are in the hosting business (with the AppXchange edition — no CRM). They are catering to large companies, small companies, not-for-profits. Companies in the B2B space, B2C space, and probibly a company just in space…

They have companies with large integration requirements, no inegration requirements, extensive processes, and simple processes.

What unites them all - SFDC wants them all as customers.

You can’t be everything to everybody.

]]>
by: E.J. http://sfdc-heretic.warped-minds.com/2006/07/28/why-over-40-of-salesforcecoms-traffic-is-web-services-the-heretics-view/#comment-998 Sat, 29 Jul 2006 20:43:20 +0000 http://sfdc-heretic.warped-minds.com/2006/07/28/why-over-40-of-salesforcecoms-traffic-is-web-services-the-heretics-view/#comment-998 I don't think anyone is saying the API isn't functional. What some of us are saying is that there are several changes that could be made to make things much more functional for us AND that we shouldn't have to use the API as much as we do in the first place. Some changes that would drastically improve the situation: 1) GetUpdated() call that will work on multiple objects at once, all objects in the system and allows fine grained time parameters instead of being truncated to the minute. 2) SFDC-side event triggers for data changes (all CRUD events) that can fire a client-side web service. No, the current workflow and e-mail notification is not acceptable for this. I would guess that a VERY large percentage of API calls are just people polling for data changes because there's no better way. 3) A better workflow engine built-in that allows actual data changes based on other data. Instead of just being able to send an e-mail or create a task, it should be able to set values, create objects, etc.. (perhaps execute an scontrol?) 4) User schema versioning so that it's easier to cache the SFDC schema for a particular user. Something simple like a version number that is returned when you log into the system and is incremented every time a configuration change is made that affects that user (new fields, fields removed, new objects, etc...) Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/warped/public_html/sfdc-heretic/wp-content/plugins/codesnippet/codesnippet.php on line 260

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/warped/public_html/sfdc-heretic/wp-content/plugins/codesnippet/codesnippet.php on line 261

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/warped/public_html/sfdc-heretic/wp-content/plugins/codesnippet/codesnippet.php on line 262

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/warped/public_html/sfdc-heretic/wp-content/plugins/codesnippet/codesnippet.php on line 263

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/warped/public_html/sfdc-heretic/wp-includes/functions-formatting.php on line 76

I don’t think anyone is saying the API isn’t functional. What some of us are saying is that there are several changes that could be made to make things much more functional for us AND that we shouldn’t have to use the API as much as we do in the first place.

Some changes that would drastically improve the situation:

1) GetUpdated() call that will work on multiple objects at once, all objects in the system and allows fine grained time parameters instead of being truncated to the minute.

2) SFDC-side event triggers for data changes (all CRUD events) that can fire a client-side web service. No, the current workflow and e-mail notification is not acceptable for this. I would guess that a VERY large percentage of API calls are just people polling for data changes because there’s no better way.

3) A better workflow engine built-in that allows actual data changes based on other data. Instead of just being able to send an e-mail or create a task, it should be able to set values, create objects, etc.. (perhaps execute an scontrol?)

4) User schema versioning so that it’s easier to cache the SFDC schema for a particular user. Something simple like a version number that is returned when you log into the system and is incremented every time a configuration change is made that affects that user (new fields, fields removed, new objects, etc…)

]]>
by: Dejan Nenov http://sfdc-heretic.warped-minds.com/2006/07/28/why-over-40-of-salesforcecoms-traffic-is-web-services-the-heretics-view/#comment-997 Sat, 29 Jul 2006 20:05:33 +0000 http://sfdc-heretic.warped-minds.com/2006/07/28/why-over-40-of-salesforcecoms-traffic-is-web-services-the-heretics-view/#comment-997 Let's be realistic on two topics. First - the AppExchnage is less than a year old and the fact that over 300 companies have build applications - granted mostly trivial ones - means that the API is reasonably functional and we can only expect it to mature. The second and most important point - never mistake the salesforce.com API for a developer library like you are used to have from a java package or a C++ lib - the API will always contain only as much facilities as is useful for Salesforce.com itself to grow salesforce.com 's customer base - and not yours. Salesforce.com is in the hosting business, not in the software development business. Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/warped/public_html/sfdc-heretic/wp-content/plugins/codesnippet/codesnippet.php on line 260

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/warped/public_html/sfdc-heretic/wp-content/plugins/codesnippet/codesnippet.php on line 261

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/warped/public_html/sfdc-heretic/wp-content/plugins/codesnippet/codesnippet.php on line 262

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/warped/public_html/sfdc-heretic/wp-content/plugins/codesnippet/codesnippet.php on line 263

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/warped/public_html/sfdc-heretic/wp-includes/functions-formatting.php on line 76

Let’s be realistic on two topics. First - the AppExchnage is less than a year old and the fact that over 300 companies have build applications - granted mostly trivial ones - means that the API is reasonably functional and we can only expect it to mature.

The second and most important point - never mistake the salesforce.com API for a developer library like you are used to have from a java package or a C++ lib - the API will always contain only as much facilities as is useful for Salesforce.com itself to grow salesforce.com ’s customer base - and not yours. Salesforce.com is in the hosting business, not in the software development business.

]]>
by: Adam G http://sfdc-heretic.warped-minds.com/2006/07/28/why-over-40-of-salesforcecoms-traffic-is-web-services-the-heretics-view/#comment-995 Sat, 29 Jul 2006 17:45:14 +0000 http://sfdc-heretic.warped-minds.com/2006/07/28/why-over-40-of-salesforcecoms-traffic-is-web-services-the-heretics-view/#comment-995 I'm not a liberty to say much (yet), but I'll make an offer to ya'll - I'll be happy to host this debate in person in San Francisco, and provide the beer. Take a look at <a href="http://www.salesforce.com/conference/developers.jsp" rel="nofollow">http://www.salesforce.com/conference/developers.jsp</a> (and if there is something missing you'd like to see let me know.) And since is the Heretic's blog, I'll let you know that if you register as a developer you can use the AppExchange Seminar code (DEVGR06) to get an additional $100 off. :) Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/warped/public_html/sfdc-heretic/wp-content/plugins/codesnippet/codesnippet.php on line 260

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/warped/public_html/sfdc-heretic/wp-content/plugins/codesnippet/codesnippet.php on line 261

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/warped/public_html/sfdc-heretic/wp-content/plugins/codesnippet/codesnippet.php on line 262

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/warped/public_html/sfdc-heretic/wp-content/plugins/codesnippet/codesnippet.php on line 263

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/warped/public_html/sfdc-heretic/wp-includes/functions-formatting.php on line 76

I’m not a liberty to say much (yet), but I’ll make an offer to ya’ll - I’ll be happy to host this debate in person in San Francisco, and provide the beer.

Take a look at http://www.salesforce.com/conference/developers.jsp (and if there is something missing you’d like to see let me know.)

And since is the Heretic’s blog, I’ll let you know that if you register as a developer you can use the AppExchange Seminar code (DEVGR06) to get an additional $100 off. :)

]]>
by: heretic http://sfdc-heretic.warped-minds.com/2006/07/28/why-over-40-of-salesforcecoms-traffic-is-web-services-the-heretics-view/#comment-984 Sat, 29 Jul 2006 07:12:13 +0000 http://sfdc-heretic.warped-minds.com/2006/07/28/why-over-40-of-salesforcecoms-traffic-is-web-services-the-heretics-view/#comment-984 Mike L, let me take your comments point by point... Caching is a double edged-sword. If you cache too long you're using old data, too short and you add load. What is an acceptable cache expiration period for one org is likely different for another. Upsert calls are also nice, if the things you want to do with the API can use them in the first place. Also, keep in mind if you write AppXchange apps, you can't use upsert unless you create the field manually. Lets chalk that up to another incomplete feature. Compression... Again arguments both pro and con. If you have an excess of bandwidth available, and are CPU contrained not using compression on calls benefits everyone by not adding the load of the compression/decompression on the API call. Given the instablity early in the year, I disabled compression on my calls to try to help shed load. Also keep in mind that compression doesn't mean you make less calls, just that your calls are smaller in bytes, but harder on the CPU. Lastly you refer to SFDC "running the meter" on the calls. They know (probibly better then I as I don't normally aggregate those stats unless running in debug mode) exactly how many API calls this client makes in a given period -- and I've spoken to them about it. At one point they were in the top 5 across all customers and we had a discussion at length as to why, including exact use cases. Simply put - if what is billed as the world's most customizeable on-demand CRM application requires me to issue an inordinate amount of API calls to stopgap missing functionality, that's not a consumer problem. (And Summer '06 *cough* did such a great job of bridging that gap -- but that's another discussion entirely) Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/warped/public_html/sfdc-heretic/wp-content/plugins/codesnippet/codesnippet.php on line 260

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/warped/public_html/sfdc-heretic/wp-content/plugins/codesnippet/codesnippet.php on line 261

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/warped/public_html/sfdc-heretic/wp-content/plugins/codesnippet/codesnippet.php on line 262

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/warped/public_html/sfdc-heretic/wp-content/plugins/codesnippet/codesnippet.php on line 263

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/warped/public_html/sfdc-heretic/wp-includes/functions-formatting.php on line 76

Mike L, let me take your comments point by point…

Caching is a double edged-sword. If you cache too long you’re using old data, too short and you add load. What is an acceptable cache expiration period for one org is likely different for another.

Upsert calls are also nice, if the things you want to do with the API can use them in the first place. Also, keep in mind if you write AppXchange apps, you can’t use upsert unless you create the field manually. Lets chalk that up to another incomplete feature.

Compression… Again arguments both pro and con. If you have an excess of bandwidth available, and are CPU contrained not using compression on calls benefits everyone by not adding the load of the compression/decompression on the API call. Given the instablity early in the year, I disabled compression on my calls to try to help shed load. Also keep in mind that compression doesn’t mean you make less calls, just that your calls are smaller in bytes, but harder on the CPU.

Lastly you refer to SFDC “running the meter” on the calls. They know (probibly better then I as I don’t normally aggregate those stats unless running in debug mode) exactly how many API calls this client makes in a given period — and I’ve spoken to them about it. At one point they were in the top 5 across all customers and we had a discussion at length as to why, including exact use cases.

Simply put - if what is billed as the world’s most customizeable on-demand CRM application requires me to issue an inordinate amount of API calls to stopgap missing functionality, that’s not a consumer problem. (And Summer ‘06 *cough* did such a great job of bridging that gap — but that’s another discussion entirely)

]]>