This paper shows that one can be competitive with the kmeans objective while operating online. In this model, the algorithm receives vectors v1, . . . , vn one by one in an arbitrary order. For each vector vt the algorithm outputs a cluster identifier before receiving vt+1. Our online algorithm generates Õ(k) clusters whose k-means cost is Õ(W ∗) where W ∗ is the optimal k-means cost using k cl...