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:
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.
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.
