There are no reviews yet. Be the first to send feedback to the community and the maintainers!
fuzed by Dave Fayram <dfayram at powerset dot com>, Tom Preston-Werner <tom at powerset dot com>, Abhay Kumar <abhay at powerset dot com> Webiste: http://fuzed.rubyforge.org Mailing List: http://groups.google.com/group/fuzed == Summary Fuzed is an Erlang-based clustering system designed to let several single-threaded processes (which may or may not be reliable) form into a pool which can serve requests to remote hosts. These resources need not be homogeneous, Fuzed breaks them up into homogeneous pools internally and serves out requests without "crossing the streams" of different software/versions of software. This is a release of Powerset's internal clustering software which has been adapted for use with Rails, but see the generic_json_responder to see exactly how it is used internally. == Dependencies * Erlang: http://www.erlang.org (>= 5.6.1) * Ruby: http://www.ruby-lang.org (>= 1.8.6) * Ruby Gems: * rake: http://rake.rubyforge.org (>= 0.8.1) * rack: http://rack.rubyforge.org (>= 0.3.0) * erlectricity: http://github.com/mojombo/erlectricity (>= 0.2.1) == Installation Fuzed is currently only available as a source distribution. A gem will be made available shortly. First, clone the source repo from GitHub. The following command will clone the repo into a directory named 'fuzed' within your current working directory. $ git clone git://github.com/KirinDave/fuzed.git Move into the 'fuzed' directory and run the following commands to build fuzed: $ cd fuzed $ git submodule init $ git submodule update $ rake build_deps $ rake You should not see any error messages if the build was successful. Whenever additional dependencies added, you'll need to run init and update again. == Setting up a simple Rails cluster on a single machine Every cluster starts with a 'master' node. From the fuzed root directory, run the following to start a master. The command will drop you into interactive mode for the Erlang runtime. It's best to work this way while you familiarize yourself with the system as it will be easier to see any error messages that reported. $ bin/fuzed start -n [email protected] Replace 'volcano.local' with your hostname. Note: 'localhost' will not work here, it must be an externally addressable hostname. It's best to always name your master node 'master'. It makes setting up frontend and backend nodes much easier. Next, start and attach a Rails 'frontend' node. This will bind to a TCP port (default 8080) and serve static assets as well as direct dynamic requests to your Rails node. $ bin/fuzed frontend -z volcano.local -r test/app/public -s 'kind=rails' \ -n [email protected] Let's break this command down so you understand what each option specifies. -z denotes the hostname of the master (must match what you used in your `fuzed start` command. -r specifies the document root for static assets. -s specifies a details list that will select the proper backend node. For a simple cluster, leave this alone. -n names the node. Every node that joins a cluster must be uniquely named. Here I've named it after the port that will be bound. Because this is a single machine cluster, I use the same hostname as the master. In a multi-machine setup, you will specify the hostname of the machine that is running the node. You should now be able to request a static asset from your cluster. Try requesting: http://localhost:8080/robots.txt Now we'll need a 'rails' node to serve dynamic requests. The following command will start a single Rails node. $ bin/fuzed rails -z volcano.local --rails-root=test/app -n [email protected] Once again -z specifies the master hostname. --rails-root must point to the Rails root of your app. -n names the node. At this point, if all is well, you will have a fully assembled and operational Rails cluster!
gen_leader_revival
A project to unify various implementations of the Erlang library gen_leader into a modern, robust single implementationclj-time
A date and time library for Clojure, wrapping the Joda Time library.fuzed-old
An integrated replacement for Mongrel+Revproxy systems in erlangHelvetireader-for-Safari-5
A port of the Greasekit module for Helvetireader to Safari 5's extensions moduleexample-chat
A simple example of a chat server in Clojure that I intend to blog about.phosphor
A ruby library to inexpensively emit runtime events via Dtracepublic-website
My public website!erlenmeyer
A binding between erlang and mzscheme.localdb
Simple interface to HTML 5 local database project. Google gears support to come shortly.ResonantRise
The ATLauncher xml and configuration for the Resonant Rise modpack.Emacs-Of-The-Future
Updating my emacs dotfiles distribution. These are much more up to date.Haskell-Redis-Client
A fork of redis-0.11 by [email protected]graphinator
A custom project to play with scheme and maybe help with some github internalsbilecast
A Podcast hosted by me and featuring Coda Hale and Cliff Moon (and guests)leetchat
A completely indulgent attempt to recreate some of the glory of my youth.powerset_thrift
A powersetly awesome thriftFanboy
An irc bot in haskell, experimental in nature, using WAY OVERSPEC'D tools.Rag
My implementation of the classic SPAM (Simple Programmable Adventure For Mac) engine in HaskellScorekeeper
Clojure-based web application for tracking indoor sports rankings and scoresdot-emacs
My dotemacs stuff. It's not beautiful, but it's functional.clj-interface
Clojure wrapper for Erlang's JInterface.js-docstrings
Emacs-style docstrings for webkit.mooish-template
A template for building and organizing your Javascript code like Mootools. Great starting-point for Mootools plugins or classes.kirindave.github.com
Mah Github Siteredis-conduit
A project to reflect redis channels into a simple web channel. This is as much for learning about Yesod as actually being useful.voter-registration-analysis-tools
A collection of tools for examining voter registration records.tasks.tmbundle
Autofocus extensions and cleanup for: http://henrik.nyh.se/2007/08/tasks-bundleClipping
A simple, persistent variable librarygit-testing
learning rebasingLove Open Source and this site? Check out how you can help us