<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Cloud Comedy, Cloud Tragedy</title>
	<atom:link href="http://stage.vambenepe.com/feed" rel="self" type="application/rss+xml" />
	<link>http://stage.vambenepe.com</link>
	<description>William Vambenepe&#039;s stage</description>
	<lastBuildDate>Fri, 03 Feb 2012 04:56:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Come for the PaaS Functional Model, stay for the Cloud Operational Model</title>
		<link>http://stage.vambenepe.com/archives/1928</link>
		<comments>http://stage.vambenepe.com/archives/1928#comments</comments>
		<pubDate>Fri, 03 Feb 2012 04:56:04 +0000</pubDate>
		<dc:creator>@vambenepe</dc:creator>
				<category><![CDATA[Amazon]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Application Mgmt]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Business Process]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Everything]]></category>
		<category><![CDATA[Manageability]]></category>
		<category><![CDATA[Mgmt integration]]></category>
		<category><![CDATA[PaaS]]></category>
		<category><![CDATA[Utility computing]]></category>

		<guid isPermaLink="false">http://stage.vambenepe.com/?p=1928</guid>
		<description><![CDATA[The Functional Model of PaaS is nice, but the Operational Model matters more. Let&#8217;s first define these terms. The Functional Model is what the platform does for you. For example, in the case of AWS S3, it means storing objects and making them accessible via HTTP. The Operational Model is how you consume the platform [...]]]></description>
			<content:encoded><![CDATA[<p>The Functional Model of PaaS is nice, but the Operational Model matters more.</p>
<p>Let&#8217;s first define these terms.</p>
<p>The <strong>Functional Model</strong> is what the platform does for you. For example, in the case of AWS S3, it means storing objects and making them accessible via HTTP.</p>
<p>The <strong>Operational Model</strong> is how you consume the platform service. How you request it, how you manage it, how much it costs, basically the total sum of the responsibility you have to accept if you use the features in the Functional Model. In the case of S3, the Operational Model is made of an API/UI to manage it, a bill that comes every month, and a support channel which <a href="http://aws.amazon.com/premiumsupport/">depends on the contract you bought</a>.</p>
<p>The Operational Model is where the S (&#8220;service&#8221;) in &#8220;PaaS&#8221; takes over from the P (&#8220;platform&#8221;). The Operational Model is not always as glamorous as new runtime features. But it&#8217;s what makes Cloud Cloud. If a provider doesn&#8217;t offer the specific platform feature your application developers desire, you can work around it. Either by using a slightly-less optimal approach or by building the feature yourself on top of lower-level building blocks (as Netflix did with Cassandra on EC2 before DynamoDB was an option). But if your provider doesn&#8217;t offer an Operational Model that supports your processes and business requirements, then you&#8217;re getting a hipster&#8217;s app server, not a real PaaS. It doesn&#8217;t matter how easy it was to put together a proof-of-concept on top of that PaaS if using it in production is playing Russian roulette with your business.</p>
<p>If the Cloud Operational Model is so important, what defines it and what makes a good Operational Model? In short, the Operational Model must be able to integrate with the consumer&#8217;s key processes: the business processes, the development processes, the IT processes, the customer support processes, the compliance processes, etc.</p>
<p>To make things more concrete, here are some of the key aspects of the Operational Model.</p>
<p><strong>Deployment / configuration / management</strong></p>
<p>I won&#8217;t spend much time on this one, as it&#8217;s the most understood aspect. Most Clouds offer both a UI and an API to let you provision and control the artifacts (e.g. VMs, application containers, etc) via which you access the PaaS functional interface. But, while necessary, this API is only a piece of a complete operational interface.</p>
<p><strong>Support</strong></p>
<p>What happens when things go wrong? What support channels do you have access to? Every Cloud provider will show you a list of support options, but what&#8217;s really behind these options? And do they have the capability (technical and logistical) to handle all your issues? Do they have deep expertise in all the software components that make up their infrastructure (especially in PaaS) from top to bottom? Do they run their own datacenter or do they themselves rely on a customer support channel for any issue at that level?</p>
<p><strong>SLAs</strong></p>
<p>I personally think discussions around SLAs are overblown (it seems like people try to reduce the entire Cloud Operational Model to a provisioning API plus an SLA, which is comically simplistic). But SLAs are indeed part of the Operational Model.</p>
<p><strong>Infrastructure change management</strong></p>
<p>It&#8217;s very nice how, in a PaaS setting, the Cloud provider takes care of all change management tasks (including patching) for the infrastructure. But the fact that your Cloud provider and you agree on this doesn&#8217;t neutralize Murphy&#8217;s law any more than me wearing Michael Jordan sneakers neutralizes the law of gravity when I (try to) dunk.</p>
<p>In other words, if a patch or update is worth testing in a staging environment if you were to apply it on-premise, what makes you think that it&#8217;s less likely to cause a problem if it&#8217;s the Cloud provider who rolls it out? Sure, in most cases it will work just fine and you can sing the praise of &#8220;NoOps&#8221;. Until the day when things go wrong, your users are affected and you&#8217;re taken completely off-guard. Good luck debugging that problem, when you don&#8217;t even know that an infrastructure change is being rolled out and when it might not even have been rolled out uniformly across all instances of your application.</p>
<p>How is that handled in your provider&#8217;s Operational Model? Do you have visibility into the change schedule? Do you have the option to test your application on the new infrastructure or to at least influence in any way how and when the change gets rolled out to your instances?</p>
<p>Note: I&#8217;ve covered this <a href="http://stage.vambenepe.com/archives/1025">in more details</a> before and so has <a href="http://www.rationalsurvivability.com/blog/?p=1354">Chris Hoff</a>.</p>
<p><strong>Diagnostic</strong></p>
<p>Developers have assembled a panoply of diagnostic tools (memory/thread analysis, BTM, user experience, logging, tracing&#8230;) for the on-premise model. Many of these won&#8217;t work in PaaS settings because they require a console on the local machine, or an agent, or a specific port open, or a specific feature enabled in the runtime. But the need doesn&#8217;t go away. How does your PaaS Operational Model support that process?</p>
<p><strong>Customer support</strong></p>
<p>You&#8217;re a customer of your Cloud, but you have customers of your own and you have to support them. Do you have the tools to react to their issues involving your Cloud-deployed application? Can you link their service requests with the related actions and data exposed via your Cloud&#8217;s operational interface?</p>
<p><strong>Security / compliance</strong></p>
<p>Security is part of what a Cloud provider has to worry about. The problem is, it&#8217;s a very relative concept. The issue is not what security the Cloud provider needs, it&#8217;s what security its customers need. They have requirements. They have mandates. They have regulations and audits. In short, they have their own security processes. The key question, from their perspective, is not whether the provider&#8217;s security is &#8220;good&#8221;, but whether it accommodates their own security process. Which is why security is not a &#8220;trust us&#8221; black box (I don&#8217;t think anyone has coined &#8220;NoSec&#8221; yet, but it can&#8217;t be far behind &#8220;NoOps&#8221;) but an integral part of the Cloud Operational Model.</p>
<p><strong>Business management</strong></p>
<p>The oft-repeated mantra is that Cloud replaces capital expenses (CapExp) with operational expenses (OpEx). There&#8217;s a lot more to it than that, but it surely contributes a lot to OpEx and that needs to be managed. How does the Cloud Operational Model support this? Are buyer-side roles clearly identified (who can create an account, who can deploy a service instance, who can manage a deployed instance, etc) and do they map well to the organizational structure of the consumer organization? Can charges be segmented and attributed to various cost centers? Can quotas be set? Can consumption/cost projections be run?</p>
<p>We all (at least those of us who aren&#8217;t accountants) love a great story about how some employee used a credit card to get from the Cloud something that the normal corporate process would not allow (or at too high a cost). These are fun for a while, but it&#8217;s not sustainable. This doesn&#8217;t mean organizations will not be able to take advantage of the flexibility of Cloud, but they will only be able to do it if the Cloud Operational Model provides the needed support to meet the requirements of internal control processes.</p>
<p><strong>Conclusion</strong></p>
<p>Some of the ways in which the Cloud Operational Model materializes can be unexpected. They can seem old-fashioned. Let&#8217;s take Amazon Web Services (AWS) as an example. When they started, ownership of AWS resources was tied to an individual user&#8217;s Amazon account. That&#8217;s a big Operational Model no-no. They&#8217;ve moved past that point. As an illustration of how the Operational Model materializes, here are some of the features that are part of Amazon&#8217;s:</p>
<ul>
<li>You can <a href="http://aws.amazon.com/importexport/">Fedex a drive</a> and have Amazon load the data to S3.</li>
<li>You can optimize your costs for flexible workloads via <a href="http://aws.amazon.com/ec2/spot-instances/">spot instances</a>.</li>
<li>The monitoring console (and API) will let you know ahead of time (when possible) which instances need to be rebooted and which will need to be terminated because they run on a soon-to-be-decommissioned server. Now you could argue that it&#8217;s a limitation of the AWS platform (lack of live migration) but that&#8217;s not the point here. Limitations exists and the role of the Operational Model is to provide the tools to handle them in an acceptable way.</li>
<li>Amazon has a program to put customers in touch with <a href="https://aws.amazon.com/solution-providers/si">qualified System Integrators</a>.</li>
<li>You can use your Amazon support channel for <a href="http://aws.typepad.com/aws/2012/01/new-aws-premium-support-features-third-party-software-support-and-aws-trusted-advisor.html">questions related to some 3rd party software</a> (though I don&#8217;t know what the depth of that support is).</li>
<li>To support your security and compliance requirements, AWS support <a href="http://aws.amazon.com/mfa/">multi-factor authentication</a> and has achieved some <a href="http://aws.amazon.com/security/#certifications">certifications and accreditations</a>.</li>
<li><a href="http://aws.typepad.com/aws/2012/01/ec2-instance-status-checks.html">Instance status checks</a> can help streamline your diagnostic flows.</li>
</ul>
<p>These Operational Model features don&#8217;t generate nearly as much discussion as new Functional Model features (&#8220;oh, look, a NoSQL AWS service!&#8221;) . That&#8217;s OK. The Operational Model doesn&#8217;t seek the limelight.</p>
<p>Business applications are involved, in some form, in almost every activity taking place in a company. Those activities take many different forms, from a developer debugging an application to an executive examining operational expenses. The PaaS Operational Model must meet their needs.</p>
]]></content:encoded>
			<wfw:commentRss>http://stage.vambenepe.com/archives/1928/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Notes from buying a new car online for the second time</title>
		<link>http://stage.vambenepe.com/archives/1923</link>
		<comments>http://stage.vambenepe.com/archives/1923#comments</comments>
		<pubDate>Mon, 30 Jan 2012 07:39:34 +0000</pubDate>
		<dc:creator>@vambenepe</dc:creator>
				<category><![CDATA[Off-topic]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://stage.vambenepe.com/?p=1923</guid>
		<description><![CDATA[In case you&#8217;re in the market for a new car, these few data points about a recent on-line buying experience may be of interest. Here&#8217;s an interesting view of Search Engine Optimization (SEO) from the perspective of a car dealership. I mention this for two reasons: a) The article is from AutoNews, a site which [...]]]></description>
			<content:encoded><![CDATA[<p>In case you&#8217;re in the market for a new car, these few data points about a recent on-line buying experience may be of interest.</p>
<p>Here&#8217;s <a href="http://www.autonews.com/apps/pbcs.dll/article?AID=/20120130/RETAIL07/301309965/1400">an interesting view of Search Engine Optimization</a> (SEO) from the perspective of a car dealership. I mention this for two reasons:</p>
<p>a) The article is from AutoNews, a site which mostly caters to dealers and others in the car business. Its <a href="http://www.autonews.com/apps/pbcs.dll/section?category=rss01&amp;mime=xml">RSS feed</a> is worth subscribing to in the few months that precede a car purchase. It&#8217;s a very different perspective from the consumer-oriented car sites out there.</p>
<p>b) I find it hard to reconcile this article with my experience, as I&#8217;ll describe in more details below.</p>
<p>To a large extent, car dealers&#8217; interest in SEO is unsurprising. What business doesn&#8217;t care about its Google rank? But, having just bought a Toyota Sienna on-line last week, I have a hard time reconciling dealers&#8217; efforts to get shoppers to their site with how bad the experience is once you get there.</p>
<p>Try and find an email address on the site of a Toyota dealership in Silicon Valley. I dare you. So, forget the email blast. Instead, you have to use stupid &#8220;contact us&#8221; forms in which you have to copy/paste multiple fields to simply describe what car you&#8217;re looking for. And they must know you&#8217;re copy/pasting, otherwise would they make the &#8220;comments&#8221; section <a href="https://secure.webmakerx.net/Information-Request.aspx?hostname=www.toyota101.com">so ridiculous small</a>? And the phone number is a &#8220;required&#8221; field? As if.</p>
<p>I understand that it makes it easier for &#8220;lead tracking&#8221; software if the transaction starts with one of these forms, but after spending money on SEO do you really want to refuse to talk to customers in the way they prefer? Compare this to going to a dealership in person. They&#8217;ll talk to you in their office, they&#8217;ll talk to in the showroom, they&#8217;ll talk to you in the parking lot in the rain and, gender permitting, they&#8217;ll probably talk to you in the bathroom.</p>
<p>I know there are sites (including manufacturer sites) which propose to email local dealers for you, but I don&#8217;t know what arrangement they have and I don&#8217;t want to initiate a price negotiation in which the vendor already owes a few hundred dollars to a referrer if we strike a deal. I want to initiate direct contact.</p>
<p>At least this year I didn&#8217;t have to convince vendors to negotiate the price over email; unlike the first time I bought a car in this manner, three years ago, when over half of the dealers I corresponded with had no interest in going beyond an over-inflated introductory quote, followed by efforts to get me to &#8220;come talk at the dealership&#8221;. With comments such as &#8220;if I give you a price, what tells me you&#8217;re not going to take it to another dealership to ask them to beat it?&#8221;. Well, that&#8217;s the whole point, actually. Nowadays (at least among Toyota dealership in the San Francisco Bay Area) they have &#8220;internet sales managers&#8221; to do just that.</p>
<p>Once you clear the hurdle of contacting vendors on their web sites, the rest of the interaction is quite painless. &#8220;Internet sales managers&#8221; deserve their title. In my experience, most of them have no problem doing everything over email and respond in a straightforward way as long as you&#8217;re specific in your requests. I never once talked to anyone on the phone. And when I came to take delivery of the car, all had been agreed and my entire visit took one hour, most of it spent doing email while they cleaned the car. I don&#8217;t know why anyone would buy a car any other way. The total amount of time I spent on the whole process is less than it would have taken me to go to the closest dealership and negotiate one price.</p>
<p>As a side note, I used TrueCar (under a separate email account, of course) to get an idea of the price and I ended up paying $450 less than the TrueCar proposal. When contacted via their web site, that dealer initially gave me the same offer they had submitted via TrueCar, and we went down from there, based on competing offers from other dealers. I never mentioned the TrueCar offer to them.</p>
<p>Another side note: MSRP is actually very useful. Not as a an indication of the price to pay, of course, but as a checksum on the level of equipment of the car. It doesn&#8217;t change between dealers and allows you to ensure that you&#8217;re comparing cars with the same equipment level. Of course any decent programmer would scream that it&#8217;s a very bad checksum, if only because two options could cost the same, but it worked just fine for my purpose.</p>
<p>I still think that the whole third-party-dealership model is fundamentally broken. The on-line buying process doesn&#8217;t fix it, it&#8217;s just an added layer that hides some of the issues. As we say in computer science, there&#8217;s no problem that can&#8217;t be solved by adding another level of indirection. We say this tongue-in-cheek because it&#8217;s both true (in the short term) and horribly false (in the long term). The same applies to the US car sales process.</p>
<p>As a side note, now that the family is equipped with an admiral ship I have a 2001 VW Golf Turbo (manual transmission) to sell if anyone in the Bay Area is interested&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://stage.vambenepe.com/archives/1923/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Puns on demand</title>
		<link>http://stage.vambenepe.com/archives/1918</link>
		<comments>http://stage.vambenepe.com/archives/1918#comments</comments>
		<pubDate>Fri, 27 Jan 2012 05:43:45 +0000</pubDate>
		<dc:creator>@vambenepe</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://stage.vambenepe.com/?p=1918</guid>
		<description><![CDATA[The downside of the rise of PaaS is the concomitant rise of bad PaaS puns. I noted a few recent ones (one of which I commited): PaaSive Aggressive [link] Everything is PaaSible [link] You bet your PaaS [link] The PaaSibilities are endless [link] And these are just PaaS puns in blog titles, I&#8217;ve probably missed a bunch burried [...]]]></description>
			<content:encoded><![CDATA[<p>The downside of the rise of PaaS is the concomitant rise of bad PaaS puns. I noted a few recent ones (one of which I commited):</p>
<ul>
<li>PaaSive Aggressive [<a href="http://paasiveaggressive.tumblr.com/">link</a>]</li>
<li>Everything is PaaSible [<a href="http://www.infoq.com/articles/everything-is-paasible">link</a>]</li>
<li>You bet your PaaS [<a href="http://blog.scalr.net/announcements/you-bet-your-paas-its-open/">link</a>]</li>
<li>The PaaSibilities are endless [<a href="http://www.rationalsurvivability.com/blog/?p=3409">link</a>]</li>
</ul>
<p>And these are just PaaS puns in blog titles, I&#8217;ve probably missed a bunch burried inside other entries.</p>
<p>This must stop. It&#8217;s time for the people of the Cloud to stand up and say: <a href="http://www.nzhistory.net.nz/media/photo/no-pasaran-poster">¡No PaaSarán!</a></p>
]]></content:encoded>
			<wfw:commentRss>http://stage.vambenepe.com/archives/1918/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Whose nonsense exactly?</title>
		<link>http://stage.vambenepe.com/archives/1912</link>
		<comments>http://stage.vambenepe.com/archives/1912#comments</comments>
		<pubDate>Fri, 23 Dec 2011 07:22:03 +0000</pubDate>
		<dc:creator>@vambenepe</dc:creator>
				<category><![CDATA[Off-topic]]></category>

		<guid isPermaLink="false">http://stage.vambenepe.com/?p=1912</guid>
		<description><![CDATA[Completely off-topic, but many people are on holidays, so why not. I tried to fit this into a tweet, but to no avail. Under the title &#8220;That Exact Nonsense&#8221;, John Gruber posts a quote from Penn Jillette&#8217;s book &#8220;God, No!: Signs You May Already Be an Atheist&#8221; (I left Gruber&#8217;s ID in the Amazon URL [...]]]></description>
			<content:encoded><![CDATA[<p>Completely off-topic, but many people are on holidays, so why not. I tried to fit this into a tweet, but to no avail.</p>
<p>Under the title &#8220;That Exact Nonsense&#8221;, John Gruber <a href="http://daringfireball.net/linked/2011/12/22/nonsense">posts a quote</a> from Penn Jillette&#8217;s book &#8220;<em><a href="http://www.amazon.com/exec/obidos/asin/145161036X/ref=nosim/daringfirebal-20">God, No!: Signs You May Already Be an Atheist</a></em>&#8221; (I left Gruber&#8217;s ID in the Amazon URL since he deserve his cut in this context).</p>
<blockquote><p><em>There is no god and that’s the simple truth. If every trace of any single religion died out and nothing were passed on, it would never be created exactly that way again. There might be some other nonsense in its place, but not that exact nonsense. If all of science were wiped out, it would still be true and someone would find a way to figure it all out again.</em></p></blockquote>
<p>It&#8217;s compelling and I personally believe it&#8217;s true. But unfortunately it doesn&#8217;t prove anything. Clearly, Jillette doesn&#8217;t believe that there was a divine revelation for any of the existing religions, but rather that they emanated from human imagination. If that&#8217;s the case then yes, the next time around it will come out somewhat differently. But what if there was a divine revelation? What would stop the deity from repeating it if its message got lost?</p>
<p>Jillette only proves that religion is a human invention (not a revelation of a larger truth) if you accept the hypothesis that it is a human invention.</p>
<p>To be fair, Jillette doesn&#8217;t claim it&#8217;s a proof, but the way the quote is making the rounds (Gruber credits <a href="http://kottke.org/11/12/exact-nonsense">Kottke</a> for the find who in turn credits <a href="https://mlkshk.com/p/AIPM">mlkshk</a> who got it from <a href="http://i.imgur.com/w1h0H.jpg">imgur</a>)  seems to suggest that it&#8217;s being heralded as such, rather that as a compelling-sounding tautology.</p>
]]></content:encoded>
			<wfw:commentRss>http://stage.vambenepe.com/archives/1912/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Everything is PaaSible</title>
		<link>http://stage.vambenepe.com/archives/1908</link>
		<comments>http://stage.vambenepe.com/archives/1908#comments</comments>
		<pubDate>Fri, 16 Dec 2011 07:07:14 +0000</pubDate>
		<dc:creator>@vambenepe</dc:creator>
				<category><![CDATA[API]]></category>
		<category><![CDATA[Application Mgmt]]></category>
		<category><![CDATA[Articles]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Everything]]></category>
		<category><![CDATA[Manageability]]></category>
		<category><![CDATA[Mgmt integration]]></category>
		<category><![CDATA[Middleware]]></category>
		<category><![CDATA[PaaS]]></category>
		<category><![CDATA[Utility computing]]></category>

		<guid isPermaLink="false">http://stage.vambenepe.com/?p=1908</guid>
		<description><![CDATA[That&#8217;s the title of an article I wrote for InfoQ and which went live today. If you can get past the punny title you&#8217;ll read about the following points: In traditional (and IaaS) environments, many available application infrastructure features remain rarely used because of the cost (perceived or real) or adding them to the operational [...]]]></description>
			<content:encoded><![CDATA[<p>That&#8217;s the title of an article I wrote for InfoQ and which <a href="http://www.infoq.com/articles/everything-is-paasible">went live today</a>.</p>
<p>If you can get past the punny title you&#8217;ll read about the following points:</p>
<ul>
<li>In traditional (and IaaS) environments, many available application infrastructure features remain rarely used because of the cost (perceived or real) or adding them to the operational environment.</li>
<li>Most PaaS environments of today don&#8217;t even let you make use of these features, at any cost, because of  constraints imposed by PaaS providers for the sake of simplifying and streamlining their operations.</li>
<li>In the future, PaaS will not only make these available but available at a negligible incremental operational cost.</li>
<li>Even beyond that, PaaS will make available application services that are, in traditional settings, completely out of scope for the application programmer. Early examples include CDN, DNS and loab balancing services offered, for example, by Amazon. An application developer in most traditional data centers would have to jump through endless hoops if she wanted to control these services within the application. I believe that these network-related services are just the low hanging fruits and many more once-unthinkable infrastructure services will become programmable as part of the application.</li>
</ul>
<p>PaaS will become less about &#8220;hosting&#8221; and more about offering application services. In other words, going back to the formula I <a href="https://twitter.com/#!/vambenepe/status/145972772340903936">proposed on Twitter</a>:</p>
<p style="padding-left: 30px;"><em>Cloud = Hosting + SOA</em></p>
<p>IaaS is a lot more &#8220;hosting&#8221; than SOA, PaaS is a lot more &#8220;SOA&#8221; (application infrastructure services available via APIs) than &#8220;hosting&#8221;.</p>
<p>You can <a href="http://www.infoq.com/articles/everything-is-paasible">read the full article</a> for more.</p>
]]></content:encoded>
			<wfw:commentRss>http://stage.vambenepe.com/archives/1908/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why I don&#8217;t use iTunes metadata</title>
		<link>http://stage.vambenepe.com/archives/1893</link>
		<comments>http://stage.vambenepe.com/archives/1893#comments</comments>
		<pubDate>Thu, 08 Dec 2011 08:39:06 +0000</pubDate>
		<dc:creator>@vambenepe</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Everything]]></category>
		<category><![CDATA[Modeling]]></category>
		<category><![CDATA[Off-topic]]></category>
		<category><![CDATA[Standards]]></category>

		<guid isPermaLink="false">http://stage.vambenepe.com/?p=1893</guid>
		<description><![CDATA[I am taking quite a beating in the comments section of my previous post. Apparently I am a soon-to-be-crestfallen old man with OCD (if I combine Kelstar&#8217;s comment with the one from &#8220;Mr. D.&#8221;). Thankfully there are also messages from fellow Luddites who support my alternative lifechoice. The object of the scorn I&#8217;m getting? Nothing [...]]]></description>
			<content:encoded><![CDATA[<p>I am taking quite a beating in the comments section of <a href="http://stage.vambenepe.com/archives/1881">my previous post</a>. Apparently I am a soon-to-be-crestfallen old man with OCD (if I combine <a href="http://stage.vambenepe.com/archives/1881#comment-1166">Kelstar&#8217;s comment</a> with <a href="http://stage.vambenepe.com/archives/1881#comment-1167">the one from &#8220;Mr. D.&#8221;</a>). Thankfully there are also messages from fellow Luddites who support my alternative lifechoice.</p>
<p>The object of the scorn I&#8217;m getting? Nothing to do with the Automator scripts I shared (since I am new to Automator I was hoping to get some feedback/correction/suggestions on that). It&#8217;s all about the use case that lead me to Automator in the first place, my refusal to rely on iTunes metadata to organize my music collection.</p>
<p>Look, I&#8217;m a software engineer. My employer (Oracle) knows a thing or two about structured data. I work in systems management, which is heavily model-driven. As an architect I really care about consistent modeling and not overloading data fields. I&#8217;m also a fan of Semantic Technologies. I know proper metadata is the right way to go. As a system designer, that is, I know it; any software I design is unlikely to rely on naming conventions in file names.</p>
<p>But as a user, I have other priorities.</p>
<p>As a user, my goal is not to ensure that the application can be maintained, supported and evolved. My goal is to protect the data. And I am very dubious of format-specific metadata (and even more of application-specific metadata) in that context, at least for data (like music and photos) that I plan to keep for the long term.</p>
<p>I realize that <a href="http://en.wikipedia.org/wiki/ID3">ID3 metadata</a> is not iTunes specific, but <a href="http://stage.vambenepe.com/archives/1881#comment-1157">calling it a &#8220;standard&#8221; that&#8217;s &#8220;not gonna change&#8221;</a> as another commenter, Vega, does is pretty generous (I&#8217;m talking as someone who actually worked on standards in the last decade).</p>
<p>Standard or not, here are a few of the reasons why I don&#8217;t think format-specific metadata is a good way to organize my heirloom data and why I prefer to rely on directory names (I use the artist name for my music directories, and <em>yyyymmdd-description</em> for photos, as in <em>20050128-tahoe-ski-trip</em>).</p>
<p>[Side note: as you can see, even though I trust the filesystem more than format-specific metadata I don't even fully trust it and stubbornly avoid spaces in file and especially directory names.]</p>
<p>Some of the pitfalls of format-specific metadata:</p>
<ul>
<li>Metadata standards may guarantee that the same fields will be present, but not that they will be interpreted in the same way. As proven by the fact that my MP3 files carry widely inconsistent metadata values depending on their provenance (e.g. &#8220;Beattles&#8221; vs. &#8220;The Beattles&#8221; vs &#8220;Beattles, The&#8221;).</li>
<li>I can read and edit file names from any programming language. Other forms of metadata may or may not be accessible.</li>
<li>I don&#8217;t have to download/open the file to read the file name. I know exactly which files I want to FTP just by browsing the remote directories.</li>
<li>I often have other types of files in the same directory. Especially in my photo directories, which usually contain JPEGs but may include some images in raw format or short videos (AVI, MPEG, MOV&#8230;). If I drop them in the <em>20050128-tahoe-ski-trip</em> directory it describes all of them without having to use the right metadata format for each file type.</li>
<li>File formats die. To keep your data alive, you have to occasionally move from one to the other. Image formats change. Sound formats change. The filename doesn&#8217;t have to change (other than, conventionally, the extension). Yes, you still have to convert the actual content but keeping the key metadata in file or directory name makes it one less thing that can get lost in translation.</li>
<li>Applications have a tendency to muck with metadata without asking you. For example, some image manipulation applications may strip metadata before releasing an image to protect you from accidental disclosure. On the other hand, applications (usually) know better than to muck with directory names without asking.</li>
<li>You don&#8217;t know when you&#8217;re veering into application-specific metadata. I see many fields in iTunes which don&#8217;t exist in ID3v2 (and even less in ID3v1) and no indication, for the user, of which are part of ID3 (and therefore somewhat safer) and which are iTunes-specific. It&#8217;s very easy to get locked in application-specific metadata without realizing it.</li>
</ul>
<p>[In addition to the issues with format-specific metadata listed above, application-specific metadata has many more, including the fact that the application may (will) disappear and that, usually, the metadata is not attached to the data files. That kind of metadata is a no-starter for long-term data.]</p>
<p>So what do I give up by not using proper metadata?</p>
<ul>
<li>I give up richness. But for photo and videos I just care about the date and a short description which fit nicely in the directory name. For music I only care about the artist, which again fits in the directory name (albums are meaningless to me).</li>
<li>I give up the ability to have the organization of my data reflected in metadata-driven tools (if, like iTunes, they refuse to consider the filesystem structure as meaningful). Or, rather than giving it up, I would say it makes it harder. But either there is a way to automatically transfer the organization reflected in my directories to the right metadata (as I do in the <a href="http://stage.vambenepe.com/archives/1881">previous post for iTunes</a>) or there isn&#8217;t and then I definitely don&#8217;t want to have anything to do with software that operates on locked-away metadata.</li>
<li>I also give up advanced features that use the more exotic metadata fields. But I am not stripping any metadata away. If it happens to all be there in my files, set correctly and consistently, then I can use the feature. If it isn&#8217;t (and it usually isn&#8217;t) then that piece of metadata hasn&#8217;t reached the level of ecosystem maturity that makes it useful to me. I have no interest in manually fixing it and I just ignore it.</li>
</ul>
<p>I&#8217;m not an audiophile. I&#8217;m not a photographer. I have simple needs. You may have more advanced use cases which justify the risk of relying on format-specific metadata. To me, the bargain is not worth it.</p>
<p>I&#8217;m not saying I&#8217;m right. I&#8217;m not saying I&#8217;m not a grumpy old man. I&#8217;m just saying I have my reasons to be a grumpy old man who clutches his filesystem. And we&#8217;ll see who, of Mr. D. and me, is crestfallen first.</p>
]]></content:encoded>
			<wfw:commentRss>http://stage.vambenepe.com/archives/1893/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>MacOS Automator workflow to populate iTunes info from file path</title>
		<link>http://stage.vambenepe.com/archives/1881</link>
		<comments>http://stage.vambenepe.com/archives/1881#comments</comments>
		<pubDate>Tue, 06 Dec 2011 04:40:30 +0000</pubDate>
		<dc:creator>@vambenepe</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[Everything]]></category>
		<category><![CDATA[Off-topic]]></category>

		<guid isPermaLink="false">http://stage.vambenepe.com/?p=1881</guid>
		<description><![CDATA[Just in case someone has the same need, here is an Automator workflow to update the metadata of a music (or video) file based on the file&#8217;s path (for non-Mac users, Automator is a graphical task automation tool in MacOS). Here the context: I recently bought my first Mac, a home desktop. That&#8217;s where my [...]]]></description>
			<content:encoded><![CDATA[<p>Just in case someone has the same need, here is an Automator workflow to update the metadata of a music (or video) file based on the file&#8217;s path (for non-Mac users, Automator is a graphical task automation tool in MacOS).</p>
<p>Here the context: I recently bought my first Mac, a home desktop. That&#8217;s where my MP3 reside now, carefully arranged in folders by artist name. I made sure to plop them in the default &#8220;Music&#8221; folder, to make  iTunes happy. Or so I thought, until I actually started iTunes and saw it attempt to copy every single MP3 file in its own directory. Pretty stupid, but easily fixed via a config setting. The next issue is that, within iTunes, you cannot organize your music based on the directory structure. All it cares about is the various metadata fields. You can&#8217;t even display the file name or the file path in the main iTunes window.</p>
<p>Leave it to Apple to create a Unix operating system which hates files.</p>
<p>The obvious solution is to dump iTunes and look for a better music player. But there&#8217;s another problem.</p>
<p>Apparently music equipment manufacturers have given up on organizing your digital music and surrendered that function to Apple (several models let you plug an SD card or a USB key, but they don&#8217;t even try to give you a decent UI to select the music from these drives). They seem content to just sell amplifiers and speakers, connected to an iPod doc. Strange business strategy, but what do I know. So I ended up having to buy an iPod Classic for my living room, even though I have no intention of ever taking it off the dock.</p>
<p>And the organization in the iPod is driven by the same metadata used by iTunes, so even if I don&#8217;t want to use iTunes on the desktop I still have to somehow transfer the organization reflected in my directory structure into Apple&#8217;s metadata fields. At least the artist name; I don&#8217;t care for albums, albums mean nothing. And of course I&#8217;m not going to do this manually over many gigabytes of data.</p>
<p>The easy way would be to write a Python script since apparently some kind souls have written Python modules to manipulate iTunes metadata.</p>
<p>But I am still in my learn-to-use-MacOS phase, so I force myself to use the most MacOS-native solution, as a learning experience. Which took me to Automator and to the following workflow:</p>
<p><img class="alignnone size-full wp-image-1883" title="automator01" src="http://stage.vambenepe.com/wp-content/uploads/2011/12/automator01.png" alt="" width="574" height="952" /></p>
<p>OK, I admit it&#8217;s not fully MacOS-native, I had to escape to a shell to run a regex; I couldn&#8217;t find a corresponding Automator action.</p>
<p>I run it as a service, which can be launched either on a subfolder of &#8220;Music&#8221; (e.g. &#8220;Leonard Cohen&#8221;) or on a set of files which are in one of these subfolders. It just picks the name of the subfolder (&#8220;Leonard Cohen&#8221; in this case) and sets that as the &#8220;artist&#8221; in the file&#8217;s metadata.</p>
<p>Side note: this assumes you Music folder is &#8220;/Users/vbp/Music&#8221;, you should replace &#8220;vbp&#8221; with your account user name.</p>
<p>For the record, there is a utility that helps you debug workflows. It&#8217;s &#8220;/System/Library/CoreServices/pbs&#8221;. I started the workflow by making it apply to &#8220;iTunes files&#8221; and later changed it to work on &#8220;files and folders&#8221;. And yet it didn&#8217;t show up in the service list for folders. Running &#8220;pbs -debug&#8221; showed that my workflow logged <em>NSSendFileTypes=(&#8220;public.audio&#8221;);</em> no matter what. Looks like a bug to me, so I just created a new workflow with the right input type from the start and that fixed it.</p>
<p>Not impressed with iTunes, but I got what I needed.</p>
<p>[UPDATE]</p>
<p>I&#8217;ve improved it a bit, in two ways. First I&#8217;ve generalized the regex so that it can be applied to files in any location and it will pick up the name of the parent folder. Second, I&#8217;m now processing files one by one so that they don&#8217;t all have to be in the same folder (the previous version grabs the folder name once and applies it to all files, the new version retrieves the folder name for each file). This way, you can just select your Music folder and run this service on it and it will process all the files.</p>
<p>It&#8217;s pretty inefficient and the process can take a while if you have lots of files. You may want to add another action at the end (e.g. play a sound or launch the calculator app) just to let you know that it&#8217;s done.</p>
<p>In the new version, you need to first create this workflow and save it (as a workflow) to a file:</p>
<p><img class="alignnone size-full wp-image-1889" title="Automator02a" src="http://stage.vambenepe.com/wp-content/uploads/2011/12/Automator02a.png" alt="" width="586" height="819" /></p>
<p>Then you create this service which references the previous workflow (here I named it &#8220;assign artist based on parent folder name&#8221;). This service is what you invoke on the folders and files:</p>
<p><img class="alignnone size-full wp-image-1888" title="Automator03" src="http://stage.vambenepe.com/wp-content/uploads/2011/12/Automator03.png" alt="" width="539" height="348" /></p>
<p>I haven&#8217;t yet tried running more than one workflow at a time to speed things up. I assume the variables are handled as local variables, not global, but it was too late at night to open this potential can of worms.</p>
]]></content:encoded>
			<wfw:commentRss>http://stage.vambenepe.com/archives/1881/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Introducing Enterprise Manager Cloud Control 12c</title>
		<link>http://stage.vambenepe.com/archives/1873</link>
		<comments>http://stage.vambenepe.com/archives/1873#comments</comments>
		<pubDate>Thu, 03 Nov 2011 08:29:39 +0000</pubDate>
		<dc:creator>@vambenepe</dc:creator>
				<category><![CDATA[Application Mgmt]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Everything]]></category>
		<category><![CDATA[IT Systems Mgmt]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Utility computing]]></category>

		<guid isPermaLink="false">http://stage.vambenepe.com/?p=1873</guid>
		<description><![CDATA[Oracle Enterprise Manager Cloud Control 12c, the new version of Oracle&#8217;s IT management product came out a few weeks ago, during Open World (video highlights of the launch). That release was known internally for a while as &#8220;NG&#8221; for &#8220;next generation&#8221; because the updates it contains are far more numerous and profound than your average [...]]]></description>
			<content:encoded><![CDATA[<p>Oracle Enterprise Manager Cloud Control 12c, the new version of Oracle&#8217;s IT management product came out a few weeks ago, during Open World (<a href="http://www.youtube.com/watch?v=279LYdLhO_0&amp;noredirect=1">video highlights of the launch</a>). That release was known internally for a while as &#8220;NG&#8221; for &#8220;next generation&#8221; because the updates it contains are far more numerous and profound than your average release. The design for &#8220;NG&#8221; (now &#8220;12c&#8221;) started long before Enterprise Manager Grid Control 11g, the previous major release, shipped. The underlying framework has been drastically improved, from the modeling capabilities, to extensibility, scalability, incident management and, most visibly, UI.</p>
<p>If you&#8217;re not an existing EM user then those framework upgrades won&#8217;t be as visible to you as the feature upgrades and additions. And there are plenty of those as well, from database management to application management and configuration management. The most visible addition is the all-new self-service portal through which an EM-driven private Cloud can be made available. This supports IaaS-level services (individual VMs or assemblies composed of multiple coordinated VMs) and DBaaS services (we&#8217;ve also announced and demonstrated upcoming PaaS services). And it&#8217;s not just about delivering these services via lifecycle automation, a lot of work has also gone into supporting the business and organizational aspects of delivering services in a private Cloud: quotas, chargeback, cost centers, maintenance plans, etc&#8230;</p>
<p>EM Cloud Control is the first Oracle product with the &#8220;12c&#8221; suffix. You probably guessed it, the &#8220;c&#8221; stands for &#8220;Cloud&#8221;. If you consider the central role that IT management software plays in Cloud Computing I think it&#8217;s appropriate for EM to lead the way. And there&#8217;s a lot more &#8220;c&#8221; on the way.</p>
<p>Many (short and focused) <a href="http://www.oracle.com/technetwork/oem/em12c-screenwatches-512013.html">demo videos</a> are available. For more information, see the <a href="http://www.oracle.com/us/products/enterprise-manager/index.html">product marketing page</a>, the more technical <a href="http://www.oracle.com/technetwork/oem/index.html">overview of capabilities</a> or the even more technical <a href="http://download.oracle.com/docs/cd/E24628_01/index.htm">product documentation</a>. Or you can just <a href="http://www.oracle.com/technetwork/oem/grid-control/downloads/index.html">download the product</a> (or, for production systems, get it on eDelivery).</p>
<p>If you missed the launch at Open World, <a href="http://www.oracle.com/us/corporate/events/enterprise-manager-forum-513671.html">EM12c introduction events</a> are taking place all over the world in November and December. They start today, November 3rd, in Athens, Riga and Beijing.</p>
<p>We&#8217;re eager to hear back from users about this release. I&#8217;ve run into <a href="http://www.nl.capgemini.com/oracleblog/2011/10/enterprise-manager-12c-%E2%80%93-agent-deployment/">many</a> <a href="http://martincarstenbach.wordpress.com/2011/10/07/installing-oracle-enterprise-manager-12c-on-ol-5-7/">users</a> <a href="http://gjilevski.wordpress.com/2011/10/09/install-oracle-enterprise-manager-oem-cloud-control-12c-on-oel-6-1-2/">blogging</a> <a href="http://www.oradba.ch/2011/10/howto-install-oracle-enterprise-manager-cloud-control-12c-release-1/">about</a> <a href="http://www.oradba.ch/2011/10/update-howto-install-oracle-enterprise-manager-cloud-control-12c-release-1/">installing</a> <a href="http://www.oradba.ch/2011/10/2nd-update-howto-install-oracle-enterprise-manager-cloud-control-12c-release-1/">EM12c</a> and I&#8217;ll keep eye out for their reports after using it for a bit.</p>
]]></content:encoded>
			<wfw:commentRss>http://stage.vambenepe.com/archives/1873/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DMTF publishes draft of Cloud API</title>
		<link>http://stage.vambenepe.com/archives/1853</link>
		<comments>http://stage.vambenepe.com/archives/1853#comments</comments>
		<pubDate>Mon, 19 Sep 2011 06:50:13 +0000</pubDate>
		<dc:creator>@vambenepe</dc:creator>
				<category><![CDATA[API]]></category>
		<category><![CDATA[Application Mgmt]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[DMTF]]></category>
		<category><![CDATA[Everything]]></category>
		<category><![CDATA[IaaS]]></category>
		<category><![CDATA[IT Systems Mgmt]]></category>
		<category><![CDATA[Manageability]]></category>
		<category><![CDATA[Mgmt integration]]></category>
		<category><![CDATA[Modeling]]></category>
		<category><![CDATA[Portability]]></category>
		<category><![CDATA[Protocols]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[Specs]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Utility computing]]></category>
		<category><![CDATA[Virtual appliance]]></category>
		<category><![CDATA[Virtualization]]></category>

		<guid isPermaLink="false">http://stage.vambenepe.com/?p=1853</guid>
		<description><![CDATA[Note to anyone who still cares about IaaS standards: the DMTF has published a work in progress. There was a lot of interest in the topic in 2009 and 2010. Some heated debates took place during Cloud conferences and a few symposiums were organized to try to coordinate various standard efforts. The DMTF started an [...]]]></description>
			<content:encoded><![CDATA[<p>Note to anyone who still cares about IaaS standards: the DMTF has published a work in progress.</p>
<p>There was a lot of interest in the topic in 2009 and 2010. Some <a href="http://stage.vambenepe.com/archives/1344">heated</a> <a href="http://stage.vambenepe.com/archives/1549">debates</a> took place during Cloud conferences and a few symposiums were organized to try to coordinate various standard efforts. The <a href="http://stage.vambenepe.com/archives/715">DMTF started an &#8220;incubator&#8221;</a> on the topic. Many companies brought submissions to the table, in various levels of maturity: <a href="http://stage.vambenepe.com/archives/936">VMware</a>, <a href="http://stage.vambenepe.com/archives/1108">Fujitsu</a>, <a href="http://stage.vambenepe.com/archives/1295">HP</a>, <a href="http://www.tid.es/files/doc/apis/TCloud_API_Spec_v0.9.pdf ">Telefonica</a>, <a href="http://stage.vambenepe.com/archives/1538">Oracle</a> and <a href="http://www.computerworld.com/s/article/9181919/Red_Hat_offers_Deltacloud_platform_to_standards_group">RedHat</a>. IBM and Microsoft might also have submitted something, I can&#8217;t remember for sure.</p>
<p>The DMTF has been chugging along. The incubator turned into a working group. Unfortunately (but unsurprisingly), it limited itself to the usual suspects (and not all the <a href="http://stage.vambenepe.com/archives/1261">independent Cloud experts</a> out there) and kept the process confidential. But this week it partially lifted the curtain by publishing two work-in-progress documents.</p>
<p>They can be found at <a href="http://dmtf.org/standards/cloud">http://dmtf.org/standards/cloud</a> but if you read this after March 2012 they won&#8217;t be there anymore, as DMTF likes to &#8220;expire&#8221; its work-in-progress documents. The two docs are:</p>
<ul>
<li><a href="http://dmtf.org/sites/default/files/standards/documents/DSP0263_1.0.0a.pdf">Cloud Infrastructure Management Interface (CIMI) Model and REST Interface Specification</a>, and</li>
<li><a href="http://dmtf.org/sites/default/files/standards/documents/DSP0264_1.0.0a.pdf">Cloud Infrastructure Management Interface – Common Information Model (CIMI-CIM) Specification</a></li>
</ul>
<p>The first one is the interesting one, and the one you should read if you want to see where the DMTF is going. It&#8217;s a RESTful specification (at the cost of some contortions, e.g. section 4.2.1.3.1). It supports both JSON and XML (<a href="http://stage.vambenepe.com/archives/1311">bad idea</a>). It plans to use RelaxNG instead of XSD (good idea). And also CIM/MOF (not a joke, see the second document for proof). The specification is pretty ambitious (it covers not just lifecycle operations but also monitoring and events) and well written, especially for a work in progress (props to <a href="http://blogs.oracle.com/wsinterop/">Gil Pilz</a>).</p>
<p>I am surprised by how little reaction there has been to this publication considering how hotly debated the topic used to be. Why is that?</p>
<p>A cynic would attribute this to people having given up on DMTF providing a Cloud API that has any chance of wide adoption (the adjoining CIM document sure won&#8217;t help reassure DMTF skeptics).</p>
<p>To the contrary, an optimist will see this low-key publication as a sign that the passions have cooled, that the trusted providers of enterprise software are sitting at the same table and forging consensus, and that the industry is happy to defer to them.</p>
<p>More likely, I think people have, by now, enough Cloud experience to understand that standardizing IaaS APIs is a minor part of the problem of interoperability (not to mention the even harder goal of portability). The serialization and plumbing aspects don&#8217;t matter much, and if they do to you then there are some good libraries that provide mappings for your favorite language. What matters is the diversity of resources and services exposed by Cloud providers. Those choices strongly shape the design of your application, much more than the choice between JSON and XML for the control API. And nobody is, at the moment, in position to standardize these services.</p>
<p>So congrats to the DMTF Cloud Working Group for the milestone, and please get the API finalized. Hopefully it will at least achieve the goal of narrowing down the plumbing choices to three (AWS, OpenStack and DMTF). But that&#8217;s not going to solve the hard problem.</p>
]]></content:encoded>
			<wfw:commentRss>http://stage.vambenepe.com/archives/1853/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>&#8220;API documentation&#8221; vs. &#8220;API implementation&#8221;</title>
		<link>http://stage.vambenepe.com/archives/1849</link>
		<comments>http://stage.vambenepe.com/archives/1849#comments</comments>
		<pubDate>Fri, 16 Sep 2011 20:35:46 +0000</pubDate>
		<dc:creator>@vambenepe</dc:creator>
				<category><![CDATA[API]]></category>
		<category><![CDATA[Legal]]></category>

		<guid isPermaLink="false">http://stage.vambenepe.com/?p=1849</guid>
		<description><![CDATA[The judge points out that &#8220;[t]he term API is slippery&#8221;. He refuses to use the term &#8220;API&#8221; on its own for anything other than &#8220;the abstract concept of an application programming interface&#8221;. For the sake of greater precision, the judge consistently refers to &#8220;API documentation&#8221; and &#8220;API implementations&#8221; when discussing material that was allegedly infringed. [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>The judge points out that &#8220;[t]he term API is slippery&#8221;. He refuses to  use the term &#8220;API&#8221; on its own for anything other than &#8220;the abstract  concept of an application programming interface&#8221;. For the sake of  greater precision, the judge consistently refers to &#8220;API documentation&#8221;  and &#8220;API implementations&#8221; when discussing material that was allegedly  infringed.</p></blockquote>
<p><a href="http://fosspatents.blogspot.com/2011/09/judge-throws-out-googles-summary.html">Source</a></p>
<p>There are many occasions to lament the lack of technical understanding that shines through some legal discussions. But this is a case in which the judge displays a level of precision that we, in the industry, often fail to reach.</p>
]]></content:encoded>
			<wfw:commentRss>http://stage.vambenepe.com/archives/1849/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Perspectives on Cloud.com acquisition</title>
		<link>http://stage.vambenepe.com/archives/1839</link>
		<comments>http://stage.vambenepe.com/archives/1839#comments</comments>
		<pubDate>Thu, 11 Aug 2011 20:47:57 +0000</pubDate>
		<dc:creator>@vambenepe</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[DMTF]]></category>
		<category><![CDATA[Everything]]></category>
		<category><![CDATA[Governance]]></category>
		<category><![CDATA[Mgmt integration]]></category>
		<category><![CDATA[Open source]]></category>
		<category><![CDATA[OpenStack]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Specs]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[Utility computing]]></category>
		<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[VMware]]></category>

		<guid isPermaLink="false">http://stage.vambenepe.com/?p=1839</guid>
		<description><![CDATA[Interesting analysis (by Gartner&#8217;s Lydia Leong) on the acquisition of Cloud.com by Citrix (apparently for 100x revenues) and its position as a cheaper alternative for vCloud (at least until OpenStack Nova becomes stable). Great read, even though that part: &#8220;[Zygna] uses Cloud.com to provide Amazon-compatible (and thus Rightscale-compatible) infrastructure internally, letting it easily move workloads [...]]]></description>
			<content:encoded><![CDATA[<p>Interesting <a href="http://blogs.gartner.com/lydia_leong/2011/08/11/citrix-buys-cloud-com/">analysis</a> (by Gartner&#8217;s Lydia Leong) on the acquisition of Cloud.com by Citrix (apparently for 100x revenues) and its position as a cheaper alternative for vCloud (at least until OpenStack Nova becomes stable).</p>
<p>Great read, even though that part:</p>
<p style="padding-left: 30px;"><em>&#8220;[Zygna] uses Cloud.com to provide Amazon-compatible (and thus Rightscale-compatible) infrastructure internally, letting it easily move workloads across their own infrastructure and Amazon’s.&#8221;</em></p>
<p>is <a href="http://broadcast.oreilly.com/2011/08/the-ec2-api-as-a-defacto-standard.html">a bit of a simplification</a>.</p>
<p>While I&#8217;m at it, here&#8217;s <a href="http://www.virtualizationpractice.com/blog/?p=6683">another take on Cloud.com</a>, this time from an OSS license perspective. Namely, the difference between building your business on GPL (like Eucalyptus) or Apache 2 (like the more community-driven open source projects such as OpenStack).</p>
<p>Towards the end, there&#8217;s also a nice nod to the Oracle Cloud API:</p>
<p style="padding-left: 30px;"><em>&#8220;DMTF has been receiving other submissions for an API standard. Oracle has made its submission public.  It is based on an earlier Sun proposal, and it is the best API we have yet seen. Furthermore, Oracle has identified a core subset to allow initial early  adoption, as well as areas where vendors (including themselves and  crucially VMware<a title="VMware" href="http://www.virtualizationpractice.com/blog/?s=vmware"></a>) may continue to extend to allow differentiation.&#8221;</em></p>
<p>Here&#8217;s <a href="http://stage.vambenepe.com/archives/1538">more on the Oracle Cloud API</a>, including an explanation of the &#8220;core/extension&#8221; split mentioned above.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://stage.vambenepe.com/archives/1839/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>When piracy has systemic consequences</title>
		<link>http://stage.vambenepe.com/archives/1835</link>
		<comments>http://stage.vambenepe.com/archives/1835#comments</comments>
		<pubDate>Wed, 10 Aug 2011 04:47:35 +0000</pubDate>
		<dc:creator>@vambenepe</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Everything]]></category>
		<category><![CDATA[Off-topic]]></category>

		<guid isPermaLink="false">http://stage.vambenepe.com/?p=1835</guid>
		<description><![CDATA[Interesting &#8220;Planet Money&#8221; podcast on &#8220;How The U.S. Gave S&#38;P Its Power&#8221;. I especially found that part illuminating: But the business [of the rating agencies] started to change in the late 1960s. Instead of charging investors, the rating agencies started to take money from the issuers of the bonds. White blames the shift on the [...]]]></description>
			<content:encoded><![CDATA[<p>Interesting &#8220;Planet Money&#8221; podcast on <a href="http://www.npr.org/blogs/money/2011/08/09/139219473/how-the-u-s-gave-s-p-its-power">&#8220;How The U.S. Gave S&amp;P Its Power&#8221;</a>. I especially found that part illuminating:</p>
<p style="padding-left: 30px;"><em>But the business [of the rating agencies] started to change in the late 1960s. Instead of charging investors, the rating agencies started to take money from the issuers of the bonds. White blames the shift on the invention of &#8220;the high-speed photocopy machine.&#8221;</em></p>
<p style="padding-left: 30px;"><em>The ratings agencies were afraid, he says, that investors would just pass around rating information for free. So they had to start making their money from the company side. Even this seemed to work pretty well for a long time.</em></p>
<p>The short term consequences of intellectual piracy may be easy to rationalize: I can imagine that, back in the 60s, stiffing the rich and powerful credit rating agencies by using new technology (the copy machine) to duplicate a report didn&#8217;t feel very consequential and maybe even cool. But then there are long term consequences. Like, in this case, a reversal of the money flow which ended up with the issuers themselves paying the rating agencies. A fundamentally unsustainable system which, many years later, gave us credit agencies who coached their customers, the issuers, on how to craft deceptively-rated securities.</p>
<p>We have many examples of too much government intervention (like tax policies that encourage borrowing) setting up the conditions for a crisis, but this appears to be an example of the reverse: a lack of government intervention (to ensure that the IP of credit agencies is respected) being part of what caused a systemic problem to form.</p>
<p>There are similar situations being created today. I cringe when I see advertising (and gathering of personal data) becoming such a prevalent monetization model, by lack of more direct alternatives. I don&#8217;t know what form the ensuing crisis will eventually take, but it may be just as bad as the debacle of the credit rating system.</p>
<p>I&#8217;m not saying more IP protection is always better. The patent system is an example of the contrary. It&#8217;s a difficult balance to achieve. But looking at the money flow is a good gauge of how well the system is working. The more directly the money flows from the real producers to the real consumers, the better and the more sustainable the system is. Today, it isn&#8217;t so for credit rating agencies, nor for much of the digital economy.</p>
]]></content:encoded>
			<wfw:commentRss>http://stage.vambenepe.com/archives/1835/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>On resisting shiny objects</title>
		<link>http://stage.vambenepe.com/archives/1828</link>
		<comments>http://stage.vambenepe.com/archives/1828#comments</comments>
		<pubDate>Fri, 05 Aug 2011 23:39:46 +0000</pubDate>
		<dc:creator>@vambenepe</dc:creator>
				<category><![CDATA[Big picture]]></category>
		<category><![CDATA[Everything]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Off-topic]]></category>
		<category><![CDATA[Portability]]></category>
		<category><![CDATA[Social networks]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://stage.vambenepe.com/?p=1828</guid>
		<description><![CDATA[The previous post (compiling responses to my question on Twitter about why there seems to be more PaaS activity in public Clouds than private Clouds) is actually a slightly-edited repost of something I first posted on Google+. I posted it as &#8220;public&#8221; which, Google+ says, means &#8220;Visible to anyone (public on the web)&#8221;. Except it [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://stage.vambenepe.com/archives/1822">previous post</a> (compiling responses to my question on Twitter about why there seems to be more PaaS activity in public Clouds than private Clouds) is actually a slightly-edited repost of <a href="https://plus.google.com/#113739722131764438632/posts/bi9KkN9cTRN">something I first posted on Google+</a>.</p>
<p>I posted it as &#8220;public&#8221; which, Google+ says, means <em>&#8220;Visible to anyone (public on the web)&#8221;</em>. Except it isn&#8217;t. If I go to the link above in another browser (not logged to my Google account) I get nothing but an invitation to join Google+. How AOLy. How Facebooky. How non-Googly.</p>
<p>Maybe I&#8217;m doing something wrong. Or there&#8217;s a huge bug in Google+. Or I don&#8217;t understand what &#8220;public on the web&#8221; means. In any case, this is not what I need. I want to be able to point people on Twitter who saw my question (and, in some cases, responded to it) to a compilation of answers. Whether they use Google+ or not.</p>
<p>So I copy/pasted the compilation to my blog.</p>
<p>Then I realized that this is obviously what I should have done in the first place:</p>
<ul>
<li>It&#8217;s truly public.</li>
<li>It brings activity to my somewhat-neglected blog.</li>
<li>My blog is about IT management and Cloud, which is the topic at hand, my Google+ stream is about&#8230; nothing really so far.</li>
<li>The terms of use (for me as the writer and for my readers) are mine.</li>
<li>I can format the way I want (human-readable text that acts as a link as opposed to having to show the URL, what a concept!).</li>
<li>I know it will be around and available in an open format (you&#8217;re probably reading this in an RSS/Atom reader, aren&#8217;t you?)</li>
<li>There is no ad and never will be any.</li>
<li>I get the HTTP log if I care to see the traffic to the page.</li>
<li>Commenters can use pseudonyms!</li>
</ul>
<p>It hurts to admit it, but the thought process (or lack thereof) that led me to initially use Google+ goes along the lines of <em>&#8220;I have this Google+ account that I&#8217;m not really using and I am sympathetic to Google+ (for reasons <a href="http://www.theatlantic.com/technology/archive/2011/07/google-vs-facebook-the-trust-factor/241473/">explained by James Fallows</a> plus a genuine appreciation of the technical task) and, hey, here is something that could go on it so let&#8217;s put it there&#8221;</em>. As opposed to what it should have been: <em>&#8220;I have this piece of text full of links that I want to share, what would be the best place to do it?&#8221;</em>, which screams &#8220;blog!&#8221; as the answer.</p>
<p>I consider myself generally pretty good at resisting shiny objects, but obviously I still need to work on it. I&#8217;m back to my previous opinion on Google+: it&#8217;s nice and well-built but right now I don&#8217;t really have a use for it.</p>
<p>I used to say &#8220;I haven&#8217;t <em>found</em> a use for it&#8221; but why should I search for one?</p>
]]></content:encoded>
			<wfw:commentRss>http://stage.vambenepe.com/archives/1828/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Why is there more public PaaS than private PaaS?</title>
		<link>http://stage.vambenepe.com/archives/1822</link>
		<comments>http://stage.vambenepe.com/archives/1822#comments</comments>
		<pubDate>Fri, 05 Aug 2011 23:10:39 +0000</pubDate>
		<dc:creator>@vambenepe</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Everything]]></category>
		<category><![CDATA[IaaS]]></category>
		<category><![CDATA[Middleware]]></category>
		<category><![CDATA[PaaS]]></category>

		<guid isPermaLink="false">http://stage.vambenepe.com/?p=1822</guid>
		<description><![CDATA[I asked on Twitter: &#8220;For IaaS there&#8217;s a fair mix of public and private. But PaaS seems very titled towards public right now. Any idea why?&#8221; Here are the responses I collected: @wrecks47 challenged the proposition: I see the opposite. I observe much more activity in private PaaS rather than public PaaS. Others seemed to [...]]]></description>
			<content:encoded><![CDATA[<p>I <a href="https://twitter.com/#!/vambenepe/status/99569691609153536">asked</a> on Twitter: <em>&#8220;For IaaS there&#8217;s a fair mix of public and private.  But PaaS seems very titled towards public right now. Any idea why?&#8221;</em></p>
<p>Here are the responses I collected:</p>
<p><a href="https://twitter.com/#!/wrecks47/status/99570790625853440">@wrecks47</a> challenged the proposition:</p>
<ul>
<li><em>I see the opposite. I observe much more  activity in private PaaS rather than public PaaS.</em></li>
</ul>
<p>Others seemed to agree and offered these explanations:</p>
<p><a href="https://twitter.com/#!/reillyusa/status/99570744056483840">@reillyusa</a> and <a href="https://twitter.com/#!/mfratto/status/99570700842565632">@mfratto</a> think it&#8217;s because it&#8217;s too hard to build a private PaaS:</p>
<ul>
<li> <em>Complex  and not too many understandable reference architectures &#8211; personified  by why Azure appliance is taking so long to appear.</em></li>
<li><em>much harder to build a PaaS in house?</em></li>
</ul>
<p><a href="https://twitter.com/#!/ryanprociuk/status/99569954646540288">@ryanprociuk</a> and <a href="https://twitter.com/#!/garnaat/status/99573343249907712">@garnaat</a> think PaaS are very specific (though it&#8217;s not clear to me  how that explains its lacks of private deployment):</p>
<ul>
<li> <em>PaaS may not be as generic as IaaS, specific to a technical solution. IMO</em></li>
<li><em>I think a private PaaS might be very domain-specific. Current PaaS target a narrow range of scale which can be generic.</em></li>
</ul>
<p><a href="https://twitter.com/#!/somic/status/99572457639383041">@somic</a> thinks that in a private setting (presumably without specialized app  services) there isn&#8217;t much to gain by offering PaaS versus letting  people run a container on top of IaaS (though this begs the question why  don&#8217;t private PaaS provide these services like public PaaS do):</p>
<ul>
<li><em>imho today&#8217;s paas, in a private deployment, is just a webapp container &#8211; not revolutionary enough to justify a move</em></li>
</ul>
<p><a href="https://twitter.com/#!/robcheng/status/99580454948179968">@robcheng</a> thinks it&#8217;s mostly politics:</p>
<ul>
<li><em>the  same agendas that cause companies to embrace private cloud make them  suspicious of PaaS (whose jobs/teams become obsolete?)</em></li>
</ul>
<p><a href="https://twitter.com/#!/cloud_borat/status/99580988455272449">@cloud_borat</a>&#8216;s interpretation is just that middleware marketers aren&#8217;t as savvy as their infrastructure counterparts.</p>
<ul>
<li><em>our expert analyst Igor say that because app server marketing people suck more and not label appserver as private PaaS</em></li>
</ul>
<p>Thanks all!</p>
<p>[UPDATED 2011/7/5: This was originally a Google+ post, but it really belongs as a blog post here so I am glad this is where you are reading it. The <a href="http://stage.vambenepe.com/archives/1828">next post</a> explains why.] </p>
]]></content:encoded>
			<wfw:commentRss>http://stage.vambenepe.com/archives/1822/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>BSM with Oracle Enterprise Manager 11g</title>
		<link>http://stage.vambenepe.com/archives/1820</link>
		<comments>http://stage.vambenepe.com/archives/1820#comments</comments>
		<pubDate>Wed, 27 Jul 2011 07:02:46 +0000</pubDate>
		<dc:creator>@vambenepe</dc:creator>
				<category><![CDATA[Application Mgmt]]></category>
		<category><![CDATA[Book review]]></category>
		<category><![CDATA[BSM]]></category>
		<category><![CDATA[Everything]]></category>
		<category><![CDATA[IT Systems Mgmt]]></category>
		<category><![CDATA[Mgmt integration]]></category>
		<category><![CDATA[Modeling]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[People]]></category>

		<guid isPermaLink="false">http://stage.vambenepe.com/?p=1820</guid>
		<description><![CDATA[My colleagues Ashwin Karkala and Govinda Sambamurthy have written a book about modeling and managing business services using the current version of Enterprise Manager Grid Control (11g R1). Nobody would have been better qualified for this task since they built a lot of the features they describe. I acted as a technical reviewer for this [...]]]></description>
			<content:encoded><![CDATA[<p>My colleagues Ashwin Karkala and Govinda Sambamurthy have written a book about modeling and managing business services using the current version of Enterprise Manager Grid Control (11g R1). Nobody would have been better qualified for this task since they built a lot of the features they describe. I acted as a technical reviewer for this book and very much enjoyed reading it in the process.</p>
<p>Whether you are a current EM user who wants to make sure you know and use the BSM features or someone just considering EM for that task, this is the book you want.</p>
<p>The full title is <a href="https://www.packtpub.com/oracle-enterprise-manager-grid-control-11g-r1/book">Oracle Enterprise Manager Grid Control 11g R1: Business Service Management</a>.</p>
<p>As a bonus feature, and for a limited time only, if you purchase this book over the next 48 hours you get to follow the authors, <a href="https://twitter.com/#!/ashwinkarkala">@ashwinkarkala</a> and <a href="https://twitter.com/#!/govindars">@govindars</a> on Twitter at no extra cost! A $2,000 value (at least).</p>
]]></content:encoded>
			<wfw:commentRss>http://stage.vambenepe.com/archives/1820/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AJAX+REST as the latest architectural mirage</title>
		<link>http://stage.vambenepe.com/archives/1801</link>
		<comments>http://stage.vambenepe.com/archives/1801#comments</comments>
		<pubDate>Mon, 25 Jul 2011 21:02:09 +0000</pubDate>
		<dc:creator>@vambenepe</dc:creator>
				<category><![CDATA[API]]></category>
		<category><![CDATA[Application Mgmt]]></category>
		<category><![CDATA[Everything]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Middleware]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Protocols]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Web services]]></category>

		<guid isPermaLink="false">http://stage.vambenepe.com/?p=1801</guid>
		<description><![CDATA[If the Web wasn&#8217;t tragically amnesic, I could show you 15-year old articles explaining how XSLT was about to revolutionize Web applications. In that vision, your Web server would return an XML file with all the data; and alongside that XML, an XSLT (which describes how to transform the XML into HTML). The browser would [...]]]></description>
			<content:encoded><![CDATA[<p>If the Web wasn&#8217;t tragically amnesic, I could show you 15-year old articles explaining how XSLT was about to revolutionize Web applications. In that vision, your Web server would return an XML file with all the data; and alongside that XML, an XSLT (which describes how to transform the XML into HTML). The browser would run it on the XML data and display the resulting HTML. Voila! This was going to bring all kinds of benefits over the old server-spits-out-HTML model. The XML could be easily consumed by other applications (not just humans) and different XSLTs could be used to adapt to the various client platforms.</p>
<p>This hasn&#8217;t panned out. At least not in that form. Enters AJAX. The XML doc is still there, though it usually wants to be called JSON. The XSLT is now a big pile of JavaScript. That model has many advantages over the XSLT model, the first one being that you don&#8217;t have to use XSLT (and I&#8217;m talking as someone who actually enjoys XPath). It&#8217;s a lot more flexible, you can do small updates and partial page refresh, etc. But does it also maintain the architectural cleanliness of having a data API separated from the rendering logic?</p>
<p>Sometimes. Lori MacVittie <a href="http://devcentral.f5.com/weblogs/macvittie/archive/2010/07/08/new-three-tiered-architecture-changes-everything.aspx">describes that model</a>. That&#8217;s how the cool kids do it and they make sure to repeat in every sentence that their Web app uses the same API as 3rd party apps. The Twitter web app, for example, is in this category, as Mike Loukides <a href="http://radar.oreilly.com/2010/11/new-directions-in-web-architec.html">describes</a>. As is Apache Orion (the diagram below comes from the <a href="http://wiki.eclipse.org/Orion/Documentation/Developer_Guide/Architecture">Orion architecture</a>)</p>
<p><a href="http://wiki.eclipse.org/Image:Orion_Architecture_1.jpg"><img class="alignnone size-full wp-image-1805" title="Orion Architecture" src="http://stage.vambenepe.com/wp-content/uploads/Orion_Architecture_1.jpg" alt="" width="504" height="378" /></a></p>
<p>That&#8217;s one model, and it is conceptually very elegant. One API, many consumers. The Web site of the service provider is just another consumer. Easy versioning. An application management dream (one API to manage, a well-defined set of operations and flows to test, trace and diagnose). From a security perspective, it offers the smallest possible attack surface. Easy interoperability between different applications consuming the same API. All goodies.</p>
<p>And not just theoretical goodies, there are situations where it is the right model.</p>
<p>And yet I am still dubious that it&#8217;s going to be the dominant model. Clients of the same service support different interaction models and it&#8217;s hard for a single API to work well for all without sprawling out of control (to the point where calling it &#8220;one API&#8221; becomes a fig leaf). But if you want to keep the API surface small, you might end up with <a href="http://www.subbu.org/blog/2011/01/chatty-apps">chatty apps</a>. Not to mention the temptation for service providers to give their software special access over those of their partners/competitors (e.g. other Twitter clients).</p>
<p>Take Google+. As of this writing, the web site is up and obviously very AJAX-driven. And yet the API is not available. There maybe non-technical reasons for it, but if the Google+ web site was just another consumer of the API then wouldn&#8217;t, by definition, the API already be up?</p>
<p>The decision of whether to expose the interface consumed by your AJAX app as an open API also has ramifications in the implementation strategy. Such an approach pretty much rules out using frameworks that integrate server-side and browser-side development and pushes you towards writing them separately (and thus controlling all the details of how they interact so that you can make sure it happens in a way that&#8217;s consumable by 3rd parties). Though the reverse is not true. You may decide that you don&#8217;t want that API exposed to 3rd parties and yet still manually define it and keep your server-side and browser-side code at arms length.</p>
<p>If you decide to go the &#8220;one REST API for all&#8221; route and forgo frameworks that integrate browser code and server code, how much are you leaving on the table? After all, preeminent developers love to sneer at such frameworks. But that&#8217;s a short-sighted view.</p>
<p>Some tennis players think of their racket as one tool. Others, who own a stringing machine, think of the frame and the string as two tools, that they expertly combine. Similarly, not all Web developers want to think of their client framework and their server framework as two tools. Using them as one, pre-assembled, tool may not provide the most optimal code, but may still be the optimal use of your development resources.</p>
<p>There&#8217;s a bit of <a href="http://en.wikipedia.org/wiki/David_Ricardo">Ricardian</a> angle to this. Even if you can produce better JavaScript (by &#8220;better&#8221; I mean better suited to your need) than the framework, you have a higher <em>Comparative Advantage</em> in developing business logic than JavaScript so you should focus your efforts there and &#8220;import&#8221; the JavaScript from the framework (which is utterly incompetent in creating business logic).</p>
<p>Just like, in <a href="http://en.wikipedia.org/wiki/Comparative_advantage#Origins_of_the_theory">Ricardo&#8217;s famous example</a>, Portugal is better off importing its cloth from England (and focusing on producing wine) even though it is, in absolute term, more able to produce cloth than England is.</p>
<p>Which contradicts <a href="http://raibledesigns.com/rd/entry/re_moving_from_spring_to">Matt Raible&#8217;s statement</a> that &#8220;the only people that like Ajax integrated into their web frameworks are programmers scared of JavaScript (who probably shouldn&#8217;t be developing your UI).&#8221; His characterization is sometimes correct, but not absolute as he asserts.</p>
<p>I wouldn&#8217;t write Google+ with <a href="http://www.oracle.com/technetwork/developer-tools/adf/overview/index.html">ADF</a>, but it provides benefits to large class of applications, especially internal applications. Where you&#8217;re willing to give away some design control for the benefit of faster development and better-tested JavaScript.</p>
<p>Then there is the orthogonal question of whether AJAX technologies are well-suited to a RESTful architecture. You may think it&#8217;s obvious, since both are natively designed for the Web. But a wine glass and a steering wheel are both natively designed for the human hand; that doesn&#8217;t make them a good pair. Here&#8217;s one way to plant doubt in your mind: if AJAX was a natural fit for REST, would we need <a href="http://www.tbray.org/ongoing/When/201x/2011/02/09/Hash-Blecch">the atrocity known as the hashbang</a>? Would AJAX applications need to be <a href="http://code.google.com/web/ajaxcrawling/docs/getting-started.html">made</a> crawlable? Reuven Cohen <a href="http://www.elasticvapor.com/2010/06/dichotomy-of-ajax-and-restful-apis.html">asserts</a> that &#8220;AJAX is quite possibly the worst way to consume a RESTful API&#8221;, but unfortunately he doesn&#8217;t develop the demonstration. Maybe a topic for a future post.</p>
<p>&#8220;Because that&#8217;s the way it&#8217;s done now&#8221; was a bad reason to transform perfectly-functional XML-RPC into &#8220;message-oriented&#8221; SOAP. It also is a bad reason for assuming that your Web application needs to be AJAX-on-REST.</p>
<p>I&#8217;ll leave the last word to Stefan Tilkov: &#8220;Don&#8217;t confuse integration architecture with application architecture.&#8221; His talk doesn&#8217;t focus on how to build Web UIs, but the main lesson applies. Here&#8217;s <a href="http://www.infoq.com/presentations/Pragmatic-SOA">the video</a> and here are <a href="http://qconlondon.com/dl/qcon-london-2010/slides/StefanTilkov_PragmaticSOABeyondBuzzwordsAndFlameWars.pdf">the slides</a> (warning: Flash and PDF, respectively, which is sadly ironic for such a good presentation about Web technology).</p>
]]></content:encoded>
			<wfw:commentRss>http://stage.vambenepe.com/archives/1801/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Yoga framework for REST-like partial resource access</title>
		<link>http://stage.vambenepe.com/archives/1787</link>
		<comments>http://stage.vambenepe.com/archives/1787#comments</comments>
		<pubDate>Wed, 22 Jun 2011 07:14:26 +0000</pubDate>
		<dc:creator>@vambenepe</dc:creator>
				<category><![CDATA[API]]></category>
		<category><![CDATA[CMDBf]]></category>
		<category><![CDATA[Everything]]></category>
		<category><![CDATA[Graph query]]></category>
		<category><![CDATA[IT Systems Mgmt]]></category>
		<category><![CDATA[Manageability]]></category>
		<category><![CDATA[Mgmt integration]]></category>
		<category><![CDATA[Modeling]]></category>
		<category><![CDATA[Protocols]]></category>
		<category><![CDATA[Query]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[SOAP]]></category>
		<category><![CDATA[SOAP header]]></category>
		<category><![CDATA[Specs]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[Web services]]></category>
		<category><![CDATA[WS-Management]]></category>
		<category><![CDATA[WS-ResourceCatalog]]></category>
		<category><![CDATA[WS-ResourceTransfer]]></category>
		<category><![CDATA[WS-Transfer]]></category>
		<category><![CDATA[XMLFrag]]></category>
		<category><![CDATA[XPath]]></category>

		<guid isPermaLink="false">http://stage.vambenepe.com/?p=1787</guid>
		<description><![CDATA[A tweet by Stefan Tilkov brought Yoga to my attention, &#8220;a framework for supporting REST-like URI requests with field selectors&#8221;. As the name suggests, &#8220;Yoga&#8221; lets you practice some contortions that would strain a run-of-the-mill REST programmer. Basically, you can use a request like GET /teams/4234.json?selector=:(members:(id,name,birthday) to retrieve the id, name and birthday of all [...]]]></description>
			<content:encoded><![CDATA[<p>A <a href="https://twitter.com/stilkov/status/83241462774509568">tweet by Stefan Tilkov</a> brought <a href="https://github.com/skyscreamer/yoga">Yoga</a> to my attention, <em>&#8220;a framework for supporting REST-like URI requests with field selectors&#8221;</em>.</p>
<p>As the name suggests, &#8220;Yoga&#8221; lets you practice some contortions that would strain a run-of-the-mill REST programmer. Basically, you can use a request like</p>
<pre>GET /teams/4234.json?selector=:(members:(id,name,birthday)</pre>
<p>to retrieve the id, name and birthday of all members of a softball team, rather than having to retrieve the team roaster and then do a GET on each and every team member to retrieve their name and birthday (and lots of other information you don&#8217;t care about).</p>
<p>Where have I seen this before? That use case came up over and over again when we were using SOAP Web services for resource management. I have personally crafted support for it a few times. Using this blog to support my memory, here is the list of SOAP-related management efforts listed in the <a href="http://stage.vambenepe.com/archives/700">&#8220;post-mortem on the previous IT management revolution&#8221;</a>:</p>
<p><a href="http://xml.coverpages.org/ni2003-07-21-a.html">WSMF</a>, <a href="http://www.ibm.com/developerworks/library/specification/ws-manage/">WS-Manageability</a>, <a href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsdm">WSDM</a>, <a href="http://www.ggf.org/documents/GFD.15.pdf">OGSI</a>, <a href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsrf">WSRF</a>, <a href="http://www.dmtf.org/standards/wsman">WS-Management</a>, <a href="http://schemas.xmlsoap.org/ws/2006/08/resourceTransfer/WS-ResourceTransfer.pdf">WS-ResourceTransfer</a>, <a href="http://www.w3.org/2002/ws/ra/">WSRA</a>, <a href="http://schemas.xmlsoap.org/ws/2007/05/ResourceCatalog/WS-ResourceCatalog.pdf">WS-ResourceCatalog</a>, <a href="http://www.dmtf.org/standards/published_documents/DSP0252_1.0.0c.pdf">CMDBf</a></p>
<p>Each one of them supports this &#8220;partial access&#8221; use case: WS-Management has :</p>
<p><a href="http://xml.coverpages.org/ni2003-07-21-a.html">WSMF</a>, <a href="http://www.ibm.com/developerworks/library/specification/ws-manage/">WS-Manageability</a>, <a href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsdm">WSDM</a>, <a href="http://www.ggf.org/documents/GFD.15.pdf">OGSI</a>, <a href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsrf">WSRF</a>, <a href="http://www.dmtf.org/standards/wsman">WS-Management</a>, <a href="http://schemas.xmlsoap.org/ws/2006/08/resourceTransfer/WS-ResourceTransfer.pdf">WS-ResourceTransfer</a>, <a href="http://www.w3.org/2002/ws/ra/">WSRA</a>, <a href="http://schemas.xmlsoap.org/ws/2007/05/ResourceCatalog/WS-ResourceCatalog.pdf">WS-ResourceCatalog</a>, <a href="http://www.dmtf.org/standards/published_documents/DSP0252_1.0.0c.pdf">CMDBf</a></p>
<p>Each one of them supports this &#8220;partial access&#8221; use case: WS-Management has <em>SelectorSet</em>, WSRF has <em>ResourceProperties</em>, CMDBf has <em>ContentSelector</em>, WSRA has <em>Fragments</em>, etc.</p>
<p>Years ago, I also created the <a href="http://stage.vambenepe.com/archives/114"><em>XMLFrag</em> SOAP header</a> to attack a more general version of this problem. There may be something to salvage in all this for people willing to break REST orthodoxy (with the full knowledge of what they gain and what they loose).</p>
<p>I&#8217;m not being sarcastic when I ask &#8220;where have I seen this before&#8221;. The problem hasn&#8217;t gone away just because we failed to solve it in a pragmatic way with SOAP. If the industry is moving towards HTTP+JSON then we&#8217;ll need to solve it again on that ground and it&#8217;s no surprise if the solution looks similar.</p>
<p>I have a sense of what&#8217;s coming next. XPath-for-JSON-over-the-wire. See, getting individual properties is nice, but sometimes you want more. You want to select only the members of the team who are above 14 years old. Or you just want to count these members rather than retrieve specific information about them individually. Or you just want a list of all the cities they live in. Etc.</p>
<p>But even though we <em>want</em> this, I am not convinced (anymore) that we <em>need</em> it.</p>
<p>What I know we need is better support for graph queries. Kingsley Idehen once provided a good explanation of why that is and <a href="http://stage.vambenepe.com/archives/173">how SPARQL and XML query languages (or now JSON query languages) complement one another</a> (wouldn&#8217;t that be a nice trifecta: RDF/OWL&#8217;s precise modeling, JSON&#8217;s friendly syntax and SPARQL&#8217;s graph support &#8211; but I digress).</p>
<p>Going back to partial resource access, the last feature is the biggie: <a href="http://stage.vambenepe.com/archives/1665">a fine-grained mechanism to update resource properties</a>. That one is extra-hard.</p>
]]></content:encoded>
			<wfw:commentRss>http://stage.vambenepe.com/archives/1787/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Backward-looking API ToS vs. forwarding-looking API usage</title>
		<link>http://stage.vambenepe.com/archives/1781</link>
		<comments>http://stage.vambenepe.com/archives/1781#comments</comments>
		<pubDate>Mon, 13 Jun 2011 00:40:15 +0000</pubDate>
		<dc:creator>@vambenepe</dc:creator>
				<category><![CDATA[API]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Everything]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Protocols]]></category>

		<guid isPermaLink="false">http://stage.vambenepe.com/?p=1781</guid>
		<description><![CDATA[From the developer&#8217;s perspective, most terms of service (ToS) documents for public APIs contain only constraints and no real permission. That&#8217;s because they generally don&#8217;t come with any guarantee about the future. At best, they tell you what you were authorized to do yesterday. Since the version you&#8217;re looking at may already be outdated, it [...]]]></description>
			<content:encoded><![CDATA[<p>From the developer&#8217;s perspective, most terms of service (ToS) documents for public APIs contain only constraints and no real permission. That&#8217;s because they generally don&#8217;t come with any guarantee about the future. At best, they tell you what you were authorized to do yesterday. Since the version you&#8217;re looking at may already be outdated, it tells you nothing about what you can do now or tomorrow. That perspective is often ignored when debating a change in ToS. The new version may forbid you from doing something that was not forbidden before, but it&#8217;s not actually taking anything away from you. The only thing it would take away from you is the right to do something from now on, but you were never granted such right over that period of time.</p>
<p>For example, the <a href="http://dev.twitter.com/pages/api_terms">Twitter API ToS</a>:</p>
<p style="padding-left: 30px;"><em>&#8220;The Rules will evolve along with our ecosystem as developers continue to innovate and find new, creative ways to use the Twitter API, so please check back periodically to see the most current version.&#8221;</em></p>
<p>and more specifically</p>
<p style="padding-left: 30px;"><em>&#8220;Twitter may update or modify the Twitter API, Rules, and other terms and conditions, including the Display Guidelines, from time to time its sole discretion by posting the changes on this site or by otherwise notifying you (such notice may be via email). You acknowledge that these updates and modifications may adversely affect how your Service accesses or communicates with the Twitter API. If any change is unacceptable to you, your only recourse is to terminate this agreement by ceasing all use of the Twitter API and Twitter Content. Your continued access or use of the Twitter API or any Twitter Content will constitute binding acceptance of the change.&#8221;</em></p>
<p>Changes in the terms of service can have a major effect on consuming application, going as far as making the whole purpose of the application impossible. For example, any Twitter app is a the mercy of the next corporate strategy change decided at Twitter HQ. That can happen without any change whatsoever to the API from a technical perspective.</p>
<p>If building your business on a proprietary API is sharecropping, then changes in ToS are the &#8220;droit de cuissage&#8221; (a.k.a &#8220;<a href="http://en.wikipedia.org/wiki/Droit_du_seigneur">droit du seigneur</a>&#8220;) that comes with it. Be ready for it to be exercised at any point.</p>
<p>Even in the cases where the ToS contain a guarantee over time, there is often enough language to allow the provider to wiggle out of it. Case in point, the recent <a href="http://googlecode.blogspot.com/2011/05/spring-cleaning-for-some-of-our-apis.html">decommission of the Google Translate API</a>.</p>
<p>In the <a href="http://code.google.com/apis/language/translate/terms.html">API ToS</a>, Google includes a generous three years deprecation window:</p>
<p style="padding-left: 30px;"><em>&#8220;If Google in its discretion chooses to cease providing the current version of the Service whether through discontinuation of the Service or by upgrading the Service to a newer version, the current version of the Service will be deprecated and become a Deprecated Version of the Service. Google will issue an announcement if the current version of the Service will be deprecated. For a period of 3 years after an announcement (the &#8220;Deprecation Period&#8221;), Google will use commercially reasonable efforts to continue to operate the Deprecated Version of the Service and to respond to problems with the Deprecated Version of the Service deemed by Google in its discretion to be critical. During the Deprecation Period, no new features will be added to the Deprecated Version of the Service.&#8221;</em></p>
<p>But further down, Google reserves the right to do away with the Deprecation Period for several reasons, among which:</p>
<p style="padding-left: 30px;"><em>&#8220;- providing the Deprecated Version of the Service could create a substantial economic burden on Google as determined by Google in its reasonable good faith judgment; or</em><br />
<em> &#8211; providing the Deprecated Version of the Service could create a security risk or material technical burden upon Google as determined by Google in its reasonable good faith judgment.&#8221;</em></p>
<p>A &#8220;substantial economic burden&#8221; or a &#8220;material technical burden&#8221;. I am not a lawyer, but good luck going to court against Google arguing that maintaining the API doesn&#8217;t provide any such burden if Google claims it does (if I was a Google lawyer, I&#8217;d ask &#8220;if there&#8217;s no such burden, why don&#8217;t you provide it yourself?&#8221;).</p>
<p>And that&#8217;s exactly what Google is claiming in the case of the Translate API. There&#8217;s a reason why the words &#8220;substantial economic burden&#8221; are included in this statement at the very top of <a href="http://code.google.com/apis/language/translate/overview.html">the home page for the Google Translate API</a>.</p>
<p style="padding-left: 30px;"><em>&#8220;Important: The Google Translate API has been officially deprecated as of May 26, 2011. Due to the substantial economic burden caused by extensive abuse, the number of requests you may make per day will be limited and the API will be shut off completely on December 1, 2011. For website translations, we encourage you to use the Google Translate Element.&#8221;</em></p>
<p>[For more information about Google's translation services and what might really be behind this change, I recommend reading this <a href="http://kv-emptypages.blogspot.com/2011/06/analysis-of-shutdown-announcements-of.html">interesting analysis</a>. Whether or not the author is guessing right, it's an interesting perspective on how the marriage between Search and Advertising turns into a love triangle (with Translation as the third party) when you take a worldwide perspective.]</p>
<p>Protection against such changes (changes in ToS or the API going away entirely) would be a nice value-add for the companies that offer services around managing API usage. I vaguely remember an earlier announcement about <a href="http://apigee.com/">Apigee</a> providing a way to invoke the Twitter API that was sheltered from Twitter&#8217;s throttling (presumably via some agreement between Apigee and Twitter). Maybe Apigee can also negotiate long-term bidirectional ToS agreements with API providers on behalf of its customers. If I was building a business on top of a third-party service like Twitter, I&#8217;d probably value that kind of guarantee even more than the cool technical tools Apigee provides around API usage.</p>
<p>What&#8217;s more important in an API? Whether it&#8217;s REST or SOAP or whether you can count on using it for some time in the future?</p>
]]></content:encoded>
			<wfw:commentRss>http://stage.vambenepe.com/archives/1781/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Comments on &#8220;The Good, the Bad, and the Ugly of REST APIs&#8221;</title>
		<link>http://stage.vambenepe.com/archives/1777</link>
		<comments>http://stage.vambenepe.com/archives/1777#comments</comments>
		<pubDate>Tue, 07 Jun 2011 04:29:15 +0000</pubDate>
		<dc:creator>@vambenepe</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Everything]]></category>
		<category><![CDATA[Implementation]]></category>
		<category><![CDATA[Manageability]]></category>
		<category><![CDATA[Mgmt integration]]></category>
		<category><![CDATA[Modeling]]></category>
		<category><![CDATA[Protocols]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[SOAP]]></category>
		<category><![CDATA[Specs]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://stage.vambenepe.com/?p=1777</guid>
		<description><![CDATA[A survivor of intimate contact with many Cloud APIs, George Reese shared his thoughts about the experience in a blog post titled &#8220;The Good, the Bad, and the Ugly of REST APIs&#8220;. Here are the highlights of his verdict, with some comments. &#8220;Supporting both JSON and XML [is good]&#8220; I disagree: Two versions of a [...]]]></description>
			<content:encoded><![CDATA[<p>A survivor of intimate contact with many Cloud APIs, George Reese shared his thoughts about the experience in a blog post titled &#8220;<a href="http://broadcast.oreilly.com/2011/06/the-good-the-bad-the-ugly-of-rest-apis.html">The Good, the Bad, and the Ugly of REST APIs</a>&#8220;.</p>
<p>Here are the highlights of his verdict, with some comments.</p>
<p><strong>&#8220;Supporting both JSON and XML [is good]&#8220;</strong></p>
<p>I disagree: <a href="http://stage.vambenepe.com/archives/1311 ">Two versions of a protocol is one too many</a> (the post behind this link doesn&#8217;t specifically discuss the JSON/XML dichotomy but its logic applies to that situation, as Tim Bray <a href="http://stage.vambenepe.com/archives/1311#comment-103301">pointed out in a comment</a>).</p>
<p><strong>&#8220;REST is good, SOAP is bad&#8221;</strong></p>
<p>Not necessarily true for all integration projects, but in the context of Cloud APIs, I agree. As long as it&#8217;s &#8220;pragmatic REST&#8221;, not the kind that involves <a href="http://stage.vambenepe.com/archives/1300">silly contortions to please the REST police</a>.</p>
<p><strong>&#8220;Meaningful error messages help a lot&#8221;</strong></p>
<p>True <a href="http://stage.vambenepe.com/archives/1504">and yet rarely done properly</a>.</p>
<p><strong>&#8220;Providing solid API documentation reduces my need for your help&#8221;</strong></p>
<p>Goes without saying (for a good laugh, check out the commenter on George&#8217;s blog entry who wrote that &#8220;if you document an API, you API immediately ceases to have anything to do with REST&#8221; which I want to believe was meant as a joke but appears written in earnest).</p>
<p><strong>&#8220;Map your API model to the way your data is consumed, not your data/object model&#8221;</strong></p>
<p>Very important. This is a core part of <a href="http://stage.vambenepe.com/archives/42">Humble Architecture</a>.</p>
<p><strong>&#8220;Using OAuth authentication doesn&#8217;t map well for system-to-system interaction&#8221;</strong></p>
<p>Agreed.</p>
<p><strong>&#8220;Throttling is a terrible thing to do&#8221;</strong></p>
<p>I don&#8217;t agree with that sweeping statement, but when George expands on this thought what he really seems to mean is more along the lines of &#8220;if you&#8217;re going to throttle, do it smartly and responsibly&#8221;, which I can&#8217;t disagree with.</p>
<p><strong>&#8220;And while we&#8217;re at it, chatty APIs suck&#8221;</strong></p>
<p>Yes. And one of the main causes of API chattiness is fear of angering the REST gods by violating the sacred ritual. Either ignore that fear or, if you can&#8217;t, hire an expensive REST consultant to rationalize a less-chatty design with some media-type black magic and REST-bless it.</p>
<p>Finally George ends by listing three &#8220;ugly&#8221; aspects of bad APIs (&#8220;returning HTML in your response body&#8221;, &#8220;failing to realize that a 4xx error means I messed up and a 5xx means you messed up&#8221; and &#8220;side-effects to 500 errors are evil&#8221;) which I agree on but I see those as a continuation of the earlier point about paying attention to the error messages you return (because that&#8217;s what the developers who invoke your API will be staring at most of the time, even if they represents only 0.01% of the messages you return).</p>
<p>What&#8217;s most interesting is what&#8217;s NOT in George&#8217;s list. No nit-picking about REST purity. That tells you something about what matters to implementers.</p>
<p>If I haven&#8217;t yet exhausted my quota of self-referential links, you can read <a href="http://stage.vambenepe.com/archives/1161">REST in practice for IT and Cloud management</a> for more on the topic.</p>
]]></content:encoded>
			<wfw:commentRss>http://stage.vambenepe.com/archives/1777/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>&#8220;Toyota Friend&#8221;: It&#8217;s cool! It&#8217;s social! It&#8217;s cloud! It&#8217;s&#8230; spam.</title>
		<link>http://stage.vambenepe.com/archives/1766</link>
		<comments>http://stage.vambenepe.com/archives/1766#comments</comments>
		<pubDate>Tue, 24 May 2011 05:47:48 +0000</pubDate>
		<dc:creator>@vambenepe</dc:creator>
				<category><![CDATA[Automation]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Everything]]></category>
		<category><![CDATA[Off-topic]]></category>

		<guid isPermaLink="false">http://stage.vambenepe.com/?p=1766</guid>
		<description><![CDATA[Michael Coté has it right: &#8220;all roads lead to better junk mail.&#8221; We can take &#8220;road&#8221; literally in this case since Toyota has teamed up with Salesforce.com to &#8220;build Toyota Friend social network for Toyota customers and their cars&#8220;. If you&#8217;re tired of &#8220;I am getting a fat-free decaf latte at Starbucks&#8221; FourSquare messages, wait [...]]]></description>
			<content:encoded><![CDATA[<p>Michael Coté has it right: &#8220;<a href="http://www.redmonk.com/cote/2010/06/14/betterjunkmail/"></a><em><a href="http://www.redmonk.com/cote/2010/06/14/betterjunkmail/">all roads lead to better junk mail.</a></em>&#8221;</p>
<p>We can take &#8220;road&#8221; literally in this case since Toyota has teamed up with Salesforce.com to &#8220;<a href="http://www.prnewswire.com/news-releases/salesforcecom-and-toyota-form-strategic-alliance-to-build-toyota-friend-social-network-for-toyota-customers-and-their-cars-122430763.html"><em>build Toyota Friend social network for Toyota customers and their cars</em></a>&#8220;.</p>
<p>If you&#8217;re tired of <em>&#8220;I am getting a fat-free decaf latte at Starbucks&#8221;</em> FourSquare messages, wait until you start receiving <em>&#8220;my car is getting a lead-free 95-octane pure arabica gas refill at Chevron&#8221;</em>. That&#8217;s because Toyota owners will get to &#8220;<em>choose to extend their communication to family, friends, and others through public social networks such as Twitter and Facebook</em>&#8220;.</p>
<p>Leaving &#8220;family and friends&#8221; aside (they will beg you to), the main goal of this social network is to connect <em>&#8220;Toyota customers with their cars, their dealership, and with Toyota&#8221;</em>. And what for purpose? The press release has an example:</p>
<blockquote><p><em>For example, if an EV or PHV is running low on battery power, Toyota Friend would notify the driver to re-charge in the form of a &#8220;tweet&#8221;-like alert.</em></p></blockquote>
<p>That&#8217;s pretty handy, but every car I&#8217;ve ever owned has sent me a &#8220;tweet-like&#8221; alert in the form of a light on the dashboard when I got low on fuel.</p>
<p>Toyota&#8217;s partner, Salesforce, also <a href="http://cloudblog.salesforce.com/2011/05/the-truth-of-things-is-in-the-cloud.html">shares its excitement</a> about this (they bring the <a href="http://www.diversity.net.nz/toyota-chatterto-salesforce-it-matters/2011/05/22/">Cloud angle</a>), and offers another example of its benefits:</p>
<blockquote><p><em>Would you like to know if your dealer&#8217;s service department has a big empty space on its calendar tomorrow morning, and is willing to offer you a sizable discount on routine service if you&#8217;ll bring the car in then instead of waiting another 100 miles?</em></p></blockquote>
<p>Ten years ago, the fancy way to justify spamming people was to say that you offered &#8220;personalization&#8221;. Look at <a href="http://www.businessweek.com/adsections/toshiba/visionaryleaders.htm">this old advertisement</a> (which lists Toyota as a customer) about how &#8220;personalization&#8221; is the way to better connect with customers and get them to buy more. Today, we&#8217;ve replaced &#8220;personalization&#8221; with &#8220;social media&#8221; but it&#8217;s the exact same value proposition to the company (coupled with a shiny new way to feed it to its customers).</p>
<p>BTW, the company behind the advertisement? Broadvision. Remember <a href="http://finance.yahoo.com/echarts?s=BVSN+Interactive#symbol=bvsn;range=my;compare=;indicator=volume;charttype=area;crosshair=on;ohlcvalues=0;logscale=off;source=;">Broadvision</a>? Internet bubble darling, its share price hit over $20,000 (split-adjusted to today). According to the ad above, it was at the time <em>&#8220;the world&#8217;s second leading e-commerce vendor in terms of licensing revenues, just behind Netscape and ahead of Oracle, IBM, and even Microsoft&#8221;</em> and <em>&#8220;the Internet commerce firm listed in Bloomberg&#8217;s Top 100 Stocks&#8221;</em>. Today, it&#8217;s considered a Micro-cap stock. Which reminds me, I still haven&#8217;t gotten around to buying some LinkedIn…</p>
<p>Notice who&#8217;s missing from the list of people you&#8217;ll connect to using Toyota&#8217;s social network? Independent repair shops and owners forums (outside Toyota). Now, if this social network was used to let me and third-party shops retrieve all diagnostic information about my car and all related knowledge from Toyota and online forums that would be valuable. But that&#8217;s the last thing on earth Toyota wants.</p>
<p>A while ago, a strange-looking icon lit up on the dashboard of my Prius. Looking at it, I had no idea what it meant. A Web search (which did not land on Toyota&#8217;s site of course) told me it indicated low tire pressure (I had a slow leak). Even then, I had no idea which tire it was. Now at that point it&#8217;s probably a good idea to check all four of them anyway, but you&#8217;d think that with two LCD screens available in the car they&#8217;d have a way to show you precise and accurate messages rather than cryptic icons. It&#8217;s pretty clear that the whole thing is designed with the one and only goal of making you go to your friendly Toyota dealership.</p>
<p>Which is why, without having seen this &#8220;Toyota Friend&#8221; network in action, I am pretty sure I know it will be just another way to spam me and try to scare me away from bringing my car anywhere but to Toyota.</p>
<p>Dear Toyota, I don&#8217;t want &#8220;social&#8221;, I want &#8220;open&#8221;.</p>
<p>In the meantime, and since you care about my family, please fix the problem that is infuriating my Japanese-American father in law: that the voice recognition in his Japan-made car doesn&#8217;t understand his accented English. Thanks.</p>
]]></content:encoded>
			<wfw:commentRss>http://stage.vambenepe.com/archives/1766/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 1.191 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2012-02-09 17:21:09 -->

