Skip to content

Instantly share code, notes, and snippets.

@ZachOrr
Created February 15, 2014 03:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ZachOrr/9013970 to your computer and use it in GitHub Desktop.
Save ZachOrr/9013970 to your computer and use it in GitHub Desktop.
An email I sent to FIRST, highlighting some of the issues developers have with their platform

(I’m not sure if this will be used in a Frank Answers Friday, since this is the same email address, so I’ll provide the information usually asked for. My name is Zachary Orr. I’m a MC in Michigan - not associated with a team - and I run Megaphone, a service that provides FIRSTers with text messages in real time when their favorite teams win or lose their matches, and automatically updates their team’s Twitter account to keep friends and family up to date with how they’re doing at competitions)

Earlier on Twitter I asked @FRCTeams about an example event page for the 2014 season. A lot of developers (including but not limited to the hardworking developers behind The Blue Alliance, FRC Spyder, and FRC Tracker) rely on parsing these web pages, due to the lack of a publicly available API for ranking, award, and alliance selection information. In the past, there’ve been minor changes from one year to another, and developers like to make sure their code will work week one. However, we’ve had issues where these pages change from week one to week two, the pages having incorrect data, or the pages having no data at all! Coupled along with the fact that HTML is difficult to parse because people rarely follow the standards, and these web pages aren’t guaranteed to be up (the spike in traffic when divisions get released is the most obvious example, however I’ve had issues with the website erring when doing concurrent requests, not even parallel requests, to get a list of registered teams), we’re desperately begging for an alternative.

The FRCFMS Twitter is a step in the right direction. Real time data about match results is a huge win for developers. Now services like Megaphone can exist, and The Blue Alliance can have a fancy ticker to go on Game Day. However, we can’t build mission critical systems on @FRCFMS. It’s prone to skipping matches, or has incorrect data. It’s difficult to explain to users that I’m texting them incorrect information (or, I’m not texting them at all), and there’s nothing I can do about it. There’s only two weeks left before events start, and we still don’t have the usual documentation on how the tweets will be formatted (here’s a link to last years). The lack of information also makes it difficult to move all our systems over to FRCFMS. Data like alliance selection results or awards could be tweeted via FRCFMS, but they’re not. Additionally, leveraging Twitter brings about outside issues, like making sure we’re not rate limited by Twitter.

The entire developer community, both present and future, would benefit from having more reliable systems to get data. Immediately actionable requests however would be an example event page for 2014, detailing how changes like the 4 team alliance at CMP will be handled by the elimination schedule page (we assume the fourth bot will be shown in a similar manner to how backup bots are show, i.e., no indication that they are a backup robot/4th member of an alliance. PLEASE don’t go about doing it this way, as it makes it impossible for us to determine the order teams were picked to be on an alliance, and we have no way know knowing right after alliance selections who is the fourth team on an alliance), and the documentation for how tweets will be formatted for the 2014 season (we could take a guess, but we’d rather have the official documentation).

Longer term requests (in order of difficulty, from easiest to hardest) include making sure the pages that list which teams are registered for an event and event pages are reliable and won’t go down, making sure the data supplied through the FRCFMS Twitter and the event pages is reliable and correct, and providing developers with a better solution to getting data than scraping web pages. The easiest solution is putting more data on FRCFMS, although developers will run in to issues with being rate limited by Twitter if we’re streaming too many tweets in too short of a time. A simple REST API, even if we have to poll it to begin with, would be excellent. Optimally a streaming API would be introduced that offered a direct pipeline to all realtime event data.

The FIRST Robotics developer community works hard to provide excellent services to the FIRST Robotics community, often to fix issues we have with current systems. The Blue Alliance is integral to making sure FIRST’s history is preserved, and services like FRC Spyder or FRC Tracker are steps in the right direction for providing everybody with realtime event information (at CMP it’s suggested you keep track of what match is currently going on by using Spyder or Tracker, and in the MC training call it was suggested we keep track of the current rankings using Spyder or Tracker). By making it difficult or impossible to access the information needed to power these services, developers won’t find supporting their service worth the effort and will stop development. From a developer and a member of the community, please help us empower and support developers.

Thanks

-- Zachary Orr

@ZachOrr
Copy link
Author

ZachOrr commented Jun 4, 2014

Frank's reply (:heart:)

Zachary,

Thanks so much for the info. We would like to develop a way for individuals and developers to get more reliable access to FRC data. I’m hoping we can do something for the 2015 FRC Season. I’ll forward your email along to the right folks.

Thanks

Frank

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment