5 <link rel="stylesheet" href="css/blerg.css">
6 <script type="text/javascript" src="js/prototype.js"></script>
7 <script type="text/javascript" src="js/blerg.js"></script>
8 <meta http-equiv="content-type" content="text/html; charset=utf-8">
9 <meta name="viewport" content="width=device-width, user-scalable=no, maximum-scale=1.0"/>
11 <body onload="init()">
15 <img src="/images/blerglogo.png" class="logo" width="125" height="122">
16 <h1><a href="/">Blërg!</a></h1>
17 <h2><span name="section">Welcome</span></h2>
20 <form style="font-size: small" id="login" onsubmit="loginStatus.login($('login.username').value, $('login.password').value); return false">
21 username: <input type="text" id="login.username" size="10">
22 password: <input type="password" id="login.password" size="10">
23 <input type="submit" value="login">
24 <p style="font-size: large"><a href="#" onclick="$('welcome').hide(); $('items').hide(); $('post').hide(); $('signup').show(); return false;">I want to blërg!</a></p>
26 <div id="logout" style="display: none">
27 Hello, <a href="#" id="userlink"></a>. <a href="#" onclick="loginStatus.logout(); return false">logout</a><br>
28 <a href="#" onclick="postPopup(); return false">Write new entry</a><br>
29 <a href="#" id="reflink">Chatter about me</a>
31 <div id="rss" style="display:none"><a id="rsslink" href=""><img src="/images/rss.png" width="16" height="16"> RSS</a></div>
33 <div style="clear:both"></div>
34 <div id="post" style="display:none">
35 <h2>What's on your mind?</h2>
36 <form onsubmit="loginStatus.post($('post.content').value); return false">
37 <textarea rows="3" id="post.content" onkeydown="resizePostContent()"></textarea>
38 <div id="post.buttons">
39 <input type="submit" value="close" onclick="$('post').hide(); return false">
40 <input type="submit" value="post">
48 <div id="items" style="display:none">
52 <h2>I am 12 and what is this</h2>
54 <p>Blërg is a miniblogging platform. It's less limited than
55 microblogging platforms like <a
56 href="http://twitter.com/">Twitter</a>, but much simpler than
57 full-blown blogging platforms like <a
58 href="http://wordpress.com/">Wordpress</a> or <a
59 href="http://livejournal.com/">Livejournal</a>. Blërg is also an open
60 source tagged text database engine written in C that does the back-end
63 <h2>But what's wrong with Twitter?</h2>
65 <p>I'M GLAD YOU ASKED. While I don't believe the basic social premise
66 of Twitter is broken, there are two facets of it that are IMNSHO just
70 <li><strong>Ruby on Rails</strong> - Using rails to prototype a system is
71 fine — scaling up to a million hits a day with it is just poor
72 engineering. As the service grew, I'm sure it cost them a lot more
73 time than it saved.</li>
74 <li><strong>140 characters is not enough</strong> - I routinely write
75 sentences longer than 140 characters, so I can't imagine even beginning to
76 make a point in such a small space. This textual confinement has led to the
77 rise of URL shorteners, which are <a
78 href="http://bytex64.net/blog/e2256">breaking the internet</a>.
81 <p>Blërg solves these problems by applying absurd reactionary
82 engineering. Blërg's database backend is a custom C program that
83 handles requests over HTTP and stores data in a very small and
84 efficient indexed log-structured database. The frontend is done
85 entirely in client-side Javascript. A single post can be up to 65535
88 <p>Which is not to say that I believe writing your service in C is the
89 solution to all your problems. Clearly, this approach has just as
90 many hairy problems that will bite you in the ass sooner or later.
91 The best way, as with most things, lies somewhere in the middle of
92 high-level abstraction and ZOMGHARDCORE OPTIMIZATION.</p>
94 <h2>Is this a joke?</h2>
96 <p>Yes. No. Maybe. Blërg is an exercise in constructive satire — a
97 fully functional service created in a fit of hubris to poke fun at Twitter's
98 engineering. It's just for fun, but no one is going to keep you from using
102 <div id="navigation">
103 <a id="newer_link" href="#" onclick="newer_page(); return false" style="display:none"><< newer</a>
104 <a id="older_link" href="#" onclick="older_page(); return false" style="display:none">older >></a>
107 <div id="signup" style="display:none">
110 <tr><td>Username:</td><td><input type="text" id="signup.username" width="40"></td>
111 <tr><td>Password:</td><td><input type="password" id="signup.password" width="40"></td>
113 <button onclick="signup()">Signup</button> <button onclick="signup_cancel()">Cancel</button>