@classmethod
def get_shipping_samples(self, limit=None, update_cache=False):
    KEY = ('%s|%s|%s' % (Feature.DEFAULT_MEMCACHE_KEY, 'samples', limit))
    feature_list = memcache.get(KEY)
    if ((feature_list is None) or update_cache):
        q = Feature.all()
        q.filter('impl_status_chrome IN', [ENABLED_BY_DEFAULT, ORIGIN_TRIAL, INTERVENTION])
        q.order('-impl_status_chrome')
        q.order('-shipped_milestone')
        q.order('name')
        features = q.fetch(None)
        q = Feature.all()
        q.filter('impl_status_chrome <', ENABLED_BY_DEFAULT)
        q.order('-impl_status_chrome')
        q.order('-shipped_milestone')
        q.order('name')
        others = q.fetch(None)
        features.extend(others)
        feature_list = [f.format_for_template() for f in features if len(f.sample_links)]
        memcache.set(KEY, feature_list)
    return feature_list
@classmethod
def get_shipping_samples(self, limit=None, update_cache=False):
    KEY = ('%s|%s|%s' % (Feature.DEFAULT_MEMCACHE_KEY, 'samples', limit))
    feature_list = memcache.get(KEY)
    if ((feature_list is None) or update_cache):
        q = Feature.all()
        q.filter('impl_status_chrome IN', [ENABLED_BY_DEFAULT, ORIGIN_TRIAL, INTERVENTION])
        q.order('-impl_status_chrome')
        q.order('-shipped_milestone')
        q.order('name')
        features = q.fetch(None)
        q = Feature.all()
        q.filter('impl_status_chrome <', ENABLED_BY_DEFAULT)
        q.order('-impl_status_chrome')
        q.order('-shipped_milestone')
        q.order('name')
        others = q.fetch(None)
        features.extend(others)
        feature_list = [f.format_for_template() for f in features if len(f.sample_links)]
        memcache.set(KEY, feature_list)
    return feature_list