Nick Carr gets at much of the flawed thinking on the New York Times metering content. In essence, The Times are introducing a new product, at a new price point. Another way of thinking about it is they have attracted a monumentally large number of beta users and are now looking to convert those to paying customers. More from Nick…
Jarvis might want to spend some time reading about the fundamentals of pricing, particularly Hal Varian’s classic work on the "versioning" of digital goods. Varian is a distinguished economist who teaches at Berkeley and is also now Google’s chief economist. Here’s a little of what he says about "versioning information goods," which is extremely pertinent to the Times’s strategy as well as the news and media business in general:
One prominent feature of information goods is that they have large fixed costs of production, and small variable costs of reproduction. Cost-based pricing makes little sense in this context; value-based pricing is much more appropriate. Different consumers may have radically different values for a particular information good, so techniques for differential pricing become very important … [One] particular aspect of differential pricing [is] known as quality discrimination or versioning … The point of versioning is to get the consumers to sort themselves into different groups according to their willingness to pay. Consumers with high willingness to pay choose one version, while consumers with lower willingnesses to pay choose a different version. The producer chooses the versions so as to induce the consumers to “self select” into appropriate categories …
[Consider the case] in which the seller knows something about the distribution of willingness to pay [WTP] in the population, but cannot identify the willingness to pay of a given consumer. In this case the seller cannot base its price on an exogenous observable characteristic such as membership in some group, but can base its price on an endogenous characteristic such as the quality of the choice the consumer purchases. The appropriate strategy for the seller in this situation is to choose two qualities and associated prices and offer them to the consumers. Each of the different consumer types will [select] one of the two quality/price pairs. The seller wants to choose the qualities and prices of the packages offered so as to maximize profit.
The intention is to get the consumers to self-select into the high- and low-WTP groups by setting price and quality appropriately. That is, the seller wants to choose price/quality packages so that the consumers with high WTP choose the high-price/high-quality package, and the consumers with low WTP choose the low-price/low-quality package.
here have been rumors that a December 2010 exstneion is a possible bill proposal but no one knows for sure. The recent strong housing data suggest that the credit will not be extended as the Obama administration wants to try and rein in government spending (or at least give that impression). However with the economic recovery still fragile, many in the real estate industry want to see the home buyer credit extended past this summer.
the tool you describe soudns like a flexible and quite powerful customization solution. If I understand correctly, it is based around a customization descriptor file that contains the pointer definitions (the actual values are also specified in the package or are supplied externally at customization time )?I can see how the customization descriptor, assuming it is written in a fairly human-readable way, can provide some visibility into the customization process, especially if the customizations for the entire package can be reviewed in one file. Pointer syntax (think ) can be hard to interpret, but that be mitigated by including a plain text description of what is actually being pointed to.I’d be more curious to know how this approach provides safety, however. Idempotency prevents you from screwing up if you run the customization multiple times, but that doesn’t address the issue of customizations not being applied at all. Of course, your tool may somehow integrated with the app server Regarding the other points:> 1. Pointer based is precise. You will NOT have any accidental replacements and> if it performs a incorrect replacement, it is consistently incorrectAgreed, although with a suitable placeholder syntax (${…} or whatever) accidental replacements should not happen either. Certainly, plain string search’n’replace is something to avoid if at all possible.> 2. Pointer based is non-intrusive: No changes are required to the source> files themselves.Indeed perhaps the main reason why pointer-based replacement scores High’ for convenience.> 3. It supports strict separation of responsibility between developer and> deployer, although best results are achieved when they cooperate.That depends largely on whether or how the customization descriptor splits the pointer specification from the specification of the actual values. This also determines, to a large extent, how well the system can deal with sensitive data that should only be seen by deployers (the production database password, for instance).> 4. Above two features allows you to configure any deployment unit, not just the> once that were prepared by the developers.Indeed that’s what I meant by Ironically, this can be useful in order to patch packages that were not written in a customizable way. It shouldn’t be forgotton, though, that pointer-based replacement only works if the targeted files have a suitable structure where elements can reliably be pointed to.For .properties files this is fairly trivial, and XML supports powerful, fine-grained pointers via XPath (although constructing these for e.g. a piece of WebSphere configuration XML can be a non-trivial exercise!), but modifying an SQL script via pointers can present some interesting challenges.