Tuning Redismq - How to Use Redis in Go

In my last article I talked about how redismq employs a simple Redis client to describe a message queue. The first iteration was aimed at proof of concept and to satisfy my own curiosity. Since then adeven decided to use it in production and so we developed the initial idea into a full featured queue.

On the way we picked up a lot of interesting stuff which I’d like to share with you.

Rport - Business Intelligence Apps With R

Rport is an R package that greatly facilitates common tasks found in many R Business Intelligence apps. It bridges R and SQL analytics similarly to how Rails bridges Ruby and Web Development.

Exploring Query Locks in Postgres

Understanding query locking is key to using postgres concurrently. So let’s look at an example to learn more about how locking works and how to see what’s going on within your database.

Goem - the Missing Go Extension Manager

Golang is a young language that tries to make many things better than the “ancient” languages. It almost reaches the speed of C without the need of your own memory management. Also it respects modern patterns and makes writing concurrent programs easier than most other languages. But the strict model of Go has disadvantages when it comes to resolving third party dependencies and managing different branches of your Go project. Goem tries to fix this issues.

Building a Message Queue Using Redis in Go

Redis is not just a very good in-memory database, it can also double as a message queue. I want to show you our first shot at implementing a queue in Redis that can fulfill all our requirements: reliable, persistent, fast, monitorable. While still being a Gedankenexperiment the basic idea should be a very good starting point.

Roll Your Own Recurring Billing With Rails

When it comes to recurring billing there is a bewilderment of services available: Recurly.com, Chargify.com, Spreedly.com, CheddarGetter.com, and so on. Each has pros and cons, but our billing needs were a bit involved, and since we couldn’t find a service that seemed to be a perfect match we decided to create our own system, using Braintree as our credit card payment processor.

Full disclosure, it did end up being quite complicated, and for those with simpler needs it is certainly worth investigating any of the above - Braintree even has its own simple recurring billing system built in. However, we’ve now got a system we’re confident in, which is super easy to customize as our needs mature, over which we have full control, and which will never go out of business on us or suffer downtime or start charging us more or…you get the idea.

This isn’t so much a guide as a collection of stuff that we figured out along the way. It may be useful for you if you are considering taking the plunge yourself.

Optimizing Postgres Functions

If you often write postgres functions you should be familiar with the STABLE and STRICT attributes to optimize them for the postgres query planer.

Creating Virtual Networks With KVM on Gentoo

Sometimes you need several virtual machines that are able to communicate with each other and the internet for testing purposes. Today I want to show how this can be achieved on a gentoo linux box using KVM.

Table Returning Functions

When writing functions in postgres that involve querying the database you might come into the Why is my function slow? issue. However there are other pitfalls when returning (and using) multiple output values or using RETURNS TABLE syntax. Read why and how to avoid them.

Rails 4 and ActiveRecord 4.0

Using open source software is like living in prehistoric ages: you’d better always stay with your mates, otherwise soon you will find yourself alone fighting against the harsh nature trying to survive until one day you will be eaten by a huge carnivore.

That’s what happens with those who are too lazy to keep their web application up to date with Rails. You can find many posts describing the process of migration to Rails 4.0. In this article I’d like to tell you about my favourite changes in ActiveRecord 4.0.

I assume that your Rails version is 3.2 or greater, otherwise you most likely were already eaten.