All posts by ajohnson

Making money off web services

Thought provoking article by Tim O’Reilly this past July in regards to making money off web services; he had this too say:

“.. Like every web site owner I’ve talked to, Jeff had a couple of questions. What’s in this for me? How will I make money? My answer was as follows:

1) Web sites like Amazon and Google are applications. And Microsoft has demonstrated over and over again that a platform strategy beats an applications strategy every time. Once you have other companies building added value that relies on you, you have a kind of benign industry lock in that’s a real competitive advantage. (That’s why I bet that Microsoft’s MapPoint eventually supplants AOL’s MapQuest as the dominant resource for geographic information. Unless AOL gets off its duff and supports developers, of course.)

2) Innovation will come from APIs that support “unintended consequences”. As Bill Joy likes to say, “All the smart people don’t work for us.” Giving developers a playground extends your development staff, bringing in new ideas and features at the same time as it builds your brand and image.

3) There obviously are revenue opportunities. As Google demonstrated, you can provide limited access for free to allow developers to play around, but do licensing for large scale use. So when people come to you with heavy duty applications, you can figure out the deal then. A mistake a lot of companies make when entering new markets (especially ones that are discontinuous with the current ones) is to think too hard about where the money is coming from. Disruptive innovations often don’t work all that well at first, so you have to give them room to grow before you try to harvest them. The lesson of the dot-com boom is actually the opposite of the one that people are taking. It’s not “figure out your business model first,” it’s “don’t get greedy; give the market time to mature before you rush to cash in.” (Aside: This is also part of the secret of open source. People do cool things for reasons other than money, because they solve small scale, specific problems that wouldn’t be touched by commercial vendors. (These problem spaces sometimes grow into big markets, but they don’t look that way at first.))

And of course, in Amazon’s case, there is a built-in revenue opportunity for the existing business. Third-party Amazon-based applications do lead people back to Amazon, where they buy products.

Giving something back to the industry, enriching the soil of innovation for everyone, is good like recycling is good, far beyond the direct benefits you reap. Companies need to think not just what they can get for themselves from new technologies, but how they can enable others. A marketplace is like an ecosystem. The more life there is, the more there is for everyone. It’s in monocultures that you start to have problems. “

Search Engine Safe Urls

Search Engine Safe Urls seem to be a talked about topic these days… mod_rewrite being the de-facto for Apache users… there are a couple out there for IIS:

urlrepl — this is my favorite, mostly because it’s free. You can configure it either from a web browser or an ini file. Downsides: no regular expressions, configuration applies to all virtual servers defined in IIS.

Spider Safe Url — this one is nice.. but in the little testing that I did with it, it killed pages that didn’t have url variables… so while this would work:

/products/detail.cfm/id/23/category/83/

this will not:

/products/detail.cfm

which means that if you have single pages that don’t need url vars, you can’t use it.. Pete, am I wrong? Open source. Free.

IIS Rewrite — looks like the same thing as urlrepl mentioned above, ‘xcept you have to pay for this one… [on second look, this one is really full featured, moreso than urlrepl]. It supports regular expressions, check out the docs. $99 per server.

ISAPI_Rewrite — This one is really nice as well.. $63 per server, $453 per organization.

ColdFusion CFC’s

Working with ColdFusion CFC’s today, ran into a couple problems and I’m wondering if I’m alone or just inexperienced (or both):

a) when invoking a CFC as a webservice, do you have to have a CFIDE virtual directory in IIS in order for the CFC to function? (ie: I’m using multiple virtual hosts in IIS, if I don’t have a CFIDE virtual directory defined in IIS, calls to my webservice located in folder of the virtual host aren’t picked up)

b) can you use custom tags via cfmodule in a CFC? I’m getting an error (specifically “coldfusion.tagext.lang.IncludeTag$NoSuchIncludeTemplateException : Could not find the included template..” ) when using CFMODULE to call a custom tag. I’m absolutely positive that the custom tag path is correct… exact same page in the same directory (just not a CFC) uses it fine… Seems almost like CFC’s lose track of where they live. I saw a thread on forums, but no answer other than check your mapping… which I’ve done.

Gödel, Escher, Bach: An Eternal Golden Braid

