Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

Autism BBS

Name: Anonymous 2011-09-04 7:00

Lately the technical imperfections and design of shiichan started to get on my nerves(not including the constant shitposting) so i decided to create my own BBS. The feature set is not finalized yet, and some improvement in design might be possible(comment?).
Here is the first draft of what is coming:
* Open Source, using only free code
* Performance/bandwidth oriented
* Minimal processing, no BBCODE,only filters html tags and autolinks URLs
* C without any OOP or platform dependent code
* Very spartan text-only design, no CSS/JS or any external files
* Threads are stored as files in directory as ThreadName.Page generated as follows: 16 char random string THREADID and each 1000 posts(numbered from 0 to 999,1000-1999,etc) is a new file. e.g. /ls78saflGKsu9238.0  is first(zeroth)page of thread ls78saflGKsu9238
* replies consist of post number+text only, no name,email or timestamp, First line of first post in the thread is the thread title.
* Replying to a thread reloads the same thread page,like noko.
* no sage or bump feature, instead there is such system:
1.each new post in the thread swaps its(thread list) position with thread one cell higher(if at top, no change). If the post contains the same text as any of previous replies or only a quoted part of previous post, it does not change the order.
2.new threads start at the top of thread list.

Name: Anonymous 2011-09-05 2:14

>>25
>* Open Source, using only free codeShiichan is already open sores.
Shiichan source is horrible quality, and it is much slower than optimized lean C.

>* Performance/bandwidth orientedNot like world4ch is getting much traffic at all. 2ch would be an example of board which is traffic-intensive. Of course, almost everyone can be better than PHP's performance.
The idea is that fast and scalable code would be better for everyone from hobby users to huge sites.

* Minimal processing, no BBCODE,only filters html tags and autolinks URLsBoring if you refuse to include BBCODE. You should at least allow Sexpcode and possibly TeX.
Any markup can implemented as text filter in NFA regexp, but this is not a priority since pastebin exists.

* C without any OOP or platform dependent codeEnjoy wasting your time. I'd rather use Lisp for high-level server applications like this. Implementing extensions would also take a while. I see no problem with using C for performance-oriented server daemons, but for a text-board?
You can't imagine the performance savings, but in theory it will be far more efficient than any high level(and especially recursive, garbage collected algos) construct you write, despite its elegance and/or simplicity.


* Very spartan text-only design, no CSS/JS or any external filesIf you're going all retro and minimalistic, why not just use mailing lists, Usenet and IRC? It's what most programmers and academics use for discussion, it's standardized and has many clients written for them. If you're writing it for web, at least tag the HTML so users could supply CSS and change the font and layout.
It will have a web and telnet interface, no fancy RSS,CSS or any Web 2.0. Mailing lists are far different from real-time discussion and IRC chat is just too identity-oriented and terse medium(such as twitter).

* Threads are stored as files in directory as ThreadName.Page generated as follows: 16 char random string THREADID and each 1000 posts(numbered from 0 to 999,1000-1999,etc) is a new file. e.g. /ls78saflGKsu9238.0  is first(zeroth)page of thread ls78saflGKsu9238Hardly better than Shiichan.
Shiichan is a script which is many times slower than raw C code at handling files and server requests.

* replies consist of post number+text only, no name,email or timestamp, First line of first post in the thread is the thread title.Timestamp is useful. Name can be partially useful at times if you want to indicate your identity/previous posts (in the absence of ID, which shouldn't be present due to security issues) to prevent confusion.
Timestamps lead to time based discrimination or in some cases accusations of one poster replying to himself, old posts disregarded as obsolete or considered authoritative/superior(dependign on the viewer perspective).
Names and tripcodes allow compromising anonymity. In Autism BBS there is absolute anonymity and privacy(no cookies, no logs, no identity). If you really need an identity to contribute,consider signing posts with pgp http://david.tribble.com/text/pgpsign.htm

* Replying to a thread reloads the same thread page,like noko.Okay.
This will be a builtin feature, rather than requiring to input some code to redirect to own thread(which is primitive, time-consuming and unelegant).

* no sage or bump feature, instead there is such system:
1.each new post in the thread swaps its(thread list) position with thread one cell higher(if at top, no change). If the post contains the same text as any of previous replies or only a quoted part of previous post, it does not change the order.
2.new threads start at the top of thread list.
>1 is a new idea, slightly interesting, but troublesome to implement in practice without getting defined better. It seems the core of your idea is that threads should be raised by the amount of new information they provide,
Yes, this is correct, but there will be a cap on speed of such "raising" process so that really popular threads don't drown out all other discussion(like on reddit) and new information(thread) is valued much more than a bump to an old thread.

>but finding out how much new information is provided is a HARD problem. My idea on how this could be done is to attempt to compress using a dictionary made from previous posts (that would be considered as "amount of new information"),
No, the system is such that your post will be
1. Checked for duplicate strings from previous posts, if none found
2. make the thread swap places with one thread higher
3. if some found, thread position remains stable.

however this could be bypassed by generating random data, which would not compress at all, and a defense against this idea would be to measure the entropy/randomness using statistical methods,
This is discussed in >>22

>then calculate the final score (by how much to raise) as a combination between those 2 scores, however even that can be gamed, for example using Markov-chain based text generators (and if you defend against that, it will just require more randomization to reach a sweet spot that your algorithm finds scoring high), in which case the next best way to decide how a thread should be raised would be something like a human-based detected (or some AGI), in which case, if you're using humans you basically end up with text-based reddit (with scores).
In no cases it would be necessary to turn to reddit, a report system with at least one active moderator is sufficient to weed out the more sophisticated spam, and text filters(with NFA regexp, which should be mentioned once more as most efficient system for text processing) will catch the majority of shitposters offguard, rejecting their posts.

The conclusion thus becomes, back to /reddit/ or just use Usenet/mailing lists/IRC.
That is premature conclusion, similar to telling people they should be glad they live as good as they have now and further progress is unnecessary.

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List