The Blog

Posts from August 2012

Aug 31

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…

activity_feed

activity_feed is our Ruby gem for storing and managing activity feeds in Redis. In the 2.2.1 update, we added totalpages and totalitems methods as aliases for totalpagesinfeed and totalitemsinfeed, respectively.

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

amico

amico is our Ruby gem for managing relationships (e.g. friendships) backed by Redis. We actually did 2 releases this week with 2.2.0 and 2.3.0 shortly thereafter. We added a clear(id, scope = Amico.defaultscopekey) method to clear all relationships (in either direction) stored for an individual.

We also added the following methods for the blocked by relationship:

  • blockedby?(id, blockedbyid, scope = Amico.defaultscope_key)
  • blockedby(id, pageoptions = defaultpagingoptions, scope = Amico.defaultscopekey)
  • blockedbycount(id, scope = Amico.defaultscopekey)
  • blockedbypagecount(id, pagesize = Amico.pagesize, scope = Amico.defaultscope_key)

In addition, the  following methods were added for the pending with relationship: - pendingwith?(id, blockedbyid, scope = Amico.defaultscopekey) - pendingwith(id, pageoptions = defaultpagingoptions, scope = Amico.defaultscopekey) - pendingwithcount(id, scope = Amico.defaultscopekey) - pendingwithpagecount(id, pagesize = Amico.pagesize, scope = Amico.defaultscopekey)

Thanks to Skip Baney for all the work on this releases.

Contributor(s): Skip Baney (GitHub)

chai

chai – provides a very easy to use api for mocking/stubbing your python objects, patterned after the Mocha library for Ruby. The 0.2.0 release integrates a pull request from GitHub user, Jason Baker, to add a  wrapped attribute to chai decorated test methods. This is useful as it allows someone to get at the wrapped test method to do introspection.

Contributor(s): Jason Baker (GitHub)

haigha

haigha is our simple to use client library for interacting with AMQP brokers. In the 0.5.6 release, we only catch Exception subclasses in Connection and Channel. Thanks to GitHub user, Vitaly Krugl, for the issue that this release addresses and the discussion.

Contributor(s): Aaron Westendorf (GitHub, Twitter) and Vitaly Krugl (GitHub)

Aug 24

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…

activity_feed

activity_feed is our Ruby gem for storing and managing activity feeds in Redis. In the 2.2.0 update, we added expirefeed and expirefeed_at methods to be able to set an expiration on a feed after a given number of seconds or at a given timestamp, respectively.

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

amico

amico is our Ruby gem for managing relationships (e.g. friendships) backed by Redis. We added a couple of convenience methods, count and page_count, to retrieve the count or the page count for the various types of relationships. This  functionality is available in the 2.1.0 release.

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

php-bracket_tree

php-bracket_tree is a PHP port of our bracket_tree project. bracket_tree is a bracketing system built around the BracketTree Data Specification, which uses a three-section data structure built on top of JSON to convey the visual representation, progression logic, and seed mapping in a serializable format. For more information on the data specification, please read the BracketTree Data Specification.

Contributor(s): Andrew Nordman (GitHub, Twitter)

seed_list

seed_list is a new Ruby gem we released this week that provides seed management for tournament brackets. SeedList is designed for Rails-powered tournament engines that need to persist a 1-indexed ordered list of players (ranked low-to-high by skill or past performance) and then match them up appropriately in the first round of a bracket. Players are then matched up according to a strategy specified on a per-instance basis.

Contributor(s): Logan Koester (GitHub, Twitter)

Aug 17

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…

activity_feed

activity_feed is our Ruby gem for storing and managing activity feeds in Redis. This week we added a fullfeed method to be able to retrieve an entire activity feed. Use this method wisely, or rather, sparingly! This is available in activityfeed 2.1.0.

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

chai

chai - provides a very easy to use api for mocking/stubbing your python objects, patterned after the Mocha library for Ruby. The 0.1.23 release updates side_effect to be called with the arguments of the method call if it doesn’t define its own arguments.

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

haigha

haigha is our simple to use client library for interacting with AMQP brokers. The 0.5.5 release fixes a bug in the gevent transport.

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

php-bracket_tree

bracket_tree is a bracketing system built around the BracketTree Data Specification, which uses a three-section data structure built on top of JSON to convey the visual representation, progression logic, and seed mapping in a serializable format. php-bracket_tree is a PHP port of the original Ruby library.

Contributor(s): Andrew Nordman (GitHub, Twitter)

Aug 10

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…

bnet_scraper

bnet_scraper is our Nokogiri-based scraper of Battle.net profiles. The 0.2.1 release fixes a race condition for profile scraping for accounts playing in their first season.

Contributor(s): Andrew Nordman (GitHub, Twitter)

litmus_mailer

litmus_mailer is an ActionMailer observer to update your Litmus tests each time an email is delivered. This week’s 0.3.0 release adds non-multipart and SSL support.

Contributor(s): Chris Roby ( Twitter)

strumbar

strumbar is a wrapper around ActiveSupport::Notifications with preconfigurations for basic instrumentation to be sent to statsd. This week we’ve fixed a critical issue in the built-in Redis instrumentation and added configuration options to explicitly load the desired built-in or custom instrumentations, as well as set the desired sample rate for each.

Contributor(s): Logan Koester (GitHub, Twitter)

tassadar

tassadar is a Starcraft 2 replay parser written in pure Ruby. Version 0.1.0 was released this week and updates the serialization strategy for Starcraft 2 release 1.5 compliance.

Contributor(s): Andrew Nordman (GitHub, Twitter)

Aug 3

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…

Did you notice that Game Face was recognized in the first Game Bytes post on the GitHub blog? Also, with the release of leaderboard_factory this week, engineers here at Agora Games have open sourced a total of 25 projects in 2012!

bnet_scraper

bnet_scraper is a Nokogiri-based scraper of Battle.net profile information. The release this week adds a number of fixes and features: Adds domain remapping to regions, Fixes bug with EU profile scraping due to language selection, Parses new player stats (Career Wins, Most Played Type, Games This Season) and Parses new league stats (Current/Highest Solo/Team Leagues).

Contributor(s): Andrew Nordman (GitHub, Twitter)

leaderboard

leaderboard allows you to build leaderboards using Redis. We added allleaders and allleadersfrom methods to retrieve all members from a leaderboard. You may also use the aliases allmembers or allmembersfrom. These methods may be helpful for situations in which you have a smaller leaderboard that you don’t necessarily want to page through to display all the data.

Contributor(s): Matthew Wilson (GitHub, Twitter)

leaderboard_factory

leaderboard_factory is a new gem that we extracted from one of our projects this week that helps you define and work with a bunch of leaderboards, from, e.g. an ActiveModel object. You can use it to define, for example, leaderboards available from a Player object where a few leaderboards are scoped to the player and one is scoped to the entire collection of players.

Contributor(s): Matthew Wilson (GitHub, Twitter)