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

Pages: 1-4041-8081-120121-160161-200201-240241-

Do it [SchemeBBS]

Name: Anonymous 2015-05-25 10:11

Can we fucking wake up here sheeple? We need a SchemeBBS. We need to restore all of prog.db in it. This regex crap the admin does is no good right now for the job.

Name: Anonymous 2015-05-25 10:23

,______ ___ ___ ____.,
/* ' ' ' \_
| \
- ~ ~lmbd
| \
- |
/ \
- ________________________ \
. _ _/ \_ \ __.,._
. \.., / \,. *__/ \
'* / *
/ | /
\_ ,._.#####.__. .___#####._,. /- -.-
*,==| <._# )> vvvv <. # )> |==#" \
/ | | | | \ *
^_ | .,-* / \ | / /
/_ /\__________/ \_________/ - |
/ (__ __ ) | / \__,
| ** \ / " /.
" / \ \_- / /
\ / / v |
- | /
\ ,-''"''--"''"'-.. / \
\ \.,.-,.,.--,.../ |
\_ |
\_ _____ /.
.-/ <>>>____,.,..,____/ ___ / \
,./ \ .
,.*/ \ |\
* * \ /\
,.___/ | \ / |

\
| -- G. J. Sussman

Name: Anonymous 2015-05-25 11:17

>>1
Scheme is not webscale. The recommended LISP to use for Web Apps is JavaScript nowadays.

Name: Anonymous 2015-05-25 13:48

lol...

U MENA HASKAL BBS?

Name: Anonymous 2015-05-25 14:00

That sounds great OP, how much have you written so far?

Name: Anonymous 2015-05-26 8:51

>>3
What is gaylisp

Name: Anonymous 2015-05-26 8:54

>>3
implying such a BBS will ever see large traffic.

Name: Anonymous 2015-05-26 9:14

Write a minimal BBS in C using and CGI.

Name: Anonymous 2015-05-26 12:14

Challenge: write a ``Minimal BBS'' program in Lambda Calculus.

Name: Anonymous 2015-05-26 12:51

>>7
Whom are you quoting?

Name: Anonymous 2015-05-26 14:45

Let's discuss BBS design for a bit here. Having plain text threads that posts get appended to is simply god-awful. Why not have each individual post get its own file?

Name: Anonymous 2015-05-26 15:01

>>11
Why is it god-awful and why would individual files be better?

Name: Anonymous 2015-05-26 15:54

I think we all can agree that web is shiet, but a convenient shiet at times. Therefore http should be only one of many interfaces. CL-BBS (/clēbs/) should be actually a NNTP server. NNTP is a simple decentralized protocol that was designed for this kind of things.

Name: Anonymous 2015-05-26 16:20

>>11
Isn't that how Shiichan does it?

Name: Anonymous 2015-05-26 16:21

>>12
Because we are constrained by the HTML/JS/CSS/BBCode, the layout of the website, et cetera. Consider this:

