Minor cleanup of old useless files.

This commit is contained in:
Dominik Picheta 2018-05-17 16:33:04 +01:00
commit 9f087be6e7
27 changed files with 1 additions and 829 deletions

View file

@ -1,32 +0,0 @@
import tables, uri
type
CacheInfo = object
valid: bool
value: string
CacheHolder = ref object
caches: Table[string, CacheInfo]
proc normalizePath(x: string): string =
let u = parseUri(x)
result = u.path & (if u.query != "": '?' & u.query else: "")
proc newCacheHolder*(): CacheHolder =
new result
result.caches = initTable[string, CacheInfo]()
proc invalidate*(cache: CacheHolder, name: string) =
cache.caches[name.normalizePath()].valid = false
proc invalidateAll*(cache: CacheHolder) =
for key, val in mpairs(cache.caches):
val.valid = false
template get*(cache: CacheHolder, name: string, grabValue: untyped): untyped =
## Check to see if the cache contains value for ``name``. If it does and the
## cache is valid then doesn't recalculate it but returns the cached version.
mixin normalizePath
let nName = name.normalizePath()
if not (cache.caches.hasKey(nName) and cache.caches[nName].valid):
cache.caches[nName] = CacheInfo(valid: true, value: grabValue)
cache.caches[nName].value

View file

@ -8,7 +8,7 @@
import
os, strutils, times, md5, strtabs, math, db_sqlite,
scgi, jester, asyncdispatch, asyncnet, cache, sequtils,
scgi, jester, asyncdispatch, asyncnet, sequtils,
parseutils, utils, random, rst, recaptcha, json, re, sugar
import cgi except setCookie
import options

View file