I got a good chunk of reading yesterday because I went on the shortest ride of my life. It was about 60 degrees yesterday in Boston, perfect riding weather. I drove to Blue Hills, my favorite place to ride, had Blink on the CD player, and was all strapped in… bunny-hopped onto the trail-head and got a pinch flat when my back tire hit the curb. I didn’t have any extra tubes because I gave my last one to a guy who had a flat on my last ride at Blue Hills. Then I stepped in poo walking my bike back to the car. Sheesh…

So anyways.. I’m currently reading “Gödel, Escher, Bach: An Eternal Golden Braid” by Douglas Hofstadter. This book is over 700 pages and is described by one guy on the back of the book as “…an entire humanistic education..” so a) I’m not even going to try and give a description of what it’s about and b) I’m going to blog it as I go, rather than blog it after completing the book.

On Kurt Gödel’s discovery of the Epimenides paradox: “Epimenides was a Cretan who made one immortal statement: ‘All Cretans are liars.’ A sharper version of the statement is simply ‘I am lying’; or, ‘This statement is false’. It is that last version which I usually mean when I speak of the Epimenides paradox. It is a statement which rudely violates the usually assumed dichotomy of statements into true and false, because if you tentatively think it is true, then it immediately backfires on you and makes you think it is false. But once you’ve decided it is false, a similar backfiring returns you to the idea that it must be true…. The Epimenides paradox is a one-step Strange Loop, like Escher’s Print Gallery. But how does it have to do with mathematics? That is what Gödel discovered. His idea was to use mathematical reasoning in exploring mathematical reasoning itself. This notion of making mathematics ‘introspective‘ proved to be enormously powerful, and perhaps its richest implication was the one Gödel found: Gödel’s Incompleteness Theorem.” (pg 17)
— It’s interesting to see that introspection (in software development) probably has its roots in this mathematical introspection that Gödel introduced above…. what was the first language that used introspection?

On intelligent behavior: “No one knows where the borderline between non-intelligent behavior and intelligent behavior lies; in fact, to suggest that a sharp borderline exists is probably silly. But essential abilities for intelligence are certainly:
— to respond to situations very flexibly;
— to take advantage of fortuitous circumstances;
— to make sense out of ambiguous or contradictory messages;
— to recognize the relative importance of different elements of a situation;
— to find similarities between situations despite differences which may separate them;
— to draw distinctions between situations despite similarities which may link them;
— to synthesize new concepts by taking old concepts and putting them together in new ways;
— to come up with ideas which are novel.” (pg 26)
— Makes these ‘intelligent agents‘ not seem so smart doesn’t it? Next time you see a claim that this or that software is intelligent, apply the above tests to see if it passes. I’d love to know about software that does…

On being inside and outside a ‘System’: “… Now let me be very explicit about what I meant by saying this shows a difference between people and machines. I meant that it is possible to program a machine to do a routine task in such a way that the machine will never notice even the most obvious facts about what it is doing; but it is inherent in human consciousness to notice some facts about the things one is doing. But you knew this all along. If you punch ‘1’ into an adding machine, and then add 1 to it, and then add 1 again, and again, and again, and continue doing so for hours and hours, the machine will never learn to anticipate you, and do it itself, although any person would pick up the repetitive behavior very quickly. Or, to take a silly example, a car will never pick up the idea, no matter how much or how well it is driven, that is supposed to avoid other cars and obstacles on the road; and it will never learn even the most frequently traveled routes of its owner…. The difference, then, is that it is possible for a machine to act un-observably; it is impossible for a human to act unobservant.” (pg 36-37)
— The newest versions of Windows *are* in fact observant… the “Programs” menu ‘learns’ what programs you use most frequently and shows only those programs. How else could software applications become ‘observant’? Might your Palm handheld ‘notice’ that it gets synced every night before you go to bed and ‘suggest’ to you that it schedule itself to sync at 9pm? Wouldn’t it be nice if your cell phone saw that you called take-out twice in the last week and suggest that you add that phone number to your list of contacts?

On jumping out of systems: “It is an inherent property of intelligence that it can jump out of the task which it is performing, and survey what it has done; it is always looking for, and often finding, patterns.” (pg 37)
— Substitute the word ‘intelligence’ for ‘software developer’ or ‘business manager’. Revealing isn’t it?