Skip navigation

1 2 Previous Next

Active Product Development

20 Posts tagged with the active tag

Active Realtime

Posted by BrianActive Mar 10, 2010

Active Realtime is the newest addition to our product incubator  Every day thousands of people are searching and registering for things to do at Active.  The idea behind Active Realtime is to provide a window in to actual user activity,  giving a sense of whats happening right now at Active.  We also aggregate popular activities on a local level, which reveals favored events and activities in a region.  We also have the opportunity to look at trending topics over time, which will perhaps yield new insight into what is keeping us Active.




Presently data for Active Realtime is provided by our newly launched search engine .  In the future we hope to include realtime data from other parts of Active, such as event registration openings or community posts.  Keeping this in mind, we designed a technical infrastructure for Active Realtime that would allow us to add additional sources of data in the future, as well as allow other applications at Active tap into the information.



To accomplish this, we used  XMPP Publish Subscribe, an addition to the venerable IM protocol.   Using XMPP PubSub, we are able to keep Search and Active Realtime loosely coupled, so each service can be independently maintained and scaled.  Additionally, we developed a Search Logger, which acts independently of the Search site.  The Search Logger acts as the Publisher, and pushes search data over the XMPP bus.  Any interested part of the Active infrastructure may subscribe to receive these updates, and the Realtime application is just that.  The Realtime architecture includes a Ruby daemon that acts as Subscriber, registering an interest for search activity and receiving data accordingly.  This data is recorded into the Realtime database, which  then can be displayed on the Realtime site.  A diagram showing the architecture is included to the side.



The payoff for investing the time to create this architecture, rather than just querying the search infrastructure directly, is twofold.  First, it provides a simple and scalable way for future datasource  additions to be made to the Realtime application.  Secondly, it de-couples realtime with each of the data publishers, allowing all systems to function and scale independently, without having an impact on one another.



I hope you enjoy this window into Active.  The data on Active Realtime is generated by Active users, so perhaps another like minded person will help you to find a great local activity to participate in.
2,884 Views 1 Comments Permalink Tags: active, architecture, widgets, leg, product_development, cloud_computing, labs, realtime, xmpp

Our last release was a big one for  We pushed out some long-awaited improvements to the site – some designed to make people happy, others search engines.


Course Routes

The inclusion of course routes on our event details pages has been a fixture on our roadmap for some time.  Developingroute.gif the functionality was never the issue.  (The ActiveTrainer team has a fine route plotting mash-up in their arsenal.)  Our challenge was attaining a critical mass of route data.


That’s where MapMyFitness came in.  One of the earliest organizations to build a viable business out of a mash-up, MapMyFitness (makers of, and others) had a huge head start in both data and mind share.  So we figured, why fight it.  We’re great at event aggregation.  They’re great at social route sharing.


After a call or two with Kevin Callahan and the MapMyFitness team, we were off and running.  (Pun only partially intended.)  And here we are, just few development cycles later; and we have MapMyFitness routes fully integrated with events.


Here’s how it went down:

1)     We exposed our endurance events via our API (NOW OPEN @

2)     MapMyFitness read our events and matched their routes by an algorithm they developed.  (A route needs a confidence score over 70 to earn a relation.)

3)     We added functionality that allows event directors and organizers with appropriate credentials to log in and select, edit or create their official course route and apply their seal of approval.

4)     MapMyFitness developed a nice, light application that makes Event Director authorization of routes a breeze.

5)     We finished up by integrating the related routes into our event pages.



What we’re all really excited about is the fact that endurance athletes now have a resource for official course routes.  Event Directors and Organizers use our software every day.  And we’ve made it ridiculously simple for them to publish their official routes to the largest audience of endurance enthusiasts anywhere.


Check out a sample route

At the time of this posting, this route was still “unofficial.”  It’ll keep that flag until it’s replaced by an Official Route seal after the event director verifies it.






Search Engine Optimization

Excuse me while I fawn over that URL up there.  Up until this release, it had looked like this.


Not exactly what you’d call “optimized.”


With search engine-friendly URLs a commodity feature in even the most basic open source CMS, it’s easy to take them as given.  But when you’re working with a variety of legacy in-house systems that are vital to business operations, introducing SE-friendly URLs isn’t as easy as it might sound.


Along with clean URLs, we release a comprehensive Directory of all our current events.  The Directory is primarily designed for search engine consumption.  But we’re finding people are also taking to it; which is a welcomed side effect of the ultra-lean interface.


I want to thank our developers, designers, QA and IT teams for all the great work that went into this release.


We’re looking forward to watching how our audience takes to the improvements – people and robots, alike.


Enough from me.  Now get out there and DO something!



2,732 Views 0 Comments Permalink Tags: active, routes, course, api, integration, mashup'm happy to announce that I'll be speaking at the Business of APIs Conference in New York City on Monday, 16 November, 2009. We've been steadily investing in our public API over the past few months with the Search API being the most recent addition to our portfolio.  I'm going to be telling the "Active Story", starting from the origins of our company and how we grew through acquisitions.  The prime directive of was to become the world's most comprehensive directory for things to do, and in order to accomplish this we needed to ingest data produced by the products we'd acquired in order to make them discoverable on the site.  An internal initiative, then, drove us to consider interoperable APIs as a means to facilitate integration between systems we owned, and at that APIs that could be accessed across data centers.  As a by product of this initiative we found that external developers were interested in our data, hence the birth of    


Anyway, it's an interesting story, and if you're NYC and want to hear the details, sign up for the Business of APIs Conference and come on down to Sunwest Studios.


Update: It looks like the conference is already sold out.  But there will be a recorded copy of my presentation on their website in the days following.