@ -1,764 +0,0 @@
a, a * { cursor:pointer; }
html { margin:0; overflow-x:auto; }
body {
overflow-x:hidden;
min-width:1030px;
margin:0;
font: 13pt Helvetica,Arial,sans-serif;
background:#152534 url("/images/bg.png") no-repeat fixed center top; }
pre {
color: #F5F5F5;
overflow:auto;
margin:0;
padding:15px 10px;
font-size:10pt;
font-style:normal;
line-height:14pt;
background:rgba(0,0,0,.75);
border-left:8px solid rgba(0,0,0,.3);
margin-bottom: 10pt;
font-family: "DejaVu Sans Mono", monospace;
}
pre, pre * { cursor:text; }
pre .Comment { color:#6D6D6D; font-style:italic; }
pre .Keyword { color:#43A8CF; font-weight:bold; }
pre .Type { color:#128B7D; font-weight:bold; }
pre .Operator { font-weight: bold; }
pre .atr { color:#128B7D; font-weight:bold; font-style:italic; }
pre .def { color:#CAD6E4; font-weight:bold; font-style:italic; }
pre .StringLit { color:#854D6A; font-weight:bold; }
pre .DecNumber, pre .FloatNumber { color:#8AB647; }
pre .tab { border-left:1px dotted rgba(67,168,207,0.4); }
pre .end { background:url("/images/tabEnd.png") no-repeat left bottom; }
pre .EscapeSequence
{
color: #C08D12;
}
.tall { height:100%; }
.pre { padding:0 5px; font: 11pt "DejaVu Sans Mono",monospace; background:rgba(255,255,255,.30); border-radius:3px; }
.page-layout { margin:0 auto; width:1000px; }
.docs-layout { margin:0 40px; }
.talk-layout { margin:0 40px; }
.wide-layout { margin:0 auto; }
#head {
height:100px;
margin-bottom: 40px;
background:url("/images/head.png") repeat-x bottom; }
#head.docs { margin-left:280px; background:rgba(0,0,0,.25) url("/images/head-fade.png") no-repeat right top; }
#head > div { position:relative }
#head-logo {
position:absolute;
left:-390px;
top:0;
width:917px;
height:268px;
pointer-events:none;
background:url("/images/logo.png") no-repeat; }
#head.docs #head-logo { left:-381px; position:fixed; }
#head.forum #head-logo { left:-370px; }
#head-logo-link {
position:absolute;
display:block;
top:10px;
left:10px;
width:236px;
height:85px; }
#head.docs #head-logo-link { left:-260px; }
#head.forum #head-logo-link { left:30px; }
#head-links { position:absolute; right:0; bottom:13px; }
#head.docs #head-links,
#head.forum #head-links { right:20px; }
#head-links > a {
display:block;
float:left;
padding:10px 25px 25px 25px;
color:rgba(255,255,255,.5);
font-size:14pt;
text-decoration:none;
letter-spacing:1px;
background:url("/images/head-link.png") no-repeat center bottom;
transition:
color 0.3s ease-in-out,
text-shadow 0.4s ease-in-out; }
#head-links > a:hover,
#head-links > a.active {
position: relative;
color:#1cb3ec;
text-shadow:0 0 4px rgba(28,179,236,.8);
background-image:url("/images/head-link_hover.png"); }
#head-links > a.active:after {
display: block;
content: "";
width: 771px;
background: url("/images/glow-arrow.png") no-repeat left;
height: 41px;
position: absolute;
left: 50%;
bottom: -49px;
transform: translateX(-618px); }
#head-banner { width:200px; height:100px; background:#000; }
#glow-line-vert {
position:fixed;
top:100px;
left:280px;
width:3px;
height:844px;
background:url("/images/glow-line-vert.png") no-repeat; }
#body { z-index:1; position:relative; background:rgba(220,231,248,.6); color:black; }
#body.docs { margin:0 40px 20px 320px; }
#body.forum { margin:0 40px 20px 40px; min-height: 700px; }
#body-border {
position:absolute;
top:-25px;
left:0;
right:0;
height:35px;
background:rgba(0,0,0,.25); }
#body-border-left {
position:absolute;
left:-25px;
top:-25px;
bottom:-25px;
width:35px;
background:rgba(0,0,0,.25); }
#body-border-right {
position:absolute;
right:-25px;
top:-25px;
bottom:-25px;
width:35px;
background:rgba(0,0,0,.25); }
#body-border-bottom {
position:absolute;
left:10px;
right:10px;
bottom:-25px;
height:35px;
background:rgba(0,0,0,.25); }
#body.docs #body-border,
#body.forum #body-border { left:10px; right:10px; }
#glow-line {
position:absolute;
top:-27px;
left:100px;
right:-25px;
height:3px;
background:url("/images/glow-line.png") no-repeat left; }
#glow-line-bottom {
position:absolute;
bottom:-27px;
left:-25px;
right:100px;
height:3px;
background:url("/images/glow-line2.png") no-repeat right; }
#content { padding:40px 0; }
#content.page { width:680px; min-height:800px; padding-left:20px; }
#content h1 { font-size:20pt; letter-spacing:1px; color:rgba(0,0,0,.75); }
#content h2 { font-size:16pt; letter-spacing:1px; color:rgba(0,0,0,.7); margin-top:40px; }
#content p { color: #1D1D1D; margin: 5pt 0pt; }
#content a { color:#CEDAE9; text-decoration:none; }
#content a:hover { color:#fff; }
#content ul { padding-left:20px; }
#content li { margin-bottom:10px; text-align:justify; }
#talk-heads { overflow:auto; margin:0 8px 0 8px; }
#talk-heads > div { float:left; font-size:120%; font-weight:bold; }
#talk-heads > .topic { width:45%; }
#talk-heads > .detail { width:15%; }
#talk-heads > .activity { width:25%; }
#talk-heads > .users { width:15%; }
#talk-heads > div > div { margin:0 10px 10px 10px; padding:0 10px 10px 10px; border-bottom:1px dashed rgba(0,0,0,0.4); }
#talk-heads > .topic > div { margin-left:0; }
#talk-heads > .activity > div { margin-right:0; }
#talk-thread > div {
background-color: rgba(255, 255, 255, 0.5);
}
#talk-thread > div,
#talk-threads > div {
position:relative;
margin:5px 0;
overflow:auto;
border-radius:3px;
border:8px solid rgba(0,0,0,.8);
border-top:none;
border-bottom:none;
}
#talk-threads > div
{
line-height: 150%;
background:rgba(0,0,0,0.1);
}
#talk-threads > div:nth-child(odd) { background:rgba(0,0,0,0.2); }
#talk-thread > div > div,
#talk-threads > div > div
{
float:left;
text-overflow: ellipsis;
overflow: hidden;
font-size: 13pt;
}
#talk-threads > div > div > div { margin: 5px 10px; }
#talk-thread > div > div > div { margin: 15px 10px; }
#talk-thread > div > .topic
{
margin-top: 15pt;
white-space: normal;
}
#talk-thread > div > .topic > div
{
margin-left: 15px;
}
#talk-thread > div > .topic > div > span.date
{
position: absolute;
top: 5px;
right: 10pt;
border-bottom: 1px dashed;
color: #3D3D3D;
}
#talk-threads > div > .topic { width:45%; }
#talk-threads > div > .users { width:15%; overflow:hidden; height: 30px; }
#talk-threads > div > .users > div > img
{
margin-bottom: -4pt;
cursor: help;
width: 20px;
}
#talk-threads > div > .detail { width:16%; overflow:hidden; }
#talk-thread > div > .author,
#talk-threads > div > .activity {
overflow:hidden;
background:rgba(0,0,0,0.8);
color: white;
}
#talk-thread > div > .author {
width: 15%;
}
#talk-threads > div > .activity {
width:24%;
font-size: 9pt;
}
#talk-threads > div > .activity a
{
color: #1CB3EC;
}
#talk-threads > div > .activity a:hover
{
color: #ffffff;
}
#talk-thread > div > .author {
height: 100%;
position: absolute;
}
#talk-thread > div > .author a,
#talk-threads > div > .author a { color:#1cb3ec !important; }
#talk-thread > div > .author a:hover,
#talk-threads > div > .author a:hover { color:#fff !important; }
#talk-threads > div > .topic .pages { float:right; }
#talk-threads > div > .topic .pages > a
{
margin-right: 5pt;
}
#talk-threads > div > .topic > div > a
{
font-weight:bold;
white-space: nowrap;
}
#talk-threads > div > .topic > div > a:visited { color: #1a1a1a; }
#talk-threads > div > .detail > div { float:left; margin:0; }
#talk-threads > div > .detail > div > div { margin-left:15px; padding: 5px 5px 5px 22px; }
#talk-threads > div > .detail > div { width:50%; }
#talk-threads > div > .detail > div:first-child > div { background:url("/images/forum-views.png") no-repeat left; cursor: help; }
#talk-threads > div > .detail > div:last-child > div { background:url("/images/forum-posts.png") no-repeat left; cursor: help; }
#talk-thread > div { margin:20px 0; min-height:160px; padding-bottom: 10pt; }
#talk-thread > div > .author > div > .avatar { margin-top:20px; }
#talk-thread > div > .author > div > .name { }
#talk-thread > div > .author > div > .date { font-size: 8pt; color: white; }
#talk-thread > div > .topic { width:85%; padding-bottom:10px; margin-left: 15%; }
#talk-thread > div > .topic pre, #markhelp pre.listing {
overflow:auto;
margin:0;
padding:15px 10px;
font-size:10pt;
font-style:normal;
line-height:14pt;
background:rgba(0,0,0,.75);
border-left:8px solid rgba(0,0,0,.3);
margin-bottom: 10pt;
font-family: "DejaVu Sans Mono", monospace;
}
#talk-thread > div > .topic a, #talk-thread > div > .topic a:visited,
#markhelp a, #markhelp a:visited
{
color: #3680C9;
text-decoration: none;
}
#talk-thread > div > .topic a:hover
{
text-decoration: underline;
}
#talk-head,
#talk-info {
overflow:auto;
border-radius:3px;
border:8px solid rgba(0,0,0,.2);
border-top:none;
border-bottom:none;
background:rgba(0,0,0,0.1); }
#talk-head { margin-bottom:20px; }
#talk-info { margin-top:20px; }
#talk-head > div,
#talk-info > div { float:left; }
#talk-head > .info,
#talk-info > .info { width:80%; }
#talk-head > .info-post,
#talk-info > .info-post { width: 85%; }
#talk-head > .user,
#talk-info > .user { width:20%; background:rgba(0,0,0,.2); }
#talk-head > .user-post,
#talk-info > .user-post { width: 15%; background:rgba(0,0,0,.2); }
#talk-info > .user-post .reply { font-weight:bold; padding-left:22px; background:url("/images/forum-reply.png") no-repeat left; }
#talk-info > .user-post a span
{
color: #CEDAE9 !important;
}
#talk-info > .user-post > a > div:hover > span
{
color: #fff !important;
}
#talk-head > div > div,
#talk-info > div > div,
#talk-info > div > a > div { padding:5px 20px; color: #1a1a1a; }
#talk-head > div > div { color: #353535; }
#talk-head > .detail > div { float:left; margin:0; }
#talk-head > .detail > div > div { padding-left:22px; }
#talk-head > .detail > div:first-child > div { background:url("/images/forum-views.png") no-repeat left; }
#talk-head > .detail > div:last-child > div { background:url("/images/forum-posts.png") no-repeat left; }
#talk-nav { margin:20px 8px 0 8px; padding-top:10px; border-top:1px dashed rgba(0,0,0,0.4); text-align:center; }
#talk-nav > a.active { text-decoration:underline !important; }
#talk-nav > a, #talk-nav > span, #talk-info > .info-post > div > a,
#talk-info > .info-post > div > span { margin-left: 5pt; }
.standout {
padding:5px 30px;
margin-bottom:20px;
border:8px solid rgba(0,0,0,.8);
border-right-width:16px;
border-top-width:0;
border-bottom-width:0;
border-radius:3px;
background:rgba(0,0,0,0.1);
box-shadow:1px 3px 12px rgba(0,0,0,.4); }
.standout h3 { margin-bottom:10px; padding-bottom:10px; border-bottom:1px dashed rgba(0,0,0,.8); }
.standout li { margin:0 !important; padding-top:10px; border-top:1px dashed rgba(0,0,0,.2); }
.standout ul { padding-bottom:5px; }
.standout ul.tools { list-style:url("/images/docs-tools.png"); }
.standout ul.library { list-style:url("/images/docs-library.png"); }
.standout ul.internal { list-style:url("/images/docs-internal.png"); }
.standout ul.tutorial { list-style:url("/images/docs-tutorial.png"); }
.standout ul.example { list-style:url("/images/docs-example.png"); }
.standout li:first-child { padding-top:0; border-top:none; }
.standout li p { margin:0 0 10px 0 !important; line-height:130%; }
.standout li > a { font-weight:bold; }
.forum-user-info,
.forum-user-info * { cursor:help }
#foot { height:150px; position:relative; top:-10px; letter-spacing:1px; }
#foot.home { background:url("/images/foot.png") repeat-x top; height:200px; }
#foot.docs { margin-left:320px; margin-right:40px; }
#foot.forum { margin-left:40px; margin-right:40px; }
#foot > div { position:relative; }
#foot.home > div { width:960px; }
#foot h4 { font-size:11pt; color:rgba(255,255,255,.4); margin:40px 0 6px 0; }
#foot a:hover { color:#fff; }
#foot-links { float:left; }
#foot-links > div { float:left; padding:0 40px 0 0; line-height:120%; }
#foot-links a { display:block; font-size:10pt; color:rgba(255,255,255,.3); text-decoration:none; }
#foot-legal { float:right; font-size:10pt; color:rgba(255,255,255,.3); line-height:150%; text-align:right; }
#foot-legal a { color:inherit; text-decoration:none; }
#foot-legal > h4 > a { color:inherit; }
#mascot {
z-index:2;
position:absolute;
top:-340px;
right:25px;
width:202px;
height:319px;
background:url("/images/mascot.png") no-repeat; }
article#content
{
width: 80%;
display: inline-block;
}
div#sidebar
{
background-color: rgba(255, 255, 255, 0.1);
border-left: 8px solid rgba(0, 0, 0, 0.8);
border-right: 8px solid rgba(0, 0, 0, 0.8);
border-bottom: 8px solid rgba(0, 0, 0, 0.8);
border-radius: 3px;
width: 15%;
margin-top: 40px;
display: inline-block;
float: right;
color: #FFF;
}
div#sidebar .title
{
background-color: rgba(0, 0, 0, 0.8);
color: #FFF;
text-align: center;
padding: 10pt;
}
div#sidebar .content
{
padding: 12pt;
overflow: auto;
}
div#sidebar .content .button, .runDiv>button, .runDiv>a
{
background-color: rgba(0,0,0,0.2);
text-decoration: none;
color: #FFF;
padding: 4pt;
float: right;
border-bottom: 2px solid rgba(0,0,0,0.24);
font-size: 11pt;
margin-top: 5pt;
}
div#sidebar .content .button:hover
{
border-bottom: 2px solid rgba(0,0,0,0.5);
}
div#sidebar .content input
{
width: 99%;
margin-bottom: 10pt;
margin-top: 2pt;
border: 1px solid #6D6D6D;
font-size: 12pt;
}
div#sidebar .content a.avatar img
{
float: left;
margin-top: 5pt;
}
div#sidebar .content a.user
{
background-color: rgba(0, 0, 0, 0.8);
color: #1cb3ec;
padding: 5pt;
width: 93%;
display: block;
text-align: center;
text-decoration: none;
}
div#sidebar .content a.user:hover
{
color: #FFF;
}
div#sidebar .user .button
{
float: left;
margin-top: 5pt;
width: 52.5%;
}
div#sidebar .user .logout
{
clear: left;
width: 52pt;
text-align: center;
margin-left: 0pt;
}
div#sidebar .user .avatar > img
{
margin-right: 5pt;
}
div#sidebar .content .search
{
text-align: center;
margin: auto;
display: block;
width: 95%;
}
div#sidebar .content a#passreset {
color: #CEDAE9;
font-size: 9pt;
display: block;
text-decoration: none;
margin-top: -4pt;
}
div#sidebar .content a#passreset:hover {
color: #fff;
}
span.error
{
float: left;
width: 100%;
color: #FF4848;
text-align: center;
font-size: 10pt;
background-color: rgba(0,0,0,0.8);
padding: 5pt 0pt;
font-weight: bold;
}
section#body #content span.error
{
width: 25%;
margin-top: 5px;
margin-bottom: 5px;
}
article#content form
{
border-right: 8px solid rgba(0, 0, 0, 0.2);
background-color: rgba(255, 255, 255, 0.1);
padding: 10pt 20pt;
}
article#content form > input, article#content form > textarea
{
border: 1px solid #6D6D6D;
}
article#content form > input[type=text]
{
width: 70%;
min-width: 500px;
}
article#content form > textarea
{
width: 100%;
height: 200px;
}
article#content form > input:focus, article#content form > textarea:focus
{
border: 1px solid #1cb3ec;
}
hr
{
border: 1px solid #3D3D3D;
}
.activity .isoDate
{
display: none;
}
/* highlighting current post */
div:target {
background: rgba(139, 218, 255, 0.25) !important;
}
/* full-text search */
.searchResults h4 b,
.searchResults h5 b {
border-bottom: 1px dotted #ffffff;
}
.titleHeader {
margin-right: 1em;
color: #121212;
font-weight: bold;
}
.postTitle b {
border-bottom: 1px solid #D7300C;
}
.postTitle a:hover {
text-decoration: none !important;
border-bottom: 1px solid #D7300C;
}
.searchForm {
margin-top: 0px;
margin-right: 1em;
margin-bottom: 0px;
margin-left: 1em;
}
.searchHelp {
color: #000000 !important;
float: right;
font-size: 11px;
left: -17px;
top: 3px;
position: relative;
text-decoration: none;
text-shadow: #FFFF00 1px 1px 2px;
cursor: help;
}
#talk-thread.searchResults > div > div > div {
margin: 15px 8px;
}
form.searchNav {
display: inline;
border: none !important;
background: transparent !important;
}
.searchNav input {
background: #858C97;
color: #000000;
border: 1px solid #333;
}
.clear {
clear: both;
height: 1px;
}
img.smiley {
width: 20px;
height: 20px;
vertical-align: middle;
margin: 0;
}
img.rssfeed {
width: 16px;
float: right;
margin-top: 10px;
}
#markhelp {
width: 80%;
background-color: #cbcfd6;
padding: 2pt 10pt;
margin-top: 10pt;
}
#markhelp .markheading {
background-color: #6fa1ff;
text-align: center;
}
#markhelp table.rst {
width: 100%;
margin: 10px 0px;
font-size: 12pt;
border-collapse: collapse;
}
#markhelp table tr, #markhelp table td {
width: 50%;
border: 1px solid #7d7d7d;
}
#markhelp table td {
padding:4px 9px;
}
blockquote {
padding: 0px 8px;
margin: 10px 0px;
border-left: 2px solid rgb(61, 61, 61);
color: rgb(109, 109, 109);
}
blockquote p {
color: rgb(109, 109, 109) !important;
}
.runDiv > hr {
border: 1px solid #80828d;
}
.runDiv > a {
color: #FFF !important;
padding: 3.5pt;
margin-right: 3pt;
}
.runDiv > button, .runDiv > a {
cursor: pointer;
border: none; /* remove border from runDiv>button */
border-bottom: 2px solid rgba(0,0,0,0.24);
background-color: #80828d;
}
.runDiv>button:hover, .runDiv > a:hover {
text-decoration: none !important;
border-bottom: 2px solid rgba(255, 255, 255, 0.5);
}
.runDiv > .resDiv {
width: 80%;
padding: 0.2em 1em 0.2em 1em;
display: inline-block;
}
.successComp {
color: lightgreen;
}
.failedComp {
color: lightcoral;
}
.date > a, .date > a:hover, .date > a:visited {
color: #3D3D3D !important;
text-decoration: none !important;
}

