The Blog

Posts from March 2012

Mar 30

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…

coffee_bean

If you’re starting a new project in any framework, you always end up generating a lot of boilerplate code. The coffee_bean Ruby gem abstracts that for new CoffeeScript projects to help you get your new project started quicker and without you having to necessarily copy and remove “bits” from your other CoffeeScript projects.

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

geocoder

If you’re doing any geocoding in Ruby, chances are you’ve come across the geocoder gem. David Czarnecki contributed a patch to only load the appropriate code depending on whether you’re using geocoder with ActiveRecord, Mongoid or MongoMapper.

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

haigha

We do a fair amount with AMQP in our middleware product and so we have written haigha, a AMQP libevent client in Python. 0.4.2 and 0.4.3 were released this week. These 2 releases encompass a number of important changes with respect to transport requirements, defaulting to gevent, notifications for channel close listeners and sending out heartbeat frames.

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

weary

Weary is a “framework and DSL for building clients for (preferably RESTful) web service APIs” that is built around Rack. However, it only ships with one adapter for Ruby’s Net::HTTP library. The Net:HTTP is demonstrably slower than other Ruby HTTP libraries, so Matthew Wilson decided to submit a pull request to add Excon and Typhoeus adapters to Weary.

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

Mar 23

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…

brewscribe

Are you into brewing your own beer? Do you use Beersmith? Want to parse Beersmith2 (.bsmx) files in Ruby? Grab a pint of brewscribe, or rather the gem, and enjoy!

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

factory-worker

Factory Worker is our Node.js library that creates the Factory pattern for object stores. The 0.6.0 release integrates a pull request from GitHub user, Szymon Nowak, to return the saved object from the Factory.create method.

Contributor(s): Szymon Nowak (GitHub)

darksky

Gray skies are gonna clear up, put on a happy face! Why? We’ve got 2 darksky-related releases this week. darksky continues to expand their API and they added two new endpoints: “briefforecast” and “interesting”. The 1.0.4 release of the darksky gem adds support for the “briefforecast” endpoint. The “interesting” endpoint was supported as of the 1.0.3 release.

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

*java-leaderboard *

One of the leaderboard gem’s spawn, java-leaderboard, saw a release with version 2.0.2 that integrates a pull request from GitHub user, Jon Barber. His pull request added some logic to cope with cases where no such user is in the leaderboard. Thanks again Jon!

Contributor(s): Jon Barber (GitHub)

node-darksky

You want to integrate the darksky API into your Node.js application? Aaron Westendorf has you covered. He released version 0.1.0 of the node-darksky package last Saturday. And so, the darksky ecosystem got a little brighter!

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

vindicia-api

We use Vincidia’s CashBox for SaaS billing in the Major League Gaming store. A ruby gem that integrates with the Vincidia CashBox SOAP API doesn’t do the development community any good if it’s hidden away. So one of our engineers, Tom Quackenbush, polished off some rough edges and released version 0.0.2 of the vindicia-api gem.

P.S. Totally unrelated, but Tom may also be working on a social network for cats called Kitty City. Stay tuned!

Contributor(s): Tom Quackenbush (GitHub, Twitter)

 

 

 

Mar 16

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 feeds can be complicated to do correctly, which is why we developed the activity_feed gem. The 1.3.0 release adds functionality to update the timestamp for a given activity feed item, which is useful when you want items to “bubble up”. You can also remove items from activity feeds.

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

amico

It was an exciting week for the amico project, which allows you to express relationships (e.g. friendships) backed by Redis. The 2.0.1 release adds support for an all call that can return all the relationships for a given relationship type, such as following or followers. We would also like to highlight actsasamico, developed by GitHub user John Metta, which is an ActiveRecord injectable version of the Redis-backed friendship system. He originally submitted this as a pull request to amico.

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

bettertabs

bettertabs is a simple Rails 3.1+ Engine that includes a helper and a jquery plugin to render the needed markup and javascript for a section with tabs in a easy and declarative way, forcing you to keep things simple and ensuring accessibility and usability, no matter if the content is loaded statically or via ajax. The 1.3.6 release this week allows this to be used in Rails 3.2 as well.

Contributor(s): Jeffrey Lee (GitHub)

bnet_scraper

We released a new gem this week, bnet_scraper. This is a Nokogiri-based scraper of Battle.net profiles. Currently this only includes Starcraft 2 data scraping. It has support for scraping profiles, league data, achievements, and match history. Let us know if this gem is useful to you.

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

leaderboard

One of our most popular gems, leaderboard, has a new release this week with version 2.0.5. leaderboard allows you to create leaderboards (aka high score tables, aka scoreboards) in Redis. This releases addresses the first future idea from the README when the gem was released over a year ago to add a method allowing for bulk insert of data into a leaderboard. Performance of the bulk insert indicates this is preferable to individual inserts if you ever need to insert a large amount of data into a leaderboard.

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

darksky

The darksky gem saw a couple of releases this week. 1.0.2 removed the default to disable SSL peer verification now that the DarkSky API server has a signed certificate. 1.0.3 added the new “interesting” API endpoint to return a list of interesting storms happening right now. It also fixes a bug in the precipitation API endpoint where multiple locations were not correctly passed to the API.

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

*Upcoming *

We have a number of pull requests that we need to get integrated into various projects. Part of the reason these sat for so long is that we forgot to turn on GitHub notifications for the engineering team for these projects. So, look for releases next week of java-leaderboard, our port of the leaderboard gem to Java, and for errship, a Rails 3.1 engine for rendering error pages inside your layout.

A special thanks to GitHub user, vitaly-krugl, for reporting so many issues on haigha, our simple to use client library for interacting with AMQP brokers.

Mar 9

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…

node-amico

node-amico is our CoffeeScript port of the amico gem, which handles relationships (e.g. friendships) backed by Redis. Andrew Nordman ( cadwallion) released 0.0.3 to update the package manifest to correctly identify the main file. Hot on his heels, David Czarnecki ( czarneckid), ported over the “scope” functionality from the amico gem to support relationships for any number of things or “scopes” and 0.1.0 was released. Please note that 0.1.0 is API incompatible with previous releases.

stache

stache is a Rails 3.x compatible Mustache Template Handler, with support for partials and a couple extra niceties to make sharing the raw templates with client-side JavaScript a little easier. Matthew Wilson ( hypomodern) released 0.2.2 which integrated a pull request from Jack Lawson ( ajacksified) to correctly use various stache configuration options instead of being hardcoded values.

haigha

haigha, our AMQP libevent client in Python, had a couple of issues opened this week that Aaron Westendorf ( WashUffize) is managing. Issue #8, testreadtimestamp and testwritetimestamp failure on Mac OS, may be an issue with time zones. YUNO timecop Python? We are also waiting on a pull request for issue #9, haigha/gevent example, which modifies the “hello-world” example to work with gevent.

darksky

One of our ex-system engineers, Jason LaPorte ( ironwallaby), left us earlier this year to join the Dark Sky team, and they’ve got an API for short-term precipitation forecast data at geographical points inside the United States. David Czarnecki ( czarneckid) released the darksky gem now that their API is in beta.

punchr

Punchfork is one of the sexiest sites for finding the best new recipes from popular sites like Serious Eats or Simply Recipes. And it should have a sexy API library right? Right. David Czarnecki has a Ruby gem for interacting with the Punchfork API called punchr. Look for a first release of the gem very soon!