2,147 Views 0 Comments Permalink Tags: active, conference, api and ESPN Rise are new additions to a growing list of websites featuring data through integration to the API.  As Geoff Skow writes on


Demand Media's, a “practical resource to find a wealth of health-related information from a wide range of sources”, taps into the 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.

We're excited about the uptake of our API and hope to see developers do new and innovative things with our data.  You can read more about our API on at or read through the api specification at

2,529 Views 0 Comments Permalink Tags: active, product_development, api


Posted by JeremyGThomas Jul 15, 2009


image from Microsoft



We're well underway developing the new, 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|]", 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.

2,685 Views 0 Comments Permalink Tags: active, search, product_development, publish_subscribe

Adding a Little Zip

Posted by JeremyGThomas Jul 6, 2009

The update to 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, however, don’t 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%, we’ll lower consumed bandwidth out of our production data center by about 500 to 800 GB/month.


Here’s a summary of performance improvement:



Average Page Size: 17% reduction

Page Load Time: 18% faster


Event Details

Average Page Size: 38% reduction

Page Load Time: 26% faster


Channels (Running used as the control)

Average Page Size: 21% reduction

Page Load Time: 24% faster



Average Page Size: 32% reduction

Page Load Time: 27% faster


Moral of the story - turn off VIEWSTATE whenever and wherever you can.

2,033 Views 2 Comments Permalink Tags: active, speed, product_development, improvements

Dear Consumer

Posted by JeremyGThomas Jun 12, 2009

Dear Consumer,


I’d like to address feedback we’re received about 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,,,,,,, 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 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 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 and use it for the races i sign up for. any opinion on my idea for sunblock+running?", 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.


1. Most Ridiculous Site I have (seen)


“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 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.


2. Fix the Unsubscribe Link on your e-mails. Unsubscribe me


“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 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.


3. Dear, Know what are not events? Tshirts and running/relay teams. Why are they showing up in my event searches? Me


We know that is far from perfect, and we set out at the beginning of the year to deliver a significantly enhanced search experience on  While still in early alpha, we’re expecting to unveil the new in Q4, and will reach out to a handful of you when we release our closed Beta for feedback.


4. is SNEAKY SNEAKY! Watch out for the $59.95 charge on your account


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, can always help you out.


I’m excited about how far 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.









Jeremy Thomas

3,391 Views 4 Comments Permalink Tags: active, feedback, product_development, improvements

The API is Live

Posted by JeremyGThomas Jun 2, 2009


(cross-posted from




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):




You might use this data to create an iPhone app of upcoming events or a widget for your website.  We're excited to see what your ideas are.  If you're interested in using the Event Syndication API, sign up for an account, register for an API key, and read our terms of use.  We'll review your request and will get back to you (via email) asking you about what it is you'd like to do with the API.  We're still scaling our infrasture so not all requests will be automatically approved.








*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.



2,046 Views 0 Comments Permalink Tags: active, product_development, api

Active Inspiration

Posted by JeremyGThomas May 21, 2009

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.

2,299 Views 0 Comments Permalink Tags: active, inspiration, product_development, labs

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  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 we've implemented the hCalendar microformat to annotate events.


Consider, for example, the Carlsbad 5000.  Peering into the HTML source, you'll find:


<div class="vevent">

   <h3 class="summary">Carlsbad 5000</h3>

   <span class="description"></span>

   <span class="dtstart" title="Sunday, April 05, 2009 @ 7:05 AM">Sunday, April 05, 2009 @ 7:05 AM</span>

   <span class="dtend" title="Sunday, April 05, 2009 @ 10:05 AM">Sunday, April 05, 2009 @ 10:05 AM</span>

   <span class="location">Carlsbad, CA</span><span class="uid"></span></div>



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 to come.

1,849 Views 1 Comments Permalink Tags: active, product_development, semantic_web, microformats

RSS Comes to

Posted by JeremyGThomas Apr 20, 2009

When I started working at 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!  Here are some feeds you may want to subscribe to:



RSS feeds for events are in store for the future so you can be notified when, say, next year's Carlsbad 5000 is available on

3,141 Views 0 Comments Permalink Tags: active, rss, syndication, product_development

Generating Sitemaps

Posted by JeremyGThomas Apr 10, 2009 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 , and the engine behind that has a sitemap.xml generating capability.


But there's only one problem: the file it generates is huge.


According to, a sitemap file can only be 10MB in size or up to 30,000 URLs (whichever comes first). The sitemap for has over 220,000 URLs and is about 34MB in size.


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.

4,832 Views 6 Comments Permalink Tags: active, seo, sitemap

Made Over

Posted by JeremyGThomas Apr 8, 2009

After much anticipation we have finally released our new Event Details page.  Check out the screencast below, browse around and let us know what you think.


2,995 Views 2 Comments Permalink Tags: active, product_development, event_details

We've just released our newest project to, Active Classifieds.  Have you ever wanted to assemble a group of people to block wind for you on a weekend ride or sell an old baseball glove


Active Classifieds is a simple app designed to make it easy for you to sell your old sports stuff or meetup with like-minded people. 


Dive in and let us know what you think.

2,421 Views 2 Comments Permalink Tags: beta, active, classifieds, product_development, labs

Active's Pepsi Challenge

Posted by jspitzberg Feb 26, 2009

In the latest installment of "[No man can...|]" challenges, we bring you the Product Developer Pepsi Challenge.  Can any of these fine men drink 2-liters of Pepsi in less than 4 minutes?  Let's, as they say, go to the video tape...


2,719 Views 0 Comments Permalink Tags: active, competition
1 2 Previous Next