Sign In/New Acct

What is FlightFeather?

Last Modified: March 1, 2007

FlightFeather's goal is "social networking for everyone". This means that anyone should have a chance to run a popular social networking site -- on minimal hardware, and without wasting bandwidth. The LinuxWorld article "BoSStats, FlightFeather and the Relative Static Web" provides an overview of the technology.

The focus on conserving computing resources also leads to environmentally friendly programs. This is because computing resources are not mere abstractions -- they translate directly into the use of physical resources, such as electricity consumption of large server farms, environmental damage caused by the disposal of failed or obsolete machines, etc. Software designed with conservation in mind -- "green software" -- can have a real impact on reducing the pressure on the environment.

This site is an enjoyable and informative way to try FlightFeather -- you can discuss what makes a good boss, or share your experiences of office politics. You can post anonymously, and the application does not set cookies. If you post anything interesting, or see anything that you like, feel free to submit it to Digg, Slashdot or any other appropriate news site. FlightFeather needs lots of real-world traffic, to optimize the codebase and configuration.

FlightFeather's design has reflected its goal from the very beginning. Whenever the system's state changes, FlightFeather generates static HTML pages. Pure read operations -- usually about 90% of the total -- do not require the application to run at all.

FlightFeather's sister project -- Flightdeck-UI -- likewise uses this Relative Static technique (i.e. the application-generated dynamic data appears as static pages to the Web server). The author also presented these concepts at LinuxWorld San Francisco 2006.

FlightFeather does not use a separate SQL database. In-memory data structures and Berkeley DB augment the static HTML pages to maintain a consistent state. The overall approach may be termed LAP -- a variation on the highly effective LAMP platform. LAMP stands for Linux, Apache, MySQL and Perl/Python/PHP (although there can be further variations). FlightFeather drops the "M" from this formula, in favor of capturing as many system state changes as possible into complete, static HTML documents. Apache can then serve these documents by itself, while FlightFeather waits in the background.

Back to Top

Release Notes

Release 0.2.8 is the current beta of FlightFeather. It added a test facility to recursively find and run the docstring tests inside all modules, as well as web function tests based on the Selenium IDE.

Version 0.3.3 (which runs this site) is the current development release. It modifies the way FlightFeather server loads the configuration, protocol, session and storage modules on startup. The actual loading process now takes place after all options have been parsed. If the "-c" or "--command" option is present, the server does not import these modules at all, since they are not required. The new implementation also fixes a bug, which caused the test versions of the above modules to always load, in addition to any modules specified on the command line.

Version 0.3.2 was the previous development release. It updated the submission feature (which currently supports Digg) from version 0.3.0 (see below). The old behavior was to submit article body text only up to the first URL in the story. The newer approach submits the maximum allowed text, including any URLs encountered along the way. In the future, there may be an option to enable the old behavior, as well as other, alternative ways to process submissions.

Version 0.3.1 was a development release. It added a safe shutdown feature to FlightFeather server, eliminating the need for the two-step shutdown procedure previously described in "QuickStart.txt". The feature also allows you to stop the server remotely, from a list of trusted IP addresses (set to just 127.0.0.1 by default).

Version 0.3.0 was a development release. It introduced a feature that allows easy submission of FlightFeather-hosted content to Digg. Generic utility functions (see "ui/js/ffextract.js") perform most of the work, so it should be relatively straightforward to extend support to other social networking sites in the future.

Releases 0.2.7, 0.2.6 and 0.2.5 were alpha releases (now classified as development versions).

Release 0.2.7 introduced a complete example site as part of the distribution. This example is intended as a minimal template, with all the necessary configuration files for you to build your own FlightFeather-driven site.

The previous release (0.2.6) fixed a bug in version 0.2.5 (the first released version of FlightFeather). The bug could result in a server hang if excessively long (a whole line or more) words appeared in posts or comments. The current version leaves these long words intact, but this behavior may change (or become a configuration option) in future releases.

Back to Top

Known Bugs

Design Tradeoffs

FlightFeather avoids the use of cookies (to allay privacy concerns of visitors) and page refreshing on login (so that any information the user may have entered is not lost). This approach does have some drawbacks, however.

Other Bugs

Back to Top

Download

The current beta release is ff-0.2.8-beta. The current development release is ff-0.3.3-devel. It modifies the way FlightFeather server loads the configuration, protocol, session and storage modules on startup (see the release notes).

You should verify the MD5 sum of the package before using it.

FlightFeather runs under Linux, although it should readily adapt to other Unix environments, and even Windows. You must have Python 2.5 installed. FlightFeather uses the prototype.lite library and a modified version of moo.ajax (these two dependencies are included in the distribution). Compressing the JavaScript (to reduce loading times) requires the Dojo compressor.

You will also need Apache 2.0 series or higher, and Berkeley DB. Most recent Linux distributions supply packages for these applications.

Older Releases

While the current releases are recommended, you can also download earlier versions. Release ff-0.3.2-devel modified the Digg submission feature introduced in version 0.3.0. Release ff-0.3.1-devel added a safe shutdown feature to FlightFeather server. Release ff-0.3.0-devel introduced a Digg submission feature. Release ff-0.2.7-alpha added a complete example site. The previous release, ff-0.2.6-alpha fixed a bug in version ff-0.2.5-alpha.

Back to Top

License

FlightFeather is licensed under the GPL, Version 2. If you run a social networking site using FlightFeather, you can do so freely, without paying any license fees -- no matter how much you earn from your site. You are under no obligation to distribute any changes you make to the software.

If -- and only if -- you do choose to distribute your modifications to FlightFeather, the GPL requires you to release the complete source code under the same GPL license. This is not just fair, but also mutually beneficial: as FlightFeather grows, we can all improve our social networking sites.

Back to Top

Contact

To report abuse, write to .

For all other enquiries, write to .

Back to Top

Copyright © 2006-2007 Open Light Software Inc. All Rights Reserved.