The Blog

Posts from July 2013

Jul 30

Hack-a-thon #13 Complete!

By Steven Flenory

Hey everyone,

We just had another amazing hack-a-thon here at Agora Games. For those of you who still don’t know, every 2 months we put on a hack-a-thon event where, for 24 hours, all employees at Agora can work on whatever they want. It has to be tangentially related to what we do here at Agora, and you must have something completed by the end of the 24 hours. It’s been a great tradition here at Agora, and is one we’re looking to continue on for a long time!

Here a few of the projects from this hack-a-thon:

* Jack Letourneau - Worked on a web UI for creating compound Boolean queries up to one level deep in the drag-and-drop style of iOS’s icon folders (drop one term onto another to create a new group).

* Brad Lafountain - Got our C++ SDK working with the Android NDK. Also worked on one of our Hydra demos (Verbs with Friends).

* David Andrade - Added several of our SDKs to a continuous integration server

* Steven Flenory - Submitted our beta Unity SDK to the Asset Store. Prepared community posts for open sign up

I love seeing how each of the projects vary across the individuals on the team! We’ll be at it again in 2 months. Let us know if you have any cool ideas for us to work on!

  • Steve
Jul 19

Game Face

By David Czarnecki

“Game Face” will be our weekly round-up of our internal and external open source work here at Agora Games. Internal open source refers to our public projects that you can find over at our Agora Games GitHub account. External open source work refers to projects that we contribute to in off-hours and may or may not have anything to do with video games because we’re swell folks like that. Pretty simple right? Here goes…

We actually updated all of our Ruby gem projects to explicitly call out the MIT license in the gemspec as the license used in those projects.

activity_feed

activity_feed is our Ruby gem for storing and managing activity feeds in Redis. We did a major version bump to 3.0.0 and then to 3.0.1. The major change was in the itemloader configuration property, which was renamed to itemsloader and now is passed a list of IDs to have them loaded from the database instead of a record at a time. We also added a number of useful aliases for operations like grabbing, trimming and expiring feeds.

Contributor(s): David Czarnecki (GitHub, Twitter)

haigha

haigha is our simple to use client library for interacting with AMQP brokers. In 0.5.12, we fixed issue #31, wherein a channel is closed on a synchronous transport while reading frames and waiting for the synchronous callback to be executed.

Contributor(s): Aaron Westendorf (GitHub, Twitter)

kairos

kairos provides time series storage using Redis or Mongo backends. In the 0.4.1 release, we added support for inserting data into multiple intervals with a single call to insert() as well as adding support for set types when using Redis storage.

Contributor(s): Aaron Westendorf (GitHub, Twitter)

leaderboard

leaderboard allows you to build leaderboards using Redis. The leaderboard (Ruby), leaderboard-python and leaderboard-coffeescript libraries all saw updates this week. In leaderboard 3.3.0, we added a method to be able to rank a member across a list of leaderboard. This same functionality was ported to leaderboard-coffeescript 1.3.0 and leaderboard-python 2.5.0.

Contributor(s): David Czarnecki (GitHub, Twitter)

localshop

localshop is a pypi server which automatically proxies and mirrors pypi packages based upon packages requested. We submitted a small pull request that was integrated to fix the directions for installing honcho.

Contributor(s): Vitaly Babiy (GitHub, Twitter)

torus

torus is a service implementing the Carbon protocol to store time series data using kairos and an HTTP server to query and analyze the data. As of 0.4.1, we added a “rolling” option to schemas, allowing data to be inserted into multiple intervals at a time. This increases storage space but supports rapid calculation of aggregates over pre-determined interval ranges.

Contributor(s): Aaron Westendorf (GitHub, Twitter)

Jul 5

Game Face

By David Czarnecki

“Game Face” will be our weekly round-up of our internal and external open source work here at Agora Games. Internal open source refers to our public projects that you can find over at our Agora Games GitHub account. External open source work refers to projects that we contribute to in off-hours and may or may not have anything to do with video games because we’re swell folks like that. Pretty simple right? Here goes…

forecast.io

forecast-ruby is a forecast.io API wrapper in Ruby. This week we released 2 versions: 1.2.0 adds the ability to define default parameters that get sent along with each request, while 2.0.0 changes the namespace for the library from Forecast::IO to ForecastIO. All development going forward will be done in the 2.0.0 branch.

Contributor(s): Pat Allan (GitHub)

torus

torus is a service implementing the Carbon protocol to store time series data using kairos and an HTTP server to query and analyze the data. We made a number of significant updates in the 0.4.0 release. Stat queries can be comma-separated values to join multiple timeseries. A “collapse” parameter was added to “/series” which supports collapsing all of the data in the date range into a single result. This supports easy computation of aggregates across a time range, such as “maximum value in the last 7 days”. Schemas can include “TRANSFORMS” stanza for defining a named map of data transforms that will be used when querying torus. hiredis is now a requirement as redis is not performant enough without it. Finally, a number of command-line and configuration changes were made as detailed in the CHANGELOG.

Contributor(s): Aaron Westendorf (GitHub, Twitter)