Extending REST APIs with API Aggregator
REST APIs are too chatty for their own good. This problem is critical on mobile apps due to the large latency of wireless networks. We present a demo of a mobile app consuming a REST API, this app uses API Aggregator to reduce its page load times by a factor of three. API Aggregator is a system that combines lua and nginx to have a sandbox environment where you can safely run user generated scripts that do API aggregation. Stored procedures anyone? This is the API "version" of them.
Teaching GDB and Ruby to play nice together
Story about how how painful can be debugging Ruby processes with gdb and how to fix it.
Augmenting APIs with Nginx and Lua.
The Nginx + Lua combo is an amazing framework to augment the capabilities of an API. We would like to share our enthusiasm by showing how trivial is to create mashups to aggregate data from different API methods, to do data transformation like JSON to XML and to create new API method definitions. The flexibility and power of the Nginx and Lua will hook you up, we are a living proof of it.
Having fun with Redis Replication between Amazon and Rackspace.
This is the story of the latest and biggest issue that we have had with Redis. 3scale has a three layer fail-over on different data-centers (Amazon and Rackspace). Turns out that if your Redis write throughput is above 20 Mbps you better watch out or your master will silently crash due to an out of memory. Redis fault? Nope, a simple network I/O bottleneck that was quite a pain to track down. The solution? Compression. Clean, simple and it will save you some (hundreds) of bucks on your Amazon bill.
IRC Driven Development II
aka November Brain. Do you know how to write a self-deploying daemon? How to integrate your CI with GitHub? No? Well, we already do.
Enabling IPv6 on Amazon EC2
In preparation for the World IPv6 Launch Day we decided that we should try and make all portals powered by 3scale available over IPv6 using our current Amazon Web Services infrastructure.
Mining gems in Emacs
Once (or twice) upon a time you just have to look at the source code of a gem. Maybe you remember where your gems are located. Maybe you use RVM or Bundler to help you find them. But we all know that your mojo will grow like potatoes if you do it directly in your editor (read 'Emacs').
IRC Driven Development
Inspired by Github’s Hubot and fueled by Cinch and Ruby, we’ve slowly changed our IRC from a communication channel to a public and remote REPL device designed to do the boring and tedious tasks: searching for test failures, issuing pull requests, or filing new bugs. If you are interested, read on.