« May 2008 | Main | July 2008 »
June 30, 2008
Panniers for Laptops
For the last three weeks I've been riding my bike to work when occasion permits. Unfortunately, that usually only works out to a few times per week. I live in Lindon and work at Thanksgiving Point, about 17 miles one way. One of the first things I discovered was that I needed a good way to carry my laptop.
I have a backpack and a messenger bag. I immediately dispensed with the backpack since it's up high and made me too hot. The messenger bag keeps the weight low, but after 17 miles, it's a boat anchor around you neck.
What I needed was a pannier big enough to carry a laptop. I used to commute by bike regularly but that was 15 years ago. My panniers from that time are small and not nearly big or sturdy enough to carry a 15 inch Macbook Pro.
After a week or so of searching and reading message boards I came across the Arkel Commuter. This is, as far as can tell, the best commuter pannier around.
At $159, it's not cheap, but after using it a few times, I think it's well worth it. The load is low and the bike is doing the work. The bag is well made and the laptop is secure. I especially like the cams that lock it to the rack--the last thing I need is my laptop flying off the bike on a bump.
9:31 AM | Comments () | Recommend This | Print This
June 27, 2008
Shopper Experience and Competitive Advantage
When I was at Internet Retailer in Chicago a few weeks ago, I heard at least three speakers give as story that, abstracted, went something like this:
We started off building our own ecommerce platform, then we switched to a vendor supported product. After we almost went broke, we went back to building our own ecommerce platform.
Your reaction to that might be like mine was: "why would a retailer want to spend money building their own platform?" After all, shouldn't they concentrate on their core competence--retailing--and leave software development to the experts?
Here's what it comes down to: most online retailers aren't selling unique products. They're sourcing product from a supply chain that their competitors have access to as well. So, they're all selling the same thing with roughly the same margins. What do they compete on? Shopper experience.
The one thing that can make a huge difference in their top-line revenue is the overall experience that a shopper has when they visit the online store. If it's slow, ugly, full of friction with too many clicks, breaks, doesn't offer features shoppers expect, and so on, shoppers will go somewhere else.
All of these depends on the platform and if you're using the same platform as your competitor, you're reduced your degrees of freedom substantially.
Amazon, of course, is the biggest example of a company that uses a custom ecommerce platform. They're a premiere technology company because that's what it takes to be the Net's biggest retailer. Amazon wouldn't be Amazon if they were running on ATG (ignoring issues of scale). Amazon is the biggest retailer because they run their own platform--not the other way around.
Every business has to know how they compete and who they compete with. In retail you might compete on a unique product, but usually you're competing on price and experience--and only the latter is sustainable.
11:19 AM | Comments () | Recommend This | Print This
June 26, 2008
Utah.LEG Anyone?
When I proposed (PDF) that the State of Utah move from the state.ut.us domain they'd been using to the more easily branded utah.gov, Al Mansel, the President of the Utah Senate asked me why he couldn't have utah.leg since "gov" meant governor (don't ask). Now, he can.
Opening up TLDs and allowing other than ASCII characters is, as they say, a huge step. I hope it's not one into the abyss.
4:43 PM | Comments () | Recommend This | Print This
June 24, 2008
Velocity 08: Puppet In-Depth and Hands-On
The final talk of the day (hope I make my flight) was by Luke Kanies of Reductive Labs on Puppet.
Most automation tools are based on SSH and as a result, they suck. The problem is that the intersection of administrator and developers is very small. Luke wanted Puppet to be so good it was like bringing a gun to a knife fight. The goal: manage lots of machines with very little effort.
Luke makes an analogy about the transition from assembly to C and moving from commands and files to "resources." Resources are abstract and portable. Abstraction is the most important idea here. Why do we have to know how to, for example, update packages on Fedora and Debian.
Packages are the basic unit. You can install, uninstall, update, etc. packages. There are 23 package types. Resources say what to do for a given package. Here's an example for SSH:
class ssh {
package { ssh: ensure => installed }
file { sshd_config:
name => $operatingsystem ? {
Darwin => "/etc/sshd_config",
Solaris => "/opt/csw/etc/ssh/sshd_config",
default => "/etc/ssh/sshd_config"
},
source => "puppet://server.domain.com/files/ssh/sshd_config"
}
service { ssh:
name => $operatingsystem ? {
Solaris => openssh,
default => ssh
},
ensure => running,
subscribe => [Package[ssh], File[sshd_config]]
}
}
The class provides intent; by creating a class for ssh, you're saying it should be installed and running. Note that the installation, configuration, and service all have their own definitions.
Nodes allow you to associate hosts, by type, with resources. Transactions make sure everything is in it's correct state. Transactions are idempotent--they don't have an effect if machines are in the right state. Idempotency allows management throughout the lifecyce. Puppet should manage a machine from it's birth to death.
6:10 PM | Comments () | Recommend This | Print This
Velocity 08: Even Faster Web Sites
Steve Souders of Google is speaking on Even Faster Web Sites. I've read Steve's book and loved it. It's the kind of book you read in the morning, use to make changes to your site in the afternoon and at the end of the day, you've made a huge difference.
Usually, a small percentage of the time (10%) a browser spends putting a page in front of the user is spent downloading the HTML document. Making the Web server faster might save compute time or storage, but it doesn't do much for the user's perceived response time.
80-90% of the end user response time is spent on the front end of the page load experience, so start there. You'll have a greater potential for impact. The changes are simpler than backend tuning. And finally, they've been proven to work. I can personally vouch for that.
Steve created rules or high performance Web sites and built them into a Firefox extension called YSlow. Running in on www.windley.com, shows that I don't do so well. I get a grade of "F." I'll have to work on that!
Steve's writing a new book that focuses on some new rules. Javascript is the place to focus. Javascript requests can have a big impact. They block parallel downloads because once they start executing nothing else happens. Steve created Cuzillion to allow people to create test pages easily that show browser behavior for particular choice.
Steve shows a table that shows that Facebook, for example downloads 1Mb of javascript and only executes 9% of them. Of the top ten sites on Alexa, the average is 252Kb with 26% of the functions executed. S
The first new rule is to split the initial payload. Split JavaScript between what's needed to render the page and everything else. The is largely something you have to do manually. Finding all the possible code paths is hard.
The next rule: avoid script blocking. There are numerous techniques to avoid script blocking. Most of these require some refactoring of the JavaScript code because you're downloading and then using a technique to eval what got downloaded. On technique that doesn't is appending the script after the page has loaded. One big difference between these techniques is how they affect the busy indicators. Some people get nervous when the page is "still loading" even when it's rendered and downloading scripts. On the other hand, if the status bar says "done" and the page hasn't rendered completely people will reload unnecessarily.
Long inline scripts block rendering and download. You can initiate execution with a setTimeout, move it to an external script, or use the defer attribute (IE only). Don't scatter them in the page and don't put it between the stylesheet and any other resource.
2:45 PM | Comments () | Recommend This | Print This
Velocity 08: Storage at Scale
Google's reliability strategy is to buy cheap hardware with no reliability features and create reliable clusters from them because no problem Google wants to solve fits on a single machine anyway.
The Google File System (GFS) is a cluster file system with a familiar interface, but not POSIX compliant. Bigtable is a distributed database system. This has a custom interface, not SQL. There are 100's of instances of each of these cells scaling in to 1000's of servers and petabytes of data.
in the GFS, a master manages metadata. Data is broken into chunks (64Mb) and multiple copies (typically three) of a chunk are stored on various machines. The master also handles machine failures. Failures are frequent when you use lots of commodity hardware. Checksumming detects errors, replication allows for recovery. This all happens automatically. Higher replication is used for hotspots.
Most data is in two formats:
- RecordIO - sequence of variable sized records
- SSTable - sorted sequence of key/value pairs
BigTable is built on top of GFS. Lots of semi-structured data ordered by URL, user-id, geographic locations. The size of the data sets varies widely (e.g. page data vs sat-image data).
Tables are broken into tablets. These are treated as chunks for replicating in GFS. When a tablet gets too big, it's broken in two. Tablets go into SSTables in GFS.
Scale is important. Envisioning how to create exabyte systems. The systems need to be more and more automated. The number of systems is growing faster than Google can hire.
1:10 PM | Comments () | Recommend This | Print This
CTO Breakfast on Friday
I'm spending the first part of this week at Velocity so I'm sure I'll want to talk a little about that. If you've seen something fun or cool in the last month, come and talk about it.
Here are the times for future meetings. Put them on your calendar now!
- July 18 (Friday)
- No breakfast in August
- Sept 26 (Friday)
- Oct 30 (Thursday)
Or, just subscribe to the Google Calendar.
12:45 PM | Comments () | Recommend This | Print This
Velocity 08: Some Tools for Improving Web Performance
HTTPWatch is an HTTP traffic viewer for Internet Explorer. There's a free basic edition, but the professional edition is almost $300! Whew! Firebug for Firefox, of course, remains free.
Fiddler is a Web debugging proxy that runs on a local port on your PC. It registers itself as a system proxy so it should work with most browsers (Firefox needs special configuration apparently). You can also point a browser on another machine at the proxy running on your PC. Wonder if you could do this in Fusion? It would probably work fine. You can also use it to monitor outgoing traffic for funny programs phoning home. Breakpoint debugging seems like a cool idea.
AOL Pagetest is an IE plug-in for measuring and analyzing Web page performance. Pagetest is free. One cool feature, it provides a checklist to see if your page is taking advantage of several well-known "best practices" for making Web pages speedy.
Firebug is a Firefox extension that is used for measuring and debugging Web sites. The Profile button profiles Javascript on the page and gives time by function. Statistical analysis can help with functions that have different behaviors depending on input. John Braton gave a demo of how to use Firebug profiling to optimize a page.
12:42 PM | Comments () | Recommend This | Print This
EUCALYPTUS - Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems
Rich Wolski from University of California, Santa Barbara is speaking about an open source implementation of cloud computing that has an interface compatible with Amazon's EC2 called Eucalyptus.
Rich does research on grid computing. He's been looking for the "open source" cloud. He mentions Numbus (Univ. of Chicago) and Enomalism. But nothing came close to what they wanted: Linux image hosting ala Amazon.
By choosing to make their interface compatible with EC2, they take advantage of all the client side tools that work with EC2 to manage machines in Eucalyptus. They want one-button install of their system on top of a cluster of machines.
The goals:
- Foster research in cloud computing
- Create a vehicle for experimentation prior to buying commercial services
- Provide a debugging and development platform for EC2
- Provide a development platform for the open source community
- Not designed as a replacement technology for EC2 or other cloud services
Challenges:
- Extensibility - simple architecture and open internal APIs
- Client side interface - Based on the EC2 WSDL and 2008 compliant except for static IP address assignment and security groups. There's no public information on system administration of the cloud, so Eucalyptus provided it's own interface for that.
- Networking - VPN per cloud. Public IPs are scarce, so all cloud images have access to a private network interface, but not public interfaces.
- Security - authentication and authorization. All Eucalyptus components use WS-SEcurity for authentication. Intercomponent messages are not encrypted by default. SSH key generation and installation 'ala EC2 is implemented.
- Packaging, installation, maintenance - uses Rocks. They want to change this.
Lessons learned:
- Open source for cloud computing constrains design more than they thought it would. Local configuration choices provide real challenge.
- No one in the real world still build clusters by hand.
- There are few cloud computing configuration tools available.
11:05 AM | Comments () | Recommend This | Print This
June 23, 2008
Velocity 08: High Performance AJAX Applications
Julien Lecomte from Yahoo! is speaking about creating performant AJAX applications. The most important point: plan for performance from day 1. Interestingly many of his initial points are about telling the developer to work with the product manager and not just say "no."
Julien references an Web Site Optimization: 13 Simple Steps by Stoyan Stefanov. Here's some tips:
Less is more. Don't do unnecessary things.
Break rules. Make compromises and break best practices when needed. For example, you might decide to forgo CSS. Especially CSS expressions.
Work on improving perceived performance. Cheat by making users think things are done before they are.
Measure performance. Test using a setup similar to the user's configuration. Profile your code during development. Automate profiling and performance testing. Keep historical records of how feature perform.
Minify CSS and Javascript files. Use something like the YUI Compressor. Stay away from compression schemes that require run time compression. You can also combine the CSS and JAvascript files. Optimize images.
Loading and parsing HTML, CSS, and JavaScript code is costly. Be concise and write less code. Make good use of libraries. Splitting JS libraries into bundles for specific uses might save time.
Close HTML tags. Unclosed tags take longer to parse. Load assets (even images) on demands.
Most DOM events can be accomplished before the onload even has fired. You can also load the scripts after the page has fully loaded.
In JavaScript a lookup is done each time a variable is accessed. Declaring variables with the var keyword and making them local helps. Avoid global variables at all costs. Avoid with. You can use a local variable to "cache" the value of a variable outside the current scope when it's going to be accessed repeatedly.
Limit the number of event handlers. Attaching a even handler to hundreds of elements is very costly and can be the source memory leaks.
Reflows happen when the DOM tree is manipulated. You can minimize reflows by taking advantage of browser built-in optimizations. For example, modifying an invisible element doesn't trigger reflow.
Use onmousedown instead of onclick to take advantage of the time between the start of the button press and the release.
Avoid using JavaScript for layout. Use CSS where possible.
Never resort to a synchronous XHR. Asynchronous programming is more complicated but it's worth it. Deal with network timeouts programmatically.
If you validate user data on the browser, 99.9% of the time, the request will succeed, so lock the affected elements, let the user know something's happening, and process the request while the user continues to use the application.
Use JSON rather than XML. Consider local storage and just process diffs. Multiplex AJAX requests where you can.
4:24 PM | Comments () | Recommend This | Print This
Velocity 08: Actionable Logs
Mandi Walls from AOL is talking about creating actionable logs. Actionable logs are logs that provide data that can be used to fix problems. There are a few rules to start with:
- No nonsense logging
- Concise, easy to understand
- Express symptoms of productions issues
- Any that makes the log needs to be somethings that can be fixed (better signal to noise ratio)
Everytime you write to a log file, you're expending resources. The point of logging in production is diagnosing issues. You need to be able to understand the logs at 4am in the morning.
The primary goal is diagnosis and recovery of problems. Secondary goals include statistics and monitoring, insight into application behavior, and indicating potential problems. Note that these are different than the goals of development and QA logs.
Logs come in different flavors: access logs, server logs (e.g. Catalina), application logs, and special use logs for groups of activities.
Some hints:
- Log locations should be predictable and obvious. You may want logs on different disk partitions (this stops full file systems from crashing the server). Keep old log files in an obvious place as well.
- Rolls logs into files with timestamps in the names.
- Logs should be human readable and easy to parse. Use real dates and times. Unix timestamps don't pass the 4am test. Good timestamps give you the ability to link server activities to external events (like network outages).
- Create a common format for multiple applications where possible.
- Use one line per logs message where ever possible.
- Avoid the use of only numerical error codes in them.
- Put URLs to external info in log messages where appropriate
- Be consistent about severity. Saying something's "fatal" without more data isn't helpful.
- Log at the first point the error is encountered. If a server is processing 100,000 requests per minute, waiting a minute to log something means there's lots of data in between the problem and the log entry.
- Actively manage and prune logs to make new errors obvious.
- Don't include usernames, logins, passwords, etc. These are development logging issues, not production.
- An application log should have 10-25% the number of entries of the access log. Too much data hides problems.
In summary, make production logs about helping operations staff solve problems. Good logs can help solve problems. Poor logs can hinder problem solution.
3:17 PM | Comments () | Recommend This | Print This
Velocity 08: Energy Efficient Operations
Luiz Barroso from Google is speaking about Energy Efficient Operations. Computing has a great track record of having a positive impact on society. The world needs more computing. But more computing means more energy (usually).
World energy use of servers is around 1% of total electricity consumption. Making efficient computers is harder than making efficient refrigerators. Efficiency is computing speed divided by power usage. But that's too simple. For a server, you have to take into account the efficiency of the compute efficiency, server efficiency, and data center efficiency. These get multiplied together. Ugh.
Data centers are underutilized which accounts for a wasted power provisioning investment and less efficient power and air distribution. Typical serve power supplies dissipate 25% of total energy as heat. Computers are the least efficient in their most common operating points.
The operating cost of a data center is about $9/watt over 10 years. But the cost of building the data center is $10-22/watt. Facility costs are more important than operating costs in energy terms. Maximizing usage is a great way to save energy.
Here's some things to do:
- Consolidate workloads into the minimum number of machines needed for peak usage requirements
- Measure actual power usage of devices. Nameplates lie and overstate usage.
- Study activity trends and investigate oversubscription potential. You don't want to go over (bad for machines and bad from a contractural standpoint).
This let's you pack the most servers in your data center that you can. A study at Google showed that you have to be able to spread computing over a larger number of machines in order to really take advantage of oversubscription. At the facility level, you might be able to host 20% more servers through oversubscription.
If you have a search cluster, a map-reduce cluster, and a web-mail cluster, the oversubscription potential is fairly low. But combined, they have substantially more because mixed workloads balance out demand better. Monitor and "victimize" a defined "best-effort" workload when problems arise.
Switching to energy-proportional computing. Consider the data center as a single computer. Call it a "land-held computer." :-) Most of the time aren't idle or at peak (unlike laptops). This is a result of the fact that high-performance and high-availability requires load balancing and wide data distribution. We design them to work this way. The result is there are no useful idle intervals in which to shut a processor down. There are lots of low activity intervals.
An idle server uses about 50% of the peak power requirement. But if you plot efficiency, the server becomes much less efficient below about 30% usage. 100% isn't realistic, but getting over 30% is.
So, energy-proportional computing is the idea of making the efficiency more linear. This would greatly reduce the need for complicated power management. CPUs are actually better at energy proportionality than other components (like RAM, disk, network, fans, etc.) An idle CPU, for example, consumes less than 30% of it's peak power where as DRAM is about 50%, disks are over 75%, and networking is over 85%!
Moreover, CPUs have active low power modes. A CPU at a slower clock rate still executes instructions, but DRAM and disks in low power mode need to bump up to full power to operate.
If there's any question whether this is a good idea, consider that the human body has a factor of 20 from it's resting power consumption to peak (at least for elite athletes).
The most basic thing you can do is to write fast code. This is the software engineer's biggest contribution to energy efficiency.
Throughout the talk Luiz referenced a paper from ISCA07. I believe this is it: Power provisioning for a warehouse-sized computer by Xiaobo Fan, Wolf-Dietrich Weber, and Luiz Andre Barroso
12:50 PM | Comments () | Recommend This | Print This
Velocity 08: Jiffy: Instrumenting and Measuring Web Performance
Scott Ruthfield from WhitePages.com is announcing a new open-source projects called Jiffy, a tool for measuring the end-to-end performance of Web sites (PDF slides). Jiffy provides real data about performance that is more complete and more fine grained than what you might get from Keynote or Gomez. Jiffy has four goals:
- Real data at scale - track 100% of page views
- Measure anything - pre load data access, each add, brand, when the form is ready, and so on
- Real-time reporting
- No impact on page performance
Jiffy comprises a JavaScript library that instruments the pages, an Apache proxy, a tool for putting log data into a database (Oracle for now), and reporting roll-up code and UI.
The basic idea is "mark and measure." You can set a mark and then make any number of measurements of how much time has elapsed from the mark. You can do immediate or batch submits depending on the requirements or your site and how much bandwidth with want to consume.
Bill Scott of Netflix has written an extension to Firebug for Jiffy.
10:52 AM | Comments () | Recommend This | Print This
Velocity Keynote: IT Operations are Unsustainable
Bill Coleman (the "B" in BEA) is giving the opening keynote titled Green Data Centers, but it's really about sustainable operations. He begins by saying that the current way we operate data centers is unsustainable. Operations costs are growing at twice the rate of IT in general. This is the unintended consequence of the success of networked operations. Scale and complexity have grown dramatically. Bill claims 5 orders of magnitude.
In some organizations it can take 6 months to get a new server into the data center. If you do it faster than that, good for you. Virtualization is a band-aid. It adds to complexity while helping with scale. IT automation helps deal with complexity.
We're nearing a huge inflection points: it's theoretically possible to connect anything to anything. Soon that will be the norm.
What's the answer? The cloud. Today we have Cloud 1.0. I use proprietary tools to build a web application on proprietary platform. Soon those tools will be more sophisticated, but still be proprietary. Cloud 3.0 will make all that a commodity. We will take it for granted.
Power savings comes from actively managing servers--turning them on and off as needed. Real-time, dynamic capacity management is the key, but the real point is that policy-based server management provides for scalability and pooling of resources.
Bill talks about a major corporation with 15,000 virtual machines and they still only get 20% utilization. You can get to 80% on a mainframe because they mix and match jobs--mission critical or not--on the same hardware. Policy-based data center management allows that to happen by tacking up and tearing down VLANs, servers, and storage to meet current demands.
10:21 AM | Comments () | Recommend This | Print This
Government Data: the Good and the Bad
While I'm at Velocity, Personal Democracy Forum is happening on the other side of the US. David Stephenson was kind enough to send me a slide share of the talk he'll be giving there on government data feeds and visualization. I couldn't help comparing his vision with the reality that Jason Snell writes about in Alameda County: court documents as individually scanned TIFF documents served up in some crappy Java applet. Heh. Some places have a long way to go.
9:00 AM | Comments () | Recommend This | Print This
Dinner at Velocity?
I'm at the Velocity Conference in Burlingame, CA today and tomorrow. I was planning on dinner at Kincaids tonight. If you're interested in coming, drop me a note or direct me on Twitter and I'll include you in the reservation.
5:16 AM | Comments () | Recommend This | Print This
June 18, 2008
At Velocity Next Week: Automating Infrastructure
I'm going to be at O'Reilly Velocity conference next Monday and Tuesday. Scott Lemon and I talked with Jesse Robbins (conference chair) and Adam Jacob (presenter) for a Technometria podcast a few weeks ago and got a lot out of it. I decided the conference was something I needed to be at.
3:20 PM | Comments () | Recommend This | Print This
June 17, 2008
Tracking Time? Try Chronosx
A good friend of mine, Nathan Sandland, has written a time tracking applications for the Mac called ChronosX. He says:
I came up with the idea for the project when I switched from being a PC user to a Mac user last year. The one application on the PC I couldn't find a good replacement for on the Mac was my time tracking app. There are many such apps out there for OS X, but none of them was as convenient to use as the one I had on the PC. This new app solves that problem, and also adds some nifty features, such as direct integration with Apple's iCal calendaring application, so you can see your working time logged right alongside your regular calendars.
I really like that it published an iCalendar feed that you can access as a URL. I don't need to track time for projects right now, but seeing Nathan's program almost makes me wish I did!
1:37 PM | Comments () | Recommend This | Print This
June 12, 2008
Follow the Elections on '08 Conversations
Doug Kaye has turned the resources of the Conversations Network on the 2008 election with '08 Conversations. The idea is to team with the Public Radio Exchange to publish stories about the election you might not otherwise here.
Joel Tscherne, who has been a great help to me as th Series Producer for the Technometria podcast, the Executive Producer for '08 Conversations. Right now the shows are coming out about once per week. As the election approaches that rate will increase. Here's a few shows that have been on 08Conversations recently:
- McCain's Train Wreck
- Jules Witcover - The Longest Campaign
- John Edwards - The Final Rose
- Ron Paul - The Loneliest Republican
- America and the Global Economy
If these interest you, you might consider just subscribing to the '08 Conversations feed so you don't miss any of them. Give it a listen!
5:48 AM | Comments () | Recommend This | Print This
June 11, 2008
Building Personas
The
floor (click to enlarge) |
I attended a few sessions on personas. I didn't get it all, but I did have some thoughts that I tried to record. Here are some questions to ask:
- Who is the shopper? Examples include
- First time buyer
- Repeat customer with specific frequency
- Loyalty program member
- What task is the shopper trying to accomplish? Examples include
- Replenish - buy a product they've bought before
- Accessorize - buy products related to what they've bought before
- Research - find information on specific product
- Browse - just killing time
- Leave - didn't intend to get here)
- What do you know about the shopper? You can find information in
a lot of ways
- Session data - referer, connection speed, IP address, etc.
- Checkout data - name, address, etc.
- Survey data - ask the customer!
- Ratings and reviews by this shopper
- Email responses
- Past purchases
- Clickstream - where has the visitor been on this visit and past visits
- Analytics data - What percentage of your visitors are repeat visitors? That's one way to measure if you're giving customers relevant products and services. How long do visitors stay?
Using a persona depends on defining tactics for how to engage the customer for various combinations of the above. For each combination try to understand (analytics) how they behave on the site. When something goes wrong (like shopper not getting what they're after), how and where can you intervene?
Personalization should be used to overcome the paradox of choice in ecommerce where longtail economics give more product selection than any offline store can provide. Some simple things:
- Change the homepage for repeat customers vs. new shoppers
- Change the homepage for product search engine browsers
- Add a loyalty box for loyalty program members
- Add a "best sellers" box
- Reorder product search results according to a merchandising strategy
- Add a "click-to-chat" button up when shopper puts a high ticket item in their shopping cart
Here's an example merchandising strategy for product search results:
- Give the newest styles higher priority for shoppers in 'fashion shopper' category
- Give the on-sale merchandise higher priority for shoppers in the 'bargain shopper' category.
- Give in stock priority over back order
- Finally order by price
54% of shoppers notice recommendations and 72% of those find them helpful.
Recommendation engines (customers who bought this item, liked these items...) are a good way of automating some personalization tasks. New recommendation engines personalize the recommendation (customers like me who bought this item, liked these items...). Real time, based on shopper behavior at the moment, not static models.
Speakers seemed to blow off privacy concerns even in the face of direct questioning about it using logic that went something like "we're going to shove products at you on our site it might as well be more relevant."
3:06 PM | Comments () | Recommend This | Print This
June 10, 2008
Web 2.0 and Ecommerce: David Friedman
David Friedman of Avenue A | Razorfish is talking about Web 2.0 technogies and ecommerce. The title was "Web 2.0: A reality check" and I was kind of expecting a cautionary tale, but it was more a tale that went something like "if you're not doing this, then you're dead."
The Web has always been a great place for surgical shopping. When you know what you want, you can go get it and the experience is largely good. Web 2.0 technologies give us the opportunity to put more of the fun of a traditional shopping experience into the Web.
- Support multi-dimensional product comparisons. This is becoming expected by customers. Ratings and reviews fall into this category, but go beyond ratings and also make it easy to compare products on your site.
- Build places that make it easy for customers to play and share. How do customers explore your product, engage with it, and share that experience with others.
- Engage in the conversation. Your customer is interested in getting to know you in a different way. They want you to stop just talking to them and begin a conversation.
- Give users and influences the ability to take your content and use it i other places. Customers don't really want to go see you. They don't wake in the morning and think: I can hardly wait to go to an online retail store. So let others bring your store to them.
1:46 PM | Comments () | Recommend This | Print This
Social Networking and Retail
Some ideas from the social networking and retail panel:
- Engage communities that share our passions, partner with leaders in the this space
- Use caution or mistrust will erode the audience
- Switching barriers are low
- Enable fans to act as advocates
- Social network will become a primary channel for targeted marketing.
1:07 PM | Comments () | Recommend This | Print This
New Levels of Competitiveness in E-retailing: Robert Antall
Robert Antall, CEO, Lake West Group is speaking on the new level of competitiveness in e-retailing. His slides are busy, but he's saying quite a few good things. I'm just writing down some ideas. Today's innovation is tomorrow expectation Customer loyalty isn't about getting people to buy more stuff from you, it's about turning them into advocates. He uses Hertz as an example. They use customer information to understand what customers want, not send lame emails. The emerging competitor is "globally integrated:" multi-channel, international, vertically integrated, agnostic supply chain, integrated technology, and multi-brand. He cites Costco, Staples, Gucci, AutoZone, Nike, HomeDepot, Payless, and Starbucks as examples. Retail is generally slowing, but online is building in these companies. They're increasing order size and enhancing customer loyalty.
Some things competitive companies do:
- Understand who the customer is and what they purchase
- Forecast demand from customers
- Define the business strategy to meet these needs
Be customer-centric, not product centric. In the 1980, suppliers had power in a retail relationship. They dictated to retailers and shoppers. MSRP is an example. In the 1990's and to the present, retailers built powerhouse chains and took the reigns. Moving forward, shoppers will become dominant because of the information available to them. Build your business around that fact.
There is a direct correlation between enhancing the customer experience and long term profitability. Most shoppers can find most products in multiple locations. Customer centricity is the most important message we can get today. Reatiling 2015: New Frontiers by PwC: "Customers will tell you waht they want--if you know where to listen."
I was going long with him and liking what I was hearing until he showed this slide:
I'm not clear how this translates in to a "customer centricity success story." Segmenting customers so you can target the ones who make you the most money isn't my idea of "customer-centric." In my mind, customer-centricity is about the customer experience. Targeting customers to extract more money from them is exactly the mentality that gets in the way of creating a great customer experience.
8:54 AM | Comments () | Recommend This | Print This
Internet Retailer Conference 2008: Keynote by Mike Boylson
I'm at the Internet Retailer this week at the McCormick Center in Chicago. I haven't been to an industry conference like this since 2000. The opening by Jack Love was, frankly, a throw away. Nothing like a Phil Becker welcome at Digital Identity World. Jack spent his 15 minutes telling us why his conference was so important ("this show is full of content") and saying things about ecommerce that anyone who's been paying attention since 1997 probably know ("ecommerce works as well for small merchants as large merchants"). Instead, he should have introduced a theme and set out the "state of ecommerce."
Many of these attendees are retailers, not vendors. This isn't so much an ecommerce conference as an online retailing conference. The vendors are all on the exhibit floor. That's OK. We're mostly here to cruise the exhibit floor and learn about competitors as well as sense opportunity.
A second short intro speaker (didn't catch the name) did speak to some trends:
- Ecommerce is becoming more mainstream. For example, last year, for the first time, online apparel sales surpassed online computer sales in terms of dollar volumes. Given that basket sizes are much smaller, that translates into any more individual orders.
- Higher fuel costs are going to hit online retailers. Many have been eating the cost of shipping to compete with offline retailers, but that probably won't last.
- Green is becoming a factor in ecommerce. Consumers who care about green products can find them more easily online than offline. On the other hand, green often translates to "local" and that can hurt online sales.
Mike Boylson, Executive Vice President and Chief Marketing Officer at JC Penney is the keynote speaker. He started with an interesting statement: The things we've done in the past to get where we are won't get us where we need to go. Half of all households in the US shopped at a JC Penney store sometime in the past year. Their ongoing goal is to be the preferred shopping choice for middle America.
Before 2001, JC Penney was largely decentralized and there was little brand identity between individual stores as they merchandised separately. Between 2001 and 2004, they built infrastructure to support centralized ordering and sourcing. They've built four million sq foot fulfillment centers and set up their own design and sourcing capabilities.
Mike showed us videos which didn't tell me much about JC Penney's ecommerce strategy. I felt cheated out of those 5-10 minutes. I didn't spend money to come to a conference to see advertisements.
One of JC Penney's strategies is to put destination brands (like Liz Clayborn merchandise) in their online store. They're taking advantage of longtail principles here because they don't have room in their stores for all this merchandise, but of course, online shelf space is almost unlimited. These brands cause JCP to be more relevant and relevance is key.
JCP's 35,000 POS terminals are linked into jcp.com so allow in-store sales associates to help customers order online and handle returns. Four out of five web shoppers are store shoppers. The ecommerce platform has become the hub of the business, managing orders, fulfillment, etc. The "know before you go" program allows shopper to research online to find products in the store. Linking the online use to offline products is important.
It's just a matter of time until all marketing is digital. Make jcp.com much more exciting and interactive. Customer media habits are changing. Shoppers 18-35 years old don't access newspapers, magazine, and so on in the same way their parents did. Not to mention the fact that it's expensive. Digital asset management is key here.
JCP is organizing according to channel/customer rather than business unit. For example, marketing has P&L responsibility for all of the "direct" business (online and catalog). Have one "voice" and a consistent look to the brand.
8:19 AM | Comments () | Recommend This | Print This
June 9, 2008
Starting a High Tech Business: Speed Pitching
I’m starting a new business called Kynetx. As I go through some of the things I do, I’m planning to blog them. The whole series will be here. This is the fourteenth installment. You may find my efforts instructive. Or you may know a better way—if so, please let me know!
Most days lately, I've been getting dressed up and talking to people about Kynetx. I'd rather be in jeans writing code, but when you're raising money you're going to dress up more and code less. Raising money is a distraction from running a business and so should be avoided unless it's absolutely necessary. Unfortunately for the kind of business I'm interested in building, there are times when it's necessary. I spoke with the CEO of one venture backed late-stage startup yesterday who said he spends 25% of his time raising money. Ugh.
Going into this process (which I've been doing seriously for several months) I knew some things about raising money, but hadn't ever done it myself. There was always someone else to do that while I made stuff. I've learned a lot and likely still have a lot to learn.
One of the things I've learned is that you're in great peril of losing the sense of magic--the very thing that made this exciting and launched you on the journey in the first place. When you say something over and over again, you get bored with it--even when it's the first time for your audience.
Another thing, like software, the second version of your pitch will be overbuilt. Last summer, based on what we wanted to do, I put together a slide deck. Based on some information we got this spring we completely rewrote it. Once we got good feedback on the second version, we ended up with a third version that was--mostly--just right and much more like the first than the second.
Steve and I went to a FundingUniverse speed pitching event last Wednesday and it was probably one of the most useful things we've done in this whole process as far as getting our story down and getting the pitch smoothed out.
If you haven't seen one, it's like speed dating, but there are angel investors sitting at the tables instead of women (or men, depending). The entrepreneurs move from table to table. You have 7 minutes at each table: 4 minutes to pitch your idea and 3 minutes for questions.
The investors expect the full pitch--everything--in those four minutes. When we first heard this, we thought it was impossible. Turns out you can do it. And when you're done refining your pitch to four minutes and then giving it a dozen times (after practicing it dozens more) you'll have be very good at explaining what you do.
That last point is important. Explain what you do. That's the most important thing you can do in any pitch--long or short; Guy Kawasaki is right: the most important thing you can do with any audience is tell them what you do. When we first started practicing the four minute pitch people would say "I'm still not sure what you do" when we were done.
Of course we told them in the first slide--or thought we did. But what you think you said and what people hear when they're unfamiliar with the idea and bringing their own assumptions to bear are two different things. You need to them over and over again in many different ways before they'll really understand. All in four minutes.
Of course, the primary idea is to generate interest and get a chance to sit down in a more relaxed atmosphere to really get into the details. We were pleased to get 5 or 6 people express interest in another meeting from the group and we'll be following up in the coming weeks. If you get a chance to speed pitch do it. It's a great exercise--even if it doesn't lead to funding.
10:43 AM | Comments () | Recommend This | Print This
June 5, 2008
Happy Birthday IT Conversations!
IT Conversations is five years old today! Doug started ITC before the word "podcasting" was even a word. Doug mentions these milestones on his blog:
- published 1,743 audio programs (89 currently in production)
- trained 152 members of TeamITC who produce our programs
- created four channels based on the IT Conversations model
- created PodCorps.org (now 640+ stringers)
- released The Levelator (more than 83,500 downloads)
I was one of Doug's first interviews and now I'm the Executive Producer. It's been a fun ride and I've enjoyed my association with Doug and the other members of TeamITC very much.
1:16 PM | Comments () | Recommend This | Print This
June 4, 2008
Welcoming Joel Spolsky and Jeff Atwood to IT Conversations!
Joel Spolsky, of Joel on Software and Jeff Atwood of Coding Horror have been doing a podcast called StackOverflow for a couple of months. I've been a regular listener for since the first episode and have loved it. Since the first episode, I thought "this would be a great show for IT Conversations."
Today I'm very happy to announce that my wish has come true and the debut episode of StackOverflow on IT Conversation went live today! Take a listen and be sure to let us know what you think with a comment or by leaving a rating.
One note: This is a weekly show that will usually appear on IT Conversations on Wednesdays. We still have lots of great conference material too, so there will be days that we publish more than one show. Make sure your podcatcher is set to capture more than one show a day. This is especially important if you use iTunes to grab IT Conversations since it downloads at most one show per day by default.
10:03 PM | Comments () | Recommend This | Print This
June 2, 2008
My Blog is Six Years Old
Last week, my blog passed it's six year anniversary. My inaugural post (besides what amounted to a "hello world" test post) was on asset management. I didn't post again until the 10th of June. Like many bloggers I got off to a slow start. But June 2002 was a good month with a number of posts that indicate what was on my mind then.
People often ask me how to get their traffic up on their blog. Unfortunately, my experience was atypical. I started early and was one of the first CIOs to blog (I was the CIO for the State of Utah at the time). The attention that I got from that is part of what made blogging such a great experience for me early on and established habits that carry through to today.
In that time, I've posted 3374 times to this blog. If you consider that each year has about 250 work days, that works out to a little more than two posts per workday (2.24 to be exact). That's the real key, I think. Post consistently and write about things that interest you. Then whether anyone reads or not, you win because you'll be better informed by the activity.
11:44 AM | Comments () | Recommend This | Print This
Top Ten IT Conversations Shows for May 2008
Here are the top ten IT Conversations shows for May 2008:
- Michio Kaku - Physics of the Impossible (Rating: 3.89)
Dr. Moira Gunn speaks with Michio Kaku, theoretical physicist and author of "Physics of the Impossible" about the improbable, and the very likely in the near future: phasers, force fields and time travel.
- Arthur Benjamin - Secrets of Mental Math (Rating: 3.62)
Mathematician, magician and lightening fast human calculator Arthur Benjamin delights and amazes the Etech crowd with some stunning numerical acrobatics. In an interactive, high energy performance, he demonstrates and explains the secrets of rapid mental calculation, providing a fascinating window into how the mind thinks. If you've been wondering how to square 73,542 in your head, be sure to listen through to the end of the show.
- Susan Blackmore - Memes (No rating yet)
Memetics is an intellectually rich but controversial field which seeks to explain how our minds and cultures are designed by natural selection acting on replicating information, just as organisms evolve by natural selection acting on genes. Sue Blackmore, one of the field's leading thinkers, skillfully unfolds the major arguments for a meme's-eye view of the world, and explores the implications for humanity. Are our brains best seen as machines invented by and for propagation of selfish memes?
- Changing Biotech - Bio-IT World Panel Session (Rating: 3.00)
Dr. Moira Gunn and David Ewing Duncan host a panel at the seventh annual Bio-IT World Conference on Changing Biotech.
- Bill Janeway, Peter Bloom - Web 2.0 and Wall Street (Rating: 3.59)
Many of the current attributes of Web 2.0 were first exposed in work done on Wall Street. Bill Janeway and Peter Blook, two Wall Street veterans, discuss some of the changes that have taken place over the last three decades in the investment banking and trading industries, like the shift from sales to use of proprietary information, the reduction of latency, and collaboration of ideas. The ideas in this discussion should give insight to anyone looking to the future of Web 2.0.
- Steve Cone - Power Lines: Words that Sell (Rating: 2.75)
Dr. Moira Gunn speaks with author Steve Cone about his new book "Power Lines," in which he writes about words that sell, grip fans and sometimes change history.
- Adam Jacob, Jesse Robbins - Automated Infrastructure (Rating: 4.27)
In his recent presentation at the Web 2.0 Expo in San Francisco, Adam Jacob talked about why a start-up needs an automated infrastructure. He covered the components necessary for any automated infrastructure to be successful and also presented use-cases. Along with Jesse Robbins, Adam joins Phil and Scott to talk about the automated infrastructure process.
- Lucas Gonze - Discovering, Sharing, and Experiencing Music (Rating: 3.18)
Lucas Gonze founded the playlist-sharing site webjay.org, and currently leads the development of the Yahoo! Media Player. He's also an amateur guitarist who records and performs 19th-century parlour music. In this wide-ranging conversation on Interviews with Innovators with Jon Udell, Gonze reflects on the ways we discover, share, and experience music in the digital age.
- Mitchell Kapor - Open Source: The End is Not in Sight! (Rating: 3.50)
The first generation of Open Source has been a wild ride unimaginable at the time it began. But Mitch Kapor, President of the Open Source Applications Foundation and chair of the Mozilla Foundation, thinks the end is not in sight and that we can influence the future of Open Source by our actions and contributions. Open Source has some great virtues that deserve to be spread through all of society, not just the computing industry.
- Wireless Innovation Panel - What will drive wireless innovation? (Rating: 3.20)
In this panel discussion from the Emerging Communications Conference, experts from wireless carriers, application developers, and entrepreneurs discuss the potential, and the obstacles to wireless innovation. They present a range of viewpoints on topics from open networks to software for handsets.
The Susan Blackmore talk from PopTech showing up is interesting given that it's three years old.
Since moving to the new ratings system and site design, we're getting a lot more ratings per show, so I'm more confident of them than I have been in the past. It's interesting that the most downloaded shows are not always the highest rated. I think that that shows the gap between expectation and satisfaction, to some extent.