View file

@ -1,18 +0,0 @@
<?xml version="1.0"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="128px" height="128px" id="RSSicon" viewBox="0 0 256 256">
<defs>
<linearGradient x1="0.085" y1="0.085" x2="0.915" y2="0.915" id="RSSg">
<stop offset="0.0" stop-color="#E3702D"/><stop offset="0.1071" stop-color="#EA7D31"/>
<stop offset="0.3503" stop-color="#F69537"/><stop offset="0.5" stop-color="#FB9E3A"/>
<stop offset="0.7016" stop-color="#EA7C31"/><stop offset="0.8866" stop-color="#DE642B"/>
<stop offset="1.0" stop-color="#D95B29"/>
</linearGradient>
</defs>
<rect width="256" height="256" rx="55" ry="55" x="0" y="0" fill="#CC5D15"/>
<rect width="246" height="246" rx="50" ry="50" x="5" y="5" fill="#F49C52"/>
<rect width="236" height="236" rx="47" ry="47" x="10" y="10" fill="url(#RSSg)"/>
<circle cx="68" cy="189" r="24" fill="#FFF"/>
<path d="M160 213h-34a82 82 0 0 0 -82 -82v-34a116 116 0 0 1 116 116z" fill="#FFF"/>
<path d="M184 213A140 140 0 0 0 44 73 V 38a175 175 0 0 1 175 175z" fill="#FFF"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 174 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 405 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 387 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 180 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 620 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 164 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 897 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

View file

@ -1,14 +0,0 @@
Version 1.0
-----------
- even better spam avoidance
- Implement automated testing.
- Implement an "edit account" feature.
- Implement a "who is online" view.
Version 2.0
-----------
- Some email notification/RSS feed system would be nice.