X-Git-Url: http://git.bytex64.net/?a=blobdiff_plain;f=www%2Fdoc%2Findex.html;h=fb2ddc7d4f2085047f67e1f9a0e701984be9884c;hb=4f3fa0594ee551da29b1ea0ed20a076410959d91;hp=3d40ad06596fe419dd24344012982e63be5f7ef1;hpb=0346eef06cd33b7e8dce92e3494dc1f5b71ceb8f;p=blerg.git diff --git a/www/doc/index.html b/www/doc/index.html index 3d40ad0..fb2ddc7 100644 --- a/www/doc/index.html +++ b/www/doc/index.html @@ -6,17 +6,45 @@ -

Blërg Documentation

+

Blërg

+ +Blërg is a minimalistic tagged text document database engine that also +pretends to be a microblogging system. It is designed +to efficiently store small (< 64K) pieces of text in a way that they +can be quickly retrieved by record number or by querying for tags +embedded in the text. Its native interface is HTTP — Blërg comes +as either a standalone HTTP server, or a CGI. Blërg is written in pure +C. + + -

Installing

+

Installing

-

Getting the source

+

Getting the source

There's no stable release, yet, but you can get everything currently running on blerg.dominionofawesome.com by cloning the git repository at http://git.bytex64.net/blerg.git. -

Requirements

+

Requirements

Blërg has varying requirements depending on how you want to run it — as a standalone HTTP server, or as a CGI. You will need: @@ -39,7 +67,7 @@ sense of humor, requires ruby to compile)

  • cgi-util >= 2.2.1
  • -

    Configuring

    +

    Configuring

    I know I'm gonna get shit for not using an autoconf-based system, but I really didn't want to waste time figuring it out. You should edit @@ -52,7 +80,7 @@ makefile refuses to work with BSD make. If you have patches or suggestions on how to make Blërg more portable, I'd be happy to hear them. -

    Building

    +

    Building

    At this point, it should be gravy. Type 'make' and in a few seconds, you should have http_blerg, cgi_blerg, @@ -60,7 +88,7 @@ you should have http_blerg, cgi_blerg, individually as well, if you, for example, don't want to install the prerequisites for http_blerg or cgi_blerg. -

    Installing

    +

    Installing

    While it's not required, Blërg will be easier to set up if you configure it to work from the root of your website. For this reason, @@ -93,15 +121,16 @@ feeds for users. Install this like the CGI version above (on my server, it's at /rss.cgi). -

    Design

    +

    Design

    -

    Motivation

    +

    Motivation

    Blërg was created as the result of a thought experiment: "What if Twitter didn't need thousands of servers? What if its millions of users could be handled by a single highly efficient server?" This is probably an unreachable goal due to the sheer amount of I/O, but we could -certainly do better. Blërg was designed with very simple requirements: +certainly do better. Blërg was thus designed as a system with very +simple requirements:

    1. Store and fetch small chunks of text efficiently
    2. @@ -112,7 +141,7 @@ certainly do better. Blërg was designed with very simple requirements:

      And to further simplify, I didn't bother handling deletes, full text search, or more complicated tag searches. Blërg only does the basics. -

      Web App Stack

      +

      Web App Stack

      @@ -165,7 +194,7 @@ and server data is always returned in JSON format. href="http://couchdb.apache.org/">CouchDB, though I didn't know that until after I wrote Blërg. :) -

      Database

      +

      Database

      Early in the design process, I decided to blatantly copy varnish and rely heavily on @@ -210,13 +239,20 @@ index record simply stores the user and record number. Tags are searched by opening the tag file, reading the last 50 entries or so, and then reading all the records listed. Voila, fast tag lookups. +

      At this point, you're probably thinking, "Is that it?" Yep, that's +it. Blërg isn't revolutionary, it's just a system whose requirements +were pared down until the implementation could be made dead simple. +

      Also, keeping with the style of modern object databases, I haven't implemented any data safety (har har). Blërg does not sync anything to disk before returning success. This should make Blërg extremely fast, and totally unreliable in a crash. But that's the way you want it, right? :] -

      Problems and Future Work

      +

      Problems and Future Work

      + +

      Blërg probably doesn't actually work like Twitter because I've never +actually had a Twitter account.

      I couldn't find a really good fast HTTP server library. Libmicrohttpd is small, but it's focused on embedded applications, so it

      Classical model