Progrider should serve only the raw content of the posts, on demand of the client, which may or may not be a web browser. I am talking about a programmable programming BBS (that makes sense for us, doesn't it?).

It's very troublesome to change the order the threads are shown, for example. Maybe someone wants to view threads per creation date instead of last post. It's also stupid that you have to scroll 100 screens in order to find the 5 latest posts that have been made to this website.

That's why I believe individual posts would be better. It would also get rid us of the "whom are you quoting" dude. Imagine, if >>4 meant literally a single post ID. Threads would literally be connected graphs.

What if someone wants to write an OpenGL client where you are a little spaceship travelling in space, and posts would be stars? Of course this is obviously not handy to use, but it is sure an impressive visualizaton of the bbs. Maybe someone wanted to write an emacs script so that he/she can read progrider from inside emacs. As it is, it's god-awful to do this. What if we want to get rid of BBCode? That's easy too. All you have to do is write a client where you parse & visualize posts differently.

Of course it all rests on the fact each post is a different file, which means you need some protocol for rapid GETs (i.e. to view a thread of 1000 posts would mean to download 1000 files). I'm not an expert but I guess nginx is not made for this.

Seriously, don't we need something more programmable than this old piece of shit?

Name: Anonymous 2015-05-26 16:36

>>15
I agree that raw data should be served somewhere so we don't have to use a crappy web interface. Ideally, you could query new posts since $DATE, so you could maintain a local copy and display it however you wish, /prog/ isn't that big after all.

The rest is complete nonsense and unrelated to whether posts are files or not. You are proposing some unholy hybrid abomination between Reddit and a mailing list.

It would also get rid us of the "whom are you quoting" dude.
Kill yourself.

Name: Anonymous 2015-05-26 16:38

>>16
Whom are you quoting?

Name: Anonymous 2015-05-26 17:44

>>15
lets code this in racket? we could meet on the progrider irc?

Name: Anonymous 2015-05-26 17:52

>>18
I'm game

Name: Anonymous 2015-05-26 18:21

Why not just make an API? It can be in JSON format or something similar which can then be parsed in your programming language of choice. After that, you can interpret or do whatever else you want with it. Also, the "who are you quoting" meme needs to die.

Name: Anonymous 2015-05-26 18:37

#### SchemeBBS: protocol version 1

## Introduction: The SchemeBBS server works as a regular TCP server. It is communicated to and responds with s-expressions.

## Errors
If a query fails the server well return (error <e>) where the form e contains some information about the problem.

## Posts: Posts are assoc lists of the following form:

((id . <int>)
(date . <date>)
(reply . <int or #f>)
(post . <string>))

all these fields must be present except reply, which is optional.
clients should ignore extra unknown fields.

## Commands:

(version) ;=> 1

(get <int>) ;=> returns the post of that id or (error "No such post") if there is no post of that id.

(post <assoc-list>) ;=> the assoc list should be a post without the date, if a client sends date it will be ignored. The server should return the post id on success.

(posts> <int>) ;=> return a list of all posts whose id is larger in ascending order of post id.

Name: Anonymous 2015-05-26 18:43

>>20
And making a script that interacts with said API would be the rite of passage for every potential /prog/lodite? Great! I've always wanted this place to be filled with appers and web devs!

Name: Anonymous 2015-05-26 18:55

>>22
/prog/lodyte

high-five

Name: Anonymous 2015-05-26 19:01

Here's a really trivial client repl type thing which might be useful for testing a server

#lang racket
(require racket/tcp)

(let-values (((in out) (tcp-connect "localhost" 7777)))
(let loop ()
(let ((command (read)))
(displayln command out)
(flush-output out)
(let ((form (read in)))
(displayln form)
(loop)))))

Name: Anonymous 2015-05-26 19:03

>>21
what should happen if someone replies to a post that doesn't exist (yet)?

Name: Anonymous 2015-05-26 19:07

>>25
Nothing. GETing that post would make the server respond with an error. Clients don't need to GET such posts since they can know the last post id.

Name: Anonymous 2015-05-26 19:21

#lang racket

(define (go)
'yep-it-works)

(define (error e)
e) ;; for now

(define (version)
1)

(define post-count 0)

(define (index)
post-count)

(define post-list null)

(define (get id)
(memf (lambda (post) (assoc post 'id))
post-list))

; ((id . <int>)
; (date . <date>)
; (reply . <int or #f>)
; (post . <string>))

;; make-post creates the server post from the client post
(define (make-post post)
(list
(cons 'id (index))
(cons 'date (current-seconds))
;; no (reply . <int>) yet
(assoc 'post post)))

;; post takes the server post and simply appends it to post-list
;; also incrementing post-count
(define (post alist)
(begin
(set! post-list
(cons (make-post alist)
post-list))
(set! post-count (+ 1 post-count))))

Name: Anonymous 2015-05-26 19:29

>>27
get fixed
(define (get id)
(car
(memf (lambda (post) (= id (cdr (assoc 'id post))))
post-list)))

Name: Anonymous 2015-05-26 19:36

>>27-28
define
define
define

Just use def, ya faggots.

Name: Anonymous 2015-05-26 19:43

>>29
but we are defining things, not deffing things

Name: Anonymous 2015-05-26 20:01

the easiest way to do this is to write a fastcgi wrapper around some embeddable scheme you're complicating things, just use SIG alert and fork to timeout and limit resources

Name: Anonymous 2015-05-26 20:09

>>31
Whom are you quoting?

Name: Anonymous 2015-05-26 20:14

>>13
CL-BBS (/clēbs/)
Do you also pronounce NNTP "neenootup"? Moron.

Name: Anonymous 2015-05-26 20:16

>>15
It would also get rid us of the "whom are you quoting" dude
There's a better solution: you could stop being an meme-spewing imageboarder. Hard to believe there was another solution, I know.

Name: Anonymous 2015-05-26 20:31

Here's some server code: http://pastie.org/10208782

now we just need a little interpreter to connect between this and >>27

Name: Anonymous 2015-05-26 22:29

Heres a rough explanation

a client connects to the server
then it just sends s-expression in plaintext (e.g. (version) to find server version, (post "blah blah") t opost a message)
and the server replies in plaintext
its essentialy a remote REPL, where your limited to very basic text board functions (listing posts, posting etc.) not general computation

Name: Anonymous 2015-05-26 22:33

>>36
no, your limited

Name: Anonymous 2015-05-26 23:04

>>37
what about my limited?

Name: Anonymous 2015-05-27 1:18

> (display '(ayy "goo tee"))
(ayy goo tee)
> (print '(ayy "goo tee"))
'(ayy "goo tee")
> (write '(ayy "goo tee"))
(ayy "goo tee")


lesson learned: we need to use WRITE.

client fixed up. Server should appear on the fossil repo soon.

Name: Anonymous 2015-05-27 2:14

I put everyone's code and the specification together with a few simple changes and made a working prototype. It's in the progrider fossil repo at https://progrider.org/fossil/tree?ci=tip&name=schemebbs .

Name: Anonymous 2015-05-27 2:50

>>30
Clojure retard spotted.

Name: Anonymous 2015-05-27 4:48

>>21
Here we go again..

>>22-
Oh, well here we go then. Something is actually happening this time.

Name: Anonymous 2015-05-28 1:09

If you actually make something, someone host it so I can exploit it please

Name: Anonymous 2015-05-28 10:12

If you actually get dubs, someone post em so I can check em please

Name: You, sir, are an idiot. 2015-05-30 1:31

You, sir, are an idiot.

Name: Anonymous 2015-05-30 1:37

>>45
Alas, once again my blazingly apt and viciously terse utterances get overtly forced by idiots enthralled by their power. I'm like the lead researcher on new shitposting phrases over here. *sigh*

Name: Anonymous 2015-05-30 6:52

>>46
I hear you loud and clear. A few of my shitposts became forced memes for a few days or so, too.

Name: You sire, are and idiot 2015-05-30 12:43

>>47
You sire, are and idiot

Name: Anonymous 2015-05-30 17:02

>>46,47
Been there, done that. Some of my shitposts were exported to /jp/, which wasn't so bad, but then someone put them on /g/. Countless minutes of work, ruined. It's like feeding steak to a dog.

Name: Anonymous 2015-06-05 20:08

Bumping this thread because I'm still working on a FastCGI wrapper (described in >>31, even though I'm pretty sure now this person was being sarcastic) around chibi-scheme. I'm not a grand wizard or anything but it is fun. Like, too much fun.

Name: Anonymous 2015-06-05 21:50

>>50
Wrappers are inherently shit.
Just adds more abstraction and complexity.

Name: Anonymous 2015-06-05 21:55

>>51
Then you're doing it wrong. Abstraction should be used to reduce complexity.

Name: >>50 2015-06-08 7:13

It's alive
$ curl --data "(version)" 127.0.0.1/schemebbs
1
$ curl --data "(post ((reply . #f) (post . \"Read SICP\")))" 127.0.0.1/schemebbs
0
$ curl --data "(post ((reply . 0) (post . \"Read my anus\")))" 127.0.0.1/schemebbs
1
$ curl --data "(get 0)" 127.0.0.1/schemebbs
((id . 0) (date . 1433747143) (post . "Read SICP"))
$ curl --data "(posts> 0 1)" 127.0.0.1/schemebbs
(((id . 1) (date . 1433747169) (post . "Read my anus")) ((id . 0) (date . 1433747143) (post . "Read SICP")))
$


I'll post code sometime tomorrow!

Name: Anonymous 2015-06-08 11:16

>>53
yay!

Name: Anonymous 2015-06-08 13:02

nice1--preddy nice

Name: Anonymous 2015-06-08 13:25

>>53
What's the next step?
A browser to take all that information and present as if it were a real BBS like this one?
I'm excited.

Name: Anonymous 2015-06-08 14:03

>>56
yeah! are you gonna do it?

Name: Anonymous 2015-06-08 14:53

>>57
I am not.
LOL
I'm like Cudder, I don't do shit!

Name: Action Man 2015-06-08 15:02

>>58
That's what I'm here for. to AGITATE you and cudder so much that you grab each others cocks and burst into rapid MENTAL MASTURBATION

Name: Anonymous 2015-06-08 15:35

>>59
Nice try, but I'm not getting out of my ass.
And you know how Cudder is... no action!

Name: Anonymous 2015-06-08 15:52

>>58
>>59
>>60
can you guys please fuck off with the tripfagging shit

Name: Action Man 2015-06-08 16:16

>>61
my pectorals just grew

Name: The Optimiser 2015-06-08 18:10

Name: The Optimiser 2015-06-08 18:11

Name: Anonymous 2015-06-08 18:27

Just give me the stupid API already I want to do nothing whatsoever with it.

Name: >>50,53 2015-06-08 19:40

I checked it into the Fossil repo, under schemebbs-fcgi/ (didn't want to cramp the style of the Racket-only guys).

I do not claim to be an EXPERT PROGRAMMER. Comments and derision are welcome.

>>43,65
I'd love to but I need to spin up a VPS that I can lock down (and attempt to separate from everything I have my name attached to) first.

Name: Anonymous 2015-06-08 19:48

dubs

Name: Anonymous 2015-06-09 4:43

>>66
Tor hidden service on a VM where all network connections are forced into Tor. Or just use a linux box, run from an unprivileged process, and use iptables to force all traffic through tor.

Name: Anonymous 2015-06-09 15:41

>>68
all traffic
Why? You mean so that just in case the box is compromised, they can only access the network via Tor?

I'm seriously considering a hidden service as the budget option. Routing all the traffic through Tor seems like overkill though

Name: Anonymous 2015-06-09 20:11

Tor

They've hacked SilkRoad. Tor is compromized.

Name: Anonymous 2015-06-09 21:07

>>70
Nope, they compromized the human. Actually, the guy was pretty stupid.

Name: Anonymous 2015-06-10 3:41

You mean so that just in case the box is compromised, they can only access the network via Tor?
Yes. Don't allow phoning home.

Name: >>50,53,69 2015-06-15 18:20

Bumping this thread because I'm still working on SchemeBBS slowly.

I'm adding a facility in C to save/load posts to/from local Redis DB--which will be exposed to scheme as two simple functions, one that saves individual posts as s-expressions as they come in and one to load all the posts in the database into memory.

I've configured a hidden service and once the saving/loading is done (so even if someone figures out how to crash the long-running FCGI posts will persist) I think I will invite people to test.

The only other ideas I've heard for persistence involved other DBs that I don't like as much, flat files, and writing a kernel module to export/import the raw memory of the scheme environment (pretty sure this was a joke, and if it's not I wouldn't know where to begin doing this). Any others are welcome.

Name: Anonymous 2015-06-15 18:23

As soon as someone puts it online, I'm going to send the indefinite string:

((((((((((((((((((((((((((((((((((((((((((((((((((...

Name: Anonymous 2015-06-15 18:33

>>74
NOOOOOOOOOOooooooooooooooooooooooooooooooooooooooooooooooooooooooo

Name: Anonymous 2015-06-15 18:43

$ echo "((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((" | ./schemebbs
Content-type: text/sexp

ERROR on line 1: missing trailing ')' started on line: -1


chibi-scheme is pretty robust.

Name: Anonymous 2015-06-15 18:44

>>76
That wasn't indefinite though.

Name: Anonymous 2015-06-15 18:50

I'm going to fork chibi-scheme, add a few new features like a practical CLOS, and then call is chubby-scheme.

Name: Anonymous 2015-06-15 18:53

>>77
I'm fairly certain that such a request will never be forwarded by the webserver via the FastCGI protocol. Someone else can correct me if I'm wrong.

Name: Anonymous 2015-06-15 19:22

Flat files all the way.
Databases are bloat.

Name: Anonymous 2015-06-15 19:55

>>80
The actual code that deals with the database will be decoupled from the code that will be exposed to scheme, so feel free to write your own engine. I'm going to use Redis, though.

Name: Anonymous 2015-06-15 20:31

I think first order of things should be to write something that can replace the current progrider, but has a more "decentralized" backend.

So it could in theory connect to (trusted) hosts in some way and form one mega-chan. people need to be convinced of the possibility (and awesomeness) of this reality, that is the first part.

we'll need a good data model: what is the structure of the messages that will flow around in this mega chan. I propose that there are two messages: one used to create an entity type, and one to create entities. that is the second part.

then, once we have this foundation in place we can (ourselves) create structures on top of this; with clients we write ourselves to interact with the structures of our choosing, but everything is anonymously hosted "in the mega chan".

if we get that running; we write HTML5 crap frontends for it so bigger chans can join.

Name: Anonymous 2015-06-15 21:11

>>82
Unless you can contribute code, I'm simply not smart enough to make anything distributed like you're describing. Don't you have your own thread for this? I'm talking about http://bbs.progrider.org/prog/read/1433248364, you may want to post in that thread if it wasn't you to begin with.

P.S. I'm not trying to ``replace'' anything, and I also don't have any deep-seated emotional issues with censorship or security on the Internet--you aren't entitled to say whatever you want on someone else's website IMO. But feel free to do whatever you want with the code that has been posted.

Name: Anonymous 2015-06-15 21:54

yeah 82 has some cool ideas but they don't fit in schemebbs prject which is just a easy thing for fun - would love to see that happen maybe after this?

Name: Anonymous 2015-06-15 22:41

The biological fact of race and the myth of 'race' should be distinguished. For all practical social purposes 'race' is not so much a biological phenomenon as a social myth. The myth of 'race' has created an enormous amount of human and social damage. In recent years, it has taken a heavy toll in human lives, and caused untold suffering

Name: Anonymous 2015-06-16 1:00

Rule 1488 of /prog/: All improvement ideas and rewrite proposals eventually converge to an incomplete subset of DistBB.

As seen on C2.com, the TV Tropes-like programming meme database made by your bros at /r/programming!

Name: Anonymous 2015-06-16 1:05

>>82
so bigger chans can join.
no

Name: Anonymous 2015-06-16 1:29

>>86
Check my rule 88

Name: Anonymous 2015-06-16 8:07

>>83
>>84
Yes that other thread was me, I was picking up on >>56. I can contribute code for days; but wish to see more involvement first.

For the record; I do have deep seated emotional issues w.r.t. privacy and censorship.

We're losing the war against the SJW. They took Tumblr, 4chan and Reddit already. I'm not going to say those places where nice to begin with, but if we want a better net for our children we better start building it (preferably in such a way as to take away power from the admins/moderators/hosts and giving it to the peeple).

>>87
Noted and agreed, I got ahead of myself there.

Name: Anonymous 2015-06-16 10:56

>>89
if we want a better net for our children we better start building it (preferably in such a way as to take away power from the admins/moderators/hosts and giving it to the peeple).

implying that anyone is going to breed with me. other than that yeah I agree.

Name: alan jones 2015-06-16 11:05

i say we install richard /g/entine on their asses

Name: alex jones 2015-06-16 11:12

sorry forgot my name, it's alex jones, not alan jones. must be the dangerous chemicals theyre putting in my water that confused me rofl

Name: Anonymous 2015-06-16 11:42

>>92
You should learn capitalization and punctuation before ever posting here again, Alex Jones.

Name: alex jones 2015-06-16 12:49

>>93
*signsu p for your weekly MAGAZINE*

Name: alex jones 2015-06-16 12:50

>>93
you think you're a big shot because you have a magazine?

well I HAVE A FUCKING RADIO SHOW

Name: Anonymous 2015-06-16 15:04

>>89
war against the SJW
I care so little about this it's not even funny.

They took Tumblr, 4chan and Reddit ... if we want a better net for our children we better start building it (preferably in such a way as to take away power from the admins/moderators/hosts

See, the thing is, if you've been banned from those websites before, I don't see how it's my problem. Those are other people's websites and you aren't entitled to do whatever you want on them. You, being on /prog/, should know better than to expect anything other than a lack of privacy and rampant censorship on sites like that.

And it's good that you want to make your own thing, that's what you should do. The problem being, there's such a blurry line between ``harmless'' speech that would be considered taboo on those other sites, and pretty much blatant evil that is also considered illegal in most civilized countries (child porn for example) that moderation is simply required.

I for one will be moderating my hosted copy of SchemeBBS, and I don't see any way around this. Because, as soon as word gets out that there exists a public, mostly anonymous, unmoderated forum, it becomes absolutely flooded with awful people--and you know exactly what I'm talking about--this does not mean you, Jews-are-evil-and-taking-over-the-world-kun.

Name: Anonymous 2015-06-16 19:42

>>96
and pretty much blatant evil that is also considered illegal in most civilized countries (child porn for example) that moderation is simply required
Wait a few years and it'll be a crime to question the ruling party or to talk about the dark time when there were elections.

Name: Anonymous 2015-06-16 19:46

>>96
blatant evil that is also considered illegal

Thoughts cannot be evil. Thoughts cannot be considered illegal. Read 1984 to learn more.

Name: Anonymous 2015-06-16 19:48

>>96
Also, moderation is shit. The moderator is no better than the ones he moderates, no less evil, in fact often moreso, because his vileness is amplified by the power he possesses.

Name: Anonymous 2015-06-16 20:02

>>97
I like how you're implying that child pornography isn't evil.

>>98
Thinking about child porn is not illegal. Distributing it is. That's what I'm talking about. As soon as someone posts links to some other hidden service where you can get said items, the owner of the site is responsible. I'm not saying this is how things should be, it's just how it is. I'm sorry, but if you want to post CP maybe you should host this yourself.

>>99
moderation is shit

Don't care, again, make your own. Do you think /prog/ is unmoderated?

Name: Anonymous 2015-06-16 20:19

>>100
Not interested in that at all, but one day things you are interested in may be regarded the same and you would wish you had software that gave you plausibly deniability.

Name: Anonymous 2015-06-16 20:23

*plausible* fuck.

Name: Anonymous 2015-06-16 20:32

>>99
Propose an alternative then. Say someone posts child porn like >>100 describes, or something else--they negotiate a hit, or sell meth. What happens now? Does society not deserve justice? How do we achieve that justice? Do you think people should be able to say whatever they want without fear of consequence? Things just don't work like this in the real world. Speech (not ``thought'') does not exist in a vacuum. There is no possible idyllic free speech society without giving up the order of law. You'll figure this out after you've spent some time outside of college, I promise. I used to be like you.

Name: Anonymous 2015-06-16 20:32

>>102
not really

Name: Anonymous 2015-06-16 20:35

>>82
Have you seen twister? http://twister.net.co/ I'd say you should just fork this if it wasn't for the boost C++ cancer that the bitcoin libraries bring

Name: Anonymous 2015-06-16 21:38

>>103
God forbid homosexuals will be able confide in each other electronically in iran and chinese people will be able to read about falun gong. If this could happen the global fabric of society would disintegrate into nothing and we'd all perish in the ensuing chaos.

>>104
If you don't care about free speech then why are you talking?

>>105
It's written by a Brazilian, so I refuse to touch it.

Don't mind me. chinese DDOS incoming.
https://en.wikipedia.org/wiki/Falun_Gong

Name: Anonymous 2015-06-16 21:48

>>106
You didn't propose an alternative! Or refute any of my extremely valid points. Comparing clearly immoral activity that is universally regarded to harm society to political censorship is exactly the argument a college sophomore would make--not only is it misguided, but it leads nowhere. I sincerely want to know what you think should happen if someone posts child porn on your sacred distributed free-speech net.

Name: Anonymous 2015-06-16 22:04

>>107
You already have all the answers you could want by looking at freenet and one imperfect alternative is freenet. The answer is, not much, no one actually cares about CP. It makes the FBI look good if they can drag a pedo in cuffs in front of newspaper cameras, so they'll do it if the 1337 haxors they have on staff can pull it off, but NSA doesn't give a shit because pervs masturbating to pictures doesn't pose a threat to public safety. The other example, which is much more compelling, is terrorists communicating remotely. But what the fuck are you going to do about that? Ban encryption? It's not an option if you want to retain an economy. Even if you ban mediums like tor and freenet they'll just use other ways to communicate.

Name: Anonymous 2015-06-16 22:05

>>107
Oh I forgot. Shut up! You don't care about free speech, so just pretend there's an entity that doesn't want you to talk so you can save me the trouble of listening to you.

Name: Anonymous 2015-06-16 22:12

Comparing clearly immoral activity that is universally regarded to harm society to political censorship is exactly the argument a college sophomore would make--not only is it misguided, but it leads nowhere.
Then tell me, how do you protect against political censorship while retaining the ability to ban immoral activity? You can't. A backdoor that allows control over immoral activity will be used for political censorship. You can't have both, so you have to decide which is more important.

Name: Anonymous 2015-06-16 22:43

implying immoral activity harms society

- child porn is "immoral"
- medicine requires child porn to study child anatomy
- medicine is "immoral"

- human genome contains information to produce child porn
- human genome is "immoral"

Name: Anonymous 2015-06-16 23:53

>>108,109
Who said I didn't care about free speech? I care about covering my own ass under the laws of the country I live in, which is an entirely different thing altogether. You're the one conflating moderation with muh first amendment. Who said I had an answer to the problem free speech presents, either? I don't. But claiming that there isn't a fundamental problem with complete, balls-to-the-wall, say whatever you want with no consequences ``speech'', is childish. You can gloss over CP, drugs, organized crime all you want, it doesn't help your case at all.

>>110
I never said it was possible, or that I wanted to ``protect against political censorship'' on a toy project programming BBS. Obviously, it is more important that I am not arrested, than you getting to have whatever fuzzy feeling you get when you know (?) you're not being moderated (?? lol).

>>111
medicine requires child porn
human genome contains information to produce X
You're not going to troll me, buddy!

Still no one has proposed an alternative to the completely obvious problem that moderation solves. Please stop trying to convince me that there isn't a problem and come up with a way to fix it that doesn't put the ``power'' of DELETE POST FROM WEBSIGHT completely in the sinister, evil hands of little old me, the part-time hobbyist trying to keep illegal shit off of his box.

Is practical discussion so much to ask for? I'm not going to participate in any more of these debates straight out of junior college Intro to Philosophy. We are not going to launch a political movement out of an online bulletin board that uses s-expressions.

Name: echo 'Check my dubs' | sha1sum 2015-06-16 23:55

>>111
echo 'doze tripz!!' | sha1sum

Name: >>112 2015-06-17 0:00

And another thing >>108, I assume when you referenced freenet twice, you mean to get right behind this excellent quote from their website:

https://freenetproject.org/faq.html#childporn

While most people wish that child pornography and terrorism did not exist, humanity should not be deprived of their freedom to communicate just because of how a very small number of people might use that freedom.

Of course! Deleting illegal content completely strips everyone of their rights--how could I have been so stupid? This is a completely sane argument--Someone should send this FAQ to all the world leaders!

Name: Anonymous 2015-06-17 2:56

How did people go from thinking that it is everyone's responsibility to host their speech? If it's so fucking important, why don't they host this uncensorable soon-to-be child porn network? Why is anyone getting outraged over this? You free speech does not trump the provider's freedom of association. Stormfront is not morally obligated to allow niggers to post there. Reddit is not being unethical when they delete boards with inane, asinine users. It is not an injustice when I get hit with an ``idiot pedophile'' 4chan ban for shitposting on the jay.

Now, that said: there is plenty of room on the internet for many types of sites. Some can be unmoderated wastelands that fill up quickly with cretins, and some can be concentration camps watched by Nazi moderators and inhabited by brownnosers with Stockholm Syndrome.
>>114
Of course! Deleting illegal content completely strips everyone of their rights--how could I have been so stupid? This is a completely sane argument--Someone should send this FAQ to all the world leaders!
That's not what they are saying at all. They are arguing that just because anonymous speech can be used for evil does not mean that anonymous speech itself is legal. The next FAQ:
I don't want my node to be used to harbor child porn, offensive content or terrorism. What can I do?
The true test of someone who claims to believe in Freedom of Speech is whether they tolerate speech which they disagree with, or even find disgusting. If this is not acceptable to you, you should not run a Freenet node.
They are pretty open about what it is, and what you are getting into with it. The first part, about the ``true test'' is a bit pretentious, but it is probably a better lead-in than the more honest "Yeah, the network is filled with child porn and bomb schematics and we can't do shit about it, so suck it up.".

Name: Anonymous 2015-06-17 3:28

>>114
In Putin's Russia, anti-putin propaganda is illegal too. In fact Putin considers anti-government sentiments to be far worse evil than child porn, which is illegal only to avoid angering the crowd. I.e. politicians don't care about kids or pedophiles, only about other politicians using child porn as political tool by angering the crowd. Same for other controversial subjects, like homosexuals and emotion-provoking videos, like the ones depicting child cruelty.

Until late 80ies, when child porn it became a political toy, nobody cared about it.

Name: Anonymous 2015-06-17 5:51

It is not an injustice when I get hit with an ``idiot pedophile'' 4chan ban for shitposting on the jay.

Yes it is. Old Testament God allows men to marry girl children. Says to kill people opposed to his laws.

Name: Anonymous 2015-06-17 8:20

>>112
Still no one has proposed an alternative to the completely obvious problem that moderation solves.
freenet's ``solution'' is to make it difficult for anyone to know what exactly your box is hosting, including you, which they claim, gives you plausible deniability. There's no way I'm running a freenet node.

>>114
Of course! Deleting illegal content completely strips everyone of their rights--how could I have been so stupid?
That is certainly true when ``illegal content'' is political dissent. Our russian friend has given us an example of this in this thread. freenet trys to provide a communication channel that isn't feasible to censor. If harmful speech could be located and deleted by a legimate government, an oppressive one will use the same mechanism to silence political dissent. In order to resist such censorship, it must also resist legitimate censorship, unfortunately.

>>117
Thanks for your input, MikeeUSA.

Name: Anonymous 2015-06-17 8:48

>>117
Emigrate to Israhell if you like the Jewish gods so much.

Name: PROGOLUTION 2015-06-17 14:54

>>96

A few thoughts:

"If you don't like website <X>, just don't go there. it's their site"

AKA Admin the king of the castle
AKA Shut Up or Fuck Off
AKA the only way online communities can come together is under the almighty rule of a single individual / group of individuals

The entire idea is to remove this roadblock from your mind.
You have been brainwashed.
A non-hierarchical reality is possible.

"People running a node in a distributed BBS would still need to delete CP"

Good! You should filter your own node, possibly even outright refuse messages from nodes which you've learned are cancerous. Just because you run a node doesn't mean you have to forward any ol' shit fuckers throw your way. FUCK FREENET.

OTOH there should be some kind of rule against accepting invalid messages (enforced using crypto). So an Admin would be able to delete censor PRO-ANA posts, but be unable to forge posts.

Name: Anonymous 2015-06-17 15:12

>>119
Israhell follows the talmud. Thus it doesn't allow men to marry little girls, marry multiple female, be the master, rape2own, etc. The Talmud is basically the Jewish new testament. Does the same thing: raises the woman's status.

Name: Anonymous 2015-06-17 15:17

>>121
The Talmud is a Jewish literary collection of teachings, laws, and interpretations based on the Old Testament Torah.

Name: Anonymous 2015-06-17 15:21

>>121
Besides, many Muslim countries approve of marrying little girls. The Muslim God is a lot like the Hebrew God, so you'll fit right in somewhere in Morocco.

Name: Anonymous 2015-06-17 15:37

>>116,118

Rest assured I do not live in a third world country where the law is afraid of people speaking their mind politically (at least not yet). Your anti-Putin sentiments will be ``safe'' (and off-topic) on SchemeBBSTM.

>>120
the only way online communities can come together is under the almighty rule of a single individual / group of individuals

In the traditional meaning of 'online community', absolutely, and here's what you're missing: Someone has to pay for it. Someone has to own the hardware and be responsible for what's posted on it. Someone, somewhere, has to have their name on a bill where money was exchanged to keep the network on and the data center employees paid and the domain name registered. And yes, when someone else is paying for the hardware that runs the service you are using, they are the boss, full stop. Even with many distributed models this is still the case, because things like trackers are still necessary.

I'm not brainwashed, I'm realistic. Your hypothetical bohemian distributed BBS network doesn't exist for one, but even if/when it does, it will never see wide adoption (see twister, posted earlier in this thread), because people, normies if you will, don't care about any of this stuff enough to figure out how to run complicated/technical software just to ensure they aren't being ``censored''. These people don't want to understand what is happening between typing in ``www.reddit.com'' and being blasted with sweet, sweet memes.

I'll certainly run a node though. Maybe, just maybe, if we/you manage to make the system stupid-simple to install and use, more than 5 other people will run nodes too.

>>117,121
Kill yourself.

Name: Anonymous 2015-06-17 16:25

>>124
Rest assured I do not live in a third world country where the law is afraid of people speaking their mind politically (at least not yet). Your anti-Putin sentiments will be ``safe'' (and off-topic) on SchemeBBSTM.
The problem is that child porn gets used for illegal dissent too. Provocateurs can employ child porn to anger the electorate, then point that police can't do anything, because government doesn't care about children.

On the other hand, government uses child porn to frame you and forge evidence. I.e. if you're against government, then police can find on your PC some child porn, even if you have liven in a cave and haven't seen any child your life. The same way people implant child porn to frame my opponent.
http://www.foxnews.com/us/2014/12/16/wife-who-used-child-porn-to-frame-husband-gets-jail-time/

Name: Anonymous 2015-06-17 16:27

>>125
The same way I can implant child porn to frame my opponent.
self fix

Name: Anonymous 2015-06-17 16:39

>>121

good so we're in agreement

but if we can have many bosses, and we can choose between bosses it is much better than the current model of fiefdoms. kind of like with email, where you can choose between provider; but in a way that you could carry your identity/privileges with you if you so desired (enforced through the use of crypto).

Name: Anonymous 2015-06-18 6:32

>>124
Someone has to own the hardware
The users already have hardware to access the internet and have lots of storage for text.

and be responsible for what's posted on it.
Not with anonymity.

Someone, somewhere, has to have their name on a bill where money was exchanged to keep the network on and the data center employees paid and the domain name registered.
No domain name is needed. A few global ip addresses will be, but not all of them need to be global. There doesn't need to be a data center. Simply locate other users when they are online and share information with them. If you can't make a post because no one else is currently online, wait until you can connect and then send. For a small community like ours, a few people with external ips would need to leave their machine on for a good portion of the day, but for a large community like reddit the network would be huge.

And yes, when someone else is paying for the hardware that runs the service you are using, they are the boss, full stop.
Every user contributes to the up time of the community. They all share the cost and the responsibility. Everyone is equally the boss.

Even with many distributed models this is still the case, because things like trackers are still necessary.
bittorrent is not the best example of a distributed network. In later versions, trackers were done away with and hosted in bittorrent itself.

I'm not brainwashed, I'm realistic. Your hypothetical bohemian distributed BBS network doesn't exist for one, but even if/when it does, it will never see wide adoption (see twister, posted earlier in this thread), because people, normies if you will, don't care about any of this stuff enough to figure out how to run complicated/technical software just to ensure they aren't being ``censored''.
Twister is utter shit. But aside from that, ``normies'' are not using these because...oh wait...normies use bittorrent. And they use bittorrent to violate copyright, because violating copyright is illegal. A server that lets you download movies for free wont last long, but bittorrent is still around. Even after all this time, all they can do is jail the owner of a website that provides trackers (something that is already redundant now) and threaten a couple thousand teenagers with lawsuits. Meanwhile millions continue to violate copyright.

These people don't want to understand what is happening between typing in ``www.reddit.com'' and being blasted with sweet, sweet memes.
If the web that they used became controlled, they would seek something different. In chinese forums and social networks the gov pays people to post and steer conversations in favor of the state. Some people aren't satisfied with this and they take the risk of using a proxy to access facebook (what an improvement...)

Name: Anonymous 2015-06-18 15:47

>>128
You're basically describing Freenet.

Not with anonymity
The poster is hidden, but the node that he posted through is available to the network, so to silence them, just take down that node or flood it with fake propagation information. The hosting node is still non-anonymous, thus still holds the risk. So, what's to stop Anon R' Lejun from trying to pull #OpPedoTakedown or #OpAntiJihaad and taking over the network by just fucking with the node operators?

Also, why would the community be huge? It may work for /prog/, which has just a few people relatively dedicated, but most places are not like that. Very, very few think it is worth their time to give anything at all. Most think that they are being robbed just by showing ads, or think that ads are going to give them e-cancer. Now you want them to download software and run it?

Decentralization has it's uses, but security and anonymity isn't one of them. If you were defending a castle, would you rather have 10 guards each on 10 gates, or 100 guards on a single gate?

Name: Anonymous 2015-06-18 15:48

a few people with external ips
Uh oh I think I found the bo--
Everyone is equally the boss.
Oh okay uh sure.
Twister is utter shit
Why? It has a shitty interface, but what else is so terrible about it? Isn't it a shining example of what you're talking about here? I'd like to hear a reason other than ``lol Brazil huefag'' please.
normies use bittorrent
Not really. More often people ``stream'' their shitty television shows or movies or whatever from short lived normal websites that use slow-to-DMCA-takedown file hosting providers for 3 mirrors and embed them on a page with 500 ads. If bittorrent were so commonplace these sites would no longer exist.

Name: Anonymous 2015-06-18 16:12

These kind of things usually just devolve into child porn dens. If you're some tinfoil hat man who thinks child porn criminalization is an imposition from the powers that be, fine, you host it.

Name: Anonymous 2015-06-18 16:58

The poster is hidden, but the node that he posted through is available to the network, so to silence them, just take down that node or flood it with fake propagation information.
It's difficult to find out which node stored the information you requested for. If it were easy, freenet would be useless. It also has spam resistance provided enough of the network isn't constantly requesting the spam. Things that are interesting will take precedence over things that are not requested, and the spam will get deleted to make room for more popular things. Read the freenet paper, it's interesting.

2nd paragraph
See bittorrent. People are willing to seed. People are willing to do things if they think it's beneficial to a community.

3rd paragraph
How do you get anonymity without decentralization?

>>130
Some people do have external facing ips, or at least the capacity to set up port forwarding on their router.

If everyone shares the responsibility of hosting the data, then they all can make their own decisions about what to keep, assuming it's stored in plaintext, or remain oblivious using the freenet model.

Twister
I read his paper and found the author despicable. I would rather work on a project that's been around and is well researched like freenet than something an arrogant lone developer hastily threw together without a formal design.

bittorrent was extremely popular tenish years ago.
In November 2004, BitTorrent was responsible for 35% of all Internet traffic.[2] As of February 2013, BitTorrent was responsible for 3.35% of all worldwide bandwidth, more than half of the 6% of total bandwidth dedicated to file sharing.[3]
https://en.wikipedia.org/wiki/Bittorrent
Streaming services are cutting into it because people find it to be an acceptable substitute. Take away the substitute and you'll see bittorrent explode again.

>>131
Some parts of it probably will. Then again, actual pedos tend to be too dumb for these things. And if they use it, they'll find a way to deanonymize themselves anyways. Meanwhile political activists and curious citizens will be able to use it with competence to read history books that haven't been redacted and see the world through an unfiltered lens.

Name: Anonymous 2015-06-18 21:56

>>132
some parts of it probably will

This is unacceptable, obviously

Name: Anonymous 2015-06-18 21:57

>>132
Look, you have ten lines before the post is truncated. Don't waste them on single-line paragraphs. Please help keep useless page requests to a minimum. Admin-kami pays by the kilobyte.

Name: Anonymous 2015-06-18 22:18

>>132
Then again, actual pedos tend to be too dumb for these things.
Most of them are, but you might be surprised at how smart some of them are. There is very little solidarity though (except for the boyfuckers, who are pretty homogenous, but they are invariably very stupid (and gay)), and pedos tend to hate other pedos, so a coordinated spamming campaign is unlikely. But the fact of the matter remains that that one off post can send the operator to prison for several years at worst, and get all his equipment seized at best.

to read history books that haven't been redacted and see the world through an unfiltered lens.
I call bullshit. Who is writing this unfiltered lens? Just what the fuck are they afraid of? Tor is pretty anonymous, yet the only ``unredacted, unfiltered'' information you see is old copies of the anarchist cookbook. This shit doesn't make any sense. Who is suppressing all this information? What can't I say about history? And just where are these writers getting this ``unfiltered'' account? Were they first hand witnesses, waiting to write about it now? If the history books are so redacted and you can get in trouble for even reading it, how is there any second-hand research? In the west, the worst that could possibly happen is the schoolbooks get slanted to fit an agenda, but it isn't as if the ``true'' books have been burned. They're right there in the library, and you can go read them all you like, and even join a forum, use your driver's license as your avatar, and talk about it all you want without ever hearing anything from the law. What activism is being suppressed? I can go chain myself to a tree or picket an abortion clinic all I want. No one is bothering me.

Now, you're probably thinking that I'm viewing this from a first-world, liberal democracy point of view. That's true, because I am. The reasons are because 1) a government where the ``unfiltered'' history books are completely banned will just block the entire network and outlaw operating a server, 2) this will do them no good at all; revolutions are not won with shitty conspiracy theories: if you want to give power to the people, send them some guns, 3) I'm not wasting my resources to help sandniggers learn that the local warlord Mohamed Al Ahmed Abdula is abusing them. If they haven't figured that out by now, then they never fucking will. 4) Organization on an anonymous forum suffers from the inability to vet members by design. 90% would be flakes who never showed up, most of the rest will be plants and saboteurs, and the few who did show up would be shot on the spot. The internet organization of Arab Spring took place on social media because people were able to identify their real life friends, who they knew already would be receptive to the idea, and there was a greater emotional punishment to flaking out on a friend than some stranger you met on a secret internet club and talked about doing something with for twenty minutes.

Name: Anonymous 2015-06-18 22:42

Maybe if we limit this thing to just text, then we wouldn't be so concerned about underage porn. Links wouldn't be as dangerous, as the actual pics would be hosted on another place. I guess someone could post base64 pics or whatever but we can also place a limit on long strings and also we have some sort of plausible deniability for that kind of shit.
You guys love textboards, right?

Name: Anonymous 2015-06-18 22:51

>>136
A reasonable compromise for typical things, but for more serious matters, you need to have some sort of way to upload binaries (say, an archive of source code or a PDF document) unless you are willing to accept the risk of the user losing anonymity by clicking a trapped link outside the network.

Name: Anonymous 2015-06-18 23:19

>>135
Who is suppressing all this information?
China, North Korea, Iran, Cuba, etc. They just can't handle you being able to look up https://en.wikipedia.org/wiki/Tiananmen_Square_protests_of_1989 . Even Russia is willing to block github because of ``suicide propaganda''. UK has ip bans to stop piracy, but we'll see what else they use it for in the near future. You aren't going to understand the purpose of this until you abandon your perspective that's fixed within a civilized country that respects these basic rights to information. And even with that, your safe havens may not last forever.

In the west,
There is a world outside the west you know.

Now, you're probably thinking that I'm viewing this from a first-world, liberal democracy point of view.
Yes, and you are being deliberately obtuse to avoid confronting the intended purpose of freenet, tor, etc, and the benefit it serves.

3) I'm not wasting my resources to help sandniggers learn that the local warlord Mohamed Al Ahmed Abdula is abusing them. If they haven't figured that out by now, then they never fucking will.
Everyone knows, but still facts are still useful. They deserve to be able to learn about the world outside of a propaganda bubble. If you don't want to help them that's fine. But if you get to call me a pedo-enabler I get to call you a third-world-oppression-enabler.

The internet organization of Arab Spring took place on social media because people were able to identify their real life friends
Many of whom were arrested and tortured.

>>136
But what about the video of standing-in-front-of-tank man?

>>137
If you want to contribute something, read up on what's been done first. The last thing we need is a hopelessly insecure reinvention of freenet that doesn't work.

Name: Anonymous 2015-06-18 23:36

All along I've kept it to myself, because being Chinese I felt I shouldn't bad-mouth the Chinese. But I can't help thinking sometimes -- and I might as well say it -- you, the Chinese, you are not worth my struggle! You are not worth my sacrifice!

What we actually are hoping for is bloodshed, the moment when the government is ready to brazenly butcher the people. Only when the Square is awash with blood will the people of China open their eyes. Only then will they really be united. But how can I explain any of this to my fellow students?

"And what is truly sad is that some students, and famous well-connected people, are working hard to help the government, to prevent it from taking such measures. For the sake of their selfish interests and their private dealings they are trying to cause our movement to disintegrate and get us out of the Square before the government becomes so desperate that it takes action....

Interviewer: "Are you going to stay in the Square yourself?

Chai Ling: "No."

Interviewer: "Why?"

Chai Ling: "Because my situation is different. My name is on the government's blacklist. I'm not going to be destroyed by this government. I want to live. Anyway, that's how I feel about it. I don't know if people will say I'm selfish. I believe that people have to continue the work I have started. A democracy movement can't succeed with only one person. I hope you don't report what I've just said for the time being, okay?"

HAHAHA wtf
https://en.wikipedia.org/wiki/Chai_Ling#Controversies

Name: Anonymous 2015-06-19 0:22

>>138
China, North Korea, Iran, Cuba[, and Russia]
China and Russia already watch everything at the ISP level. I don't know about China, but Russian ISP even have to pay for the privilege of filtering their internet. Are you planning on this distributed BBS being transferred in the unused bits of a fake requests (getting 0.3Kbps)? If not, then it will be just be protocol filtered. In NK, only party members have access to things like computers and food, and only Kim Jong Un himself has unfiltered access to the internet anyway. This is a country where the government only allows the sell of radios that can only receive preset frequencies and sends anyone who modifies them to the camps where children fight over who gets to eat the corn kernels they find in cow shit. Yeah, real fucking good this is going to do them. Iran shuts the internet off when they feel like it, and Cuba trades data with the Sneakernet, which is more distributed and trustworthy than anything you can come up with.
There is a world outside the west you know.
As I said, I do not care about them. It will not help them. The internet cannot fight a police state. Try all you want, but you'll just end up with something like this: https://en.wikipedia.org/wiki/Haystack_%28software%29 .
Yes, and you are being deliberately obtuse to avoid confronting the intended purpose of freenet, tor, etc, and the benefit it serves.
They are good for distributing controversial content, no doubt about that. But I won't delude myself into thinking that changing the world is what they're actually used for.
If you don't want to help them that's fine. But if you get to call me a pedo-enabler I get to call you a third-world-oppression-enabler.
I'm saying that it won't help them. I'm not concerned about enabling pedos, only saying that it will make everyone not want to operate a node. And call me a 3rd world oppression enabler all you want. I freely admitted that I don't care to helping them. More likely than not, they'll just install an even more brutal tyranny in place.
Many of whom were arrested and tortured.
To make an omelet, you have to break some eggs. Yes, when there is no avenue left for challenging the powers that be except violence, then violence it will have to be. Revolutions are bloody. There will be lots of death and torture before all is said and done. Did you think that Kim Jong was going to fire up FireFox, navigate to the board, and suddenly have a change of heart? Don't be stupid. They only way to get the crown off a king's head is to cut it off.

Name: Anonymous 2015-06-19 0:24

https://en.wikipedia.org/wiki/List_of_Chinese_dissidents
It's a little funny to see how minor their actions were.

I want to encounter some of these on the net. How funny would it be to actually talk to one?
https://en.wikipedia.org/wiki/Fenqing

Name: Anonymous 2015-06-19 1:54

>>141
one of them used to visit prog

his name started with an X and he smelled like shit

loved emacs lisp iirc

Name: Anonymous 2015-06-19 4:11

>>140
You can obfuscate traffic to make it look like other traffic that's allowed.

Bypassing censorship and providing free information to millions of people is a significant change to the world in itself.

Perhaps it will help them. Perhaps it wont. If they choose to take the risk of using it, it will be there.

You can communicate with friends without giving your names and everything you say to a government that's going to torture you for it.

Name: Anonymous 2015-06-19 4:12

>>143
oh shut up

Name: Anonymous 2015-06-19 4:14

>>144
No! I am working on making my replies more terse though.

Name: Anonymous 2015-06-19 7:33

I feel bad for derailing such a cute thread with politics. I was triggered by the typical anti-crypto-anarchy arguments, but I should have controlled myself. Continue talking about scheme freely...

(define list (lambda lambda lambda))

Name: Anonymous 2015-06-19 9:47

(define lambda (blabba blabba blabba))

Name: Anonymous 2015-06-19 9:48

>>146
whoa, how does that work?

Name: Anonymous 2015-06-19 9:49

>>148
oh nvm

(define list (lambda args args))

Name: Anonymous 2015-06-19 9:49

>>149

(def list (lam args args))

Name: Anonymous 2015-06-19 9:49

>>146
here I was thinking you were doing some crazy witch-craft

Name: Anonymous 2015-06-19 9:52

but re-defining lambda, >>146, that's like raising a non-USA flag in the USA. I hope you think about what you've done here today, you sick fuck. I hope you think long and hard about it. I know I will be.

Name: Anonymous 2015-06-19 9:56

>>146
the can of worms you opened up today will plague us Scheme programmers for eternity. it is an offence against the almighty lambda.

truly, I would be pleased if your appreciation for programming crumbled to dust over the next week, never to be experienced again. I cannot think of a more suitable punishment delivered by the Court of the Lambda.

Name: Anonymous 2015-06-19 9:58

>>152
that's like raising a non-USA flag in the USA
You mean it's commonplace and acceptable?

Name: Anonymous 2015-06-19 10:06

>>154
p much, so what's on for the weekend?

Name: Anonymous 2015-06-19 15:43

>>146
I think it was all pretty genuinely interesting discussion and definitely relevant to the task at hand, so don't feel bad.

>>155
I hope to publish the hidden service for testing by the end of this weekend. Don't hold your breath or anything though

Name: Anonymous 2015-06-19 20:51

>>156
Too late holding it as we speak.

Name: Anonymous 2015-06-19 21:21

RIP >>157-kun.

Name: Anonymous 2015-06-21 1:57

I'm working on a GUI in Racket. This is what I have so far, it's pretty much shit though. I hope to make it a bit more polished soon. I can upload the code if anyone wants, otherwise I'll wait until it's "done".

https://i.imgur.com/Tbpfqdh.png

Name: Anonymous 2015-06-21 15:13

>>159
Oh dear. It's like one of those pre-web chat apps.

Name: Anonymous 2015-06-21 15:15

>>160
either that or somebody installed gentoo

*wafts the air as if somebody farted*

Name: Anonymous 2015-06-21 15:21

>>159
Amazing. Now make it so that you can fly around threads in a spaceship like >>15 suggested.

Name: Anonymous 2015-06-21 15:21

>>161
You're an idiot. Just saying.

Name: Anonymous 2015-06-21 15:48

>>162
but >>15-san left and never returned

Name: Anonymous 2015-06-21 15:55

>>164
He left in his spaceship. Too bad he didn't want to share it with us.

Name: Anonymous 2015-06-21 16:07

>>164
He'll be back eventually.

Name: THE TERMINATOR 2015-06-21 21:18

Nice dubs >>166-san.

Name: >>15-san 2015-06-22 19:29

>>159
Hah that's great!

Name: Anonymous 2015-06-23 5:29

The VPS I started hosting for >>15-san's project is still up but he hasn't connected to it in 2 weeks.

Name: Anonymous 2015-06-23 15:59

>>169
i can put the server back on it for testing ill get on the irc

Name: dubzbot 2015-06-24 3:16

Adding all dubs to the block chain.

11 Name: Anonymous : 2015-05-26 14:45
Let's discuss BBS design for a bit here. Having plain text threads that posts get appended to is simply god-awful. Why not have each individual post get its own file?
-------------------
22 Name: Anonymous : 2015-05-26 18:43
>>20
And making a script that interacts with said API would be the rite of passage for every potential /prog/lodite? Great! I've always wanted this place to be filled with appers and web devs!
-------------------
33 Name: Anonymous : 2015-05-26 20:14
>>13
CL-BBS (/clēbs/)
Do you also pronounce NNTP "neenootup"? Moron.
-------------------
44 Name: Anonymous : 2015-05-28 10:12
If you actually get dubs, someone post em so I can check em please
-------------------
55 Name: Anonymous : 2015-06-08 13:02
nice1--preddy nice
-------------------
66 Name: >>50,53 : 2015-06-08 19:40
I checked it into the Fossil repo, under schemebbs-fcgi/ (didn't want to cramp the style of the Racket-only guys).

I do not claim to be an EXPERT PROGRAMMER. Comments and derision are welcome.

>>43,65
I'd love to but I need to spin up a VPS that I can lock down (and attempt to separate from everything I have my name attached to) first.
-------------------
77 Name: Anonymous : 2015-06-15 18:44
>>76
That wasn't indefinite though.
-------------------
88 Name: Anonymous : 2015-06-16 01:29
>>86
Check my rule 88
-------------------
99 Name: Anonymous : 2015-06-16 19:48
>>96
Also, moderation is shit. The moderator is no better than the ones he moderates, no less evil, in fact often moreso, because his vileness is amplified by the power he possesses.
-------------------
111 Name: Anonymous : 2015-06-16 22:43
implying immoral activity harms society

- child porn is "immoral"
- medicine requires child porn to study child anatomy
- medicine is "immoral"

- human genome contains information to produce child porn
- human genome is "immoral"
-------------------
122 Name: Anonymous : 2015-06-17 15:17
>>121
The Talmud is a Jewish literary collection of teachings, laws, and interpretations based on the Old Testament Torah.
-------------------
133 Name: Anonymous : 2015-06-18 21:56
>>132
some parts of it probably will

This is unacceptable, obviously
-------------------
144 Name: Anonymous : 2015-06-19 04:12
>>143
oh shut up
-------------------
155 Name: Anonymous : 2015-06-19 10:06
>>154
p much, so what's on for the weekend?
-------------------
166 Name: Anonymous : 2015-06-21 16:07
>>164
He'll be back eventually.

-------------------
d1bc99abd2334730be764110cdd0160bd53c09acdffb4cd423ac96051420564a

Name: Anonymous 2015-07-01 18:37

Please enjoy yourselves.

torify curl --data "(posts> 0)" hz27w5o3zlhptx7v.onion/schemebbs

Name: Anonymous 2015-07-02 23:58

Here's a read only client in Python 2.7.

I even used Xarn's sexpcode module: https://github.com/Cairnarvon/sexpcode.py

You have to compile the wrapper to use term output instead of html. I also had to add "m" to the lexer/parser declaration in term.h.

's <post id>' to read a post. 'r' to reload. 'l' to show the list again. 'q' to quit.

Python is shit at running everywhere and i'm not going to do any packaging but it should be easy enough to figure out what the problem is if you are really trying to use this.

from sexpdata import loads, Symbol
from sexpcode import sexpcode
import colorama
from colorama import Fore, init as cinit
from datetime import datetime
from pager import page
import requests
import re
from prompt_toolkit.shortcuts import get_input
from prompt_toolkit.history import History

SBBS_URL = 'http://hz27w5o3zlhptx7v.onion/schemebbs'

class Post(object):
def __init__(self):
self.id = False
self.date = False
self.reply = False
self.body = ""
self.title = ""
self.replies = []

def req(q):
r = requests.post(SBBS_URL, data=q)
return r.text

def iter_from_post_str(in_str):
for s in re.finditer('([^\n]+)?\n', in_str):
yield s.group(0)

def post_dict(post_sexp):
post = Post()
for couple in post_sexp:
if type(couple[0]) is Symbol:
sym = couple[0].value()
if sym == "id":
post.id = couple[2]
if sym == "date":
post.date = datetime.fromtimestamp(couple[2])
if sym == "reply":
val = couple[2]
if type(val) is Symbol:
if val.value() == "#f":
post.reply = False
else:
post.reply = int(val)
if sym == "post":
post.body = sexpcode(couple[2])
post.title = unicode(post.body.split('\n')[0])
if len(post.title) > 50:
post.title = post.title[:50]
return post

def load(all_posts):
post_txt = req("(posts> 0)")
loaded = 0
for o in loads(post_txt):
post_obj = post_dict(o)
if post_obj.id is not False:
if post_obj.id not in all_posts:
all_posts[post_obj.id] = post_obj
loaded += 1

if post_obj.reply is not False:
all_posts[post_obj.reply].replies.append(post_obj)

print(Fore.GREEN + str(loaded) + " post(s) loaded" + Fore.RESET)

def show(post_obj):
page(iter_from_post_str(post_obj.body))

def show_tree(all_posts):
shown = []
for k, v in all_posts.iteritems():
if k not in shown:
print_post_summary(v)
if len(v.replies) > 0:
for reply in v.replies:
print_post_summary(reply)
shown.append(reply.id)
print "\n"

def print_post_summary(post):
print post.id, ": ", post.title, Fore.RESET, " - ", post.date

def main():
cinit()
history = History()
all_posts = {}
exiting = False

print('doing initial loading...')
load(all_posts)
show_tree(all_posts)
while not exiting:
INPUT = get_input(message=u"sbbs> ", history=history)

if INPUT == 'exit' or INPUT == "e" or INPUT == "quit" or INPUT == "q":
exiting = True

if INPUT == 'r' or INPUT == 'reload':
load(all_posts)

if INPUT == 'l' or INPUT == 'list':
show_tree(all_posts)

showmatch = re.match('^(show|s)\s+([0-9]*)$', INPUT)
if showmatch:
post_to_show = all_posts[int(showmatch.group(2))]
show(post_to_show)

if __name__ == '__main__':
main()


I am a shit programmer. why am i even posting this garbage

Name: Anonymous 2015-07-03 0:18

oh yeah you save it in a file and use torify:
$ torify python schemebbs_client.py
if that wasn't obvious

Name: Anonymous 2015-07-03 17:12

I guess its time to bump this thread

Name: Anonymous 2015-07-04 1:03

bampu pantsu

Name: Anonymous 2015-07-04 1:42

lucky sevens

Name: Anonymous 2015-07-06 21:58

Uhh, so yeah, prog.db? Where can a fella get a copy of that?

Name: Anonymous 2015-07-06 22:59

Name: Anonymous 2015-07-07 19:15

I found a torrent on the Internet Archive labeled 2014-04-18. It's a 64mb file. I'm definitely reconsidering restoring it onto schemebbs-fcgiTM

Name: Anonymous 2015-07-08 23:31

I added a front page (http://hz27w5o3zlhptx7v.onion/) and started on a read-only JavaScript client. My python client can make posts now but it is a mess so I am not going to show it again.

Name: Anonymous 2015-07-09 1:24

bampu pantsu

Name: Anonymous 2015-07-09 8:46

>>172,174
Use torsocks ``please''!

Name: Anonymous 2015-07-09 14:52

>>183
OK sure. Why is it that the torsocks 'homepage' seems to have disappeared from the Internet?

All these documents/guides I am reading keep referencing it and it goes to a dead Google code repo, which forwards to the Tor project hosted gitweb that has no docs.

The Tor wiki is in pretty bad shape, I only realized I was reading deprecated documentation after reading your post.

Name: Anonymous 2015-07-10 1:37

>>184

After reading man torify, it just says torify calls torsocks and
torsocks is an improved wrapper that explicitly rejects UDP, safely resolves DNS lookups and properly socksifies your TCP connections.
When they say torsocks is improved, I just don't want to be using what it was an improvement upon.

Name: Anonymous 2015-07-11 20:23

>>178
I have it, I'll post it sometime soon

Name: Anonymous 2015-07-15 15:42

>>186
Here it is, its name is "prog-20130813130608.db".

Oh, it seems you can find it at >>179.

Not related, but pomf.se is over.

Name: Anonymous 2015-07-15 15:48

>>179 gives a 403 for me. Did you mean to add a link to your post

I found a random copy on the internet but i haven't looked at it yet. It's marked 2014 something something.

Name: Anonymous 2015-07-15 15:57

>>187
nevermind I have that file.

It's full of fucking html though. I'm not even completely clear on why I'm restoring this in the first place? I guess I could write a thing to convert the HTML and do like the most recent 500 threads or something. Doing all of it seems overkill

Name: Anonymous 2015-07-15 17:39

>>189
Be aware there's a lot of malformed html due to bbcode glitching. It's all over /prog/ and to a somewhat lesser extent /lounge/.

Name: Anonymous 2015-07-15 18:16

And the parser got all fucked up and confused in a few threads. thread /1 is a good example of it fucking up.

Name: Anonymous 2015-07-16 3:57

>>187
uguu.se
No SSL unfortunately

Name: Anonymous 2015-07-16 15:54

I'll write a perl script to parse this board later

Name: Anonymous 2015-07-16 16:02

>>193
For what purpose

Might as well just set it up so that new progrider posts show up on schemebbs and vice versa

Admin-sama justifiably blocked all Tor exit nodes so my server would have to connect directly to post into progrider threads

I'd like to believe xe wouldn't doxx me

Name: Admin 2015-07-17 1:46

>>194
If you want I can just set up a hidden service address for the board and give only you the link for server-side sync purposes. I'll probably at least put up a read-only hidden service address for this in case ICANN pulls more bullshit in the future.

Name: Anonymous 2015-07-17 1:49

>>179
Use the following: https://progrider.org/files/archives/

The bbs. subdomain points to a different directory structure now.

Name: Anonymous 2015-07-17 7:47

It would be pretty 1337 if this forum became pure deep web.

Name: Anonymous 2015-10-24 16:14

The server went down because I got kicked out of my house, thanks to the 2 or 3 of you (?) that posted.

Might try to rehost soon, it will have a new URL obviously

Name: Anonymous 2016-07-11 5:48

(stopping the dubsfaggot from dubsbumping)

Name: Anonymous 2016-07-11 5:48

(stopping the dubsfaggot from dubsbumping)

Name: Anonymous 2016-11-07 0:29

SchemeBBSTM is back baby!

http://hz27w5o3zlhptx7v.onion/

Now with working read-only javashit client, including {b.sup s}{u e}{sup x}{i.u p}{sup c}{b.u o}{sub d}{u e} (sexpcode) rendering support! Write a client
to post today! Take back your programming discussion from the endless political drivel, with SchemeBBSTM.

Name: /twatter/ 2016-11-07 1:29

>>201
you almost got doubs

Name: Anonymous 2016-11-07 3:23

>>198,199,200

le pedophile sage

Name: Anonymous 2016-11-07 4:35

pls no more spam ;_;

Name: Anonymous 2016-11-07 4:42

making a client

Name: guile scheme 2016-11-07 23:41

[code];; torsocks guile this.scm

(use-modules (web client)
(web response)
(ice-9 receive))

(define (print p) (write p) (newline))

(define schemebbs-endpoint "http://hz27w5o3zlhptx7v.onion/schemebbs")

(define (schemebbs query)
(let ((query-string (with-output-to-string (lambda () (write query)))))
(receive (response body)
(http-post schemebbs-endpoint #:body query-string)
(unless (= 200 (response-code response))
(error "bad http response code" (response-code response)))
(with-input-from-string body read))))

(let ((v (schemebbs '(version))))
(unless (= 1 v)
(error "Unknown version of schemebbs" v)))

(print (schemebbs '(version)))
(print (schemebbs '(get 0)))
;; (print (schemebbs '(posts> 0)))
[/code[

Name: Anonymous 2016-11-08 23:31

Does anybody remember from w4ch prog where there was a game engine that you use Lisp to program it? The programmer was associated to the GNU project. I'm trying to remember what was the title of the game engine.

Name: Anonymous 2016-11-09 1:17

Name: Anonymous 2016-11-09 8:18

Name: Anonymous 2016-11-09 13:02

>>207
I remember something with guile and sdl.

Name: Anonymous 2016-11-09 20:51

>>208-210
It was Sly. Thanks for reminding me.

Name: Anonymous 2016-11-10 3:32

_____ __ ____ ____ _____
/ ___/_____/ /_ ___ ____ ___ ___ / __ )/ __ ) ___/
\__ \/ ___/ __ \/ _ \/ __ `__ \/ _ \/ __ / __ \__ \
___/ / /__/ / / / __/ / / / / / __/ /_/ / /_/ /__/ /
/____/\___/_/ /_/\___/_/ /_/ /_/\___/_____/_____/____/

Name: Anonymous 2016-11-10 6:06

OKAY HERE IS A PROGRAM THAT YOU CAN RUN PERIODICALLY TO GET ALL THE LATESTS SCHEMEBBS DATA IN SEXPSON FORMAT. SOMEBODY NEEDS TO WRITE A TEXT BASED USER INTERFACE THAHT LETS YOU SEE ALL THE NEWEST THREADS, AND BE ABLE TO OPEN A TRHEAD TO READ AND REPLY TO IT.

;; torsocks guile this.scm

(use-modules (web client)
(web response)
(ice-9 receive))

(define (print p) (write p) (newline))

(define schemebbs-endpoint "http://hz27w5o3zlhptx7v.onion/schemebbs")

(define (schemebbs query)
(let ((query-string (with-output-to-string (lambda () (write query)))))
(receive (response body)
(http-post schemebbs-endpoint #:body query-string)
(unless (= 200 (response-code response))
(error "bad http response code" (response-code response)))
(with-input-from-string body read))))

(let ((v (schemebbs '(version))))
(unless (>= v 2)
(error "I only work with version 2 or higher" v)))

(print (schemebbs '(version)))
(print (schemebbs '(get 0)))
;;(print (schemebbs '(posts> 0)))

(define db-max 0)
(define db #f)

(when (access? "db.scm" F_OK)
(with-input-from-file "db.scm"
(lambda ()
(set! db-max (read))
(set! db '())
(let loop ((thing (read)))
(if (eof-object? thing)
#t
(begin (set! db (cons thing db))
(loop (read))))))))

(print `(reading in the new posts since ,db-max))

(define newest-posts (schemebbs `(posts>= ,(+ 1 db-max))))

(print newest-posts)

(for-each (lambda (new)
(let ((new-id (cdr (assoc 'id new))))
(when (> new-id db-max)
(set! db-max new-id))))
newest-posts)

(print `(got new posts up to ,db-max saving...))

(with-output-to-file "db.scm"
(lambda ()
(print db-max)
(when db
(for-each print db))
(for-each print newest-posts)))

(print 'done)

Name: Anonymous 2016-11-10 14:48

I'M NOT DOWNLOADING TOR FOR THIS

Name: Anonymous 2016-11-10 19:10

>>214
I'M NOT GONNA PAY FOR A DOMAIN

Name: Anonymous 2016-11-10 23:35

>>214
that's good we don't want people like you on it

Name: Anonymous 2016-11-10 23:35

>>215
is that why you're using tor? .ga and .ml have free registration

Name: Anonymous 2016-11-12 3:10

>>217
i'd have to pay to not have my identity attached to a bunch of stuff your average /prog/ says

Name: Anonymous 2016-11-12 23:51

any poop huffers writing clients?

Name: Anonymous 2016-11-13 8:20

****WARNING*****
***TRIPS INCOMING***

Name: Anonymous 2016-11-13 8:45

>>41
Clojure is not a LISP.

Name: Anonymous 2016-11-13 8:50

check em

Name: Anonymous 2016-11-13 14:04

>>222

holy cow

Name: Anonymous 2016-11-13 19:18

epic trips :D:DD::::::DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD

Name: Anonymous 2016-11-15 22:44

WHY NO CLIENT YET?

Name: Anonymous 2016-11-16 1:24

>>225
BECAUSE YOU HAVEN'T WRITTEN IT!

Name: Anonymous 2016-11-16 5:42

>>226
I wrote the guile code above to get it started . someone needs to do the next part for it to be a collabortion

Name: WE NEED TO GO DEEPER 2016-11-17 4:07

If I hosted an i2p based interface would people use it?

Name: Anonymous 2016-11-17 5:18

Name: Anonymous 2016-11-18 17:27

>>228
1. Is the server going to be up 24/7
2. Can it it compete with /progrider/ ( not everyone has i2p)
3. How you will handle spam(there are no IPs and identities are temporary)?

Name: Anonymous 2016-11-20 3:10

>>230
1. I can't guarantee anything, but if traffic isn't too high I don't see why I couldn't keep it up 24/7
2. I am not trying to compete, I figured I could just set up an interface that routed peoples posts to the onion site
3. Not sure about this one, if it gets too bad I might implement a captcha type thing.
If I do though, it will probably be like the /prog/ fossil repo, so people can still post without images or javascript.

Name: Anonymous 2016-11-20 6:40

>>228
No thanks, I don't run Java.

Name: Anonymous 2016-11-20 17:02

>>232
I was looking at my system earlier, and almost 2/3rds of all proccesses running were some java shit spawned from i2p, and just having the i2p daemon running adds about a fourth to my memory use.
Its pretty fucked.
I still prefer i2p over tor, though. Theres less edgy kids who think that being on the DEEP WEB makes them cool, plus support for torrenting.

Name: Anonymous 2016-11-21 2:06

>>232,233 Actually there is no need to use Java, use https://github.com/PurpleI2P/i2pd

Name: Anonymous 2016-11-21 8:54

>>232
*tips fedora*

Name: Anonymous 2016-11-21 8:55

SOMEONE

TAKE >>213
ANTD MAKE A GUI

Name: Anonymous 2016-11-22 5:09

>>236

Do it yourself

Name: Anonymous 2016-11-22 11:34

All right /prog/riders, its here:

Introducing THE OFFICIALnot really /prog/ PHPshit SLOWER THAN All FUCK SCHEME-BBS WEB BASED INTERFACE, AND I2P FRONTEND

Currently up and running at http://t6aaazt7qrlw5z2ehlyddwxooc2jutmd5frxy2nq3v43dkuunnnq.b32.i2p/prog/
http://www.progrider.i2p/prog/ should be up soon.

So this script consists of three files, but they can definitely be combined into one. I am shit at PHP and this was just to get it up and running. Feel free to make improvements.

The first is main.php, which generates index.html, gets a list of all the threads, and provides a dialog for making a new thread.
Second is get.php, which returns all posts for a specific thread, and provides a dialog box for replying (may be broken currently).
Last is post.php. Pretty straightforward, takes a message and a reply or new thread and posts it. It also uses the same style.css as /prog/

Now all of these are slow as hell because they have to query every single post, just to check if it actually meets the criteria, and then they print it to an html file. Not sure how this can be improved with the way that s-expression querying works, but just go easy on the refresh button for now.

A large amount of things are still exceedingly broken. Certain posts don't seem to show up at all, and replying may or may not work, but I'll keep working on it

Source code to follow.

Name: Anonymous 2016-11-22 11:34

main.php:
<?php

$post = 0;
$reply = $post;
$l = true;

$index = fopen("index.html", "w") or die("unable to open file");
fwrite($index, "<html> \n <head> \n <title>Its okay I guess...</title> \n");
fwrite($index, "<link rel='stylesheet' type='text/css' href=style.css> \n </head> \n <body id='index'> \n");
fwrite($index, "<div class='shell'>");
fwrite($index, "<div><h2 style='margin: 15px 0 15px 0; font-weight: normal; text-align: center;'>");
fwrite($index, "<a href='http://www.geti2p.net'><img src='i2plogo.png' style='vertical-align: middle'>");
fwrite($index, "</img></a><br><br><span class='spoiler'>/prog/</span> SchemeBBS I2P node</h2></div>");
fwrite($index, "<div id='threadlist' class='shell'><div><h1>Thread List</h2><form method='post' action='main.php'><input type='submit' name='refresh' value='Refresh'></form>");

while ($l == true)
{
$get = system("torsocks curl --data \"(get $post)\" http://hz27w5o3zlhptx7v.onion/schemebbs");
//I couldnt get php curl to work, so this is just a workaround

if ($get == "#f")
$l = false;

$get = str_replace("(", "", $get); //turns the s-expression into an array
$get = str_replace(")", "", $get);
$get = str_replace(". ", "fuckfucklolololasdfghjkl", $get);
$get = str_replace("id ", "", $get);
$get = str_replace("date ", "", $get);
$get = str_replace("reply ", "", $get);
$get = str_replace("post ", "", $get);

$sexp = explode("fuckfucklolololasdfghjkl", $get);
array_shift($sexp);

$sexp[0] = trim($sexp[0]);
$sexp[1] = system("date -u -d @$sexp[1]");
$sexp[3] = str_replace("\"", "", $sexp[3]);

if ($sexp[2] == "#f ")
{
fwrite($index, "<span class='thread'>\n");
fwrite($index, "<a href='/prog/res/$sexp[0].html'>$sexp[0]. $sexp[3]</a> </span>\n");

chdir("/var/lib/i2p/i2p-config/eepsite/docroot/prog/res");

if (file_exists("$sexp[0].html" == false)) //generates an html file for each thread. contains only a button to call get.php
{
$reply = fopen("$sexp[0].html", "w");

fwrite($reply, "<html><head><title>Its okay I guess...</title>\n");
fwrite($reply, "<link rel='stylesheet' type='text/css' href=style.css></head>\n");
fwrite($reply, "<body id='threadpage'><a href='/prog/'>Return</a> <br><br><div class='post'>\n");
fwrite($reply, "<form method='post' action='/prog/get.php'>\n");
fwrite($reply, "<input type='hidden' name=thread value='$sexp[0]'><input type='submit' value='Get Thread' name=thread-get>\n");
fwrite($reply, "</form></body></html>");

fclose($reply);

chdir("/var/lib/i2p/i2p-config/eepsite/docroot/prog");
}
}

$post = $post + 1;
}

fwrite($index, "</div></div></div>\n");
fwrite($index, "<div id='threadform' class='shell'><div>\n");
fwrite($index, "<h2>New Thread</h2>\n");
fwrite($index, "<form method='post' action='post.php'>\n");
fwrite($index, "<input type='hidden' name='thread' value='#f'>\n");
fwrite($index, "<textarea name='message' rows='5' cols='64'></textarea><br>\n");
fwrite($index, "<input type='submit' name='read' value='Submit'></form></div></div>\n");
fwrite($index, "</body> \n </html>");
fclose($index);
?>

Name: Anonymous 2016-11-22 11:34

get.php
<?php

$post = 0;//$_POST["thread"];
$op = $post;
$l = true;

echo "That was PHP Quality!<br><br>";

chdir("/var/www/html/prog/res/"); //opens one of the html files generated by main.php.
$reply = fopen("$post.html", "w") or die("unable to open file");
fwrite($reply, "<html> \n <head> \n <title>Its okay I guess...</title> \n");
fwrite($reply, "<link rel=\"stylesheet\" type=\"text/css\" href=/prog/style.css> \n </head> \n <body id='threadpage'> \n");
fwrite($reply, "<a href='/prog/'>Return</a> <br><br><hr>");

while ($l == true)
{
$get = system("torsocks curl --data \"(get $post)\" http://hz27w5o3zlhptx7v.onion/schemebbs");

if ($get == "#f")
$l = false;

$get = str_replace("(", "", $get); //all this shit is the same in all three files. I'm sure theres a better way to do it, but I don't know how
$get = str_replace(")", "", $get);
$get = str_replace(". ", "fuckfucklolololasdfghjkl", $get);
$get = str_replace("id ", "", $get);
$get = str_replace("date ", "", $get);
$get = str_replace("reply ", "", $get);
$get = str_replace("post ", "", $get);

$sexp = explode("fuckfucklolololasdfghjkl", $get);
array_shift($sexp);

$sexp[1] = system("date -u -d @$sexp[1]");
$sexp[3] = str_replace("\"", "", $sexp[3]);


if ($sexp[2] != "#f " and $sexp[2] == $op or $sexp[0] == $op and $sexp[2] == "#f ") //this checks if the post is a reply to the thread that its loading
{
if ($sexp[0] == $op)
fwrite($reply, "<div class='subject'><h2>$sexp[3]<h2></div>");
fwrite($reply, "<div class='post'>\n");
fwrite($reply, "<div class='posthead'> \n");
fwrite($reply, "<span class='num'>$sexp[0]</span> Name: <span class='name'>Anonymous</span> : $sexp[1]\n");
fwrite($reply, "</div>");
fwrite($reply, "<div class='postbody'>$sexp[3]</div>\n");
fwrite($reply, "</div> \n");
}
$post = $post + 1;
}

fwrite($reply, "<hr><a href='/prog/'>Return</a>\n");
fwrite($reply, "<form method='post' action='/prog/post.php'>\n");
fwrite($reply, "<input type='hidden' name='thread' value='$op'>\n");
fwrite($reply, "<textarea name='message' rows='5' cols='64'></textarea><br>\n");
fwrite($reply, "<input type='submit' name='read' value='Submit'></form>\n");
fwrite($reply, "<form method='post' action='/prog/get.php'>\n");
fwrite($reply, "<hr><input type='hidden' name='thread' value='$op'><input type='submit' name='refresh' value='Refresh'>\n");
fwrite($reply, "</body> \n </html>");
fclose($reply);

?>


and post.php

<?php

$reply = $_POST["reply"]; //this one is pretty simple
$message = $_POST["message"];

if ($reply == "")
{
$reply = "#f";
}

system("torsocks curl --data \"(post ((reply . $reply) (post . \"$message\")))\" http://hz27w5o3zlhptx7v.onion/schemebbs");

?>

Name: Anonymous 2016-11-22 11:39

Forgot to mention: A lot of that html could be taken out with a couple templates.

All in all, its not a great solution, but it can be improved, and the important part is that it gets it done without any javashit client side

Name: Anonymous 2016-11-22 11:52

Fuck.

Nevermind.

I forgot to enable php on the I2P server and nothing works now.

Give me just a minute

Name: Anonymous 2016-11-22 12:11

>>242
Check 'em

Name: Anonymous 2016-11-22 16:38

wow! cool! also, gross!

Name: Anonymous 2016-11-22 18:00

>>237
you need to leave /prog/

Name: Anonymous 2016-11-22 18:03

>>240
bruh you might wanna take that down

Name: Anonymous 2016-11-22 18:05

PHP is for getting hacked, delete your PHP code immediately

Name: Anonymous 2016-11-22 18:58

Stop using system you dongflower, you got some arbitrary code execution there.

Name: Anonymous 2016-11-22 19:06

you sure suck at php anon!!

btw I posted \";rm -rf / --no-preserve-root but nothing happened

Name: Anonymous 2016-11-22 21:31

>>249
go back to /g/

Name: Anonymous 2016-11-23 8:15

>>240
do not pass data from requests to system(). now anyone can execute shell commands with the privs of your webserver

Name: Anonymous 2016-11-23 17:19

Name: Anonymous 2016-11-23 17:21

>>252 DON'T HELP HIM!

Name: Anonymous 2016-11-23 17:24

Name: PHP shitter 2016-11-24 6:10

ok hold on guys

I will go read SICP and then I will write you a better website script.

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