I'm happy to announce that we've opened the API that powers http://searchbeta.active.com, the solution scheduled to become the new Search engine behind active.com in the coming months. By opening the API we're hoping developers will think of interesting ways to use and mashup our data. The API provides programmatic access into our core directory of assets, including:
While this data was already available before through the Asset Syndication API, it is now possible to conduct relevancy-based searches based on keywords. Plus, the new Search API is fast and allows for a variety of output formats including:
Rankings data is available through an open API, and we partnered early on with ESPN Rise to feature football rankings on their site. Check out the bottom right-hand corner of http://espn.go.com/high-school-sports/rise/football/ where they build a widget consuming the Rankings API. The API is now available for all developers to leverage in their applications or websites.
Determine the geographic context for ranking data by querying the Playoff Group, Playoff Subgroups or Sportspower School Size Classification API for the relevant group ID (i.e. "60" for all very large highschools in the United States).
Use the geographic context (group ID) to get a list of rankings for a given sport.
During the initial rollout, only highschool football (api.sportspower.com/football/) and basketball (api.sportspower.com/basketball/) is supported with lacrosse data from laxpower.com soon to follow.
Demand Media's LIVESTRONG.com, a “practical resource to find a wealth of health-related information from a wide range of sources”, taps into the Active.com directory of community events to add to the relevance and usefulness of its business listings. For example, the site includes an Active-powered list of nearby events to each of the pages in its Restaurant section:
ESPN Rise uses the SportsPower API Service to better fulfill its goal of offering “all the latest high school sports information, including scores, stats, rankings, polls and athlete profiles”. The site features the top ranked high school football teams across five classifications according to the Active Power Ratings. New ratings and rankings are unveiled every week throughout the season, and are generated at the national, state and local level.
I'm happy to announce the release of searchbeta.active.com! We've been working for many months to improve upon our "Alpha" and today we're ready to open the new Search to you. Keep in mind it's still in beta and there are a few kinks. We're hoping to gather a lot of user feedback so that, when it comes time to replace search.active.com, we've built a product that you will love to use. Check out this screencast for details:
We're well underway developing the new search.active.com, and I thought I'd take a moment to discuss a realt-time, publish/subscribe messaging layer we're inserting into the Search architecture. In the beginning of my career I worked building distributed OSS/BSS applications integrating various line of business systems with products from a middleware vendor called TIBCO. During this time I was introduced to the concept of "[publish/subscribe|http://en.wikipedia.org/wiki/Publish/subscribe]", whereby an application sends one message that may be consumed by many disparate applications. For example, when a customer calls into a call center to order broadband internet, the customer service rep enters order details into a CRM system. When the order details have been captured, the CRM system submits the order for processing. Various applications might be interested in that order, including the workflow system which manages the provisioning process and the Customer Data Store application which warehouses all customer records. Though the publish/subscribe pattern, the CRM system simply publishes the "new order" message knowing nothing about the applications that might be interested in it. Interested systems then consume it and do work with the data.
Decoupling in this way yields a powerful layer of extensibility whereby "n" number of applications can be integrated to consume messages with no modification required to those that produce them.
TIBCO provided a messaging layer called Rendezvous that I worked with on several projects back in the early days. Rendezvous was the medium, or "Enterprise Service Bus" (ESB), through which messages were exchanged. It also cost about $100K. Cheaper (i.e. free) alternatives have come about since then, including an implementation of the XMPP protocol called ejabberd. While XMPP is widely thought to be an instant messaging protocol, it's publish/subscribe plugin makes it a good ESB candidate for simple messaging solutions. There are XMPP clients written in .NET, Java, Ruby, etc., so interoperability is maintained.
The new Search solution is trialing XMPP to synchronize ratings data with the search index. Functionally we've proven XMPP does the job as our prototype is using it today, and we're hoping the platform will be robust enough that we can broaden its use to other AMP initiatives which might include real-time registration notification and social message streaming.
I'm excited about the options publish/subscribe gives us architecturally speaking. Hopefully this is the first of many posts heralding this new design paradigm and highlighting its uses.
The update to active.com last week brought with it a significant improvement in load time and page size. We met last month to determine how we could give the site a bit more zip and came up with a solid list of about 8 items. One of those items, removal of VIEWSTATE, was included in our latest update. VIEWSTATE is a variable used in ASP.NET to make HTTP, a stateless protocol, act like a stateful one. Most of the pages on active.com, however, dont require state, making VIEWSTATE extraneous. And on average VIEWSTATE added an additional 50 to 150 KB to page sizes to the site.
In our latest release we turned VIEWSTATE off. Data shows us that the site is about 23% faster and, with an average page size reduction of 27%, well lower consumed bandwidth out of our production data center by about 500 to 800 GB/month.
I’d like to address feedback we’re received about active.com from our uservoice forum and Twitter. I know I’ve written a few posts here already but thought it appropriate to take the time to introduce myself before diving in. I’m the Director of Product Development for what we internally call “Web Properties”. This includes half of www.active.com, results.active.com, search.active.com, community.active.com, coolrunning.com, sportspower.com, laxpower.com, developer.active.com and a slew of services that support these products. My job is to oversee a team of developers and quality assurance engineers administratively and architecturally. My team and I work closely with Product Management who’s job it is to prioritize features and bugs and communicate important information with the rest of the company. I came on board in February, 2008 with a background as an Enterprise 2.0 guy (I co-authored this book) and Management and Technology consultant where I talked to large companies about how best to leverage social media (Web 2.0).
In 2006 a bunch of smart people (Tim O’Reilly, Martin Fowler, John Musser from Programmableweb) met to define attributes of Web 2.0, and these attributes highlight a positive mental shift in the approach to developing web-based products. The first of the six attributes they identified was “Do one thing well”; stay single-purposed. Looking at the current active.com homepage it’s hard to tell what we’re trying to get you to do. We have information about events. We also have links to articles and blog posts produced by our Content team. And we have ads (gotta pay the bills somehow). We have a lot of purposes manifested on that page.
I have a passion for Web 2.0 and believe firmly that web properties should focus on you, the consumer. The fourth attribute the group defined was “Encourage participation”. To-date we haven’t always done a good job there. We have a lot of very interesting information that could help runners discover other runners – to make you want to connect with other like-minded athletes - but we’re not exploiting the data to that end…yet. We do have a strong Community team that oversees community.active.com where it is easy to participate. But we haven’t presented a clear path for you to understand that this option is available to you after you’ve registered for an event or when you’re planning your events for the year.
Web 2.0 preaches “Honest voice over Corporate speak”, and in following this spirit I wanted to address some of the feedback we’ve received over the past few months. We do get a lot of positive feedback, such as this "@activenetwork love active.com and use it for the races i sign up for. any opinion on my idea for sunblock+running? http://twurl.nl/wrws3h", and our page view metrics seem to indicate that people like using our site. But here are some not so positive things people have said.
“Pardon me but your site is the most ridiuculous site I have ever used. It is not only confusing, it is difficult to navigate. Please hire a pro to re-organize the site, otherwise we "Active" people will be forced to use a crappy monopoly like ticketmaster to preregister for events.”
This is fair, in part, as we’re not giving you clear direction as to what we want you do to on our site. Regarding the half of www.active.com that I oversee technically, we’re working to make navigation more intuitive and consolidate the site’s purpose to make things much clearer for you. We’ll be launching the redesign in Beta in the next few months and will be looking for user feedback at that time.
We’re also working on a new registration platform (the part of the site I don’t oversee) that will improve user experience significantly when it comes to race registration. That product isn’t scheduled to be released for several months, but I’m excited about what I’ve seen so far.
“you send out unwanted e-mails and then your unsubscribe link doesn't work so you tell people they can write to an address to unsubscribe. I don't think so. Fix your link!!!!”
Our unsubscribe links do work, but in most cases only unsubscribe you from that specific newsletter. Generally speaking, unsubscribing to newsletters is a complaint we receive often, and I understand how this can be frustrating. Soon we will be releasing a new page on www.active.com where you can view all of our newsletters, view those you’ve been subscribed to, and either A) opt-in to more or B) unsubscribe from each.
We know that search.active.com is far from perfect, and we set out at the beginning of the year to deliver a significantly enhanced search experience on active.com. While still in early alpha, we’re expecting to unveil the new search.active.com in Q4, and will reach out to a handful of you when we release our closed Beta for feedback.
When you sign up for a race you have the option to opt-in to Active Advantage – a program that provides discounts on race registration and other products. And that program costs $59.95 annually. To be fair, the “opt-in” checkbox used to be automatically checked (a year or so ago, so it was an “opt-out” checkbox), and we received a lot of complaints like this one. But that’s no longer the case, and you have to check the box to be signed up. Regardless, if you think you were erroneously signed up for Active Advantage, firstname.lastname@example.org can always help you out.
I’m excited about how far active.com has come, and for where we will be in the near future. We have a bunch of new features and enhancements (such as improved page load times) in development now that I, as a Web 2.0 enthusiast, find enticing. More to come on these enhancements as they become available.
After much anticipation I'm happy to announce the launch of our Event (Asset*) Syndication API. This is a simple XML/HTTP API that returns a list of events matching specified filters as per API documentation. A subset of our events can be queried through this service. These are (note the api_key below is a demo key, so use it at your own risk):
*Note the word "Asset" appears in the title of this API as we have more than just event in our database, so generically we call these things assets.
During a recent meeting somebody on my team came up with the idea of pulling in "inspirational" tweets, photos, videos from around the web for a given Active topic, like marathon or 10k. I thought it was a great idea, so we worked together to build a prototype and threw it on Labs.
Enter Active Inspiration. We're pulling in the latest tweets and photos about marathons, triathlons and cycling. I suppose you could say this was also inspired by flickrvision and twittervision, except ours is meme-based and also aggregates from multiple sources (we'll be adding more soon).
We think there are lots of interesting things we can do with this data. This is just the beginning. As always, let us know what you think.
Consider the following statements: Microsoft Corporation created C#. C# is used to develop computer programs.
Now think of all of the concepts and relationships between them that are introduced in this statement. As a human, interpreting these is dead simple.
Microsoft is a company
C# is a computer programming language
Microsoft created C#
But, making it so that a computer program can reduce this statement to concepts and the relationships between them is difficult. It is indeed a harrowing task to make computers derive the same meaning from natural language that people do.
Enter the The Semantic Web. The Semantic Web wants to convert the Internet into a database; to make it so computer programs can understand concepts and relationships between concepts contained within in the natural language on web pages.
Microformats are an element of the Semantic Web that define concepts (but don't do a good job of defining relationships), and we've recently introduced them on active.com. Microformats "...are a set of simple, open data formats built upon existing and widely adopted standards" that make it possible to annotate a web page with metadata describing concepts contained within them. On active.com we've implemented the hCalendar microformat to annotate events.
Consider, for example, the Carlsbad 5000. Peering into the HTML source, you'll find:
By annotating the "class" name attributes within the HTML elements according to the hCalendar standard, we can let a computer program know there's an event called the "Carlsbad 5000" on this web page, its start time, end time and location. The Tails Export Firefox plugin, for example, is a computer program that detects microformats on web pages. In the screenshot below we can see it detecting the hCalendar microformat on the Carlsbad 5000 event page:
This stuff's a little geeky sure. But we're proud to contribute to the Semantic Web! on active.com to come.
When I started working at active.com the first thing I noticed was that there were no RSS feeds on our pages. It seemed like a simple oversight to me. But, it turned out adding RSS was harder than one might think, mainly because we had to make sure all was kosher with our content partners.
Well, the time has finally arrived. RSS is now on active.com! Here are some feeds you may want to subscribe to:
active.com is an aggregator of data from disparate sites within the Active Network. Because the source of content is distributed and because we have so much of it, creating a sitemap.xml file for SEO purposes has become challenging. We're working on a new search solution (which you can access in Beta at http://labs.active.com/search) , and the engine behind that has a sitemap.xml generating capability.
But there's only one problem: the file it generates is huge.
We needed an application that would split the sitemap.xml file, according to the constraints above. I searched all over the internet for something that would do this, and was found only with commercial applications that wanted to crawl my site before generating/splitting the sitemap.xml files.
So, my team developed a simple, .NET-based application that splits a large sitemap.xml file into smaller ones, and also creates the sitemap index file which references them.
Because I'm feeling philanthropic, I decided to give you access to this tool, free of charge. Download it here.