Look at United States on Google Maps and zooooom in far enough so that no portion of Canada or Mexico pokes in from above or below.
Now, take a look at the text in the bottom right corner of the map:
Copyright 2009 Google - Map Data Copyright 2009 Google.
That's new! Yes, Google has created a vector representation (ie. map data) of the continental United States, and have sent TeleAtlas, their longtime supplier of vector data the boot, packing, at least within the US.
From TeleAtlas spokeperson:
Tele Atlas confirms that Google has decided to stop using Tele Atlas map data for the U.S. Google will now use its own map data. Our relationship with Google for map coverage continues outside of the U.S. in dozens of geographies.
Google is indexing not only the words on the web, and the books on your shelf, but also the roads under foot, paths in your park, etc, etc and etc.
Where they stop, nobody will know.
Thursday, October 8, 2009
New Crust for Google Maps, Fresh from the Oven
Labels:
base map data,
tele atlas,
vector,
vector data
Tuesday, September 1, 2009
ActionScript 3.0 and the Observer Design Pattern
The Observer design pattern is a way for an interested party, called the Subscriber, to be notified when something happens, as defined by the Publisher.
The Observer design pattern is very common, and even if you don't know it by its technical name, you probably have used it before, especially if you develop any of those rich internet applications that interact in complex ways with its user.
When it comes to implementing the Observer design pattern in ActionScript 3.0, two approaches come to mind:
Let's take a look at both.
ActionScript 3.0 Event Model
The ActionScript 3.0 event model is based on the DOM event model. If we look at what DOM is about, we see that it is concerned with the decomposition of something into a hierarchy of constituent elements, each which can represent one of many things:
The ActionScript 3.0 event model allows the subscribing DisplayObject to delegate responsibility for handling an event to its parent or child within the display list. This delegation comes for free, as the event travels a "U" shaped chain-of-responsibility through the display list, from the stage, down to the subscriber and then bubbles back up to the stage.
Class-Based
The class-based approach to implementing the Observer design pattern requires the Publisher to first define an interface class, which acts as a protocol that its Subscribers must adhere to. (An interface class usually follows the naming convention ISomething.)
As the coupling between Publisher and Subscriber is in the class definition, omissions on the part of the Subscriber (eg. forgetting to implement a function within the interface) can be caught at compile time, rather than left to be found (hopefully) at run-time.
As well, this tight coupling between Publisher and Subscriber is far more efficient than the ActionScript 3.0 event model, where messages are actually objects that have to flow, twice, through the length of the display list hierarchy. For messages that are to be ignored, this overhead should not be ignored.
The cost of this approach is in the loss of implicit delegation: if applicable, the Subscriber must explicitly define the object to delegate to.
Conclusion
A Publisher should use the ActionScript 3.0 event model to dispatch events to Subscribers that live on the display list, but only for events where it might make sense for the Subscriber to delegate their handling to other objects on the display list, such as its parent or stage.
For all other uses, take advantage of ability to detect bugs early, by using class-based interfaces.
The Observer design pattern is very common, and even if you don't know it by its technical name, you probably have used it before, especially if you develop any of those rich internet applications that interact in complex ways with its user.
When it comes to implementing the Observer design pattern in ActionScript 3.0, two approaches come to mind:
- ActionScript 3.0 event model
- Class-based
Let's take a look at both.
ActionScript 3.0 Event Model
The ActionScript 3.0 event model is based on the DOM event model. If we look at what DOM is about, we see that it is concerned with the decomposition of something into a hierarchy of constituent elements, each which can represent one of many things:
- a part of a documents, such as a title or paragraph (HTML)
- a piece of information about something (XML)
- a DisplayObject situated on the stage (ActionScript 3.0)
The ActionScript 3.0 event model allows the subscribing DisplayObject to delegate responsibility for handling an event to its parent or child within the display list. This delegation comes for free, as the event travels a "U" shaped chain-of-responsibility through the display list, from the stage, down to the subscriber and then bubbles back up to the stage.
Class-Based
The class-based approach to implementing the Observer design pattern requires the Publisher to first define an interface class, which acts as a protocol that its Subscribers must adhere to. (An interface class usually follows the naming convention ISomething.)
As the coupling between Publisher and Subscriber is in the class definition, omissions on the part of the Subscriber (eg. forgetting to implement a function within the interface) can be caught at compile time, rather than left to be found (hopefully) at run-time.
As well, this tight coupling between Publisher and Subscriber is far more efficient than the ActionScript 3.0 event model, where messages are actually objects that have to flow, twice, through the length of the display list hierarchy. For messages that are to be ignored, this overhead should not be ignored.
The cost of this approach is in the loss of implicit delegation: if applicable, the Subscriber must explicitly define the object to delegate to.
Conclusion
A Publisher should use the ActionScript 3.0 event model to dispatch events to Subscribers that live on the display list, but only for events where it might make sense for the Subscriber to delegate their handling to other objects on the display list, such as its parent or stage.
For all other uses, take advantage of ability to detect bugs early, by using class-based interfaces.
Labels:
ActionScript 3.0,
best practices,
design pattern,
observer
Thursday, June 4, 2009
Google Enterprise Integrators
A colleague and I were fortunate to have been invited to present this year at the Google IO Developer Sandbox in San Francisco.
The weather was cool and the sky cloudy, but the keynote presentation and positioning of Google Wave gave a clear picture of Google's nascent enterprise philosophy: a product and services innovator who welcomes and promotes its partners like ThinkWrap who, as integrators, repackage Google's innovations into useful solutions for other businesses.
Because 97% of Google's revenue comes from advertisements, they are in a unique position to subsidize the cost of access to their products and services.
In this loss-leader relationship, Google gains access to new content, composed synthetically through mashups of existing content, via a portal into the deep web / back-end databases, or digitized from offline sources, etc, etc.
As new content is discover and hoisted into the public web, audience size and CPM rates increase too, which not only helps Google to index the world, but also increases overall ad revenue.
For integrators, it's about more than just feeding the voracious appetite of the Google ad monster; it represents a prime opportunity to apply Google's advanced technologies to add significant value to other businesses. (Google's not alone in this area, Amazon EC2 and similar innovative technologies offer similar opportunities.)
Although their technology is very advanced and economical to use, there remains gaps between what Google technology can offer and what an enterprise expects (eg. SLA, audit / compliance, government regulations, etc). This gap is an opportunity for integrators who may have specialized in areas of audit, or have worked with foreign governments and are familiar with the local political climate.
The opportunities extend far beyond the store locator or multimedia map mashup, which integrate the Map API, just one of the dozens of Google's product and service offerings.
For example, look at IBM Websphere, which has built a successful product suite composed, in part, of a number of Apache and related free software components.
The revenue stream around Websphere is strong, as is its business model: the integration of free software that is meaningful to the client and financially viable to all.
The time is now for integrators to build their own Websphere by applying the same business model to Google's many innovations.
The weather was cool and the sky cloudy, but the keynote presentation and positioning of Google Wave gave a clear picture of Google's nascent enterprise philosophy: a product and services innovator who welcomes and promotes its partners like ThinkWrap who, as integrators, repackage Google's innovations into useful solutions for other businesses.
Because 97% of Google's revenue comes from advertisements, they are in a unique position to subsidize the cost of access to their products and services.
In this loss-leader relationship, Google gains access to new content, composed synthetically through mashups of existing content, via a portal into the deep web / back-end databases, or digitized from offline sources, etc, etc.
As new content is discover and hoisted into the public web, audience size and CPM rates increase too, which not only helps Google to index the world, but also increases overall ad revenue.
For integrators, it's about more than just feeding the voracious appetite of the Google ad monster; it represents a prime opportunity to apply Google's advanced technologies to add significant value to other businesses. (Google's not alone in this area, Amazon EC2 and similar innovative technologies offer similar opportunities.)
Although their technology is very advanced and economical to use, there remains gaps between what Google technology can offer and what an enterprise expects (eg. SLA, audit / compliance, government regulations, etc). This gap is an opportunity for integrators who may have specialized in areas of audit, or have worked with foreign governments and are familiar with the local political climate.
The opportunities extend far beyond the store locator or multimedia map mashup, which integrate the Map API, just one of the dozens of Google's product and service offerings.
For example, look at IBM Websphere, which has built a successful product suite composed, in part, of a number of Apache and related free software components.
The revenue stream around Websphere is strong, as is its business model: the integration of free software that is meaningful to the client and financially viable to all.
The time is now for integrators to build their own Websphere by applying the same business model to Google's many innovations.
Labels:
enterprise,
google io,
Google Wave,
integration,
mashup,
thinkwrap,
websphere
Thursday, May 21, 2009
The Personalization of Mobile Content
For the past few months, my source for news and current events has come from three free iPhone applications that deliver content from the Wall Street Journal (WSJ), New York Times (NYT) and National Public Radio (NPR).
Apps are Functional
These apps also deliver the freedom to let me read or listen wherever and whenever I want.
When the NYT app acts up, as it often does, I use Safari to read their mobile website (you'll need a mobile browser to visit this website).
There is quite a transition between reading NYT content from its app to the web: you feels less like surfing on a wave and more like wading through a weedy swamp.
In contract to these apps, Safari comes across more as a medium of last resort, to be used only if the content supplier has yet to provision an app.
What this says about the future of the web on mobile devices is anyone's guess, but I don't see a prosperous future.
Apps can be Personal
Although these apps offer convenience and function, they lack a personal touch: I still have to forage through lists and menus to collect my daily meal of news and current events.
At one end, the content needs to be organized beyond the normal dimensions of time and category.
And at the other end, the content needs to be personal, selected and delivered to suit my tastes and preferences.
I can think of four ways to deliver the personal touch:
1. intra-app: select content related to earlier content I read within the same app,
2. inter-app: select content related to what I submitted to external blogs, twitter, facebook, etc (courtesy of my friend Nael),
3. social: select content recommended by people who are like me,
4. location: select content related to my location (current, residence, work, etc).
With iPhone OS 3.0 (expected this summer) I will also be alerted of the availability of such personalized content, the moment it has been published.
For those of us who consider ourselves part of the growing class of "mobiles", the delivery of newspapers and related content via the "mobile web" might be a short lived phenomenon, to be replaced by custom, branded applications that integrate content into the limits of the platform, and -- and perhaps more importantly -- select and deliver this content to satisfy the personality and interests of the reader.
Apps are Functional
These apps also deliver the freedom to let me read or listen wherever and whenever I want.
When the NYT app acts up, as it often does, I use Safari to read their mobile website (you'll need a mobile browser to visit this website).
There is quite a transition between reading NYT content from its app to the web: you feels less like surfing on a wave and more like wading through a weedy swamp.
In contract to these apps, Safari comes across more as a medium of last resort, to be used only if the content supplier has yet to provision an app.
What this says about the future of the web on mobile devices is anyone's guess, but I don't see a prosperous future.
Apps can be Personal
Although these apps offer convenience and function, they lack a personal touch: I still have to forage through lists and menus to collect my daily meal of news and current events.
At one end, the content needs to be organized beyond the normal dimensions of time and category.
And at the other end, the content needs to be personal, selected and delivered to suit my tastes and preferences.
I can think of four ways to deliver the personal touch:
1. intra-app: select content related to earlier content I read within the same app,
2. inter-app: select content related to what I submitted to external blogs, twitter, facebook, etc (courtesy of my friend Nael),
3. social: select content recommended by people who are like me,
4. location: select content related to my location (current, residence, work, etc).
With iPhone OS 3.0 (expected this summer) I will also be alerted of the availability of such personalized content, the moment it has been published.
For those of us who consider ourselves part of the growing class of "mobiles", the delivery of newspapers and related content via the "mobile web" might be a short lived phenomenon, to be replaced by custom, branded applications that integrate content into the limits of the platform, and -- and perhaps more importantly -- select and deliver this content to satisfy the personality and interests of the reader.
Tuesday, May 12, 2009
The Cadence of Web 2.0
The web was born to publish documents, a broadcast medium, so to speak.
The idea behind the move from web 1.0 to web 2.0 was an evolution from a way to publish to a way to carry on a conversation.
The conversation is the reason for the need to "personalize" the web experience.
A visitor wants to be treated as an individual and slowly led into a pleasurable experience.
So, how is system performance related to this?
User expectations (or UX) have changed.
Try talking, to .... a ..... per .... son l ... i .... k ....e t... h ... is.
In the loosely coupled world of web 1.0, with its click -> wait -> response style of interaction, delays and loss of cadence wasn't of concern.
But in a 2.0 world, lack of cadence leads to an incoherent, distant and impersonal conversation.
And for most businesses, whose website is the client's only point of contact, bad conversation is simply bad business.
Don't let bad technology limit the quality of this conversation.
The idea behind the move from web 1.0 to web 2.0 was an evolution from a way to publish to a way to carry on a conversation.
The conversation is the reason for the need to "personalize" the web experience.
A visitor wants to be treated as an individual and slowly led into a pleasurable experience.
So, how is system performance related to this?
User expectations (or UX) have changed.
Try talking, to .... a ..... per .... son l ... i .... k ....e t... h ... is.
In the loosely coupled world of web 1.0, with its click -> wait -> response style of interaction, delays and loss of cadence wasn't of concern.
But in a 2.0 world, lack of cadence leads to an incoherent, distant and impersonal conversation.
And for most businesses, whose website is the client's only point of contact, bad conversation is simply bad business.
Don't let bad technology limit the quality of this conversation.
Labels:
conversation,
e-commerce,
performance,
web,
web 2.0
Wednesday, May 6, 2009
A Simple Platform for Mobile Application Development
In North America, an important decision that needs to be addressed during the initial stages of mobile development for a location based application centers on platform: do I first support iPhone or Blackberry?
Let's begin with a look at sales figures:
Quarterly iPhone sales (in units):
Total (3G): 15,048,000
Total active Blackberry subscribers (as of Dec 2008): 21,000,000
The simplicity of targeting a single iPhone 3G platform with 15 million subscribers, I feel, offsets the slightly larger market potential of the Blackberry, which presents a variety of platform-specific issues from device-to-device (eg. Curve, Bold, Storm) that must be factored in to the application development process.
As well, a Blackberry application that uses a feature unique to the Curve, Bold and Storm, such as GPS, leaves other Blackberry users out of luck and confused. I don't have subscriber counts for just these three platforms, but I wonder if it's as large as 15M, the number for iPhone 3G.
Finally, for now, only the iPhone supports location sensing diversity for your mobile application. This allows you to obtain a location fix as easily indoors as outdoors.
Let's begin with a look at sales figures:
Quarterly iPhone sales (in units):
- 2007Q3 270,000
- 2007Q4 1,119,000
- 2008Q1 2,315,000
- 2008Q2 1,703,000
- 2008Q3 717,000
- 2008Q4 6,892,000
- 2009Q1 4,363,000
- 2009Q2 3,793,000 (this quarter ended Mar-2009)
Total (3G): 15,048,000
Total active Blackberry subscribers (as of Dec 2008): 21,000,000
The simplicity of targeting a single iPhone 3G platform with 15 million subscribers, I feel, offsets the slightly larger market potential of the Blackberry, which presents a variety of platform-specific issues from device-to-device (eg. Curve, Bold, Storm) that must be factored in to the application development process.
As well, a Blackberry application that uses a feature unique to the Curve, Bold and Storm, such as GPS, leaves other Blackberry users out of luck and confused. I don't have subscriber counts for just these three platforms, but I wonder if it's as large as 15M, the number for iPhone 3G.
Finally, for now, only the iPhone supports location sensing diversity for your mobile application. This allows you to obtain a location fix as easily indoors as outdoors.
Tuesday, April 14, 2009
Personalized for YOU
What do we mean when we say "personalization", and what does it mean to you?
If you're a retailer, personalization means:
How can we apply "personalization" to increase sales and boost return visits?
One form of personalization is the recommendation system.
Both Netflix and Amazon have employed this to not only increase sales, but to stretch the long end of the sales distribution curve.
A recommendation system is an advertisement designed just for YOU, and fundamentally affects the distribution tail of what gets sold.
Wouldn't you agree that this is personalization -- with a guaranteed ROI !
Let's return to traditional markets for a second:
Products that are advertised more sell more. So we end up with a few leaders in each category: #1, #2 or #3 generates income; #4 loses money and gets replaced next year by another #4.
Unlike the mall bookstore, Amazon generates profits from all the books it sells -- all 100,000 of them!
With a recommendation system to steer you to the things you like -- which not necessarily come from the top three or thirty sellers -- you get satisfied, and the retailer gets a sale!
If you're a retailer, personalization means:
- more revenue: A good recommendation system, in other words, does not merely help people find new stuff. As Netflix has discovered, it also spurs them to consume more stuff.
- personalization on factors other than age + gender: even though Netflix has a good deal of demographic information about its users, the company does not currently use it much to generate movie recommendations; merely knowing who people are, paradoxically, isn’t very predictive of their movie tastes. So, a person's age, gender and such is insufficient in order for us to decide what content to present on their webpage (ie. what goods we think they might buy)
- a growing chest of supportive research: the science of recommendation systems was booming, and computer scientists were publishing hundreds of papers each year on the subject.
How can we apply "personalization" to increase sales and boost return visits?
One form of personalization is the recommendation system.
Both Netflix and Amazon have employed this to not only increase sales, but to stretch the long end of the sales distribution curve.
A recommendation system is an advertisement designed just for YOU, and fundamentally affects the distribution tail of what gets sold.
Wouldn't you agree that this is personalization -- with a guaranteed ROI !
Let's return to traditional markets for a second:
Products that are advertised more sell more. So we end up with a few leaders in each category: #1, #2 or #3 generates income; #4 loses money and gets replaced next year by another #4.
Unlike the mall bookstore, Amazon generates profits from all the books it sells -- all 100,000 of them!
With a recommendation system to steer you to the things you like -- which not necessarily come from the top three or thirty sellers -- you get satisfied, and the retailer gets a sale!
Labels:
ATG,
correlation,
demographics,
marketing,
personalization,
retailing
Saturday, February 28, 2009
Gen Y and the Future of Financial Services
A Gen Y might say that banking and investing websites are built by old people for old people.
These websites look pretty, provide useful information, are reliable, and offer most if not all of the services you'd find at the neighborhood branch, but are delivered with a user experience out-of-step with what are evolving norms for Gen Y and millenials.
This cohort have jobs and money to invest. Some have car loans, and a few might even carry or need a mortgage.
They were raised on instant messaging, and their experiences are shaped by a steady diet of YouTube, Twitter and Flickr, and for personal finance include Mint, Wesabe and Geezeo.
For them, major banking and investing websites are like a visit to grandpa in the retirement home, without the creepy old people lounging around in the hallways.
They Google for "Finance" and land on a website with an abundance of interaction points, live updates and instant responsiveness to each keystroke and mouse click.
The overall user experience says interactive video game as much as it says anything else.
This younger crowd doesn't have higher standards; they have different standards: today the norm is Twitter, and tomorrow it's the Web "whatever-dot-0" site featured on Twitter, Technorati or Slashdot.
To a Gen Y or millenial, current banking and investing websites are an increasingly large step away from their norm.
How much longer will grandpa's web experience continue to work for them?
The Opportunity
The gulf between expectations and reality is an opportunity for the builders of these websites to do a lot of new and useful things.
Existing toolkits and staff skill-sets cannot deliver this user experience, although the official trend and direction for the most popular web toolkit suggest an awareness of the issues.
The database, the granddaddy of all software solutions that has seen application and web toolkits come-and-go over its 50 years of existence, will not go away.
But some of its duties today will need to be reassigned to more responsive components that can respond instantly to every keystroke and mouse click, all to deliver the necessary user experience.
More "open source" toolkits and custom software will need to supplement all levels of the current solution stack.
Those of us who have and will continue to do great things with "open source" will also need some help to make sense of the freedoms and restrictions it uniquely offers.
These websites look pretty, provide useful information, are reliable, and offer most if not all of the services you'd find at the neighborhood branch, but are delivered with a user experience out-of-step with what are evolving norms for Gen Y and millenials.
This cohort have jobs and money to invest. Some have car loans, and a few might even carry or need a mortgage.
They were raised on instant messaging, and their experiences are shaped by a steady diet of YouTube, Twitter and Flickr, and for personal finance include Mint, Wesabe and Geezeo.
For them, major banking and investing websites are like a visit to grandpa in the retirement home, without the creepy old people lounging around in the hallways.
They Google for "Finance" and land on a website with an abundance of interaction points, live updates and instant responsiveness to each keystroke and mouse click.
The overall user experience says interactive video game as much as it says anything else.
This younger crowd doesn't have higher standards; they have different standards: today the norm is Twitter, and tomorrow it's the Web "whatever-dot-0" site featured on Twitter, Technorati or Slashdot.
To a Gen Y or millenial, current banking and investing websites are an increasingly large step away from their norm.
How much longer will grandpa's web experience continue to work for them?
The Opportunity
The gulf between expectations and reality is an opportunity for the builders of these websites to do a lot of new and useful things.
Existing toolkits and staff skill-sets cannot deliver this user experience, although the official trend and direction for the most popular web toolkit suggest an awareness of the issues.
The database, the granddaddy of all software solutions that has seen application and web toolkits come-and-go over its 50 years of existence, will not go away.
But some of its duties today will need to be reassigned to more responsive components that can respond instantly to every keystroke and mouse click, all to deliver the necessary user experience.
More "open source" toolkits and custom software will need to supplement all levels of the current solution stack.
Those of us who have and will continue to do great things with "open source" will also need some help to make sense of the freedoms and restrictions it uniquely offers.
Labels:
banking,
gen y,
investing,
millenials,
open source,
website design,
websphere
Tuesday, February 24, 2009
Spatial Databox has its own website
Spatial Databox has its own website. Check it out to follow its continued development.
Labels:
google flash maps,
google maps,
spatial databox
Monday, December 22, 2008
RAM is a Misnomer
According to this Wikipedia article, RAM stands for random-access memory, where the word random ...
refers to the fact that any piece of data can be returned in a constant time, regardless of its physical location and whether or not it is related to the previous piece of data.
This is no longer true.
The disparity between CPU and memory cycle rates has grown to the point that the random aspects of RAM resemble that of a tape drive!
For proof, I'll use this benchmark that measures the time to read and write all elements in a 128 megabyte array, with varying stride lengths (stride is the gap, in array elements, between successive memory accesses):
(Measurements are within +/- 4% and were taken from a 2.0GHz Core Duo with a 4M L2 cache)
The Stride 1 test is essentially a sequential scan through the array and executes the fastest.
Things get interesting for the other non-unit strides, where execution times soar by a factor of 10 for reads, and 20 for writes.
Looks like the behavior of a tape drive, if you ask me!
High-performance computing applications, which manipulate data structures far beyond the capacity of a CPU cache, are exposed to the semi-sequential nature of RAM, and need to adopt a memory-access pattern that favors -- like a tape -- sequential access.
With sequential access, an application can potentially gain a 20 times increase in throughput.
To those who wrestled every last drop of performance out of those big old vector processors (Cray, CDC, Fujitsu, etc) this is old news; but for the rest of us, who thought that the R in RAM really meant random, it probably comes as a big surprise.
This reminds me of what was printed on VHS rental tapes: Be Kind, Please Rewind.
Please contact me at kevin DOT macdonald AT pentura DOT ca with your thoughts about what the "R" should now stand for, or if you'd like a copy of the benchmark source code (it's written in C).
refers to the fact that any piece of data can be returned in a constant time, regardless of its physical location and whether or not it is related to the previous piece of data.
This is no longer true.
The disparity between CPU and memory cycle rates has grown to the point that the random aspects of RAM resemble that of a tape drive!
For proof, I'll use this benchmark that measures the time to read and write all elements in a 128 megabyte array, with varying stride lengths (stride is the gap, in array elements, between successive memory accesses):
| Stride | Read | Write |
| 1 | 1.93 seconds | 0.24 seconds |
| 9 | 7.04 seconds | 1.89 seconds |
| 4093 | 20.81 seconds | 4.51 seconds |
The Stride 1 test is essentially a sequential scan through the array and executes the fastest.
Things get interesting for the other non-unit strides, where execution times soar by a factor of 10 for reads, and 20 for writes.
Looks like the behavior of a tape drive, if you ask me!
High-performance computing applications, which manipulate data structures far beyond the capacity of a CPU cache, are exposed to the semi-sequential nature of RAM, and need to adopt a memory-access pattern that favors -- like a tape -- sequential access.
With sequential access, an application can potentially gain a 20 times increase in throughput.
To those who wrestled every last drop of performance out of those big old vector processors (Cray, CDC, Fujitsu, etc) this is old news; but for the rest of us, who thought that the R in RAM really meant random, it probably comes as a big surprise.
This reminds me of what was printed on VHS rental tapes: Be Kind, Please Rewind.
Please contact me at kevin DOT macdonald AT pentura DOT ca with your thoughts about what the "R" should now stand for, or if you'd like a copy of the benchmark source code (it's written in C).
Labels:
caching,
memory access,
prefetch,
RAM,
stride
Sunday, November 9, 2008
Tap Dancing on a Sheet of Molasses
The usual web application architecture divides everything neatly into three portions: a web portion, an application (or business logic) portion and a data portion.
It's unfortunate that the infrastructure group takes these three neat portions and turns them into a web server an application server and a data server.
I know of a company that even went to the trouble, and and great expense, to physically locate each of these three servers in three different cities!
Three servers for one website?
This one-tier per server approach to deployment is that the website is exposed to a great degree of network latency, process-level synchronization, and unnecessary XML serialization.
A more sensible approach is to start with one physical server, and physically partition to resolve bottlenecks. You'd be surprised at what one big server can do these days.
But if you're staring at a big performance problem with your one-tier-per-server system, Oracle has a solution to for you. It basically re-couples your data tier back to your web tier, at $36,000 per CPU
Basically, it caches portions of the data tier within the memory of the web tier.
This is a pretty good idea if you ask me, and I'm glad to see Oracle agrees, because their offering validates the reasons why we built our Spatial DataBox, which is very similar to Oracle's offering, but is much cheaper, supports other leading database systems, and is extra efficient at handling semantic and location based information.
Give us a call if you'd like to hear more.
It's unfortunate that the infrastructure group takes these three neat portions and turns them into a web server an application server and a data server.
I know of a company that even went to the trouble, and and great expense, to physically locate each of these three servers in three different cities!
Three servers for one website?
This one-tier per server approach to deployment is that the website is exposed to a great degree of network latency, process-level synchronization, and unnecessary XML serialization.
A more sensible approach is to start with one physical server, and physically partition to resolve bottlenecks. You'd be surprised at what one big server can do these days.
But if you're staring at a big performance problem with your one-tier-per-server system, Oracle has a solution to for you. It basically re-couples your data tier back to your web tier, at $36,000 per CPU
Basically, it caches portions of the data tier within the memory of the web tier.
This is a pretty good idea if you ask me, and I'm glad to see Oracle agrees, because their offering validates the reasons why we built our Spatial DataBox, which is very similar to Oracle's offering, but is much cheaper, supports other leading database systems, and is extra efficient at handling semantic and location based information.
Give us a call if you'd like to hear more.
Wednesday, September 17, 2008
Surprise and the User Experience
The benchmark for "high quality" video is HDTV broadcasts, Blu-ray players and the local movie theater. So, when you select the "watch in high quality" option at YouTube, you would be surprised if the video stalled or sputtered.
Or what about overseas calls -- 20 years ago? The call ping-ponged its way up into space, traveled across the planet and hopped back down to earth. The delays felt like talking in slow-motion. If both parties tried to speak at the same time, the interruptions caused conversation to grind to a halt.
In both cases, user experience suffered, not because of delays or hiccups or interruptions, but simply because they happened by surprise.
Your overall level of satisfaction with a website -- or user experience -- relates in part to how many surprises the website throws at you. Predictability is important.
Quality of Service, or QoS for short, is a mechanism to frame, discuss and correct these unexpected surprises and thus improve the user experience.
QoS MECHANISMS
Websites that serve up static content rely on conventional page caching to help provide a pleasurable user experience. The QoS mechanism comes for free.
If you have kicked the tires of an application hosted as a service (aka. software-as-a-service or SaaS) the benchmark for user experience is the native desktop application you have used for the past 10 years.
MS Word provides a predictable user experience; a successful SaaS equivalent must do the same.
But, SaaS websites are dynamic and interactive and rely on a constant "chatter" back-and-forth between a browser (to capture and display data) and remote web services (to store and process this data). For these websites, a predictable user experience is a struggle to manage.
And even if user volumes don't change, applications do. Application changes can alter the nature of this chatter so as to make the system delay, hiccup and -- in the end -- drive its users back to the desktop!
One solution is to host the system on in the cloud, where QoS mechanisms scale up resources to maintain a pleasurable user experience, and scale down to reduce costs.
WEB 3.0
If the digerati wants an easy way to position "Web 3.0" as the next generation of the web, this might just be it:
An adaptable system that relies on quality of service (QoS) mechanisms to offer a predictable and thus pleasurable user experience.
This could be for any purpose: navigating a map of nearby Starbucks stores, browsing your bank account balance or reading the New York Times.
Or what about overseas calls -- 20 years ago? The call ping-ponged its way up into space, traveled across the planet and hopped back down to earth. The delays felt like talking in slow-motion. If both parties tried to speak at the same time, the interruptions caused conversation to grind to a halt.
In both cases, user experience suffered, not because of delays or hiccups or interruptions, but simply because they happened by surprise.
Your overall level of satisfaction with a website -- or user experience -- relates in part to how many surprises the website throws at you. Predictability is important.
Quality of Service, or QoS for short, is a mechanism to frame, discuss and correct these unexpected surprises and thus improve the user experience.
QoS MECHANISMS
Websites that serve up static content rely on conventional page caching to help provide a pleasurable user experience. The QoS mechanism comes for free.
If you have kicked the tires of an application hosted as a service (aka. software-as-a-service or SaaS) the benchmark for user experience is the native desktop application you have used for the past 10 years.
MS Word provides a predictable user experience; a successful SaaS equivalent must do the same.
But, SaaS websites are dynamic and interactive and rely on a constant "chatter" back-and-forth between a browser (to capture and display data) and remote web services (to store and process this data). For these websites, a predictable user experience is a struggle to manage.
And even if user volumes don't change, applications do. Application changes can alter the nature of this chatter so as to make the system delay, hiccup and -- in the end -- drive its users back to the desktop!
One solution is to host the system on in the cloud, where QoS mechanisms scale up resources to maintain a pleasurable user experience, and scale down to reduce costs.
WEB 3.0
If the digerati wants an easy way to position "Web 3.0" as the next generation of the web, this might just be it:
An adaptable system that relies on quality of service (QoS) mechanisms to offer a predictable and thus pleasurable user experience.
This could be for any purpose: navigating a map of nearby Starbucks stores, browsing your bank account balance or reading the New York Times.
Labels:
AWS,
cloud,
EC2,
latency,
QoS,
quality of service,
SaaS,
user experience,
UX,
web 3.0
Tuesday, July 29, 2008
App Store is the iPhone's Special Sauce
With iPod, Apple played content delivery as the differentiating factor.
Sony, Samsung, Diamond and all other MP3 manufacturers thought only of the MP3 device itself, and left it to the the consumer to both find and fill it with content.
Apple now dominates the MP3 market -- not Sony nor Samsung -- because they thought differently about how music was delivered to the device.
With the iPod, it was iTunes and not the device itself that was the special sauce.
Now Apple's doing it again with iPhone and App Store.
But first some background: a smartphone is a cellphone-sized device with much of the versatility of a notebook computer. What this means is that you can install and run applications on your smartphone.
Nokia has owned the smartphone market for over seven years, with products like the E71, N95 and soon-to-be-released N96.
Over the past year, I have used my N95 to collect and compile a large collection of photos and videos. With a bluetooth keyboard, it also makes a handy email device. Its 3D graphics hardware provides the right platform for engaging 3D games, and its built-in GPS makes navigating a snap!
So, I didn't buy an iPhone 3G because I needed a better gadget; the N95 still wins hands down in that category.
I bought the iPhone because of App Store.
If you own a smartphone, think for a second about how you find and install apps on your N95: visit websites for ideas, visit more websites and Google a lot to gather up some reviews, hunt for the software and finally, download and install it on your phone.
If the software is not free, you might hesitate to complete the transaction because the seller is probably a company you have never heard of.
Sounds just Nokia is following in the footsteps of Sony, Samsung and Diamond.
The iPhone is a blank slate for mobile apps. Sure, the user interface is novel, and simplifies some things, but it's not the special sauce.
It's how the apps -- the content -- is delivered.
Sony didn't understand this, and apparently Nokia doesn't either.
Sony, Samsung, Diamond and all other MP3 manufacturers thought only of the MP3 device itself, and left it to the the consumer to both find and fill it with content.
Apple now dominates the MP3 market -- not Sony nor Samsung -- because they thought differently about how music was delivered to the device.
With the iPod, it was iTunes and not the device itself that was the special sauce.
Now Apple's doing it again with iPhone and App Store.
But first some background: a smartphone is a cellphone-sized device with much of the versatility of a notebook computer. What this means is that you can install and run applications on your smartphone.
Nokia has owned the smartphone market for over seven years, with products like the E71, N95 and soon-to-be-released N96.
Over the past year, I have used my N95 to collect and compile a large collection of photos and videos. With a bluetooth keyboard, it also makes a handy email device. Its 3D graphics hardware provides the right platform for engaging 3D games, and its built-in GPS makes navigating a snap!
So, I didn't buy an iPhone 3G because I needed a better gadget; the N95 still wins hands down in that category.
I bought the iPhone because of App Store.
If you own a smartphone, think for a second about how you find and install apps on your N95: visit websites for ideas, visit more websites and Google a lot to gather up some reviews, hunt for the software and finally, download and install it on your phone.
If the software is not free, you might hesitate to complete the transaction because the seller is probably a company you have never heard of.
Sounds just Nokia is following in the footsteps of Sony, Samsung and Diamond.
The iPhone is a blank slate for mobile apps. Sure, the user interface is novel, and simplifies some things, but it's not the special sauce.
It's how the apps -- the content -- is delivered.
Sony didn't understand this, and apparently Nokia doesn't either.
Labels:
apple,
blackberry,
content delivery,
iPhone,
nokia
Friday, June 6, 2008
It's In the AIR
In a few years, AIR could be the dominant application platform, if
Should these three conditions come to pass, I see AIR emerging as an excellent platform for both delivery and execution of nifty AS3 / Flex webapps on those equally nifty sub-$500 netbooks.
- Internet Explorer 8 fails to be at least 10X better than Internet Explorer 7 (which would put it in striking distance of Firefox 4 with its amazing Flash AVM2 engine)
- a new class of software and usability professionals embrace AS3 and Flex, and
- the current crop of Flash designers/developers leave the industry (Sorry, but the ascendancy of AJAX over Flash as the dominant RIA platform, and Adobe's fear of branding anything with "Flash" (what is Flex anyway?) shows that these people understood neither the web as a medium nor as an application platform.)
Should these three conditions come to pass, I see AIR emerging as an excellent platform for both delivery and execution of nifty AS3 / Flex webapps on those equally nifty sub-$500 netbooks.
Subscribe to:
Posts (Atom)