Open Source: shared software is happy software.

We believe in open source software; that's why we have contributed to many projects, and released our own internal libraries for free.

PoolParty

PoolParty is a Ruby Gem written by Ari Lerner, a Solutions Architect at CitrusByte. It takes advantage of Amazon's Elastic Compute Cloud (EC2). EC2 is cool on its own, but it doesn't give you any vital features like: load balancing, monitoring, scaling, self-healing, etc. Don't fret, PoolParty was written for those specific needs.

Take a look at some of it's awesome features:

  • Automatic scaling based on demand and load
  • Starting/stopping instances
  • Self-healing
  • Provisioning and bootstrapping initial software
  • Setting up S3Fuse
  • Load balancing with HAProxy
  • Built-in monitoring
  • Plug-in architecture for extendability / customization

More Information

PoolParty is currently going a major rewrite. For tutorials, walk-through, and more information, check out the official PoolParty website.

If you are interested in active development, check out the source at github. Active discussion is on the PoolParty Google Group

Here are the slides from the talk Ari gave at RailsConf sessions:

pool party presentation - Upload a Document to Scribd
Read this document on Scribd: pool party presentation

Related Links:


Quiki

Ben Alavi, a Solutions Architect at CitrusByte wanted a simple wiki solution. Unfortunately, there's only complicated solutions out there.

Quiki is a simple solution for a wiki aimed at developers with support for markdown, textile, and all your basic hierarchical needs.

One of its main strong points is that it exhibits features for code, e.g: snippet pasting, and inline diagram generation.

2788268988_3be6d9c223

The above was generated by Quiki using the following inline diagram syntax:

::
digraph G {
        fontname = "Bitstream Vera Sans"
        fontsize = 8

        node [
                fontname = "Bitstream Vera Sans"
                fontsize = 8
                shape = "record"
        ]

        edge [
                fontname = "Bitstream Vera Sans"
                fontsize = 8
        ]

        Animal [
                label = "{Animal|+ name : string\l+ age : int\l|+ die() : void\l}"
        ]

        subgraph clusterAnimalImpl {
                label = "Package animal.impl"

                Dog [
                        label = "{Dog||+ bark() : void\l}"
                ]

                Cat [
                        label = "{Cat||+ meow() : void\l}"
                ]
        }

        edge [
                arrowhead = "empty"
        ]

        Dog -> Animal
        Cat -> Animal

        edge [
                arrowhead = "none"

                headlabel = "0..*"
                taillabel = "0..*"
        ]

        Dog -> Cat
}
::

Related Links:


Sexy Scaffold

We use RSpec in all of our projects, and it was annoying to rewrite all of the views in HAML if we happened to use a scaffold. Luckily, with a little brain-power, we created "Sexy Scaffold" to supply us with the usual RSpec scaffold, but with HAML views instead.

You can take a look at the source on github.

Related Links:


SimpleGuards

SimpleGuards was created by Michel at CitrusByte, and it is a very light approach to model level authorizations.

Some examples:

class User << ActiveRecord::Base
  define_action :support, :global => true |action|
    action.guard { |subject, object| object.kind_of?(Organization) }
  end
end
Feel free to take a look at the source on github.

Related Links:


Spawner

Spawner was created by Michel at CitrusByte, it is a simple fixtures replacement.

An example:
class User << ActiveRecord::Base
  spawner do |user|
    user.name = Faker::Name.name
    user.email = Faker::Internet.email
  end
end
The code is on github.

Related Links: