Bay 12 Games Forum

Finally... => Creative Projects => Topic started by: Angle on September 24, 2013, 08:43:56 pm

Title: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Angle on September 24, 2013, 08:43:56 pm
I had an idea for a forum designed to facilitate complicated discussions between large numbers of people, like what we frequently have happening in the general discussion area on these forums. There are several different innovations I have in mind to allow this. The most basic is making discussion parallel, instead of linear. The way this works, is that each post can be addressed to any number of prior posts, and can have any number of posts addressed to it. This causes the forum to assume a web structure, and allows conversations to diverge and converge to cover all salient points without bogging up the thread the way they would in a linear forum thread. To make full use of this, posts should be very carefully structured. I'm thinking the Socratic method would work admirably: Have each argument state it's conclusion, list it's arguments, and refer to it's presuppositions in other posts. There are, of course, various challenges that will have to be solved: spammers, trolls, duplicated ideas, etc.

This isn't a very good explanation, but I'm not sure how else to put it. Any questions?

Update- Now with collaborative Google Doc (https://docs.google.com/document/d/1CjERoM9jefThEU35WAVT9IALjrYhhYgcAHbBvfgjWbs/edit)!

Update: Github  (https://github.com/organizations/Agora-Project)Added

Update: We now have a live site for further testing. You can view it here (https://agora-2866.nodechef.com/).
Title: Re: A more effective internet forum
Post by: Urist McScoopbeard on September 24, 2013, 08:58:45 pm
So like a debate in text form? Sounds good, But it suffers from the same problems normal forums do, i.e. after a while there are simply too many posts for the USERS to keep track of, unless you can sort them into generalized 'sides' within a thread, even then it seems like a post might not be noticed. Also, how would an active conversation take place? Unless you mean to use some sort of text-chat in conjunction with these posts intricately interwoven and orginized.

However, despite that, I like the idea, it feels like it could be good, maybe go more in-depth? Or draw a picture describing the layout of a page.
Title: Re: A more effective internet forum
Post by: Angle on September 24, 2013, 09:06:24 pm
So like a debate in text form? Sounds good, But it suffers from the same problems normal forums do, i.e. after a while there are simply too many posts for the USERS to keep track of, unless you can sort them into generalized 'sides' within a thread, even then it seems like a post might not be noticed.

The beauty of this idea is that no given user has to keep track of all the posts, just the ones they're commenting on. Let's say you present an idea, and several people all reply to it. I only need to read the given reply that I'm commenting on. There will of course, be problems with duplicated posts, where one person posts something and then another posts the same thing. I figure that can be solved via moderation of some sort.

Also, how would an active conversation take place? Unless you mean to use some sort of text-chat in conjunction with these posts intricately interwoven and orginized.

This isn't for a 1 to 1 conversation, this is for exploring large, complicated ideas with large numbers of people.

However, despite that, I like the idea, it feels like it could be good, maybe go more in-depth? Or draw a picture describing the layout of a page.

Sure, lemme fire up paint.

(http://img.ie/images/jho3n.png) (http://img.ie/)
Title: Re: A more effective internet forum
Post by: Darkmere on September 24, 2013, 09:40:31 pm
How would you browse this? After any length of time with any significant number of contributors, the complexity of a discussion-node-traversal graph will cause small children to weep and the weak-hearted to soil themselves.

Also, it kinda sounds like a forum crossed with a wiki.
Title: Re: A more effective internet forum
Post by: freeformschooler on September 24, 2013, 09:42:20 pm
It would take a genius feat of interface design.
Title: Re: A more effective internet forum
Post by: Angle on September 24, 2013, 09:47:45 pm
It is a forum crossed with a wiki, and a few other things to boot. It terms of browsing, I'm thinking the way it would work, is the webpage would basically be a javascript/html5 app that tracks the current post your viewing, and presents things relative to that. So you see the post your viewing, above it are the posts it's a response to and below it are the posts that are responses to it. When you want to view one of these, you click on it and it shifts to being the post you view everything relative to. With some clever programming, this shouldn't require relading anything, you simply change how things are displayed, and load more content dynamically.

There would still need to be some limiting of how big any single thread got, but if you limit things to the original topic, and split off any large derails as their own threads, it should be workable.

It would take a genius feat of interface design.

Nosense, I'll show you! *Opens paint again*

Spoiler: Interface (click to show/hide)

Obviously, this is just a rough draft. I'd need to actually have this made and test it out for a period of time in order to perfect it.
Title: Re: A more effective internet forum
Post by: Darkmere on September 24, 2013, 10:03:05 pm
Sure, I get that, and I like the general idea, but you're going to need to expand that to support potentially dozens of related posts that can all be navigated to from the one post they're referencing. Every time. For thousands of posts.

It's not the idea I have a problem with, but the actual implementation worries me.
Title: Re: A more effective internet forum
Post by: Angle on September 24, 2013, 10:13:37 pm
Yes, that could be difficult - I was considering having every major argument be broken up into it's own thread, with a link from anything that references it. Maybe some method of breaking arguments up into major nodes of discussion? As I said, this would take considerable testing and refinement to make really work the way I want it to. For that purpose, I was considering running a kickstarter and using the proceed to hire a programmer and put up a website, for the ongoing development of the idea. First, of course, I need a good statement of concept with which I can interest people into contributing to the kickstarter and helping test the prototypes, which is a difficulty in and of itself.
Title: Re: A more effective internet forum
Post by: freeformschooler on September 24, 2013, 10:33:34 pm
You definitely should work at this idea. It's something that isn't completely done, and the tone of a community can really be born out of the medium they use to communicate. I'd love to see what kind of tone and community this interface fosters.

Might not want to jump on the kickstarter idea immediately - I think it's something that, with some jquery/sql/other web type coding you could probably learn to make yourself!
Title: Re: A more effective internet forum
Post by: Angle on September 24, 2013, 10:39:48 pm
Eh, I'm not very good at keeping up enthusiasm for a project all on my own - I've been kicking this idea around for forever, and have yet to do aything with it. I'd never be able to keep up interest long enough to learn how to code it myself, especially seeing as I have no idea where to start. If I have a kickstarter's worth of people eager to see result for their money, then I could keep up interest no problem, and I'd have the bonus of a large contingent of people to help me test the thing. Be difficult to get there, of course, but I think I could manage it. That's why I posted here, is to start putting together a proposal.
Title: Re: A more effective internet forum
Post by: Anvilfolk on September 24, 2013, 10:44:23 pm
Oh, sweet.

This is actually totally related to my MSc thesis and subsequent avenue of research my university in Portugal's been pursuing for a while. We've got some nice theoretical/mathematical foundations for proper social argumentation. We currently have a simple but efficient algorithm for number crunching the solutions to our debating structures, but we're missing proper implementation - and are actively looking for it, but none of us have time.

Here are the links for a couple of our papers on the subject:
Social Abstract Argumentation (http://centria.di.fct.unl.pt/~jleite/papers/ijcai11.pdf)
Extending social abstract argumentation with votes on attacks (http://centria.di.fct.unl.pt/~jleite/papers/tafa13.pdf)

If you are serious about this, and would like to get involved in this, PM me and we can go from there :)
Title: Re: A more effective internet forum
Post by: Draxis on September 24, 2013, 10:48:46 pm
For the interface, what about having a panel which shows the posts as a series of nodes linked to others, and they can be selected to bring up a windown showing the content of that post?  something (vaguely) like this:
(http://img.ie/wmum1.gif)
Title: Re: A more effective internet forum
Post by: Angle on September 24, 2013, 10:51:45 pm
That looks good for long scale maneuvering of the argument tree. If you want a quick overview, or want to find where you were browsing yesterday, that could be really useful. If you aim to have posts be individually small, and have there be lots of them instead, then it becomes even more useful. For i depth browsing, and especially when replying, you'd probably want to have the interface zoom in and use my method.
Title: Re: A more effective internet forum
Post by: Anvilfolk on September 24, 2013, 11:10:07 pm
You shouldn't really have one post equalling one node. The reason is simple: one post can make a LOT of points.

What we've proposed is having each point, or argument, be one of those nodes. If one argument undermines another, you draw an arrow between the two, showing an "attack".

For a forum, I imagine that you'd easily highlight what piece of text you consider to be arguments in your post, and then possibly drag them onto other arguments to specify attacks between arguments.

From an interface perspective, you could have multiple zoom levels. One with just nodes, one with a little bit of text, and "full view". Of course, mousing over could show you more text and statistics and all sorts of other cool stuff :)
Title: Re: A more effective internet forum
Post by: Angle on September 24, 2013, 11:19:20 pm
You shouldn't really have one post equalling one node. The reason is simple: one post can make a LOT of points.


For this reason, much of my theorizing has been going towards figuring out a format that would take good advantage of this system. in my format, I'd probably have it so that each argument IS it's own separate post. This keeps things neat and easy to navigate, and keeps things from getting gummed up large walls of impenetrable text.
Title: Re: A more effective internet forum
Post by: Draxis on September 24, 2013, 11:27:11 pm
You shouldn't really have one post equalling one node. The reason is simple: one post can make a LOT of points.

What we've proposed is having each point, or argument, be one of those nodes. If one argument undermines another, you draw an arrow between the two, showing an "attack".

For a forum, I imagine that you'd easily highlight what piece of text you consider to be arguments in your post, and then possibly drag them onto other arguments to specify attacks between arguments.
I don't see the conflict there; as long as users only make one argument (here meaning an idea trying to be communicated) - which could be based on multiple points (bases of that argument) - per post, the same linking system between posts could be used.

The zoom levels would be a neat way to help the clutter; the idea also made me realize that this forum could be a good form for all the touchscreens and such that are being used today - something to keep in mind if it ever does come to a kickstarter.

The forum will need a very robust threading system; posts should be able to be linked between threads, or even whole chains copied over if relevant.  A good splitting mechanism will also be important, to keep the threads from getting too bloated like a lot of the GD ones do.  Whether this is done by thread starters, moderators, or the participants, will be an important decision to make.  I lean towards the participants being able to manipulate threads, based on some sort of concensus system, but that may turn out to be to slow or manipulable.
Title: Re: A more effective internet forum
Post by: Anvilfolk on September 24, 2013, 11:38:36 pm
Absolutely, to both of your posts! That's exactly how it happens in argumentation theory! Basically it doesn't matter how stuff is inputted into the computer, it is ultimately all "compiled" into a directed graph. Unless you explicitly keep track of it of forums/subforums/threads/posts, it's a pretty flat structure, meaning any argument can attack any argument - across threads, forums, heck, with the right tech behind it, across the Internet.

Visualisation and the interface is going to be a HUGE part of it. For instance, how do you represent threads of conversation? A flat structure isn't interesting at all for a forum like Bay12. You need to keep track of that. How do you visualise time? Posts are linear, for instance... meaning there's a nice flow. How is that represented when everything is now nodes?

The forum will need a very robust threading system; posts should be able to be linked between threads, or even whole chains copied over if relevant.  A good splitting mechanism will also be important, to keep the threads from getting too bloated like a lot of the GD ones do.  Whether this is done by thread starters, moderators, or the participants, will be an important decision to make.  I lean towards the participants being able to manipulate threads, based on some sort of concensus system, but that may turn out to be to slow or manipulable.

That's part of the beauty of what we've proposed, for two reasons:
1) Because everything is flat (there's "just" nodes/arguments), you can reference everything from everything. You can keep track of which arguments belong to which thread, and restrict the view to that, like a more traditional forum. Of course, you might have incoming and outgoing attacks from the thread, but they'll be temporarily greyed out so you can follow the thread itself. It should be easier to get a temporal visualisation of arguments within a single thread as well. Because the underlying structure is a simple directed graph, the UI is also not overly complicated to implement and play with. I'm sure there's already tons of graph-based algorithms and stuff that can be used.
2) By allowing people to vote on arguments and attacks, dumb posts or attacks that people specified for some reason but don't really make sense are easy to handle. You just downvote them, and they essentially become irrelevant.
Title: Re: A more effective internet forum
Post by: Draxis on September 24, 2013, 11:54:13 pm
Wait, what do you mean by 'flat' and 'thread'?  I don't know much about argumentation theory, but it seems like threads (an organizational structure) can't mesh with a flat structure by definition.

I was imagining the structure to be stored in the server as a list of posts, chronologically, and that the graph program would interpret them into a graph using information in the stored posts like links (attacks, but also supports or references) to others, and maybe a list of threads - each containing any posts put into this thread during the posting process.  The graph would draw a thread as all the posts in it, with their references to one another shown, and the references to posts not in this thread shown in a different color or something.  The threads would be only an organizational tool used to help follow a given topic.  Is something like that what you are talking about?
Title: Re: A more effective internet forum
Post by: Urist McScoopbeard on September 24, 2013, 11:56:48 pm
Up/downvoting is a bad system on the internet, entirely too easy to troll it and abuse it. Especially where a post might only get a few votes.

Especially in this system, just because one person is in the minority puts them at a disadvantage because their post can be downvoted because the majority thinks its stupid, not everyone is loving and open-minded on the internet after all.
Title: Re: A more effective internet forum
Post by: lue on September 25, 2013, 12:02:40 am
Sounds like an interesting idea. Seems to me like a traditional threaded forum (as opposed to a flat one, like this one), except for the many-to-many instead of one-to-many way of connecting posts.

I was thinking, one thing that would improve both classic forums (like this one) and your idea would be some sort of special summary page thing, that summarizes the content of the thread. It would, naturally, have to be maintained by a human or a group of them. You could already do this with a first or second post in a thread reserved for updates, but that relies on the thread creator to stick around until the thread is utterly forgotten.

Wait, what do you mean by 'flat' and 'thread'?

I think some usages of the word "flat" here refer to the way the data is stored; putting all the posts into one or many text files would be a flat data structure, while putting them in a database structure (things like MySQL) would not be "flat". I could be wrong though, so perhaps those talking can correct me if I'm wrong.
Title: Re: A more effective internet forum
Post by: Angle on September 25, 2013, 12:06:59 am
I think it refers to how posts can be linked- In a flat structure, any post can be linked to any post, while in a non flat structure, like we have right here right now, posts can only be linked in very specific ways.

In terms of a summary page, I was thinking that some kind of overview that only shows the title's of the posts could be used.
Title: Re: A more effective internet forum
Post by: Anvilfolk on September 25, 2013, 12:12:08 am
I was imagining the structure to be stored in the server as a list of posts, chronologically, and that the graph program would interpret them into a graph using information in the stored posts like links (attacks, but also supports or references) to others, and maybe a list of threads - each containing any posts put into this thread during the posting process.  The graph would draw a thread as all the posts in it, with their references to one another shown, and the references to posts not in this thread shown in a different color or something.  The threads would be only an organizational tool used to help follow a given topic.  Is something like that what you are talking about?

Yeah, that's what I mean. Sorry, it's getting late here :)

I was still imagining a post to be longer, like the ones we are writing here, though that is perhaps counter-productive for proper debates. Either way, eventually, it all becomes nodes in a graph. That's what we ultimately use to compute an output. What you can do is keep meta-data about which thread the post was added to, and so still maintain a forum-structure for organisational purposes.

Up/downvoting is a bad system on the internet, entirely too easy to troll it and abuse it. Especially where a post might only get a few votes.

Especially in this system, just because one person is in the minority puts them at a disadvantage because their post can be downvoted because the majority thinks its stupid, not everyone is loving and open-minded on the internet after all.

Think of it this way. The outcome of a debate is the result of two things: 1) popular opinion and 2) debate structure. As a result of 1), a post in Bay12 might be super upvoted, whereas the same post, say, in Reddit, would get downvoted. It's a matter of context. This is taken into account. As a result of 2), even if a post has lots of crowd support (more upvotes, less downvotes), if it is logically attacked by another post with a similar crowd support, it will be logically weaker.

In your example of a debate between a minority and the majority, the outcome will necessarily be skewed towards the opinion of the majority. Heck, that's how democracy and elections work, just at a larger scale. Having only registered accounts add votes makes it so bots and so forth can't troll it too hard. Also seems to work nicely on reddit, slashdot, etc.

I think some usages of the word "flat" here refer to the way the data is stored; putting all the posts into one or many text files would be a flat data structure, while putting them in a database structure (things like MySQL) would not be "flat". I could be wrong though, so perhaps those talking can correct me if I'm wrong.

Forums typically don't have as much flatness since there's a forum->subforum->thread-post hierarchy. Databases do a good job of representing this. For computing a solution to a debate, we use a flat structure in the sense that there's only arguments. There's no threads or forums or anything. But like I said before, that should definitely exist as metadata. It makes it easier to browse and search and visualise.

But Angle ninja'd me and explained it better! I really should get to bed ;)
Title: Re: A more effective internet forum
Post by: Angle on September 25, 2013, 12:15:08 am
Yeah, me too. Good night, everyone.
Title: Re: A more effective internet forum
Post by: Urist McScoopbeard on September 25, 2013, 01:58:21 am
Well since im having some pretty bad insomnia right now let me try and contribute another idea, in keeping with the democracy example, you describe a majoritarian system, where obviously the majority rules, but if you could think of some way to keep track of issues, not just posts, then you could turn it into a pluralist system where at least the minority views are held to the light.


Also, in keeping with this debate-centred discussion, I think we need actual different posts, i.e. topic posts = you bring up an issue, no arguement yet only pros and cons listed. Then discussion posts, where you might argue for either side of the topic. Finally 'attacking' posts, basically your responding to other posts, you should be able to 'attack' any post whether it be a topic directly, a discussion post of a topic or any othef 'attacking' post.

Its too late for the pc, but im tempted to design a layout of this, i figure tht each topic post appears as a green dot, which when moused over will display a tree of attacking posts in red and discussion posts in blue as well as the actual post itself. When you click the dot, this information stays on the screen instead of disappearing after your mouse leaves the dot as if you moused over it. Now you can read a post, and see a tree of posts 'attacking' or 'discussing' it. Again, if you mouse over a dot in this tree it expands to show you a post and list of posts 'attacking' it. Etc. ever onwards.

To be clear all of this is contained in one 'thread' that theoretically covers on broad topic, the topic posts are more specific aspects of the thread topic. Large issues might have several dozen topic posts, while smaller ones might only have 2-3, etc.

Furthermore, the OP should be able to control topics, lest things get out of hand or inappropiate, he/she should be able to lock any topic post, as in its still viewable but can long longer be contributed to. I think that the OP should not have too much, if any, control over discussion and 'attacking posts'.
Title: Re: A more effective internet forum
Post by: Eagleon on September 25, 2013, 02:22:32 am
Just posting to say that I've been trying to figure out a better sort of forum for education/collaboration, and new ideas like this are awesome to see. Will be watching this closely - I don't have the background to contribute much, but if there were a concise specification I could, at the very least, hash out an object-based representation in Java and JGraphT. Probably not as fast or bug-free or even complete as you'd like, but I haven't seen anyone offer, so there =P
Title: Re: A more effective internet forum
Post by: Draxis on September 25, 2013, 06:00:29 am
Think of it this way. The outcome of a debate is the result of two things: 1) popular opinion and 2) debate structure. As a result of 1), a post in Bay12 might be super upvoted, whereas the same post, say, in Reddit, would get downvoted. It's a matter of context. This is taken into account. As a result of 2), even if a post has lots of crowd support (more upvotes, less downvotes), if it is logically attacked by another post with a similar crowd support, it will be logically weaker.

In your example of a debate between a minority and the majority, the outcome will necessarily be skewed towards the opinion of the majority. Heck, that's how democracy and elections work, just at a larger scale. Having only registered accounts add votes makes it so bots and so forth can't troll it too hard. Also seems to work nicely on reddit, slashdot, etc.
I'm not comfortable with an up/down voting system, because it will lead to people pursuing votes rather than effective arguments, and groups who share an opinion downvoting anyone who opposes them.  You can see it in places like Youtube or Reddit, although those are extreme examples - the community is a large factor here, but it just opens the possibility for abuse.

A system with a number of different 'ratings' you could use, such as "Agree","Disagree", "Good points", "Spam", "Need Source" and so forth would be better, as people who have problems with the post could be more specific about them without just attacking the whole post, and people could just vote if they agree or disagree in general - which, while just about useless, is far better than them making "+1" posts, or downvoting the whole post because it makes different points than them.

Also, in keeping with this debate-centred discussion, I think we need actual different posts, i.e. topic posts = you bring up an issue, no arguement yet only pros and cons listed. Then discussion posts, where you might argue for either side of the topic. Finally 'attacking' posts, basically your responding to other posts, you should be able to 'attack' any post whether it be a topic directly, a discussion post of a topic or any othef 'attacking' post.
...
Furthermore, the OP should be able to control topics, lest things get out of hand or inappropiate, he/she should be able to lock any topic post, as in its still viewable but can long longer be contributed to. I think that the OP should not have too much, if any, control over discussion and 'attacking posts'.
The idea about multiple post types seems promising, but that could just end up like a less structured version of a normal forum, if everyone used only discussion posts - any they would, because it would be easier that argument posts, unless the community was strongly against it.  Since the whole point of the model is to facilitate proper arguments, that is undesirable; discussion posts will need to be implemented carefully.  Similarly, topic posts are a hazard: unless they can only start threads, people will just post their points in them and wander off, without bothering to really participate in the arguments.  I would say that having them would cause more trouble than they would be worth, and it woud be better to just let people use argument posts for that.
Title: Re: A more effective internet forum
Post by: Angle on September 25, 2013, 10:13:09 am
I was thinking that arguments could be flagged as "Non-sequitur", "Ad Hominem", "Strawman", and the like. If enough people flag an argument, then it is brought to the attention of the mods, and they can mark it as invalid.

The idea about multiple post types seems promising, but that could just end up like a less structured version of a normal forum, if everyone used only discussion posts - any they would, because it would be easier that argument posts, unless the community was strongly against it.  Since the whole point of the model is to facilitate proper arguments, that is undesirable; discussion posts will need to be implemented carefully.  Similarly, topic posts are a hazard: unless they can only start threads, people will just post their points in them and wander off, without bothering to really participate in the arguments.  I would say that having them would cause more trouble than they would be worth, and it woud be better to just let people use argument posts for that.

Again, this is why I'm putting a lot of effort into thinking up a good set of rules for said forum. If it's against the rules to have your arguments in a discussion post, and the mods go and delete them when you do that, then people will make goo and proper use of arguments. This does leave the moderators with a lot of power - for that purpose, I was considering making a system that would log anything the moderators do, so that people could keep track of them and point out if they did anything wrong.
Title: Re: A more effective internet forum
Post by: Anvilfolk on September 25, 2013, 10:18:23 am
There's a whole lot of literature on what constitutes an argument. Some are based on an underlying mathematical logic, some are based on the principles of argumentation that have been studied since as far back as Ancient Greece, so there's no need to reinvent the wheel :)

If you guys don't mind I'll just start mentioning about Social Abstract Argumentation (SAA), which is what we developed in my research group. Makes it easier to point out what I'm referring to :) The theory behind SAA can very easily be changed so that we accept slightly more complex crowd voting. What does need to happen is that all the votes eventually get you a value in [0, 1]. For instance, an "agree" vote could be value 1, "disagree" could be value 0, "spam" could be value 0, "need source" could be value 0.5, and then you'd average all those votes out.

How you go from plain text to a formal argumentation context (as a directed graph) is still very much an open question. I don't think we will ever be at a point where you can automatically mine that information, since natural language is so hard to make sense of with computers. This means that ultimately it'll be some form of user that has to say what is an argument and what is an attack.

The Abstract in SAA refers to the fact that we distance ourselves from that problem. We work exclusively with nodes and arrows (and votes). It is not clear to us that you should have different argument types at all - what would be their purpose? How do they differ? SAA is nice because it is super simple and to the point. An argument is some sort of statement that may or may not undermine other statements, and that may or may not be undermined by other statements. This notion of "undermining" induces the attack relation.

The Social part of SAA means that the community can self-regulate. In other words, if someone goes into a nice, mature community and starts spewing nonsense as arguments, the community has the power to downvote that opinion into irrelevance.

I think it's also important to realise that outcomes to all debates are ultimately always dependent on the context, whether in "real-life" or online. I mean, talk about gay marriage in a southern US state or in a metropolitan area, and the result will be reversed. Talk about it in a US wide context, and it might be 50/50. An atheist in a religious forum and a believer in an atheist forum WOULD likely be downvoted simply because people don't agree with their opinions. That's the way the world works.

If you accept that the formal outcome of a debate depends on its context and participating community, your complaints aren't really bugs of the system, they're features ;)


To respond to Angle's more recent post. You *could* simply create an argument that states another argument is Non-sequitur, ad hominem, or strawman, and have that attack the original flawed argument. If people agree with that, using !!LOGIC!!, SAA would reduce the strength of the flawed argument until it became too weak to have any real impact. Heck, if people realise that the argument is flawed, they can simply downvote it.

Overly complicated systems restrict usage. We'd really like to have as many people as possible using this, right? Arguments, attacks and voting can pretty much represent any situation that we've been able to think of for quite a while now. That doesn't mean extensions aren't possible, but before making the system more complex and less usable, those changes should be strongly justified.
Title: Re: A more effective internet forum
Post by: Eagleon on September 25, 2013, 01:07:27 pm
How you go from plain text to a formal argumentation context (as a directed graph) is still very much an open question. I don't think we will ever be at a point where you can automatically mine that information, since natural language is so hard to make sense of with computers. This means that ultimately it'll be some form of user that has to say what is an argument and what is an attack.
This is actually why I'm very interested in this concept - it pushes the user to formalize the relations between what they're talking about and what it is in response to, and allows a much nicer picture of who is talking to who and why than you can get with a conventional forum, while still allowing as many people to participate as possible. It would highlight redundancy nicely if you did include some machine learning techniques into the mix, if you made the relationships inferred visible to the user.

More broadly for my purposes, I'd like to combine it with a research/citation database to also allow someone to visualize the relations between a conversation and the technical details it might be relying on, based on some sort of learned confidence rating, so that you can generate new links to conversation outside what the user is expecting to see. All to maybe spark some interesting insights outside their comfort zone as they use the system.
Title: Re: A more effective internet forum
Post by: Killjoy on September 25, 2013, 02:05:36 pm
What you are proposing is arranging the discussion into a directed graph. Instead of a tree, much like what the reddit discussion model.

It is actually not that difficult to set up something like this.

However, presenting it in a way that facilitates these digraph discussion features is much harder.

You could show the parent threads appended on top. But I don't really see any reason not just to use quoting, unless you want to preserve context, which is not an issue on modern boards anyway since you can simple link the post where the quote comes from.

This does however give me an idea. Why not make sort of a discussion graph or web. You can't start a new discussion topic per se, but you can always derive discussions from other discussions. Meaning any topic discussion thread could be traversed back to the origin. The origin would be sort of a hello world, opting to discuss this type of fora or something.

What would be even more valuable would be if any new topic had to actually discuss the parent topics in some way or form. I doubt however that it is really possible to moderate and enforce such rules, even if a dataset with this rule would be extremely valuable.

Farming this graph would make for some very interesting data.

I don't mind setting up a little web service like this if anyone is interested. If anything it gives me something to do today.
Title: Re: A more effective internet forum
Post by: GalenEvil on September 25, 2013, 11:39:48 pm
PTW this sounds awesome and something I'd be interested in testing if not helping develop (no time at the moment).
Title: Re: A more effective internet forum
Post by: Angle on September 26, 2013, 12:57:10 am
I don't mind setting up a little web service like this if anyone is interested. If anything it gives me something to do today.

That'd be cool, although we don't have any of it programmed yet.
Title: Re: A more effective internet forum
Post by: Anvilfolk on September 26, 2013, 09:36:34 am
Killjoy: if we were to use SAA, that graph would always have to exist, so that's not a problem. I feel that doing away with the forum structure entirely would just make getting into a discussion almost impossible. I mean, look at how many posts are made here every minute! Plus, arguments would be micro-posts, so each post would actually count as several arguments/nodes in the graph. It would get out of hand really, really quickly.


Eagleon: yeah, what if we could take research papers from known websites, and each paper would be a node? I doubt it would be possible to effectively mine each individual paper for arguments, but even having a paper represented as a node would be enough to denote that a research paper contradicts some proposed point. That could work out really nicely as a basic system!
Title: Re: A more effective internet forum
Post by: Virex on September 26, 2013, 11:31:19 am

This does however give me an idea. Why not make sort of a discussion graph or web. You can't start a new discussion topic per se, but you can always derive discussions from other discussions. Meaning any topic discussion thread could be traversed back to the origin. The origin would be sort of a hello world, opting to discuss this type of fora or something.

What would be even more valuable would be if any new topic had to actually discuss the parent topics in some way or form. I doubt however that it is really possible to moderate and enforce such rules, even if a dataset with this rule would be extremely valuable.

Farming this graph would make for some very interesting data.

I don't mind setting up a little web service like this if anyone is interested. If anything it gives me something to do today.


You mean something that looks like a collaborative mind map (http://etjune.brochure.examtime.com/files/2012/11/How-to-create-a-mind-map-mindmap.jpg)?


Eagleon: yeah, what if we could take research papers from known websites, and each paper would be a node? I doubt it would be possible to effectively mine each individual paper for arguments, but even having a paper represented as a node would be enough to denote that a research paper contradicts some proposed point. That could work out really nicely as a basic system!


Web of Science already has an option to create a map of how papers are linked to each other. Remember however that a reference in a paper doesn't really mean that paper #2 actually addresses paper #1's points. For example, references are also used to show the state of the art (Bla Blason et al. synthesized poly(randomene) via a 6 step route and Bla Blabla et al. synthesized iso-poly(randomdiene) using a similar method).
Title: Re: A more effective internet forum
Post by: Eagleon on September 26, 2013, 12:19:19 pm
Web of Science
Spoiler: derail (click to show/hide)
Putting prerequisites on my laptop to work on this today, should get some momentum going to have some prototypes available in that sense.
Title: Re: A more effective internet forum
Post by: Angle on September 26, 2013, 01:06:08 pm
I'm Planning on making all my stuff free and open source.
Title: Re: A more effective internet forum
Post by: Eagleon on September 26, 2013, 01:30:21 pm
I'm Planning on making all my stuff free and open source.
Hey, if you can find a way to make money off of it (maybe by looking for some capital to hire a professional designer and web developer, and then licensing the framework you've made to the people that want to use it) I would encourage you to do so. Even as a non-profit, organizing this way can actually act to send an idea to the top if it's really good - example, Wikipedia, which relies entirely on donations, still has a well-paid staff because what they're doing is so appealing to everyone.

For my idea I plan to be focusing on rather specific engineering goals to generate things we can license, and that still leaves plenty of room to bring scientific literacy to people like myself. You still deserve to make a living off of what you do if you can do it well, the question is only do you want to do this (or anything else) for a living.
Title: Re: A more effective internet forum
Post by: Angle on September 26, 2013, 07:22:33 pm
Alright, so I need to put together a proposal for a kickstarter. The way I see it, I need

1) Details on exactly what I'm trying to accomplish.

2) Background research. People who have done similar things, and the differences between what they've done and what I'll do.

3) Details on how I'll spend the money. Who I'll hire, what they'll do, etc.

You still deserve to make a living off of what you do if you can do it well, the question is only do you want to do this (or anything else) for a living.

I don't see any way to make a living off of just this project without undermining the purposes for which I do it.
Title: Re: A more effective internet forum
Post by: Eagleon on September 26, 2013, 11:12:35 pm
I don't see any way to make a living off of just this project without undermining the purposes for which I do it.
Wikipedia isn't the only wiki out there now. Once upon a time there was no Wikipedia. They developed their idea as a charity splitting off from a business, seeking donations, grants, sponsorship, merchandising, etc, and they make enough from that to support their admittedly small staff with competitive salaries (or the appeal of maintaining it for less keeps their employees there - also possible) It's sparked hundreds of other similar systems, shaping and boosting interest for the internet as a source of information on a global scale.

(It's a little ironic I got all of this information from Wikipedia)

Not saying you have a Wiki-level concept on your hands with this project alone (I don't know either way, I think it's awesome), but it can only do you good to think about how you can feed yourself and help save the world, since those are the ideas that typically run the furthest.
---
Still working on my implementation. Are there libraries anyone else is familiar with that I could base the node/connection model on? Mostly to avoid confusion as it's inevitably ported away from Java.

Right now I'm working on the assumption that the data contained in each node is expected to be asked to split at any time into new nodes that are composed of more refined bits of content (for instance, part of a conversation splitting off because someone has specified that particular portion of it as a target for their argument), so I've made an abstract 'content' class that expects this to be implemented for whatever data it contains.

Nodes contain Content-type objects, the Content class is subclassed into things like Message and Hyperlink and Youtube objects, and those would be converted into references pointing to parts of a database or assets off-site. Later we can store in the connection objects how the parent and its child node are related, so that we can work that information into the UI.

I could introduce something strange from one of my own projects and handle connections as Content. That way you could point an argument at an argument in your interface, and it wouldn't break anything - just generate a new node between all three. If you're sufficiently boggled, think of each connection as a special type of node containing data pointing to and from two other nodes - now add one more connection pointing at it. You now have something like a transistor junction. I don't know how useful that would be for this, but  regardless, since everything is very abstract right now, it'd be easy to work out two or three versions with different features and topology.

Also, if all of this is alternately gibberish or clueless, I apologize - school is expensive :P
Title: Re: A more effective internet forum
Post by: Sensei on September 27, 2013, 03:26:02 am
I've seen a forum that worked this way... while it didn't help that it was all in one narrow column of posts, putting replies to specific posts next to those posts made it nigh impossible to tell in what order the conversation happened without carefully scrutinizing each and every post date. Furthermore, it made it difficult to discern new posts from old posts without carefully reading each.
Title: Re: A more effective internet forum
Post by: Anvilfolk on September 27, 2013, 09:08:49 am
I've seen a forum that worked this way... while it didn't help that it was all in one narrow column of posts, putting replies to specific posts next to those posts made it nigh impossible to tell in what order the conversation happened without carefully scrutinizing each and every post date. Furthermore, it made it difficult to discern new posts from old posts without carefully reading each.

Sounds like a kind of mailing list. I've seen those systems for tech support stuff and older websites. Not a big fan of it, and definitely an example of what to try to avoid, although a debate structure IS going to be very similar.

---

Eagleon: I wouldn't bother too much with content. I think people can warm up to the idea that they're no longer writing posts, but simply proposing small, indivisible arguments for a specific purpose (to add an attack to an argument they disagree with).

---

Alright, so I need to put together a proposal for a kickstarter. The way I see it, I need

1) Details on exactly what I'm trying to accomplish.

2) Background research. People who have done similar things, and the differences between what they've done and what I'll do.


Angle: I believe whether my research group ends up participating more directly or not, !!SCIENCE!! is meant to be used (for !!FUN!! ?), so I would again suggest you read our papers on the subject because they seem to be so close to what you want to achieve. Some of the theory can be easily adapted and fine-tuned to different purposes, but some of it can't. The articles also mention quite a few other similar systems, developed within academia or just plain websites, like www.debate.org. Either way, it's probably worth a read to help with both these questions.

I would just say this: most systems essentially let people vote on who they want to win. That's it. It's simple, and it uses the notion of crowd support, but it does not take into account the logic behind the debate. The system you're proposing has an underlying structure that represents logic that you can exploit to obtain results to debates. SAA gives you outcomes of debates that tell you the degree to which each and every argument is accepted. It's not just "side A wins and side B loses". Some arguments from A might be accepted, some might not, some might be accepted so-so... and this notion of acceptance is based on both crowd support and from applying logic to the debate's structure. It's not some random idea that comes from a random algorithm - we've studied it, understood how it behaves and proved a series of desirable properties (like there is always one solution, and there's at most one solution to the debate). No point in debating if everyone can always be right because there are infinite solutions.


Also, quite a few of the suggestions in this thread propose dividing arguments into types, attacks into types, and essentially trying to classify everything into its own little niche that interacts differently with all the other little niches. While this could definitely be interesting, and might ultimately be what you want, I would warn again that simple systems work best and are easier to use. Unless you can absolutely justify the need for them, by having a specific debate instance where that feature is needed to make sense of it, they will just add confusion to the mix.


3) Details on how I'll spend the money. Who I'll hire, what they'll do, etc.
This is very important. You need someone with qualifications that he has demonstrated. I would say that something as big as what you're envisioning can hardly be done by someone who is learning to code or has some basic notions. We're talking about something that, if done properly, COULD revolutionise the way people interact over the Internet. We're talking about a system that needs to support most platforms, from webforums, social networks, all the way down to apps on most mobile devices. Ideally, arguments could be shared between most of these systems.


You still deserve to make a living off of what you do if you can do it well, the question is only do you want to do this (or anything else) for a living.

I don't see any way to make a living off of just this project without undermining the purposes for which I do it.

I would say you'd want monetisation to be a side-effect of whatever this ends up, like Google making money off ads, but not really having things you can buy off them. I would really love to see something like this be free for use. If it's pay-to-use, you'll massively limit the potential userbase (almost the entire interwebs?).
Title: Re: A more effective internet forum
Post by: Eagleon on September 27, 2013, 10:12:44 am
I'm not bothering at all with content (lower-case) at the moment. It's all abstract and generic to make it fit with whatever form of data the final implementation uses in its database. This is a template project, because like I said, I suspect that it will be ported into whatever language you do end up using. I know I wouldn't want to use a forum that required Java, no matter how fancy and brilliant.

It doesn't even store text - that would be done by a BoxNode with a TextContent subclass, or if there were a message title or something, a PostContent. Then you'd ask the PostContent to give your UI nicely formatted chunks of data. Did I mention that I hate UI work? I'm not the one you want to work on UI, haha. At the same time, it allows the advanced UI presentation this project needs rather painlessly (I think).

I needed to name the class something, the nodes in the system contain it, therefore Content. Data sounds just as arbitrary to me, particularly if Connections are going to be based off of that type to take advantage of the splitting behavior it implements, but maybe it's better because they also need to be outside of Nodes. Semantics, blah.

I need to make a simple demo project that uses it for full effect, but if anyone is interested in this weird little stub library that does nothing, I can upload what I've completed tonight. I'm not exactly a newbie, I've worked on my own projects doing my own thing for six years off and on (mostly off), but I haven't actually shown my work to anyone but my roommate outside of an intro-Java class way back when I started. I'm a bit nervous about that fact, hehe.
Title: Re: A more effective internet forum
Post by: Anvilfolk on September 27, 2013, 10:23:59 am
GitHub might be a nice solution for that. Just make the code available? Although there's always the "problem" that you might get more contributors, heheheh :)
Title: Re: A more effective internet forum
Post by: Angle on September 27, 2013, 11:34:18 am
Yes, I read your paper, and I most certainly will end up using some of the stuff from it. The math on the voting system especially looks useful.

Also, what do you all think a good name for this project would be? I was thinking something Greek about discussion and debate.
Title: Re: A more effective internet forum
Post by: Eagleon on September 27, 2013, 12:10:22 pm
What about Point? You're pointing at bits of things, and there's points, and geometry has points, which was invented by Plato probably *trollface*
(it's what I've been using for lack of something better)

Rather than double posting - was distracted by family and a potential business opportunity, haven't lost interest, just time crunch :/
Title: Re: A more effective internet forum
Post by: Angle on October 04, 2013, 03:00:08 pm
I've begun checking various hosting and programming services, to see how well they can meet my needs and how much they'd charge for their services. Currently, I've checked out iPage (http://www.ipage.com/ipage/index.html) and am now checking out Quality Web Programming (http://www.quality-web-programming.com/) to see if they meet my programming needs. After this, I'll check a few different competitors for each, to see how they compare. After that, I'm going to begin putting together my kickstarter. Is there any other information you think I should put on the kickstarter? Do you have any suggestions as to whom I hire for my programming?
Title: Re: A more effective internet forum
Post by: tompliss on October 04, 2013, 03:55:07 pm
Angle, if you need a mock-up or an testing prototype, tell me.
I am currently looking for a "real" job, but got my diploma last month, and searching the web and writing cover letters all day long is boring ;)
Title: Re: A more effective internet forum
Post by: Angle on October 05, 2013, 08:56:39 pm
Angle, if you need a mock-up or an testing prototype, tell me.
I am currently looking for a "real" job, but got my diploma last month, and searching the web and writing cover letters all day long is boring ;)

Yes, that would be excellent. In other news, however, I'm having second thoughts about managing the kickstarter. I'm afraid I have little to no experience with that sort of thing. I was going to do it myself mainly because I figured there was no one else who would, but now I wonder if maybe I should seek someone else out to do it.
Title: Re: A more effective internet forum
Post by: tompliss on October 06, 2013, 04:03:08 am
I think I read about that here, in the "Game programmers and designers enroll here. " topic (http://www.bay12forums.com/smf/index.php?topic=130800.0) :
I have a good deal of success consulting on Kickstarters as well as traditional financing.
But yeah, you shouldn't try a kickstarter without reading about it, and seeking advice first.
Title: Re: A more effective internet forum
Post by: BoboJack on October 06, 2013, 03:47:15 pm
I've had a similar idea some months ago and I'm done with the main programming stuff now I think.

(https://dl.dropboxusercontent.com/u/86860124/Selection_024.png)
Reference: https://dl.dropboxusercontent.com/u/86860124/enviromental.png (https://dl.dropboxusercontent.com/u/86860124/enviromental.png)
The argument of this picture is completely random and I just wrote down whatever I came up with, it doesn't reflect my opinion.
Oh yeah right, the links are directional, but I've swapped the arrows with the plus and minus signs some days ago and forgot about the directions. oops.
There is actually the possibility to make connections of the kind "only A and B together, imply C"/ A AND B => C
They are supposed to be reflected by the colors of the links, but I haven't really put time into that because I'm unsure about the design.

Right now everything is represented in a big mind map you can wander through, clicking on nodes moves the camera, you can also decide which parts of the mind map you want to currently see.

The back-end is written in Haskell and the front-end in coffee-script. PostgreSQL is the database.

I'd like to license everything under a free software license, BSD3 for example, but I'm not sure yet.

I'm struggling a lot with the design, which forced me to slow down on this project.
Everything should be easy to change and flexible, except the stupid SQL database and the queries. I plan on replacing these with combinator based sql some day. I've already tried mongoDB, it didn't fit this project, because the data is inherently relational.

I've not yet read the whole thread, but I will later.

I'd be happy to throw my stuff together with your ideas and I don't have any problem with giving away authority over my work.
I acknowledge that our ideas have very noticeable differences but I believe we can overcome these and work together.
Title: Re: A more effective internet forum
Post by: Angle on October 06, 2013, 04:07:20 pm
This is great! Do you have a site put together to test this on?
Title: Re: A more effective internet forum
Post by: BoboJack on October 06, 2013, 04:40:31 pm
Its currently only running on my computer.
I don't want to pay 6€/month.  :(
But its a real webserver running on my computer.
You can look at it today, as long as I'm awake.
http://89.246.215.197:8000/ (http://89.246.215.197:8000/)
The website is very confusing since I have not spend any time on design, but you should be able to type "climate" into the search bar and hit enter. You should see the map then. (The search capabilities are similar to Wikipedia, but somehow the suggestions don't pop up correctly in firefox for me.)
You can also try this link: it'll link you to the "climate argument" http://89.246.215.197:8000/?id=39 (http://89.246.215.197:8000/?id=39)

My ip changes every day.

edit: I'm going to bed now. I'll probably start the server,after waking up, 7. October 12 CEST and let it run for the day, so you people can have a look.
89.246.207.161:8000?id=39 (http://89.246.207.161:8000?id=39)
Title: Re: A more effective internet forum
Post by: Angle on October 06, 2013, 06:53:49 pm
You might want to change your user interface - I'd suggest adopting something like this (http://img.ie/wmum1.gif) fro the general view, and when someone clicks on a post, they get a view like this (http://img.ie/images/m8krc.png). Also, allow posts to be targeted at multiple other posts, and maybe make the general view more directional - Instead of spreading in all directions, make it travel downwards.
Title: Re: A more effective internet forum
Post by: BoboJack on October 07, 2013, 04:19:38 am
All posts can already refer to all other posts.
You can not make the view more directional if all posts can refer to all other posts.
Its not a tree anymore if all the leaves are directly connected to the root.
You can take a look at some generic layouts here:
https://github.com/mbostock/d3/wiki/Layouts (https://github.com/mbostock/d3/wiki/Layouts)

Quote
and when someone clicks on a post, they get a view like this
I'll take a look at that. I'm not sure if/how one would switch back to the node overview.
There is a total lack of "how I imagine the user experience to be like" on my side.
Of course I've got a basic idea, but the actual design of which button does what and how is very unclear to me.
But the little pictures already help!
Also why exactly?

Services like iPage and "Quality Web Programming" are probably not what you search for.
iPage doesn't offer the possibility to run your own server software. Take a look at this https://www.heroku.com/ (https://www.heroku.com/)
Quality Web Programming, they offer prices based on how many "pages" you have and only do php programming.
You don't want a regular website. You want a webapp, were everything could be on one page, stuff being loaded dynamically as needed.

I'd like to point out that I pretty much want it to be possible to use the website without reading any long text.
There could be additional information for every node and for the connections (I played around with that, the code is already able to)
but large texts don't work on this kinda mindmap and the whole thing seems to become senseless if the texts are so long that you can not have an overview about an opinion without reading alot, you could just read wikipedia instead.

I also started with the idea of helping with discussions, but right now I feel like there isn't even a place to even see the connection between propositions. There are a lot of ways to discuss, but there is no collective database on how people believe opinions should be linked.
Kinda totally different maybe, idk.
With the stuff I've done so far, we could also just do 2 websites. or so. you know, one being focused on disucssing(but that kinda already exists: all the stuff anvilfolk points out in his paper + http://www.discourse.org/ (http://www.discourse.org/))
the other one being focused on knowledge representation.

edit:
oh and I'm also totally in for everything Anvilfolk said.
Title: Re: A more effective internet forum
Post by: Eagleon on October 07, 2013, 11:27:34 am
Sorry I haven't been able to contribute, the shutdown has me laid off.
All posts can already refer to all other posts.
You can not make the view more directional if all posts can refer to all other posts.
Its not a tree anymore if all the leaves are directly connected to the root.
You can take a look at some generic layouts here:
What you can do is decide on a portion of the graph that is a tree. You do this by marching outwards from a root node (whatever your camera is focused on) along edges until you detect recursion (build up references to nodes in a collection, compare each to the next deeper set of connections) The problem is more that this becomes computationally expensive when you're handling multiple users in a forum with hundreds, if not hundreds of thousands of chains and loops of arguments in memory at once. Meaning we might end up needing a more complicated but optimized client-server interaction so that the user can crunch some of this himself.

On the plus side, that leads to the obvious benefits of letting the userbase improve the client interface themselves to their liking.

The more I think about this, the more I think it could resemble a true neural network in complexity. Particularly if it could be interlinked with unrelated forums, it would probably become quite complicated very quickly if people were willing to use it. It's actually a little creepy when I think "Well, what if this is just a natural extension of that underlying thought pattern into our social interactions?" I get a little zoomy, thinking about what it might build up to.
I'd like to point out that I pretty much want it to be possible to use the website without reading any long text.
There could be additional information for every node and for the connections (I played around with that, the code is already able to)
but large texts don't work on this kinda mindmap and the whole thing seems to become senseless if the texts are so long that you can not have an overview about an opinion without reading alot, you could just read wikipedia instead.

I also started with the idea of helping with discussions, but right now I feel like there isn't even a place to even see the connection between propositions. There are a lot of ways to discuss, but there is no collective database on how people believe opinions should be linked.
Kinda totally different maybe, idk.
These are both reasons why I think we should leave that up to the people responding - let them dissect opening posts any way they like, people instinctually recognize arguments that they perceive in text (or video, audio, whatever), so if we let them split a conversation off in this way with a clear representation of what's being done and drawn from in the individual post (let the forum-like conversation go normally, and allow users to decide when to send out these special branched arguments) I think things will naturally begin to head off into more specific and pointed conversation as it's used.

This kind of points at another option for regulation of discussion - a currency system, obtained through replying to posts and climbing a 'ladder' of sorts in the network, where one only gains the ability to post a root topic in the forum by participating in discussion. Other user's votes would influence this in a bell curve of relevance, where votes at the bottom would mean quite a bit less for the user's currency rating than the ones in the middle, but the same as the ones on the top. This might eliminate troll-votes, make spam nearly irrelevant by allowing the full usergroup to slam their accounts with poor ratings, and reduce forum bias from both those that have gained the ability to start a discussion and the people that only post one thing and then leave.

And yes, I am thinking microtransactions :P The idea is probably incredibly dangerous for the bias it introduces, so I'm not genuinely thrilled by the idea, but it might be inevitable if for-profit industry adopts the model.
Title: Re: A more effective internet forum
Post by: BoboJack on October 07, 2013, 02:01:21 pm
Quote
What you can do is decide on a portion of the graph that is a tree. You do this by marching outwards from a root node (whatever your camera is focused on) along edges until you detect recursion (build up references to nodes in a collection, compare each to the next deeper set of connections)
I don't understand that at all.
There doesn't even have to exist a portion of the graph that is a tree. The only way to display the graph as a tree is by leaving out connections, but why would I do that?

Quote
currency system
Because of these mechanics a lot of stack overflows legit questions get closed.
trolls/spam get downvoted and maybe flagged as spam, and bots can be kept out by captchas

Quote
root topic
Sounds complicated and restrictive.
Have you looked at the papers Anvilfolk supplied?
The idea described there is simpler and more general.
People could connect everything to everything, just like they do in real life.
And through their voting, the best assertions can be shown to the user.
No annoying long search for the user, no need to read a thread.

Quote
microtransactions
I wouldn't want to be a part of that.
Title: Re: A more effective internet forum
Post by: Eagleon on October 07, 2013, 03:15:22 pm
Quote
What you can do is decide on a portion of the graph that is a tree. You do this by marching outwards from a root node (whatever your camera is focused on) along edges until you detect recursion (build up references to nodes in a collection, compare each to the next deeper set of connections)
I don't understand that at all.
There doesn't even have to exist a portion of the graph that is a tree. The only way to display the graph as a tree is by leaving out connections, but why would I do that?
To enable a UI that isn't a mind-map. That sort of visualization isn't exactly ideal to display larger blocks of text, as you've discovered, but it's inevitable that people are going to want to make more complicated initial posts as their ideas are not yet refined (like we're doing now - you're supplying some question about the clarity of my writing) so you do need one. You could probably do it by clustering the conversation together in box form and fitting argument lines around them, but then you have to deal with the nodes that are more distant possibly overlapping.

Human language presents multiple arguments and nested levels of meaning, because we're good at picking that sort of thing apart and focusing on one piece of perceived information, so it's strange to expect users to be perfect at refining each post they make into individual, atomic attacks, rather than letting others with different views and experiences do that for them.
Quote
currency system
Because of these mechanics a lot of stack overflows legit questions get closed.
trolls/spam get downvoted and maybe flagged as spam, and bots can be kept out by captchas
No doubt, there are potential problems. It's just brainstorming. What I think might be a problem, specifically, with a random argument graph vs a restricted opinionbase like I described, is that users that have no basis or understanding to question an argument will do so whenever they want, vs. whenever it's warranted by their level of contribution. Of course, other users will downvote what they see as destructive to the conversation, but only if they're motivated to spend the time doing so - if you have a great, devoted memberbase this might be common, but the idea of fair moderation on a network of arguments implies that moderators have to read each link to form a less biased opinion, which would become increasingly difficult as it got more complex - which means artificial limitations on the complexity of an argument are sure (in my mind) to arise.

Coming from the neuroscience angle, our brains also function off of a currency system. Each cell requires an intake of energy that biases the whole system towards useful behavior in the overall network. If they aren't useful, they eventually become starved of neurotransmitter rewards, and either repurpose towards a more useful function or atrophy.
Quote
root topic
Sounds complicated and restrictive.
Have you looked at the papers Anvilfolk supplied?
The idea described there is simpler and more general.
People could connect everything to everything, just like they do in real life.
And through their voting, the best assertions can be shown to the user.
No annoying long search for the user, no need to read a thread.
To be clear I'm not proposing any restrictions on the specific content of arguments, and off-topic ramblings would form their own hierarchial 'root' nodes. Additionally, as long as the information about the structure exists, it's fairly wasteful programmatically to discard it, as additional mathematics can be performed on hierarchial networks that are impossible on random ones. All it requires to keep this information around is a scaling variable for the entire network that increases as it grows new unique levels, and a single integer per node representing what level in the hierarchy they belong to and which levels in the hierarchy are their 'superiors'.

Actually I'm not proposing any changes to the core of this project, just branches that I'd like to explore in the future - obviously I can't tell you what to develop, I'm just sharing some excitement over this from a network/information theory nerd's point of view. But if offtopic posts were valuable and extensively explored, they would probably be upvoted to a higher level anyway, as they'd receive more traffic from users exploring and posting in that particular part of the graph.

I'll go and read Anvil's papers, but I can't promise that I'd understand them. I'm informally and incompletely trained, and I acknowledge that openly. Mostly my point is that we can consider other aspects and divisions of network theory to apply to this system, and that's the appeal it has to me.
Quote
microtransactions
I wouldn't want to be a part of that.
You don't have to be :P I'm not really interested either, or if I were, I'd want it to be in the position of a non-profit with ethical oversight determining what it got spent on. But devil's advocate: If this is developed into a codebase to be used in multiple forums, you'd need to patent the ideas here to prevent such a use, and defend it vigorously against imitators.
Title: Re: A more effective internet forum
Post by: Anvilfolk on October 07, 2013, 03:54:25 pm
Sorry I've been out of the discussion for a little bit - have been talking to people from this thread about the possibility of pursuing this, which is great :)

That implementation is pretty kickass! Like I said through PM, it has a ton of potential! It's also really interesting that it has a backend with the data, and then a separate front-end. This should be fairly critical to the system we've been thinking of. You only implement the system once, and then implement lightweight interfaces for, say, Facebook, different forums, stand-alone applications, mobile applications, etc.


Eagleon, there's no worry in creating the Singularity using this, it eventually just becomes a system of equations :) Nodes don't really do any computation!

I guess the proposal here is, in general, give the ability to formally debate things to communities that are open to it. If the community isn't open to it, because it lets in too many trolls, or because people don't really care about it, it's not going to work. The community is its own moderator, through the means of voting.

Either way, it should be fairly straightforward theory-wise to make sense of having people with heavier weights in their votes. This allows for the system of currency, reputation, credibility, reliability, or positive/negative feedback on users. That could be an interesting feature for more closed communities, although it could put newer members of a community at a disadvantage... And it adds overhead.

Spoiler: Overhead (click to show/hide)

Moderators can simply be added application-side (as opposed to theory-side) by allowing them to add or remove nodes/attacks, rather than just vote.

I still feel that you don't need to lose the forum structure, or whatever underlying, typically hierarchical structure. It should be just as easy (or easier) to navigate as a forum like this one. That information simply isn't used in computation of debate outcomes... but it's there, as meta-data. Certain posts could be identified as being "first posts" or "debate starting posts" within a subforum of a forum. There's no problem with that. Once you get to within a thread, however, you're in graph country. You can still try to display things with a sense of time, by highlighting new posts since your last visit, or by having older posts in the centre, newer posts in the periphery, or try to maintain similarity with a thread by having newer posts nearer the bottom of the screen, if at all possible.

But again, that becomes meta-data, maybe secondary to the fact that you can now reason with other people in a more formal way, in a system that tells you who ends up being right or wrong. Heck, it goes deeper than that. Each node/argument is given a strength, so that you can have any number of participants proposing any number of arguments, and each of those arguments, not sides or people, has a degree of acceptability, so to speak, calculated from votes and from attacks (and votes on the attackers, and so on almost recursively).


The fact that we are writing huge amounts of text here is due to the fact that we only have the forum structure. We are forced to, in text, reply to everything that's been said before, and, in text, explain why it attacks or doesn't attack another point somebody else made. It makes everything more verbose. Hopefully people will get used to using smaller, to-the-point sentences. Instead of replying with one post, they'd reply with maybe half a dozen arguments.
Title: Re: A more effective internet forum
Post by: Eagleon on October 07, 2013, 04:24:56 pm
Eagleon, there's no worry in creating the Singularity using this, it eventually just becomes a system of equations :) Nodes don't really do any computation!
Ah, but people do ;) And if they're using this network properly, they'd be extending their knowledge into a system that is readable and processable, and useable by people. I've always said that neuroprosthetics were a better solution than trying to understand our own motivations and behavior without bias to create a new intelligence, and that the internet could be considered one, albeit quite a bit less efficient than we'd like. If you made this hierarchial (which the internet and the brain are both theorized to be) they might fill that role quite nicely.
I guess the proposal here is, in general, give the ability to formally debate things to communities that are open to it. If the community isn't open to it, because it lets in too many trolls, or because people don't really care about it, it's not going to work. The community is its own moderator, through the means of voting.
Absolutely, but in the meantime you have apathy and lack of free time by users threatening the stability when trolling and spam happens, and no one is there to downvote it. I know I don't actively use 'thumbs up' or whatnot often - I'd rather post a response, because it lets me present new points of interest in full visibility to the topic at hand. Giving a motivation of some sort would improve that and get more people voting, vs spewing nonsense *coughEagleoncough*
Spoiler: Overhead (click to show/hide)
(Edited for more explanation) -This is the purpose of the hierarchy in the implementation I suggested - stagnant debates are, by the structure of this forum, going to be the ones in the middle. They get trimmed the most, so the ones that survive are going to be very strong, and pretty much universal. As you near the top, you get into novelization land, where people want to figure out what they're talking about before delving into more detailed debate. You -don't- want those to disappear, because they represent the basis for the entire discussion. The upper-most ones are going to have lively new discussion branching outwards if anyone sees something new and important to discuss on that level, and will support and reenforce the most amount of nodes, so they should be the rarest and least likely to disappear. The lower levels will be getting the more refined, pointed arguments, which is a good place to demonstrate your core knowledge of a subject and build a reputation anyway. Altogether you get rewarded most for improving the core understanding of the next higher argument. But maybe not.
I still feel that you don't need to lose the forum structure, or whatever underlying, typically hierarchical structure. It should be just as easy (or easier) to navigate as a forum like this one. That information simply isn't used in computation of debate outcomes... but it's there, as meta-data. Certain posts could be identified as being "first posts" or "debate starting posts" within a subforum of a forum. There's no problem with that. Once you get to within a thread, however, you're in graph country. You can still try to display things with a sense of time, by highlighting new posts since your last visit, or by having older posts in the centre, newer posts in the periphery, or try to maintain similarity with a thread by having newer posts nearer the bottom of the screen, if at all possible.

But again, that becomes meta-data, maybe secondary to the fact that you can now reason with other people in a more formal way, in a system that tells you who ends up being right or wrong. Heck, it goes deeper than that. Each node/argument is given a strength, so that you can have any number of participants proposing any number of arguments, and each of those arguments, not sides or people, has a degree of acceptability, so to speak, calculated from votes and from attacks (and votes on the attackers, and so on almost recursively).

The fact that we are writing huge amounts of text here is due to the fact that we only have the forum structure. We are forced to, in text, reply to everything that's been said before, and, in text, explain why it attacks or doesn't attack another point somebody else made. It makes everything more verbose. Hopefully people will get used to using smaller, to-the-point sentences. Instead of replying with one post, they'd reply with maybe half a dozen arguments.
Verbosity serves a purpose in communication. We are not naturally inclined to limit it. I appreciate your work (from my very basic understanding of it) on an informational level, I love things like that which break down a system into clearly understandable parts that fit together nicely, but I think it's unwise to ignore the nature of the beast that's using a system like this and expect people to speak in crystal, mechanical clarity (following messy tangles of networked parts that appear completely unorganized), when they have flowers for brains ;)

In any case, we're still at a level where our options for this are not limited by feature fitting towards a specific application, all I can hope to contribute is a nod towards the interrelated aspects of UI work and the gravity of discarding the raw information it could take advantage of down the line.
Title: Re: A more effective internet forum
Post by: Antsan on October 07, 2013, 05:09:33 pm
I guess this won't help, as most people don't do Common Lisp and you already have got something, but either way:
I have a graph library available and I would like the chance to see which features are missing.
If you use quicklisp, it is available there as "fgraph".
If you just wanna take a look, it is on bitbucket.
https://bitbucket.org/thomas_bartscher/cl-fgraph (https://bitbucket.org/thomas_bartscher/cl-fgraph)

Quote
What you can do is decide on a portion of the graph that is a tree. You do this by marching outwards from a root node (whatever your camera is focused on) along edges until you detect recursion (build up references to nodes in a collection, compare each to the next deeper set of connections)
I don't understand that at all.
There doesn't even have to exist a portion of the graph that is a tree. The only way to display the graph as a tree is by leaving out connections, but why would I do that?
Do a breadth first traversal of the graph and collect the edges and nodes you traverse into a new graph. Viola, you have a portion of the graph that is a tree. Of course it does not include all connections between the found nodes, but for displaying purposes you don't need those available all the time. Display all the edges the node your mouse is over are incident to.
If you want to cut down on computation down, stop the traversal at a specified depth or maybe after you collected a certain number of nodes.

If you wanna get fancy, try to come up with some measures that describe the distance between two nodes and don't do a breadth first traversal but replace the queue in the bft with a priority queue.
Maybe provide different measures so people can have different views on the structure of the discussion.

Either way, it should be fairly straightforward theory-wise to make sense of having people with heavier weights in their votes.
Thought to that: Use a network of trust to determine the weight of votes. Not that I know how to do that, and I guess it needs a lot more space and time.
Quote
And it adds overhead.

Quote
I still feel that you don't need to lose the forum structure, or whatever underlying, typically hierarchical structure. It should be just as easy (or easier) to navigate as a forum like this one. That information simply isn't used in computation of debate outcomes... but it's there, as meta-data. Certain posts could be identified as being "first posts" or "debate starting posts" within a subforum of a forum. There's no problem with that.
Uhm, I am not quite sure what you are proposing, but it seems backwards in relation to what I thought one would do.
Any post has a time-stamp/version history (yeah, let's get fancy). If you want to see how a certain thread has evolved, choose a starting point, an end point, a heuristic to measure distance between nodes and then run a path-finding algorithm. The output of that algorithm is a thread that can be viewed by the user. It is implicit in the graph and the heuristic, but it needn't be anywhere explicitly.
Title: Re: A more effective internet forum
Post by: Eagleon on October 07, 2013, 07:48:14 pm
On closer examination of centrality algos and what information they require to function I realized that what I'm suggesting would probably only be useful to me. That means I'm the only person that should be putting it in there, haha. This is another reason I'm reluctant to contribute - I tend to go off on half-baked tangents that may or may not pay off. Sorry guys.
Title: Re: A more effective internet forum
Post by: Anvilfolk on October 07, 2013, 10:06:33 pm
On closer examination of centrality algos and what information they require to function I realized that what I'm suggesting would probably only be useful to me. That means I'm the only person that should be putting it in there, haha. This is another reason I'm reluctant to contribute - I tend to go off on half-baked tangents that may or may not pay off. Sorry guys.

Are you kidding?!

You almost just described how research is done! Heck, It happens all the time that people are solving a problem that's already been solved only because it's termed differently. I didn't know about this notion of graph centrality, and but a quick look at the Wikipedia page tells me it'd be a great way to display an argument graph. One of many, perhaps, but absolutely relevant! These could simply be visualisation options: one based on time, another on importance/centrality, perhaps another based on how credible arguments end up being, etc etc.

I will say that speaking over the forum can get totally confusing, and I've been having a hard time figuring out exactly what you mean. It seems I've been similarly confusing, judging by Antsan's post, so we should definitely try to be clearer about what we mean.

------

Regarding the dangers of verbosity in the system we've been talking about: there's always a set of assumptions whenever you start any project. Ours has definitely been that there's an unfulfilled need for more serious, structured debate somewhere on the Internet. People are getting tired of meaningless interactions. I don't care what you ate for breakfast, or what it looks like. I would, however, like to engage in a lively debate about beliefs or whatever technical issues I happen to know. If there's an easy system that allows me to make my points, and at the end tells me whether what I'm saying makes social sense (within the context in which I have spoken/written), then I'd feel that's pretty great. Yes, even if I end up being totally wrong.

Hell, we could be deciding the system we should be building with the system we should be building! Which I guess is part of why it's important that it exists!

------

Big explanation alert

Regarding structure, what I mean is this. As a first step, imagine the Bay12 forums, EXACTLY as they are now. Now, add in another BBCode tag, like:

Code: [Select]
[argument attacks="argument1, argument5, argument115"]I think the existence of a debating system at Bay12 would be really cool[/argument]
So you could explicitly define, in your text, what you think is an important point for the discussion, or an argument. You also tell it what other arguments people have previously proposed it attacks. Every point made, like every post, gets its own ID, that people can reference - just like using quoting for posts!

Every time someone posts a new argument, the "outcome" of a debate is calculated. All points are highlighted, or marked, with a colour, anywhere in the spectrum from green to red. Green means fully accepted, i.e., acceptability 1, and red means totally refuted, i.e. acceptability 0. There's the entire spectrum of colour in between, or acceptability in [0, 1], for each argument to take. So at the end of this thread, we've have a fairly obvious clue of what Bay12 prefers in general, and we'd get a pretty clear picture of the kind of system that would work best for Bay12.

You keep the forum-like structure, with subforums and subsubforums and threads and everything. For the algorithm and system that reasons about arguments and tells you whether they end up being acceptable or not, that does not matter. That's why I mean it's a form of "meta-data", if you're thinking in terms of the argumentation system only.



Now get rid of the very strict forum situation. You could still have the forum and subforums, indicating the types of subjects debated. But each thread would be a graph instead of a list of posts. For instance, instead of making a post this long, I'd maybe cut it up, and make each paragraph of so an argument. Since each argument is supposed to be made to counter arguments other people have made, I'd probably declare a bunch of attacks as well. Instead of each argument within a thread being shown one after the other, like here, you'd be able to visualise a thread with a number of different "views", like some of the stuff Eagleon has been suggesting. If you want to see newer arguments, perhaps try to find a way to display the graph where the higher the argument is, the earlier it was posted. Perhaps you're interested in getting the gist of a discussion: then you'd use centrality, like Eagleon said. Or perhaps you're full of yourself and want to see your impact on the debate, and you'd get a view of your arguments in the middle, and the arguments they affect the most around, and so forth. There's many options!

One of the important bits of all this, is that underneath all of this stuff that's got to do with "how do I find a debate I want to engage in" (I usually only visit Other Games and Creative Projects, and avoid certain topics), or "how can I see/visually organise a debate", is a graph. And that graph does not need to be independent from thread to thread, which means one of our arguments could be attacked by something someone said in another thread. Heck, it could be attacked by a point made by someone in a NY Times online article, if they adopted the system!

I don't think we should visualise the entire Bay12 forum as a plain graph. It'd be IMPOSSIBLE to figure anything out. But forums, subforums and threads can become meta-data helping you get to where you want to be, and they can be visual cues for the graph visualisation. Like a nice box around all the arguments proposed in this particular thread. You might get some incoming and outgoing arrows, which is fine. They tell you there's another topic talking about similar issues! You might want to follow that arrow into another box and participate there too!

What you don't want to do is make any arrows disappear because then you can't really make sense of why the debate outcome turned out that way. The only reason you'd want to make arrows/attacks disappear is if they were super duper downvoted and they don't really have an impact, or if they are removed by a moderator.


Sorry for the long forum post, but I hope this gives you a better, more concrete idea of the kind of system we've been thinking about.
Title: Re: A more effective internet forum
Post by: Eagleon on October 07, 2013, 11:17:07 pm
Regarding the dangers of verbosity in the system we've been talking about: there's always a set of assumptions whenever you start any project. Ours has definitely been that there's an unfulfilled need for more serious, structured debate somewhere on the Internet. People are getting tired of meaningless interactions. I don't care what you ate for breakfast, or what it looks like. I would, however, like to engage in a lively debate about beliefs or whatever technical issues I happen to know. If there's an easy system that allows me to make my points, and at the end tells me whether what I'm saying makes social sense (within the context in which I have spoken/written), then I'd feel that's pretty great. Yes, even if I end up being totally wrong.

Hell, we could be deciding the system we should be building with the system we should be building! Which I guess is part of why it's important that it exists!
I tend to agree, especially since it's much simpler than pushing for what I want out of it. Still, I wish I had a formal background in programming this stuff so that I could tangent a little better, haha. If nothing else, I still think I'm right about letting users fragment a composite argument themselves, rather than requiring them to make precise ones to begin with and punishing them if they don't. I'll take a crack at the basic model (no fragmentation, simple directed graph, a separate visualization from BoboJack's) again tonight/tomorrow, I've brushed up on an unrelated project and my programming juices are flowing nicely.
What you don't want to do is make any arrows disappear because then you can't really make sense of why the debate outcome turned out that way. The only reason you'd want to make arrows/attacks disappear is if they were super duper downvoted and they don't really have an impact, or if they are removed by a moderator.
Question - if you allow for removal of arguments, what do you do about arguments that have been orphaned into their own little isolated graph? If you make attacks disappear this way through user action, it could happen quite frequently, no matter how high you set the threshold to destroy them. Would those nodes just disappear as well? Any time I hear or talk about disappearing nodes/edges through user moderation I kind of cringe for this reason - if there's a faulty argument/attack I think it should be left alone with the arguments against it left intact, or at least simply hidden, so that people don't keep making it and making more orphan networks.
Title: Re: A more effective internet forum
Post by: Antsan on October 08, 2013, 03:44:48 am
I don't think we should visualise the entire Bay12 forum as a plain graph. It'd be IMPOSSIBLE to figure anything out. But forums, subforums and threads can become meta-data helping you get to where you want to be, and they can be visual cues for the graph visualisation. Like a nice box around all the arguments proposed in this particular thread. You might get some incoming and outgoing arrows, which is fine. They tell you there's another topic talking about similar issues! You might want to follow that arrow into another box and participate there too!
That makes sense!

Quote
What you don't want to do is make any arrows disappear because then you can't really make sense of why the debate outcome turned out that way. The only reason you'd want to make arrows/attacks disappear is if they were super duper downvoted and they don't really have an impact, or if they are removed by a moderator.
I think that views that do not display all edges in a given induced graph could be very useful - maybe you only wanna see how arguments relate to a certain post or you can't figure out what's going on and you need to get rid of some edges, so you want to find a planar subgraph to display or cut down the number of edges per node to some maximum.
If the displayed graph gets recalculated while browsing the missing edges aren't that important - the user will find those while exploring. Missing edges can be indicated in some way.


Question - if you allow for removal of arguments, what do you do about arguments that have been orphaned into their own little isolated graph? If you make attacks disappear this way through user action, it could happen quite frequently, no matter how high you set the threshold to destroy them. Would those nodes just disappear as well? Any time I hear or talk about disappearing nodes/edges through user moderation I kind of cringe for this reason - if there's a faulty argument/attack I think it should be left alone with the arguments against it left intact, or at least simply hidden, so that people don't keep making it and making more orphan networks.
I forgot the name, but I think there is a way to detect nodes that are necessary in a component of a graph to keep it connected. If such a node is removed, calculate the new components and make them new topics in the given forum, maybe name them "[topic] - Split [n]", alert the administration and give someone the possibility of choosing a better name for the topics.

I'll start programming an engine for this today.
Title: Re: A more effective internet forum
Post by: Angle on October 08, 2013, 10:33:02 am
So It looks like we have two or three different ptrogrammers- Do we want to coordinate our efforts through github or something?
Title: Re: A more effective internet forum
Post by: Eagleon on October 08, 2013, 01:11:39 pm
This (https://dl.dropboxusercontent.com/u/46645289/Point.jpg) is the nonsense I worked out on my whiteboard last night, and just pushed into an SVG mockup. I think that as you zoom in closer to individual arguments, particularly in tightly clustered and highly connected groups, you're actually going to want to focus on five or six at a time in a more readable way, to allow faster vote turnover. You could use fuzzy logic based on that small network, the network as a whole, or whatever set you like to provide the ratings shown

In reality, the change that I depicted ("Your mom misread god" disappearing) would probably result in a reshuffling of all seven nodes based on a few predetermined selection criteria such as high or low rated attacks - you could allow users to pin nodes to prevent this from happening, or prevent it in part, so that you could remain focused on All Hail Grod the Uneasy as an attack, keep Non-Falsifiable in play, and try to see how they relate to the central argument better.

To get this view (as far as I've worked out)
1. Pick an argument.
2. Pick something it's attacking, attach it to a single-axis scaling connection at the top of 1.
3. Collect what attacks 1, decide how to prioritize their display. Attach the two or three best to the other sides with another connection of the same type. Scale all nodes to the screen. Find connections between all nodes and draw them.
4. Collect what attacks 3. Prioritize their display the same or differently (could provide contrast, select for arguments that attack both 1 and 3, etc). Attach them to free sides. Scale, find connections, draw.
And repeat until you're satisfied with the number of nodes on screen. Then you can do the fancy work of figuring out connection paths that don't intersect your OGL objects, preventing overlap of argument blocks, working in floating force-atlas style network sections on the perimeter, allowing hiding and revealing of argument bodies and/or blocks etc. I'm willing to bet you could modify a standard visualization like BoboJack's to do this if the visualization allowed you to single out nodes you don't want animated, and if it doesn't, it could be rewritten to. You could get really fancy and send the nodes back off into the network like a bomb exploding, drawing new ones that have been selected in.

Lots of fiddly! I don't like UI work =P None of that would work for me the first, second, third, n^fanciness times, because there's always some boundry or glitch you aren't going to expect that ends up making it look like garbage all the way through, haha.
Title: Re: A more effective internet forum
Post by: Antsan on October 08, 2013, 01:23:03 pm
So It looks like we have two or three different ptrogrammers- Do we want to coordinate our efforts through github or something?
I don't know. BoboJack uses Haskell, I use Common Lisp and whoever else is in on this thing is probably using neither and I guess no one is really willing to switch languages.
If there is anything to coordinate via github besides collaborative programming...
Title: Re: A more effective internet forum
Post by: Eagleon on October 08, 2013, 01:44:20 pm
Anvil, does your group have any larger arguments they've thoroughly deconstructed we could use as test data? I'm talking about something with maybe twenty or thirty nodes. Even if it's incomplete, it could speed things up considerably to have something besides a randomly built network to work with.
Title: Re: A more effective internet forum
Post by: Anvilfolk on October 08, 2013, 01:47:52 pm
I'm at work and will catch up with the thread later, but in short: no, we don't. We've used randomly generated graphs for developing the algorithm, and we always try to use the smallest examples possible that exhibit a certain behaviour.

However, it shouldn't be too hard to go on to www.debate.org, find one of the more refined debates, and use that as a source for choosing what is an argument and what isn't. I've seen a couple of debates with a level of formality that makes it easy to identify what is an argument and what isn't, and what attacks what.
Title: Re: A more effective internet forum
Post by: Eagleon on October 08, 2013, 03:26:10 pm
I found a tool called Gephi (https://gephi.org/) while trying to figure out a reasonable format to share a common but human-readable graph to test on. Its graph streaming plugin (https://marketplace.gephi.org/plugin/graph-streaming/) and the existence of a plugin to import RDF data (https://marketplace.gephi.org/plugin/virtuoso-importer/) from a server seems particularly interesting - I have no idea if Virtuoso is any good, but this seems to indicate that we might be able to use Gephi as a backend for this project. I know that lugging around a large platform like that might be more trouble than it's worth, and lots of people hate Java, but there's plenty of interfaces to it for other languages that you guys could use for your own implementations. Worth considering.

If nothing else, Gephi can export to CSV, with a fair number of generic datatypes built-in (Data Laboratory is where you want to look if you'd like to specify more columns). Here's the files for this (https://dl.dropboxusercontent.com/u/46645289/Herpdebate.png) - Nodes (https://dl.dropboxusercontent.com/u/46645289/Nodes.csv) (edit: fixed (https://dl.dropboxusercontent.com/u/46645289/Nodes2.csv) small defect in the state military section), Edges (https://dl.dropboxusercontent.com/u/46645289/Edges.csv) - if anyone wants to work that functionality into their program using a non-random data set.
Title: Re: A more effective internet forum
Post by: Anvilfolk on October 08, 2013, 03:29:38 pm
Also, can't believe I forgot this, but before you go off and implement lots of things, it might be worth looking into:

http://wiki.lesswrong.com/wiki/Debate_tools

and http://debategraph.org/ in particular.

Unfortunately, none of these provide any outcome of a debate, let alone a formally justified one, which is what we'd like to have.

Title: Re: A more effective internet forum
Post by: Urist McScoopbeard on October 08, 2013, 05:06:26 pm
I like the structure of debategraph a lot, I won't lie.

that's kinda what i've been envisioning in terms of organization.
Title: Re: A more effective internet forum
Post by: tompliss on October 10, 2013, 05:06:51 am
So It looks like we have two or three different programmers- Do we want to coordinate our efforts through github or something?
I don't think that's what is important now... at least for angle's project.

Here is how I see it working :
 - First, you (as in every concept designer involved here) need to study the existing tools, as they will give you some more ideas.
 - Then, you (Angle, as it is your project) should write some senarii, some user stories, without thinking about an interface. Those should be understood by everybody invloved, as they will be the core of the development.
 - Developers take the lead, there, building mock-ups and showing them for tests and approval.
 - After a few iterations on the mock-ups, something good should be ready to launch a kickstarter, or "simply" search for fundings.
Title: Re: A more effective internet forum
Post by: Angle on October 10, 2013, 09:58:11 pm
User stories? Like "When users log on, they will see... When they post a new thread they will see...", or like "I used this, and it helped me.."?
Title: Re: A more effective internet forum
Post by: tompliss on October 11, 2013, 01:39:32 am
First option :D
They're little scenarii that describe what is done with the solution, with few details on the "how".

They're good at dividing the solutions in a list of features, and seeing the links between them. And of course, they're very good at creating Task-Trees, that are very good at abstracting UI.
Title: Re: A more effective internet forum
Post by: Eagleon on October 11, 2013, 12:38:53 pm
Also, Angle, as someone who loves designing but hates programming UIs, if you have any question about whether something you're thinking about for this is possible or technically accurate, I encourage you to disregard that and let your developers tell you thatcomplain about it and get it done anyway instead ;) You can always pull in more of us.

I suggest that as you work out more of what you want from the project, we shift onto a more collaborative medium like Google Docs to share ideas and feedback a little faster. I'm onboard for whatever. I need a little more direction to start work though (I can't run or serve a database, electric bill is an issue), or else I'm just going to end up being redundant and in the way, code-wise.

Talking about this project with my own 'crew' (mostly family, granted, but still capable people) has me excited to continue. Especially since, for the time being, my own plans are on hold while I bunker down until the government starts back up. My mother (who has participated in budget matters) suggested that this might help Congress to present their debate more intelligently. My brother wants to try using something like it to figure out where we need to bone up and what we need to focus on for our university project. It could be applied to detect fault-points in diagnostic reasoning without using a large special-built informatics program, in medicine or just technician work - I can see repair people (and teams of repair people) using it to keep their reasoning and workflow more tightly organized, reducing redundant work without needing to hire a process engineer to point it out. That would be fantastic for small businesses that don't have that luxury or expertise.

Not to say you have to worry about fitting a UI or design to those things, just saying that I think it shows a lot of promise.
Title: Re: A more effective internet forum
Post by: Anvilfolk on October 11, 2013, 01:06:12 pm
Eagleon: Getting Congress to debate intelligently would be an absurdly amazing achievement. A debating process at the Congress level, or at any institutional level really, that is accompanied by proper argumentation practices would be immeasurable in getting rid of some of the absolute absurd statements we hear some politicians say.

Plus, I'd love to see a lot of the applications of these systems you are talking about.



Here's the current situation. So far, none of the proposals we've seen here so far warrant significant involvement from my research group. Please don't take it the wrong way, but like I said before, we're talking about some serious involvement on our part, which could take up a non-trivial amount of what we do for work daily, at the expense of our other research activities.

Most of the proposals I've seen here are either going in a direction that is of little interest to us academically (e.g. they're not interested in calculating a formal outcome to a debate, simply in representing it); or whoever's developing it doesn't really have a lot of time; or its ideas are still a little too abstract.

It's very hard for us to advise an open-source community, since all of us are pretty busy and coordinating with such a fluid entity requires a whole lot more involvement than working with an independent and efficient implementation team/person.

However, if you guys are interested in following up with the idea that we want a formal outcome to a debate that we need to compute and present to the user (i.e. based on the Social Abstract Argumentation that we presented in our papers, open to modification), I'd be happy to help around on my free time. That means I can advise on some technicalities of the project, related to efficiency and good software practices, as well as how the infrastructure is supported, and might even get my hands dirty at some point :)

If you are interested, you should state how you would like to contribute to the project and your qualifications for it. This should help us organise people around better. Also, before starting any implementation, we must figure out the basic architecture of the system. I have a couple of ideas for that, but would like to hear back from you all first.


Since I'm already volunteering with this post, I'll start. Let's meet each other :) Here's what I'd like to help doing:

My qualifications: I'm a 4th year CS PhD student, and I've got a BSc and an MSc also in CS. I don't know all of these newfangled web technologies, so I probably won't do any of that, but I have a fair knowledge of software architecture, DB and programming languages.
Title: Re: A more effective internet forum
Post by: Angle on October 11, 2013, 01:47:31 pm
I have this thing where I will occasionally get wildly excited about a project, work at it for a while, and then get burned out. I'm afraid I've kinda reached that point: I'd like to continue, but I just don't know how to proceed. That said, I'd be happy to put together a google doc page, if people are interested.
Title: Re: A more effective internet forum
Post by: Eagleon on October 11, 2013, 02:20:01 pm
Angle: It's no problem, no pressure, no disappointment or terrible all-consuming rage or anything, I understand that feeling. Put up a doc page and we can figure out how we'll get this done (or just talk, that's cool), because I'm still excited :)

Anvil: Sounds good to me. I'm interested in getting an SAA model first as well, since it's based on published work. The idea of a formal outcome is definitely complimentary to having something that can also function to highlight contradictions and areas that need more backing data or statistical examination for bias. I'm only just poking my head up into collaboration with this, so forgive me if I get distracted by that.
Other areas I'd like to contribute:
Qualifications are nebulous at best, unfortunately. I have two courses in Java to point to as formal instruction. My formal math is rusty but getting steadily better as I work outside my comfort zones. I have experience writing much more carefully edited documents than I've written here (my love of parentheticals can be suppressed :P), but I can't point at anything to prove that.
Title: Re: A more effective internet forum
Post by: Anvilfolk on October 11, 2013, 02:50:49 pm
Angle: no worries whatsoever! :) I'm afraid I might've been putting too much pressure on something that was meant to be a bit of a hobby project rather than something super serious. My fault on that, so my apologies if I've inadvertently caused some or all of that burnout :( Anyway, if this is going to be an open-source project like you wanted it to be, and I don't see any reason why not, then everybody's more than invited to participate, even if just bouncing ideas :)

Eagleon, awesome! From my conversation with BoboJack, I think he's also pretty interested in these kinds of things, and his ideas were already super close to SAA, so hopefully he might contribute a bit.

It's important to realise that this is totally not going to be a full-time job or anything. When you can and feel like it, you contribute. That's all :)

We could use GitHub's wiki system to store decisions we make. In the meantime, we can keep our discussions over here.


Here's my thoughts about architecture. There should be three components:


So basically, you've got your arguments all over the place, and some applications crunch the numbers for you, so that you can always display debate outcomes in the interfaces.

Both the interfaces and the SAA components are going to have to query several databases. If I query a database D1, and an argument D1:A1 is attacked by an argument A2 from database D2, then I'm going to have to query D2 about the strength of A2. We can use DNS as an inspiration for how to do these things. We can provide this argument-fetching service as a library with bindings in several languages.

Also, databases are going to have to carry enough metadata for each argument so that you can configure the whole thing like a forum/subforum/thread thing. This needs some thought.


Also, does anyone have a name for the project? That way we could create a GitHub repository (if everyone is ok with that choice, which is free!) and start editing its wiki with information we agree on. I've never done wiki editing before, but it can't be too hard, right? :)
Title: Re: A more effective internet forum
Post by: Angle on October 11, 2013, 02:51:51 pm
@Eagleon, Anvilfolk: Not your fault, I do this all the time on my own.

Here's a scenarii, albeit with more pictures than words:

Spoiler (click to show/hide)


And here (https://docs.google.com/document/d/1CjERoM9jefThEU35WAVT9IALjrYhhYgcAHbBvfgjWbs/edit?usp=sharing)'s the link to the google doc..

In terms of forum name, I was thinking of something based on ancient democracy, freedom of speech, discussion, discourse, that sort of thing. I had been working under Project Athens, but decided I didn't like it.
Title: Re: A more effective internet forum
Post by: Eagleon on October 12, 2013, 11:22:46 am
The google doc is coming along. Right now we're bashing out datapoints that can be used for a more thorough design document once all the pieces are together.

We could use some help figuring out what database/server software to work with, and what needs to be done to get a basic interface with one on a remote client up and running. I have very little experience with them - I understand protocol buffers as our best bet for getting readable information to our interface(s) without sending huge XML files or similar back and forth constantly, but I could be completely off-target for all I know.

Lacking that, I could start basing my work on Gephi's server plugin and try to reduce what it provides to an arbitrarily chosen database format, but I don't know how good it'd be, or if there's a better solution already around. Does anyone know any tutorials I could poke through to learn where my efforts are best placed? I'd be more willing to work on a local database if I knew I wasn't wasting my time on things that have already been worked out.
Title: Re: A more effective internet forum
Post by: BoboJack on October 13, 2013, 03:36:12 am
Quote
We could use some help figuring out what database/server software to work with,
Database:
The big 3 of Databases I know: MySQL, PostgreSQL and MongoDB.
I've used PostgreSQL and it was ok. I've tried MongoDB first, wasn't so nice.
If someone can come up with a layout for mongoDB upfront, it would maybe be worth it.

Server:
Options I know of:
Apache HTTP server (http://httpd.apache.org/) and write stuff in php (which sounds very ugly to me)
Node.js (http://nodejs.org/) very cool for a community project. Server and web fronted would be in the same, very common, language. +1 from me.
Ruby on Rails (http://rubyonrails.org/) also very popular now, but slow to my knowledge.

I've used a Haskell library, http://snapframework.com/ (http://snapframework.com/), just for the record
Here's a dropbox folder of my stuff (https://www.dropbox.com/sh/jey9bsh88o5m9bl/WBzrHS-Mjr/website)

This is the coffeescript(javascript) front-end I've written.  (https://www.dropbox.com/sh/jey9bsh88o5m9bl/WKDBvY7w5t/website/snaplets/coffee/coffee/d3test.coffee)

Quote
and what needs to be done to get a basic interface with one on a remote client up and running.
I wholeheartedly recommend D3: http://d3js.org/ (http://d3js.org/)

Quote
I understand protocol buffers as our best bet for getting readable information to our interface(s) without sending huge XML files or similar back and forth constantly
Just send JSON data. JSON is widely supported (native support in javascript, libraries everywhere) and has an efficient binary counterpart called BSON.
MongoDB also uses BSON!
Title: Re: A more effective internet forum
Post by: Antsan on October 13, 2013, 04:16:15 am
Quote
Apache HTTP server and write stuff in php (which sounds very ugly to me)
Actually Apache can be configured to accept any language, if I remember that right. At the very least Hunchentoot (Common Lisp) can work with Apache.
Title: Re: A more effective internet forum
Post by: BoboJack on October 13, 2013, 04:50:41 am
Actually Apache can be configured to accept any language, if I remember that right. At the very least Hunchentoot (Common Lisp) can work with Apache.
Right. I didn't think about all the cgi stuff.
CGI doesn't sound like a "batteries included" solution though.
Title: Re: A more effective internet forum
Post by: Anvilfolk on October 13, 2013, 09:15:21 am
Hey guys,

I'm going through the document and adding comments right now. This is so cool I am itching to get started :D

We need a name to set up the GitHub repository. From there we can start putting up code, put information on a nice wiki, some pretty images of what we envision, and I have a webserver that we can use for testing purposes.

I'm tempted to just start with something simple like SocialDebate or TrueDebate - we can easily change the name at this stage.


Quick note: I think you guys are on the same page as to what you mean by server side stuff, but I think I haven't quite gotten it. The database stores the debate itself. The interfaces grabs information from the DB and shows it to the user. What are you guys expecting the server side stuff to do? I've always imagined that all it's doing is computing and updating debate outcomes.

Also, Angle, could you update the OP with the google doc and other information? We should sig this and make it obvious that it's open-source and open to participation :)
Title: Re: A more effective internet forum
Post by: BoboJack on October 13, 2013, 11:06:18 am
Quote
What are you guys expecting the server side stuff to do?
The server could also host the web front-end and manage users and their authentication.
It would also make changes to the DB through an API accessible from the front-end.
+calculations
Quote
The interfaces grabs information from the DB and shows it to the user.
How would the interface authenticate with the DB?
If the interface can directly change the DB (voting for example) you could use the login/password from the interface to make any changes you want.
Title: Re: A more effective internet forum
Post by: Antsan on October 13, 2013, 11:31:17 am
I have no experience at all with server-client relations and all of that stuff, but I think computation should not be done by the server but the client. When more and more people start accessing the server you would probably get serious performance problems pretty soon.
Title: Re: A more effective internet forum
Post by: Eagleon on October 13, 2013, 11:58:21 am
Agreed, server should provide data and decide if client's changes are trustworthy and sane, nothing else. Even for argumentation - for an argumentation-oriented client, there's no reason for the end user to meddle with the results, because everyone else should be getting the same result. It'd be like writing over the teacher's answers to cheat. If we introduce elements of randomness, or if there are results that crop up that are different for other users because of floating point errors and crap like that, we can shift more of it server-side for that particular function. For now the handshake process, storage, retrieval, and sending of data is more than enough to chew on.

BoboJack - thank you! I'll look at those when I get back from my aunt's later. I knew JSON was a thing, but I didn't know it was that kind of thing, heh. So much to learn.
Title: Re: A more effective internet forum
Post by: BoboJack on October 13, 2013, 12:22:03 pm
The computation needs to be on the server, because search queries need the "acceptance of a topic" as a search criteria.
Also server side computation should be OK, if you don't have to recalculate the whole network on every change.
If the client would do all the computation, the client would have to recalculate everything again on every access, at least for a web front-end.
I also wouldn't want a website to suck all the energy of my smartphone.

Also I encourage you to make the communication between server and client work through a RESTful API (http://en.wikipedia.org/wiki/Representational_state_transfer) (basically the client communicates with the server only through a bunch of HTTP requests)
Title: Re: A more effective internet forum
Post by: Angle on October 13, 2013, 01:03:37 pm
I'm tempted to just start with something simple like SocialDebate or TrueDebate - we can easily change the name at this stage.

Remember that this is intended for more than just debates- I also want this to be useful for things like what we're doing right now - planning projects, discussing ideas, etc. Really, I'd like to call it dscourse, but someone already made off with that name.

Also, Angle, could you update the OP with the google doc and other information? We should sig this and make it obvious that it's open-source and open to participation :)

Done!
Title: Re: A more effective internet forum
Post by: Anvilfolk on October 13, 2013, 02:40:31 pm
The server could also host the web front-end and manage users and their authentication.
It would also make changes to the DB through an API accessible from the front-end.
+calculations
Quote
The interfaces grabs information from the DB and shows it to the user.
How would the interface authenticate with the DB?
If the interface can directly change the DB (voting for example) you could use the login/password from the interface to make any changes you want.

I feel like all of this functionality - authentication, getting information and modification - should be in the libraries we provide to users, including authentication. I don't know too much about this, but it'd be kind of like a PHP session. When you authenticate, you get a "ticket" which is yours alone, and valid while you keep using it. It times out after a little bit, or you store that in a cookie-like situation. Encrypted communications should ensure nobody else gets that ticket.

Having a web frontend makes everybody HAVE to use that particular webserver. I don't see why this can't be handled by whatever interface you decide to use :) If you're using a web interface, you use the web login. If you're using it on your smartphone, you login from your smartphone's application.


I have no experience at all with server-client relations and all of that stuff, but I think computation should not be done by the server but the client. When more and more people start accessing the server you would probably get serious performance problems pretty soon.

You can do client-side computation for things like, "how do I display the debate", but for calculating debate outcomes you need something dedicated. Like BoboJack said, different clients have different architectures, and they give different results. Interfaces are also proned to be hacked (especially if they're open-source...), so that you can't really trust them. At the very least, you'd need server-side verification of the the results, which is actually faster than calculating everything, so that is an option.

It all amounts to the underlying infrastructure. A debate for 3 people can run everything on a mobile phone. A debate on Bay12 needs more infrastructure. It's up to whoever is hosting to handle that.


The algorithm we have right now does not handle incremental changes. There's some minor optimisations you can do, but we still need to recompute almost everything whenever there's an update (including a single vote). This is a limitation that it would be amazing to get over, so I can put up a description of the algorithm at some point for you to review. The idea's actually pretty simple. You can modify the algorithm, but you need to prove that it'll still do what we want.

I think at the moment we can handle a few thousand arguments in a couple of seconds. Like I've told those I've talked to, we've had someone working on optimising these things for a few months, and this is what he came up with, so I believe at the very least it's a good starting point. Eventually people should be able to use higher-end machines with multiple cores (the algorithm is highly parallelizable), which should make things better.


Remember that this is intended for more than just debates- I also want this to be useful for things like what we're doing right now - planning projects, discussing ideas, etc. Really, I'd like to call it dscourse, but someone already made off with that name.

I was using debate in the wider sense - any discussion where points are made and argued over. For instance, I'd say we are engaging in a nice debate about how to organise an application. I suppose people might have some fairly strict notion of what a debate is. We should definitely include the idea that it's "social", because of the voting and the fact that outcomes depend on the context in which discussions are carried over.

Funny how coming up with a name is usually one of the hardest parts :D



Gimmie a few minutes and I'll put up a little infrastructure diagram of how I think most interactions can go.
Title: Re: A more effective internet forum (Collaborative Open Source Project)
Post by: Anvilfolk on October 13, 2013, 03:35:37 pm
Here we go:

Spoiler: Overall architecture (click to show/hide)


Let me explain what's happening there.

Lots of users are accessing Server #1. Each of them can be using a different application, or interface, as we have been calling them. To obtain information from or modify a debate (I'm used to using this term, sorry!), the applications/interfaces use a very small client-side library with minimal functionality. You can log-in, ask for debates, and submit modifications. That's should be almost everything.

Once the requests arrive at a server, there is a server-side interface. This parses the requests, and talks to the database. It makes sure logins are correct, that votes are accurate, etc.

In this case, Database #1 contains a small debate that is being affected by a debate stored in Database #2. Upon identifying this, the server-side interface from Server #1 will figure out where the other debate is stored (Server #2), and talk to the interface responsible for it to get the necessary data. ***

There is only one SAA Computation node, who is responsible for computing debate outcomes. He is authoritative over both Server #1 as well as Server #2. That means he will actually talk to both databases and recalculate debates within those databases.



*** An alternative version to this is that the client finds out that there are relevant arguments stored in other databases, and the client goes and grabs them. This removes communication overhead from the server-side interface, of which there can be a LOT if there are many clients logged on. Instead, each client is doing a little bit more work, which is fine. DNS has similar mechanisms. We can figure out which one we want to implement, and possibly both.


The difficult part will be figuring out how SAA authorities work together, and how those edges between databases under different SAA authorities are dealt with. At this point we have our hands full though, and I believe that is something we can deal with in the future.



I hope the diagram makes these ideas a lot clearer to everyone! Let me know if you have any questions! :)

Also, the diagram was made in yEd (http://www.yworks.com/en/products_yed_about.html), and I can provide the base file if you want to play around with it.
Title: Re: A better forum (Open Source Project): Finding a name is the hardest part
Post by: Angle on October 13, 2013, 10:54:43 pm
Right now we're considering what to name the project. I peronally lean toward Agora, which is the greek word for forum.
Title: Re: A better forum (Open Source Project): Finding a name is the hardest part
Post by: Anvilfolk on October 13, 2013, 11:39:41 pm
Working name GO!

I'd love some feedback on the architecture. I've put that up along with a description in the online google doc. We are creating a GitHub organisation for this, and from there we can create repositories for all major components!
Title: Re: A better forum (Open Source Project): Finding a name is the hardest part
Post by: BoboJack on October 14, 2013, 03:53:00 am
I like how the calculation server is different from the server side interface.
I'm not so sure about the database set up.
If database #1 and #2 are referencing the same big web, why are they separated?
Every query done by the server side interface now has to query two databases.
Communication/keeping things consistent between the databases seems really hard and would have to be hand coded.
I would rather follow these instructions (http://www.postgresql.org/docs/9.3/static/high-availability.html).
We would have one logical server, to which all the server side interfaces reference to
and the logical server would be made out of many servers which would communicate in one of the ways described in the link.
Title: Re: A better forum (Open Source Project): Finding a name is the hardest part
Post by: tompliss on October 14, 2013, 07:02:26 am
I love "Agora" :D

About the computation thing, remember one thing, guys : you don't want the user to download every argument at once in his client for it to filter out what he want to read.
Pretty much the same idea about having pages in a classic forum thread.
Title: Re: A better forum (Open Source Project): Finding a name is the hardest part
Post by: Anvilfolk on October 14, 2013, 08:48:47 am
Good point, BoboJack!

That's not exactly what I was thinking of here though. What we should make possible, eventually, is for an argument here on Bay12 to reference or be referenced by something on some other website unrelated to Bay12. More specifically, imagine that Agora has been deployed at bay12forums.com and at nytimes.com - there are lots of topics in common in both. I would love to be able to use a nytimes.com argument to attack a bay12forums.com argument, for instance. If you can do this, all of a sudden Agora is infinitely more powerful and interesting. This goes hand in hand with the development of the Semantic Web (http://en.wikipedia.org/wiki/Semantic_Web), which is huge in academia right now (including the guy who made the WWW), and is often said to be the future of the internet.

However this should definitely not be a major concern for initial versions, but we should keep it in mind as we develop the architecture.

What you suggest with PostgreSQL is wicked awesome though. I imagine we can definitely have a package that installs Agora on a PostgreSQL database rather than a mySQL one. As long as there's some install script we can provide with it, and a server-side interface that knows how to communicate with it, it sounds like postgreSQL could be more efficient! That's the beauty of server-side interfaces. They hide whatever is behind! :D

tompliss: yeah, I figure we should definitely be able to keep some forum-like organisation as well. I am guessing that we might use JSON/BSON like BoboJack suggested to store this type of structure. Because JSON is so flexible, it can also be used to store different structures. But again, this needs a whole lot more thought. We need to adapt to forum-like structures, article-like structures (news sites, blogs), etc.

I think the client-side library and the server-side interface should have some sane default values as to how many arguments you can download at once.


Quick notes:
- Angle created a GitHub organisation for the project. Post your GitHub id on the google doc "participants" section and you'll be added.
- If I am being too verbose, let me know and I'll cut down on it.
- Once Eagleon responds, and if he agrees with the architecture, let's go ahead and create the repositories for each component and start a'hackin' :)
Title: Re: A better forum (Open Source Project): Finding a name is the hardest part
Post by: BoboJack on October 14, 2013, 09:56:01 am
Quote
That's not exactly what I was thinking of here though. What we should make possible, eventually, is for an argument here on Bay12 to reference or be referenced by something on some other website unrelated to Bay12.
So you want something like the pods from Diaspora? Is that even possible?
How would searches work? Every search by a user makes a request to all pods?

Quote
let's go ahead and create the repositories for each component and start a'hackin'
We still need to decide on one language/framework to use.
Title: Re: A better forum (Open Source Project): Finding a name is the hardest part
Post by: Anvilfolk on October 14, 2013, 10:19:08 am
You've always got one entry point. If you're part of the bay12forums.com community, you contact the bay12forums.com server.

However, Bay12's database might refer to NYTimes arguments. If argument IDs contain location information, this becomes much easier, and kind of like how DNS works. Hence my suggestion of a node ID being D1:A1, for argument ID 1 from database ID 1. D1 could be "nytimes.com", and A1 could be a random number. Thus, when you see an incoming attack from D1:A1, you know you need to contact the nytimes.com authorities to get information about that debate.

Like I said, contacting "secondary" servers when browsing debates could be done either server-side or client-side. I'd go for client-side to avoid overworking servers.


As far as the near-future roadmap, here's my suggestion:

The SAA stuff I can probably code super quickly, so don't worry about that.

Right now we need to figure out database and comms protocol.
Title: Re: A better forum (Open Source Project): Finding a name is the hardest part
Post by: Eagleon on October 14, 2013, 10:21:38 am
- Once Eagleon responds, and if he agrees with the architecture, let's go ahead and create the repositories for each component and start a'hackin' :)
Erp - I didn't realize it hinged on me. Absolutely, I have no complaints as to the organization, but for one thing - in the doc you mention "Server-side interface is the “site layer”" but everything below Database (starting at Site Layer) was me determining what the database needed to send out to the clients. Rather than send out site-level information within each node, it made more sense to encapsulate all nodes and edges from a site with that information. It's a quibble (I'm not disagreeing to a server interface), but it'll help if we end up having multiple different types of 'sites' (could end up accessing offline databases in specific use scenarios) and reduces redundancy in the other objects.
I love "Agora" :D

About the computation thing, remember one thing, guys : you don't want the user to download every argument at once in his client for it to filter out what he want to read.
Pretty much the same idea about having pages in a classic forum thread.
It should be possible to send out portions of the graph in little sub-networks, by picking a node, traversing a certain distance, and sending one more set of edges past that number of nodes in the graph. The server could also operate on these sub-networks as they're built and packaged, to do fancy math things, but anyway- So if the client can handle having dangling edges to unknown groups of nodes, it can either ignore them or use them to request more. The problem is this adds more for the server to do - processing at the expense of bandwidth. My mind is going to fractal database formats O.o Not helping, brain.

You also run into synchronization problems if nodes or edges are destroyed, which should only be confusing to the client, not the server. The server would just have to be telling the client whether the changes were successful, or blocked by an inconsistency.

PostgreSQL talks about load-balancing - if the server load is heavy, maybe we could even do this automatically based on demand, only giving the client as much of the local graph as the server can keep up with and still provide other active users OK service.
Title: Re: A better forum (Open Source Project): Finding a name is the hardest part
Post by: Anvilfolk on October 14, 2013, 11:19:16 am
Eagleon: no worries! Since everyone has their own specific ideas, we just need to make sure everyone's in agreement before turning proposals into decisions.


By site-level information you mean a forum-like structure, or a newsite like structure, or blog-like structure, right? If so, I think the current proposal by BoboJack where that information is stored in a flexible JSON format column in the argument/node table in the database should work for what you mean.

When you access the server-side interface, you can request the "meta-information", which clients should know how to parse easily.

I feel like a generic hierarchical organisation could be enough for most sites, if not all, sites. Let's call these "forums", to keep with intuition. Every Agora-powered website has a main "forum". Any forum can have subforums, which are also forums. Any forum can also have "threads". Threads cannot have sub-threads or sub-forums. Instead, all arguments are proposed within a thread.

This mimics a forum like Bay12 perfectly. It should also be able to capture a blogging website, where the Blog is a forum, and each article is directly a thread (which is used by the poster, and commenters alike).

We can also say that a thread can belong to multiple forums, which allows us to implement a blog post as belonging to several "categories".
Title: Re: Agora, A better forum (Open Source Project)
Post by: Eagleon on October 14, 2013, 11:27:34 am
Sounds great. I just want to make sure the database structure is rock-solid, since I know that updating them to a new structure can be nightmarish, and then you have to make sure the clients are reading it right, etc, etc. I haven't had time to look at JSON, should probably get on that.

Also - the google doc is getting to be quite slow to load, maybe we should split it off into documentation for the different sections (architecture proposals, database, interface, project overview and outline/references to each). That way people without github can quickly see roughly what's going on - or does their wiki system allow anonymous browsing?
Title: Re: Agora, A better forum (Open Source Project)
Post by: Anvilfolk on October 14, 2013, 11:29:20 am
We just created an empty GitHub repo to host the wiki (turns out GitHub Organizations don't have their own wikis, only their repos do). It's Agora-Project/AgoraDevDocs.

I'll try to create a couple of empty pages to set up the structure, and we can start migrating there. Since it's open-source, I can't see why it wouldn't be public!
Title: Re: Agora, A better forum (Open Source Project)
Post by: Anvilfolk on October 14, 2013, 02:36:33 pm
Here's a proposal for how we should organise further developments.


The Google Doc is where we post and discuss proposals more persistently. We can use the really cool comment system to identify and resolve issues as they come along.

Once there is a quorum on a proposal, it gets transferred over to the wiki, and becomes an official decision.


If you guys agree, we can start transferring and removing things from the Google Doc into the wiki. Which, by the way, is becoming really cool :)
Title: Re: Agora, A better forum (Open Source Project)
Post by: Angle on October 14, 2013, 02:37:40 pm
Sounds good.
Title: Re: Agora, A better forum (Open Source Project)
Post by: Anvilfolk on October 15, 2013, 11:11:52 am
The database planning work is in progress. Hopefully we'll have something soonish, and then we can create a bogus database somewhere and start playing with it. Diana should describe it in the doc at some point, hopefully.

In the meantime I am wondering whether it wouldn't be nice to get more people involved. I've mentioned to my research group that this is going ahead as an open-source project, and they seemed interested. I'm waiting for the right time to let them know officially this is happening.

I'm also thinking of giving a small talk/seminar about the entire project here at uni, from SAA (the academic perspective) to Agora (the application perspective), and inviting participation. I feel there might be some really smart people getting interested about the entire idea and hopping on board. You could probably skype in if you're available at the time.

What do y'all think?
Title: Re: Agora, A better forum (Open Source Project)
Post by: Eagleon on October 15, 2013, 02:02:22 pm
I'm for additional expertise. I tried to get my sysadmin friend in on the project, but he hates his job too much to have any motivation to contribute, haha. I've got skype - it could be really productive just to get people even peripherally interested in the project, with the page bookmarked and ready to pass along.

The last thing I want is for this project to be bogged down, and I'm starting to see it's somewhat of a problem when I'm proposing things to you guys that aren't necessarily even needed or fitting with established CS. Or worse, trying to reinvent the wheel, and succeeding somewhat but with ass-pulled terminology. This list (http://en.wikipedia.org/wiki/Design_pattern_%28computer_science%29#Classification_and_list) is quite humbling, and makes me wish I had gotten into school again for the winter, because at the same time it's exciting to see so many that I've worked out in the past through experimentation on my own.

I think working with a dummy database for a while will solidify what knowledge I do have of the process a bit better, but I'm not about to try to work out the model for the protocol and database on my own. I'll still be able to help debug and implement what you guys come up with. Consider me your pet code-monkey intern, because I believe this project could be fantastic if finished.
Title: Re: Agora, A better forum (Open Source Project)
Post by: Anvilfolk on October 15, 2013, 02:41:07 pm
I'm for additional expertise. I tried to get my sysadmin friend in on the project, but he hates his job too much to have any motivation to contribute, haha. I've got skype - it could be really productive just to get people even peripherally interested in the project, with the page bookmarked and ready to pass along.

Hahahah, poor sysadmin! :D

We should definitely try using google hangouts at some point to discuss things more easily, especially if we're working together on a proposal. Bouncing ideas off each other is amazing.

The last thing I want is for this project to be bogged down, and I'm starting to see it's somewhat of a problem when I'm proposing things to you guys that aren't necessarily even needed or fitting with established CS. Or worse, trying to reinvent the wheel, and succeeding somewhat but with ass-pulled terminology. This list (http://en.wikipedia.org/wiki/Design_pattern_%28computer_science%29#Classification_and_list) is quite humbling, and makes me wish I had gotten into school again for the winter, because at the same time it's exciting to see so many that I've worked out in the past through experimentation on my own.

I don't know most of those patterns myself! Doing so comes with time, from writing code and from pursuing self-improvement while you do so. Heck, if you pick up a book on the subject and read a bit every night, you'll probably know a lot more than I do in a month's time.

Here's my personal take on "established CS", or any other field for that matter. The more you know of it, the less creative you become. You try to pigeon-hole what you want to do into one of the ways you already know of doing stuff, even though it might not fit perfectly.

What you proposed so far over on google docs *is* being used, including the site-server idea which had absolutely not occurred to me. I really think part of the open-source collaboration experience is learning from everyone else, so you should really propose any ideas you have for the comms protocol, or whatever else.

It's just important to realise that every proposal is meant to be very critically analysed and discussed by everyone. They're not personal attacks, nor personal shortcomings, nor "bogging down". It's just how you should do science, research or any piece of reliable and quality software.

Consider me your pet code-monkey intern, because I believe this project could be fantastic if finished.

I absolutely will not, nor should you.

I'm going to stop here, but I'm going to send you a more personal PM that I'd like you to read!
Title: Re: Agora, A better forum (Open Source Project)
Post by: Eagleon on October 15, 2013, 03:58:12 pm
Believe me, the fact that the terminology for CS is overdeveloped and more extensive than reasonable is not lost on me. They seem to particularly love their bland alphabet-soup style documentation. Engineering lingo is intrinsically and unavoidably ridiculous, I think 90% for job security and 10% because English is a terrible language for science.

It's one of the reasons I'd rather major in informatics, though I'm not sure yet that it's much better. I think that if you put all the systems and techniques and algorithms developed in software engineering into a graph, and started building connections between them based on papers that utilize those elements, and then start drawing new elements out of those papers, you'll see a mind-boggling amount of redundancy that's been missed from lack of complete understanding by its participants. It wouldn't be perfect, but at the very least it would be visible, literally, to anyone that cared to look. This project would allow very rapid collaboration on something like that.

The same goes for, say, chemistry, which has had an explosion of papers as the cost to work on it goes down, but not much work done to unify their relationships. Manual navigation to references that may be completely unavailable. Review of papers requiring the same navigational effort. All kinds of redundant and repeated efforts that bog down the research process to a standstill, until someone, as you said, steps outside this comfort zone and gets a little creative or (re)forges a path on their own.

It's not that this would eliminate the ability or need to be innovative/review, either - it would just break the papers up so that you could see all of the work and data that's been checked by complete accident in distantly related work that researchers are insulated from through this barrier.

I suppose instead of giving up entirely, I could try harder to avoid using words I don't have the background for. It comes from needing an internal set of terminology to work quickly and self-document. At the same time I do know I've been a little more egotistical with flashy nonsense words than is helpful. Trying to stopper that and just communicate is not my strong point yet, heh.
Title: Re: Agora, A better forum (Open Source Project)
Post by: Anvilfolk on October 15, 2013, 04:11:22 pm
I think what usually happens is that as you specialise in academia, you get to know the names and acronyms of people and concepts in your area, but little else. I only know the names of a few researchers for the areas I've dabbled in for a longer time. Don't know anything about other areas :\

It's even worse in the IT industry though. They have acronyms for EVERYTHING...

Also, research is very distributed in nature, and terminology ends up evolving more organically. It's not an organised process at all, so a lot of it is definitely idiosyncratic. But then again, it's impossible to keep up to date on everything being published, so it's hard to merge names.


We should make an effort to link all the concepts we talk about from now on to wikipedia articles. That could help us slowly develop names for everything we mean!

Speaking of which, the names I used for the architecture are completely random and totally not standard, as far as I know. We should totally come up with names that make sense! I'll try to add some suggestions to sane names to the google doc later.
Title: Re: Agora, A better forum (Open Source Project)
Post by: Anvilfolk on October 15, 2013, 06:56:53 pm
Trying to set up the webserver at home. Will let you know how it's going. I've got a database created, apache, etc, but I'm having some trouble with port forwarding.

---

Update: stuff is working after all. Apparently the router won't let me access local network machines by their outside name. FINE, ROUTER, I CAN USE ITS FREAKIN' IP.

Currently upgrading the server from squeeze to wheezy. Hopefully it won't break all the things.

Here's the base setup we should get from this:
- Apache
- php
- mysql
- phpmyadmin
- SSH access

I will distribute passwords to those interested in participating in the project.


---

Server upgrade successful! Getting Oracle JDK 7 there as well now, though it's a bit of a manual process. We might have a basic database up today at some point.
Title: Re: Agora, A better forum (Open Source Project)
Post by: Anvilfolk on October 15, 2013, 11:37:40 pm
Database has been created! Hopefully we can get together a little documentation on it some other day - it's late!

Also, created a new repository for a Java implementation of the outcome computation, and pushed some initial code in. Might be able to finish it up in the next few days.

If anyone feels like they understand the DB enough, we could really use sample debates to start testing. Perhaps something from the SAA papers?

By the way - more collaborators = more better, so if you're interested, it's a great time to start participating before there's a large codebase!
Title: Re: A better forum (Open Source Project): Finding a name is the hardest part
Post by: Solarspot on October 17, 2013, 06:59:16 am
So, if Agora sites are supposed to be able to connect any arbitrary Agora-structured statements to any forum thread, should the servers be referred to using some sort of peer-to-peer protocol?  Or have a client-server connection with one server, then have servers communicate with each other with a common format / protocol?  Representing NYT articles, blogs and everything else not on the host server would be a little tedious if each one had to be added onto a monolithic list of servers / named sites to cooperate with.

Quote
That's not exactly what I was thinking of here though. What we should make possible, eventually, is for an argument here on Bay12 to reference or be referenced by something on some other website unrelated to Bay12.
So you want something like the pods from Diaspora? Is that even possible?
How would searches work? Every search by a user makes a request to all pods?

Quote
let's go ahead and create the repositories for each component and start a'hackin'
We still need to decide on one language/framework to use.

While I'm engaging in architecture-astronautism, could a network like this be searched from a client-side index?  Something like http://www.yacy.net/en/ (http://www.yacy.net/en/) that records everything any users sees in every client's own index, then users search their local indexes.  This avoids querying every server ever a googol times a second in the name of searching the network.

PS:  Reading this thread while listening to ambiance music was trippyyyy
Title: Re: Agora, A better forum (Open Source Project)
Post by: Anvilfolk on October 17, 2013, 07:07:27 am
Good points!

I guess yeah, you could definitely see the Agora servers as a P2P network!

Here's the cool thing though. Every argument is annotated by its source, meaning its website. So whenever anyone - client, server, computation node, etc - needs to go fetch information about that argument, it always knows exactly where to go. You don't need a directory to search in!

We will need a smart way to update argument acceptabilities across servers though, and that's pretty much an open question still!

Get involved if you're interested - there's... well... everything left to do :D
Title: Re: Agora, A better forum (Open Source Project)
Post by: acetech09 on October 17, 2013, 06:06:13 pm
Watching with interest. Saw this from the beginning, am impressed with how it's come along. I just personally can't see a point to it, but I never really enter in actual online debates so it's out of my usefulness range. If I ever find time in my day I'd be interested in helping out though.

P.S. I really just have to point out that when I see this thread the first two things that pop into mind is the Agera, a swedish hypercar, and Amora, a personal game project I've been working on. I do get the whole root thing though - I'm mainly suggesting that five-letter words capped by A's with a consonant-vowel-consonant center are tried and tested good names.
Title: Re: Agora, A better forum (Open Source Project)
Post by: Angle on October 17, 2013, 06:58:01 pm
It's for more than just debates. Think of most bay12 threads - You'll frequently have the conversation going in several different directions at once, but because of the linear structure, it's only really possible to discuss one thing at a time. I'm putting together a graphic to show what I mean. I'll post it here when I'm done.

Edit: Ta Da!
(http://img.ie/images/391ku_thumb.jpg) (http://img.ie/391ku.jpg.html)

Note, in an actual implementation, there would probably be several main indexes, one for each subject, like we have here on bay12. But for the purpose of this graph I only needed the one. As you can see, there is some debating going on here, but there is also a lot of other communication as well. There are of course a great many things that will have to be determined. For example, what are the best practices for using this forum? Should posts be broken up into many smaller ones, or should they be consolidated? What content is valuable, and what is waste? etc, etc.
Title: Re: Agora, A better forum (Open Source Project)
Post by: Anvilfolk on October 17, 2013, 10:47:05 pm
Watching with interest. Saw this from the beginning, am impressed with how it's come along. I just personally can't see a point to it, but I never really enter in actual online debates so it's out of my usefulness range. If I ever find time in my day I'd be interested in helping out though.

Well, project's open-source, so you can just come and play around with it as well. We can definitely set it up so that there's lots of small tasks, and you can tackle one whenever you have time. I'm thinking the GitHub Issue tracker can be used for posting all sorts of small tasks and to-dos :) Your call! Either way, we'll be here!


The project can serve two purposes. First of all, it helps organise people's thoughts on ongoing discussions. Like Angle posted, the graph really tells people who is talking about what, what each post is responding to, and generally encourages people to be more clear in/ the way they communicate.

Another purpose, which I personally find more interesting, is that it helps you in any decision-making progress. It doesn't need to be a debate, it can be anything where you want to reach a consensus with a group of people. If you use this attack relation to propose things or counter things other people have said, the system can give you how much each proposed thing should be accepted, based on votes and the discussion structure.

I can absolutely imagine this being used in debate teams in high schools, local government, to make company decisions, and just generally all over the interweb, where people care about what they are talking about.
Title: Re: Agora, A better forum (Open Source Project)
Post by: Anvilfolk on October 20, 2013, 03:46:25 pm
Development is progressing slowly, but progressing.

We've gotten together a basic infrastructure for the server, which should be run as a daemon, and are now at the part where we are starting to implement communication between client and server. We have a database up to test things, and all looks good.

It'd be great to get some more interested people to participate. We are trying to keep the GitHub repos filled with issues representing features that still need to be added, so hopefully there's always something you can help do.

We tend to meet and organise in the Google Doc chat, linked in the OP. If there's someone around you can join the chat thing and talk to everyone. If you are interesting, please do drop by and say hello! :)
Title: Re: Agora, A better forum (Open Source Project)
Post by: Antsan on October 25, 2013, 04:49:54 pm
I am really very sorry for dropping out. I will continue watching this, of course.
Title: Re: Agora, A better forum (Open Source Project)
Post by: Angle on October 25, 2013, 06:02:52 pm
Eh, don't worry about it. You can contribute as much or as little as you like.
Title: Re: Agora, A better forum (Open Source Project)
Post by: Anvilfolk on October 25, 2013, 11:09:54 pm
Yeah, there's not so much of a drop out as there is a drop-in when you can :)
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Xgamer4 on October 31, 2013, 06:47:16 pm
I might poke around the code and documentation a little bit outta curiosity, but before I do I had a comment and question. <_<

Comment:
As a guy with a B.S. in Mathematics, the conversation about CS naming conventions somewhat amused me. At least CS naming conventions make vague intuitive. Mathematics has open sets and closed sets - but they're not opposites. Sets that are both closed and open are clopen, for example.

Question:
How is this not partially solved by Reddit's thread system?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on October 31, 2013, 08:20:41 pm
Reddits comment system doesn't have the multiple targets- a post can only be in reply to one other post. Also the interface sucks. And especially, I plan to extend this beyond what's outlined here- Adding support for multiple purposes of conversation, adding the ability to integrate with github or other platforms, etc. I have a lot of ideas.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on October 31, 2013, 08:32:47 pm
I envy you, Xgamer4! I've got a BS in software engineering, and catching up with all the maths for grad school is pretty damn tough. Also, read a book on intro to topology and closed sets being defined as their inverse being open was absolutely WTF :D

And yeah, hopefully the system is going to be flexible and extensible enough that you can use it for lots of different purposes.



We definitely need to work on proper presentation if we want to get more people involved. Right now we are not really getting the idea out there. I've been talking to a good friend of mine who's all into entrepreneurship and graphics design. I think if he finds the time to participate he'll be a fine addition to the project.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on November 01, 2013, 05:00:15 pm
Things keep progressing nicely:

Spoiler (click to show/hide)

Doesn't look like much, being able to remotely log in means most basic systems and hurdles are done. We've got a communications protocol based on BSON that works, we've got client-side and server-side libraries capable of interfacing with each other, and a server capable of talking to the database server. They are also built to be extensible, so that adding new features right now should not be too painful.

Next up is, of course, logging off, then requesting threads by ID, then adding/removing arguments, voting, etc. Once that is done, we've got mostly everything we need to develop an application.

All of these are individual and independent tasks. They're really nice little projects that you could use to get to know the code, so now's a great time to start participating if you haven't already! :)
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Singularity125 on November 01, 2013, 06:43:58 pm
Wow, definitely posting to watch.

Funnily enough, I think I found the siglink to this in the Roguelike Development Megathread, and this interesting, interconnected sort of data structure also seems like it'd be neat for objects in a game, in some way.

I've also always been interested in knowledge webs. I would set up a mind map for personal use except that I'd never remember to keep the damn thing updated. But in other contexts, like Wikipedia or TvTropes, that interconnected data keeps me busy for hours. Whether that's good for productivity on the other hand... :P

If I weren't so busy I'd help out in some way... I also have no Java experience, although Java code really looks similar to C#, which I do have experience with.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on November 01, 2013, 09:56:45 pm
While we are currently using Java for the base implementation, it is pretty important that we develop client-side libraries in all sorts of other languages so that people who want to implement Agora-enabled applications have that choice available to them.

I wouldn't necessarily suggest that you start working on a C# version of AgoraLib (the client-side libraries) right now because things are changing at a very rapid pace in these initial stages, but if you'd like to learn Java and/or the technical parts of the project, drop by the Google Doc. We meet there to chat and bounce ideas, and we'd be happy to explain what's happening to you :)

Or anyone else! :)
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Eagleon on November 02, 2013, 11:12:42 am
Would it help to have the BSON stuff encapsulated inside objects that should be converted to BSON? I put up a branch with a rough implementation of what I'm talking about - basically every object in the Graph that isn't a basic datatype (although technically we could overload those too if we wanted to go crazy with it) has a BSONable interface with a single getBSON() method, plus a string for its JSON tag.

getBSON() works like this - it works through each BSONable object, calling its getBSON() method to add to either a BasicBSONObject or BasicBSONList (depending obviously on if it's something like a list of nodes/edges or a single property like information about a post). Then it reads through its own data, adding things like ID numbers, sources, etc - whatever isn't a BSONable object. Finally, it returns the constructed BSONObject. That's it.

Then, to deserialize, you feed any object a BSONObject. In the object's constructor, you retrieve the entries that matter to that object - if it fails, it only fails for that object, and you have the specific BSONObject it used available telling you why. But what's really beautiful (I think) is that it uses BSONObjects to build most of its entries - that is, you call 'new PostInfo(BSON.get(PostInfo.JSONTag))', and PostInfo is built from a BSONObject stored in what the node has received. It's also easy to send partial information back and forth about an object - just leave it out of the BSONObject you're building (using a seperate method than getBSON obviously, maybe getBSONEdges() for instance) and methods in the exact same class that merge them into an existing object. And if you wanted to add something weird down the line like a PostInfo to an edge, all you'd need to do is add it as a field, modify that method, and add it to the BSON-based constructor.

A few extra additions of note - EdgeID/NodeID are gone, replaced by a master ID interface. That can be changed back easily by changing out constants JSON_ID/JSON_SOURCE with unique tags for each BSONable if it causes problems for the database. I suspect that to be the case now, thinking about how this would have to be moved into/from the database - I'm sorry. There's also a nice Property abstract for things like Post information, user data, etc. Might be a useless distinction at this point.

I do think this is a little more extendable on the client/server side than the current system of adding BSON serializers/deserializers to a master list in JAgoraLib. I don't know for sure if the database can handle this kind of nested structure - hence the branch. I didn't want to assume it was useless after doing all of the work to convert it. I can't contribute much more at the moment - got laid off, again, after only five days back on the job. Stressful times! Hopefully this is at least somewhat helpful, and not a diversion from actual work - I should probably have been working on a client but to be fair at the time I was working on it, it didn't look like the server was functional =P

Also Also - Singularity, I encourage you to dive into Java, but only if you're willing to put up with its crap. Specifically, if you're used to using lots of functional programming, it's going to be painful. If you have lots of scripts in other languages that you like to use, it can be done, but it's not designed for that like C#. C# is definitely very similar for OOP, if not identical for some tasks. It was easy for me to work on C# projects in the past, though there are enough differences that you'd want to skim through the list (http://en.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Java) to begin with.

Basically, Java is just an older language built almost entirely for OOP. Other design patterns often have to jump through some ridiculous hurdles just to function, but it's otherwise perfectly usable. C# is more flexible (pointers! I miss pointers... and operator overloading, and real multidimensional arrays, and, and...) because it was designed from the beginning to support interaction with non-OOP, non-C# code. It's quite a bit more modern and featureful. Java will smash you over the head for things that it sees as potentially bug-inducing, even though bugs are still common, while C# (in typical Microsoft fashion =P) has ways to facilitate many of the most horrifyingly buggy things Java has tried to avoid. It surprisingly does a pretty good job of it.

There are more keywords in C# for simple tasks, which can make things easier if you know the language, whereas Java has avoided adding more keywords at all costs, limiting core functionality to preserve backwards compatibility with ancient code - which is why it boggles my mind that Oracle only recently started discouraging keeping around old JREs with security vulnerabilites to exploit. It's probably easier to transition Java->C# rather than the other way around, but I think it's worth working on a project in a different language than you're familiar with just to know that you can.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on November 02, 2013, 01:28:38 pm
Oh man, so sorry to hear about getting laid off, that sucks :( I'm sure you'll find something though - and put this project in your resume! Participating in open-source projects shows you're enthusiastic about what you do, and companies like that! Best of luck in your search!!!



Your proposal handles something I've been thinking about for the past week or so.

Would it help to have the BSON stuff encapsulated inside objects that should be converted to BSON? I put up a branch with a rough implementation of what I'm talking about - basically every object in the Graph that isn't a basic datatype (although technically we could overload those too if we wanted to go crazy with it) has a BSONable interface with a single getBSON() method, plus a string for its JSON tag.

The general idea I've been following is that we wouldn't want to go crazy with it. The more crazy we go, the harder it is to port to other languages, and we run the risk of having LOTS of different core Agora implementations (for the server, for the lib, for the graph), each with a different supported features. That would make Agora development and communities pretty divided :(

getBSON() works like this - it works through each BSONable object, calling its getBSON() method to add to either a BasicBSONObject or BasicBSONList (depending obviously on if it's something like a list of nodes/edges or a single property like information about a post). Then it reads through its own data, adding things like ID numbers, sources, etc - whatever isn't a BSONable object. Finally, it returns the constructed BSONObject. That's it.

Serialisation, unfortunately, is actually harder than it looks at first :( I think your system is going into infinite serialisation loops when you have a loop in the graph, like A -> B and B -> A (this is going to be super common). Could you check?

If we want to use this method, we'll still need to use something similar to the JAgoraLib serialisation implementation, which is sending the attacks with origin/target NodeIDs rather than Nodes themselves. That should avoid going into an infinite serialisation loop, where A serialises B which serialises A and so forth.

Of course, then you need to deserialise all Nodes, and THEN all Edges, using Node IDs to get to the actual Node.

It's probably easier and more extensible to have an external serialiser. That's how Python does it (pickle and marshall), as well as BSON, and other systems. BSON, for instance, has Lazy and Basic coders/decoders, which are useful in different situations.


Then, to deserialize, you feed any object a BSONObject. In the object's constructor, you retrieve the entries that matter to that object - if it fails, it only fails for that object, and you have the specific BSONObject it used available telling you why. But what's really beautiful (I think) is that it uses BSONObjects to build most of its entries - that is, you call 'new PostInfo(BSON.get(PostInfo.JSONTag))', and PostInfo is built from a BSONObject stored in what the node has received. It's also easy to send partial information back and forth about an object - just leave it out of the BSONObject you're building (using a seperate method than getBSON obviously, maybe getBSONEdges() for instance) and methods in the exact same class that merge them into an existing object. And if you wanted to add something weird down the line like a PostInfo to an edge, all you'd need to do is add it as a field, modify that method, and add it to the BSON-based constructor.

Could you explain the PostInfo stuff a bit more? I didn't really understand how you use it. The idea of having partial information sent to the client is awesome, but I'm worried that it won't have that much use because the server can't send stuff to the client without the client explicitly asking for it first. Since communication is always started by the client, why doesn't he just always get all graph information, rather than partial graph information?


A few extra additions of note - EdgeID/NodeID are gone, replaced by a master ID interface. That can be changed back easily by changing out constants JSON_ID/JSON_SOURCE with unique tags for each BSONable if it causes problems for the database. I suspect that to be the case now, thinking about how this would have to be moved into/from the database - I'm sorry. There's also a nice Property abstract for things like Post information, user data, etc. Might be a useless distinction at this point.

Yeah, this probably screws with the database a bit too much. Why would we want a single ID class though? Node IDs and Attack IDs are pretty different in nature. I mean, we could just have an ID be a String, but it probably just makes it harder to understand the code (e.g. what is this id used for? Is it a Node ID, or a thread ID, or an attack ID)?


I do think this is a little more extendable on the client/server side than the current system of adding BSON serializers/deserializers to a master list in JAgoraLib. I don't know for sure if the database can handle this kind of nested structure - hence the branch. I didn't want to assume it was useless after doing all of the work to convert it. I can't contribute much more at the moment - got laid off, again, after only five days back on the job. Stressful times! Hopefully this is at least somewhat helpful, and not a diversion from actual work - I should probably have been working on a client but to be fair at the time I was working on it, it didn't look like the server was functional =P

Agreed with the first part! We should extract the (de)serialisers from JAgoraLib and make them into their own thing, perhaps as part of AgoraLib, but still not inside JAgoraGraph, for the reasons I stated above.


I've been thinking a bit more about how AgoraLib would actually be used and honestly, I don't think I've reached a good solution.

I believe our best bet to maintain Agora as a nice tight-knit project rather than a million different implementations with different features is relying heavily on the content column of the Node table in the database, which is meant to store flexible BSON content. So, JAgoraLib ONLY handles serialisation of the very basic graph structure, like nodes, attacks, the posters of nodes/attacks. It ignores the BSON content of a node - but sends it over the network (which is trivial). It's up to the user to parse the BSON content of nodes.

The extendibility is obtained by using and parsing the BSON content that comes from the database. This is actually exactly what you have, but for the content, not the graph itself! Let me try to make the two proposals more obvious. I've highlighted the differences.

Proposal #1 (master branch):

Proposal #2 (BSONable branch):


So really, the only difference is in who serialises what. I think the best solution is actually a Proposal #3 where we separate the serialiser into its own class. Perhaps serialisation is done into byte[], rather than BSON, allowing us to easily change the network protocol itself?

Then the other part would work somehow like this:

Code: [Select]
public class ApplicationNode extends JAgoraNode {

...

   public void loadContent() {
     this.x = rand();
     this.y = rand();
     // this.content is a member of JAgoraNode, populated from the content column of the DB
     this.text = this.content.get("textArgument");
     if (this.content.get("imageURL") != null)
       this.image = Image.load(this.content.get("imageURL"));
   }

...

}

So this implementation would be able to handle arguments having some piece of text, as well as one attached image. That all comes from what's inside the content column of the database. We could extend it to have a youtube video, several images, etc etc etc. Anything that you want - but that's application-side. The Agora Project itself could officially support some basic format for Content, but then it's up to the app developers what else they want to use. If some "content" feature starts becoming popular, we could add it to the official "content" description.

Also, do you guys think attacks should also have content?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Eagleon on November 02, 2013, 02:32:58 pm
Serialisation, unfortunately, is actually harder than it looks at first :( I think your system is going into infinite serialisation loops when you have a loop in the graph, like A -> B and B -> A (this is going to be super common). Could you check?

If we want to use this method, we'll still need to use something similar to the JAgoraLib serialisation implementation, which is sending the attacks with origin/target NodeIDs rather than Nodes themselves. That should avoid going into an infinite serialisation loop, where A serialises B which serialises A and so forth.

Of course, then you need to deserialise all Nodes, and THEN all Edges, using Node IDs to get to the actual Node.
Well, since we're working with bidirectional edges (and a Graph object that stores them seperately), we can do either based on the situation. From edges we can add nodeIDs to a map, and then call a Node constructor that doesn't create edges, but rather just pulls it from the Edge map. Or from nodes, we add edges and call one from Edge that uses the Node map to construct itself. Does that make sense? This was only a very fast, not even tested implementation - I didn't have a database to test it against, couldn't figure out how to modify JAgoraLib to work with it, etc. It probably has a billion uncaught bugs like that.
Could you explain the PostInfo stuff a bit more? I didn't really understand how you use it. The idea of having partial information sent to the client is awesome, but I'm worried that it won't have that much use because the server can't send stuff to the client without the client explicitly asking for it first. Since communication is always started by the client, why doesn't he just always get all graph information, rather than partial graph information?
I was thinking for client->server, and internal client/server functionality actually - the client sends a node with only the PostInfo inside, and the server can function without the rest using methods inside Node. Rather than put that functionality in the main Comms library, nodes know how to modify themselves using PostInfo objects, because they're the ones that contain/receive them.
Yeah, this probably screws with the database a bit too much. Why would we want a single ID class though? Node IDs and Attack IDs are pretty different in nature. I mean, we could just have an ID be a String, but it probably just makes it harder to understand the code (e.g. what is this id used for? Is it a Node ID, or a thread ID, or an attack ID)?
I'm not sure, beyond busy work, haha. Premature optimization, etc. I don't even know if we need seperate ID classes. I do try to complicate things =P
I've been thinking a bit more about how AgoraLib would actually be used and honestly, I don't think I've reached a good solution.

I believe our best bet to maintain Agora as a nice tight-knit project rather than a million different implementations with different features is relying heavily on the content column of the Node table in the database, which is meant to store flexible BSON content. So, JAgoraLib ONLY handles serialisation of the very basic graph structure, like nodes, attacks, the posters of nodes/attacks. It ignores the BSON content of a node - but sends it over the network (which is trivial). It's up to the user to parse the BSON content of nodes.

The extendibility is obtained by using and parsing the BSON content that comes from the database. This is actually exactly what you have, but for the content, not the graph itself! Let me try to make the two proposals more obvious. I've highlighted the differences.
<snip>
So this implementation would be able to handle arguments having some piece of text, as well as one attached image. That all comes from what's inside the content column of the database. We could extend it to have a youtube video, several images, etc etc etc. Anything that you want - but that's application-side. The Agora Project itself could officially support some basic format for Content, but then it's up to the app developers what else they want to use. If some "content" feature starts becoming popular, we could add it to the official "content" description.

Also, do you guys think attacks should also have content?
I agree for the most part. I don't have the knowledge in advance to evaluate either proposal, but one of the reasons I made the properties abstract was in anticipation of this kind of extra content. There's a default JSON tag other than null for it for that reason - if there's non-standard content to be sent, it would potentially use that class. What I don't want to have happen is stuff being stored in the database the server doesn't know the identity of - as far as I understand that could cause some potentially nasty exploits happening for non-VM languages, with executable code, etc. Of course, you have the same problem with the server examining the content of a property for what it is potentially exposing it to the same thing, but if nothing else, there needs to be some kind of sanity check for the content being uploaded so that people don't just use it for a file server and clog up the whole network with gigabyte-sized nodes. Stop me if I'm not understanding something that prevents that.

And yeah, I think they should. I would absolutely love to adapt this to a neural network model, for Science! (think about the possibilities for treating other portions of content as sensory data, and you're starting to see where I'm going with that) and that would be pretty useful. I'd also like to be able to annotate edges with moderation information, or let users label them, or emphasize votes... as far as I understand it's easy to provide if not identical to what Nodes would need to implement it, and just nice to have.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on November 04, 2013, 09:25:45 am
Still didn't get the PostInfo stuff, sorry :( I just don't understand what it does and how it works. Is it used to ask for information? Is it used as an information placeholder? Where does it reside? That kind of stuff. Could you provide an example use, sort of like what I did for how clients/servers communicate?


I looked at your proposal for properties, and it scared me that there was no "interface". How would you use it? Would you have an IntProperty, DoubleProperty, StringProperty and then more complex classes like MapProperty, ListProperty and so forth? If that's the idea, you're essentially reimplementing BSON! We might as well just have BSON and allow people to parse that BSON content into their own Graph classes.

That's an extremely good point about possibly having harmful content inside the database. We should definitely make sure we're not allowing it. I think the current situation is as follows: if I'm not mistaken, our JAgoraLib implementation can only transmit BSON objects over the network. Any request you send, or graph you send, or anything, is encoded into BSON. That should include the BSON content of a Node. If you try to send arbitrary bytecode over the network, either as part of a Node's content or otherwise, it should fail because decoding that bytecode should fail as well. We should definitely test this theory out though!

Just checked, and you can send binary data as part of a BSON object. However, that will never be executed unless an application explicitly considers it to be an executable and tries to run it. Otherwise it's just a byte array.

In other words:

We should be safe, hopefully :)
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Eagleon on November 04, 2013, 11:31:43 am
All PostInfo was is a place to put Information about a Post - so UserInfo is encapsulated inside it (which contains the user name, user ID, etc), plus the Post Date. It's contained inside Nodes. So basically nothing at this point - I wanted to show a BSON object that wasn't a node/edge and get started on including content for the nodes.

The Property class does have an interface - BSONable! Thus PostInfo, UserInfo are BSONable. It exists at all because I'm in the habit of making an abstract class to store methods and static members that are useful across objects that are expected to be similar - almost entirely driven by the fact that in Eclipse, refactoring classes to extend a different one later is much more painful than simply delete-refactoring the stub abstract class. That might be bad, hehe.
We should be safe, hopefully :)
Dun dun DUNNN yeah, I was being paranoid. I do wonder how people would use this if they -could- store scripts in each node, and allow them hooks into their API for Agora, but that's something for another day.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: LordSlowpoke on November 09, 2013, 04:07:54 am
...you have my interest.

I'll be looking out for a workable prototype so I can slap it onto a server and watch hell descend upon it. Both software and userbase-wise.

Please look out for things that need to be thrown into the documentation~
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on November 09, 2013, 09:23:10 am
We have a test server currently, but it's an OLD laptop! We'll be trying to make deployment not horrible, but support is mostly going to be for linux systems.

Also, there's lots of things to do in programming and general ideas if you're interested! :)
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: LordSlowpoke on November 09, 2013, 09:33:21 am
The older it is, the lower the hardware requirements will be. Who knows, maybe you'll bring it down low enough that I'd rework some old parts into a server box.

The amount of experience I have when it comes to programming network things is zero, so I don't think I can help you much. Ideas I think I can help with, but they'd be more of the design than implementation variety.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on November 12, 2013, 11:09:54 am
Alright, we're going to try to make this more easily accessible to the community. We'll be trying to Livestream development regularly from now on.

Let's aim for one a week, preliminarily set at 8pm EST on Wednesdays, starting tomorrow hopefully. This schedule could change wildly, but we'll try to do at least once a week for a couple of hours.

This'll be an excellent opportunity for you to look at some of the code and how it's organised, ask questions, get involved and generally see what's happening in the Agora world :)

TL;DR version:

Now streaming Agora development once a week!
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on November 12, 2013, 11:32:29 am
Sounds interesting. I look forward to it.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on November 12, 2013, 07:57:37 pm
Sweet, I think I managed to stream decently from Linux, which is my preferred working environment. Both voice and video seem to be good quality, so hopefully it'll be easier to explain things as we go along. There is a huge time-delay, like upwards of 10s, but hey... such is life ;)
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on November 13, 2013, 10:53:49 am
Just a reminder that we'll be streaming today at 8pm EST (about 9h from now). Should be on here (http://www.twitch.tv/anvilfolk), but will post again. Will try to record it so you can view it some other time if you can't catch it today.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on November 13, 2013, 08:02:30 pm
Starting now for the massive audience of 0 people, haha :D
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on November 13, 2013, 09:49:22 pm
I thought the video was well done, though I'm afraid not many people may contribute. I'd like too, but I'm a little out of my depth programming wise, and am having trouble just keeping up with my life right now.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on November 13, 2013, 09:59:31 pm
The first dev session is up here: http://www.twitch.tv/anvilfolk/b/479494333

No worries Angle - it was great to have you drop by! I am super tired, so I didn't do such a great job of explaining things.

The idea right now is to make it easier for interested people to get in touch, see what's already in there and so forth. It's also a pretty good situation to guide people through code or answer questions. Let me know throughout these things if I'm going too fast, or if there's something you don't understand/know but would like to look at in more detail!

It's definitely also about me making sure to put some time into the project, as life has been getting more and more hectic :)

If you do end up watching, please do leave all suggestions here. I'd love some feedback!
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on November 20, 2013, 10:50:17 am
A quick reminder that today is Livestream day again, at 8pm EST.

If you've been moderately interested in participating and have some Java coding skills, this is a great opportunity to learn how to implement some of the features we need. We have lots of small things that you should be able to tackle pretty easily, and that are really important at these initial stages.

Just post here if you are interested and we can come up with some voice-chat thing so that I can show you how things work and how you can start programming too :)
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on November 20, 2013, 07:59:58 pm
Streaming here (http://www.twitch.tv/anvilfolk).
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on November 27, 2013, 05:30:10 pm
No livestream today because of Thanksgiving.

We really need to start putting this project out there. Is there anyone that's good with webdesign that wants to pick up making a webpage?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on November 27, 2013, 05:39:07 pm
I have no experience with webpages, but I have been considering making some threads in the forums of other prominent Open source projects, like Firefox and the various Linux distros. Do you think that's a good idea?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on November 27, 2013, 05:41:15 pm
Not until we've got something more that we can show them - and I don't necessarily mean the implementation, though that would be great. Mostly, I mean that it'd be great to have some images or videos of what we imagine the actual usage of the final product is going to be like.

I've been having some tough weeks, but I think things are getting better and I might have some more time soon for this soon :) In the meantime we've gotten a few more features implemented, so hopefully we're getting closer to version 0.1 :)
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on December 03, 2013, 05:22:58 pm
Got something else I need to take care tomorrow, and I feel like this is useless unless there's someone actually watching. We really need to move to our own forum/website thing and start building a community. I'll get on it when I find some time :)
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on December 03, 2013, 06:14:24 pm
In the meantime, it was super simple to just implement the Add Attack queries, except I can't actually test it because the database server is down, heh.

As usual, there's a ton of tiny issues that people who are interested can try to tackle and submit commits for. They should be relatively easy to tackle :)
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on December 03, 2013, 07:24:53 pm
I'm going to try and dedicate myself to that full time after I finish this last week of college.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on January 29, 2014, 05:59:33 pm
Alright, so It's a bit alter than I'd intended, but now I'm going to try and devote some time to this. Can you give me and anyone else who might be reading this an update on the current state of development and what needs doing right now?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on January 29, 2014, 08:54:27 pm
The prototype server is working, prototype Agora lib is working, but now we need a Java client and don't have it. I've toyed with OpenGL (through libGDX) so we could have nice shapes moving around, but couldn't get PNG transparency working decently, and am busy with other things at the moment.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Eagleon on February 07, 2014, 12:52:23 pm
I'd like to work on this some during the weekend, since money-stress and moving-stress and stress-stress and ohgodI'moutofcoffee-stress is gone, and I have a working linux distro again with internet to do my own tests. I'll poke through what I can on github and refamiliarize myself with what you've been doing. Thank you for keeping this alive, anvil :)
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on February 07, 2014, 01:17:48 pm
Awesome :) I'm doing terrible with finding some nice java library for pretty graphics, for the client itself, so I dunno. I think there's some way to fix the OpenGL problems somehow, but I've spent a few hours to no avail.

I'll need to find some more time for this, but my evenings have suddenly become really busy with other things :(
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Eagleon on February 11, 2014, 01:18:05 pm
Awesome :) I'm doing terrible with finding some nice java library for pretty graphics, for the client itself, so I dunno. I think there's some way to fix the OpenGL problems somehow, but I've spent a few hours to no avail.

I'll need to find some more time for this, but my evenings have suddenly become really busy with other things :(
I've never worked with OpenGL directly (oh god the abbrevs and utter lack of documentation), but I do know libGDX has lots of very nice wrapper classes for working with graphics (edit: thinking specifically of the PolygonSprite and other sprite classes, which support transparency and clean modification of scaling, rotation, translation, etc as well as packing into PolygonSpriteBatch, which could be faster). It was actually a library I was eying for the java side of things to begin with, since it does OpenGL ES and deploys to android or even iOS so easily if you've set things up right, and is nicely integrated with box2D and Bullet for fancy physics if we want to go that route. I can start pushing everything into GDX's classes to get something on screen at least maybe if I don't mess things up further :D

Ubuntu failed me for internet - it doesn't like my wireless one bit, and isn't afraid to drop connection at random for hours at a time to say so! I spent hours Sunday trying to figure out what was happening, but it's been impenetrable. Running ethernet isn't an option unless I want to thoroughly piss off my roommate. Are you still running the test server? I can work on this for about half an hour before work every day, and that should get me back to contributing on a consistent basis, but if anything I'd think linux would like my laptop's hardware even less.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on February 12, 2014, 11:26:04 am
Are you on a laptop? Take a look at disabling USB power saver settings. I've heard those can be big problems, but I'm honestly not sure how to fix them. I think it varies from laptop to laptop, but might be findable in the BIOS somewhere.


Anyway - the reason I was trying to get regular openGL to work is that we would be able to do some nice animations, like circles representing arguments opening up into nice rectangles with rounded edges. I assumed, erroneously, that OpenGL would be nice to vector-like graphics. It's not. We probably just want to go with minimal animations at this point, and just get a prototype out the door :\
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Eagleon on February 12, 2014, 01:39:17 pm
Are you on a laptop? Take a look at disabling USB power saver settings. I've heard those can be big problems, but I'm honestly not sure how to fix them. I think it varies from laptop to laptop, but might be findable in the BIOS somewhere.
I've been trying to get my desktop running as a server of my own to understand that part of things better. At this point I'm expecting less trouble setting that up than I've gotten with ubuntu's seeming disdain of wireless internet :P I understand it, ethernet is faster, there's hundreds of wireless adapters out there, no one makes linux drivers because it's an extra thing to support, but arglblgergkguhgff. fbuhfv.
Quote
Anyway - the reason I was trying to get regular openGL to work is that we would be able to do some nice animations, like circles representing arguments opening up into nice rectangles with rounded edges. I assumed, erroneously, that OpenGL would be nice to vector-like graphics. It's not. We probably just want to go with minimal animations at this point, and just get a prototype out the door :\
There's probably a way to do it using regular openGL. I should probably learn GL ES or parts of it, because yeah, it's a lot more flexible to be able to do these things yourself without being tied to a library. I definitely wasn't trying to discourage you from that if you have the knowledge already. Just got excited seeing a toolbase that I've used and more or less understand :)

You could do the same sort of thing with PolygonSprite as far as I can see, using getVertices() and a tweening method to translate each one out towards your target shape, making and destroying new sprites each update. Punch a box-hole in the polygon, or decompose it into two tied at their edges if their math can't deal with holes, and you have a border. Or leave it alone and source your texture from the node's text data, and you have the interior. Playing around with TextureRegions, you should be able to make the border maintain rotation and scale to avoid weird distortions if what you're using is a meaningful pattern like wood or something like that.

But yeah, if nothing else, it's completely possible to drop GDX's classes into something that works directly with OpenGL to build closer to metal, or I wouldn't be suggesting this.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on February 12, 2014, 01:45:48 pm
I'm sure there is, but I had the hardest time getting what seemed to be the obvious method to work, and gave up after putting two days in it.

The basic code is there, but I hadn't looked at PolygonSprite! Feel more than free to pick up the code and make something work. I'm still super busy at the moment :)

To be honest, as long as we keep a nice separation between the data and the visualisation, it doesn't matter how we implement the initial parts. We can always reprogram the visualisation at some point. At this point I don't think it even matters that we have something that looks decent. Just something that works :D
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on April 14, 2014, 02:32:55 pm
Are we using an outdated version of libgdx? I see in the code there's a point in ArgumentRenderer where we use 
Code: [Select]
ImmediateModeRenderer imr = new ImmediateModeRenderer10();, but when I look at the libgdx api (http://libgdx.badlogicgames.com/nightlies/docs/api/overview-summary.html), I don't see ImmediateModeRenderer10, I see ImmediateModeRenderer20.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on April 14, 2014, 02:36:18 pm
Those have to do with what version of OpenGL you are using. To test things out I wanted immediate mode, which if I recall correctly is deprecated in the earlier versions of OpenGL and unavailable in the latest ones.

OpenGL does not seem to be the best idea anyway. It's far too low-level and we should try to find a nice vector graphics library for Java. I wasn't able to do so, unfortunately. Work's been an absolute nightmare for the past couple of months, and is likely to stay pretty demanding for the next few months/years, but I'd like to get back on track with this if I can find some spare time :\
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on April 14, 2014, 03:13:19 pm
Well, I'm going to try and do some work on this, (for real this time, I swear!) so you don't need to worry too much. I'll see about figuring out what to do with the graphics. Is there anything else that needs to be seen to in order to progress?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on April 14, 2014, 03:14:32 pm
Not really, I think the intermediate architecture is, at the very least, at prototype strength. I tested it a bunch, and I think all of the data is transferring nicely. It just needs to be put into visual format. I'm not entirely sure what the best way to do that is, to be honest, but there you go :)
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on April 14, 2014, 03:19:58 pm
Does the client network with the database properly yet? It doesn't look like it has any code for that.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on April 14, 2014, 03:23:30 pm
JAgoraLib is that one that does all the communications. It should have a few functions for grabbing information from the server!

It's used in TextClient.java (https://github.com/Agora-Project/JAgoraLib/blob/master/src/org/agora/TextClient.java), which is a simple text client for testing and debugging purposes, i.e. no graphics ;D
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on April 14, 2014, 03:25:49 pm
Aha! Alright, I see how that works.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on April 22, 2014, 02:15:44 pm
Alright, so I'm working on putting together a graphical client using java's AWT and swing frameworks. In the meantime, perhaps we should discuss the moderation policies to be used on the agora framework. I think the system will need fairly heavy moderation in order to function properly. In order to counter balance the possibility of abuse this presents, I think we need a system of moderating the moderators. I think that all moderating activity should be logged and open to criticism. This should prevent moderators from abusing their privileges to promote their ideas at the expense of others.

Next, of course, there are the actual policies to be followed. I think that most any topic should be up for debate, but that the rules for this debate must be very strict, but mostly restricted to logical fallacies. For example, it should be legal to discuss things like "We shouldn't vote for What'sHisFace because he's an x and a y", but things like "don't listen to What'sHerFace, she's an x and a y" should not be acceptable, because that's an ad hominem and detracts from the discussion. In some cases, I think people should be held accountable for their arguments - for example, if you want to argue that "all x people are y, and that's a bad thing", then you'd better either make a good argument, or apologize and rescind your position, or face consequences for it.

You can disagree, of course, and I rather hope some of you will -  and of course, I look forward to hearing about it. I have to go to work now though, so I'll catch up when I get back.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on April 23, 2014, 12:51:12 pm
Alright, so I'm working on putting together a graphical client using java's AWT and swing frameworks.

Sweet! :D I really should learn how to use those! Do they support hardware acceleration? I think the reason I discounted them is 1) I don't know them yet and 2) always thought they might underperform. Keep us updated on how this goes!

I think the system will need fairly heavy moderation in order to function properly. In order to counter balance the possibility of abuse this presents, I think we need a system of moderating the moderators. I think that all moderating activity should be logged and open to criticism. This should prevent moderators from abusing their privileges to promote their ideas at the expense of others.

This might be going overboard with features.

Forums works fine with a simple hierarchy of administrator->moderator->regular user. Why would it be insufficient here? I'm not sure we want to allow "meta-debate" to influence the debate itself, e.g. a debate about politics shouldn't eventually devolve into whether a moderator was right in removing this or that message.

Furthermore, these debating frameworks are self-moderating. The results of debates are a direct consequence of the community that engages in that debate. Communities with lots of trolls will get troll outcomes, and mature communities will get interesting, significant outcomes for their debates because they are able to downvote troll arguments into insignificance. That's something we need to accept, much like the creators of phpBB or SMF did. We're providing a platform. People are going to use it differently in different parts of the internet.

Next, of course, there are the actual policies to be followed. I think that most any topic should be up for debate, but that the rules for this debate must be very strict, but mostly restricted to logical fallacies. For example, it should be legal to discuss things like "We shouldn't vote for What'sHisFace because he's an x and a y", but things like "don't listen to What'sHerFace, she's an x and a y" should not be acceptable, because that's an ad hominem and detracts from the discussion. In some cases, I think people should be held accountable for their arguments - for example, if you want to argue that "all x people are y, and that's a bad thing", then you'd better either make a good argument, or apologize and rescind your position, or face consequences for it.

This is up to each particular host that uses the Agora framework, much like every forum has different policies. Of course, we should absolutely provide a website that is Agora-enabled for people to try it and understand what it's all about. And this website, like any other, is going to require an administration and moderation team as well as moderation policies.

I kind of feel that if a user consistently cites unreliable sources, it's a significant contribution to a debate that he might be doing so again. Why not let it happen organically?

Although I can roll with having a super serious debating subforum where this isn't allowed, and users follow up on citations to find what is wrong with them, etc. Then it makes sense that ad hominem arguments should be against the rules, and removed by moderators.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on April 23, 2014, 04:45:08 pm
The main trouble is that there are people who will drown out any honest conversation with abusive rhetoric - if you let them. (See the comments on any youtube video for details.) They can even drag down the rest of the discussion, as the people they insult get angry and respond in kind. This means that significant moderation is necessary in order to keep things productive. This is in turn means that there is potential for the moderators to abuse the system. In most forums, this abuse doesn't really matter, because the things being discussed don't really matter, but I'm designing Agora so that people can talk about things that do matter, such as global warming, international politics, and other pressing issues. This means that there is substantial pressure for people to either abuse the system, or accuse their opponents of abusing the system. Thus, a system is needed to prevent such abuse.

As for policies, I agree that many bad arguments should be allowed, so that the people arguing have something to cut their teeth on. There are a few things that should not be allowed, such as ad hominems and pointless insults - these make the debate excessively hostile and make it far less likely that people will learn new things from it.

There's also the question of what discussions to allow. If a bunch of Neo-Nazis want to debate Naziism, do we allow that? I think we should, though with strict moderation, because it might end up changing some of the Neo-Nazi's minds.

I know that many of these are topics about the use of a particular forum, not about Agora as a whole, but before Agora sees greater adoption, we'll need to demonstrate it's capabilities.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Fniff on April 23, 2014, 05:59:36 pm
This is really interesting! I would make this a usual PTW, but I had a thought. Is Agora meant to be debates only, or would it be similar to a regular forum in having topics for game discussions, emotion threads, or forum roleplaying? The last one would work brilliantly on this, I imagine. A common dilemma on such threads is who is talking to who and where.

Anyway, nevermind my nerdy indulgence, PTWing with interest.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on April 23, 2014, 09:56:31 pm
All of the above, with specialized  subsystems for the various varieties. Eventually, anyway.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on April 24, 2014, 10:15:46 am
Yeah, when we say debates, we really mean any kind of discussion. The main thing is that there is an explicit formal way of relating what people are saying, by specifying that the point I made invalidates your point, or something like that.

Wow, I've rewritten this post about 3 or 4 times now :\ I'll try to keep it short this time!

Moderation policies will be up to whoever is hosting the Agora service. I think as the official Agora website, we probably want to have several subforums for different levels of seriousness, and different levels of moderation, and we should discuss policies for those at some point.

Other than that, different websites will define their own moderation policies, like forums do these days.

I don't think we need moderation for moderators. There is always potential for abuse, be it moderators, administrators, governments... ultimately, you frequent websites with whose community, moderation and administration you're comfortable with.

It's the administration's responsibility to keep moderators in check. If anybody is unhappy with the moderation, they can take their concerns to the administration, or can start a debate on that very issue - after all, that's what Agora is all about :D This is how most forums work these days, and the system works OK.

Having everything super public and open for debate will just really confuse discussions and give them lots of meta-layers that will dilute the issue under consideration. I quite like how Bay12 is moderated, for instance. Someone reports the posts, Toady comes in, removes the flame wars posts, and writes a comment saying what happened. Why wouldn't that work?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on April 24, 2014, 11:39:45 am
It probably would- I guess we'll have to wait and see.

I don't really think there'd be a problem with there being huge debates about a moderators action - either it's obviously wrong, or it's not.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on April 24, 2014, 01:01:34 pm
I agree! I think debates about moderation are a big part of online communities and that they need to be represented in the Agora framework, but I think it makes more sense for that to happen as a debate in itself, as in current forums :)
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on April 24, 2014, 02:33:44 pm
But don't you think that the activities of the moderators should be logged, so that people have concrete facts to discuss, instead of just allegations?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on April 24, 2014, 02:37:33 pm
Yeah, that's probably a good idea! Shouldn't be too hard to accommodate as a feature either!
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on April 24, 2014, 02:49:55 pm
That's the entirety of my idea though - that moderator's actions should be logged, and that people should be able to criticize them. Though I suppose we might not want to have large conversations over each and every action by a moderator. I don't really think this'll be a problem, but I suppose we'll have to wait and see.

On another note, I can't seem to get the text client to work. It's giving me this error:

Code: [Select]
[JAgoraLib] Error opening connection to bigornas.bounceme.net:1597 (Connection refused)
[JAgoraLib] Could not connect because socket could not be opened.

Did we change the settings on the server? I can still log in normally through the web page, so I know it's still up. and I updated to the latest version of all the agora projects, so I'm pretty sure it's not that.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on April 24, 2014, 02:58:16 pm
Oh, right. I guess I'm just not sure how to present information about stuff that's been deleted, and would actually like to delete it at some point for performance reasons, but I'm sure we can come up with a nice simple solution :)

You should run a local server! Then the server connects to the database which is running in bigornas, and your client connects locally to the server. Does that make sense?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on April 24, 2014, 03:15:34 pm
Alright, I see how that works. thank you! Now I just need to make my graphical client use this to access the server so I have a something to display.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on April 24, 2014, 03:16:18 pm
I'm on Skype and in the Agora google doc, just in case :)
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on April 26, 2014, 06:03:37 pm
What functions are there for getting data out of the JAgoraLib? I only see getThreadByID, is that the only one?

Edit: Looks like it is. I've been playing with it, and it seems some of the posts on the test server are messed up, cause when I try to get threads 0 or 1 it gives me errors. 2 works fine, so far as I can tell, and anything above that does nothing, which is not surprising as there are no threads above that point.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on April 28, 2014, 01:29:27 pm
Yeah, that's the only one. We really need to figure out the technical capabilities we can afford to implement since getting a graph-like structure from a relational DB can get pretty expensive.

Check the database - I am not sure there ARE threads 0 and 1. I've deleted a few of the previous threads because they were no longer in the format that we needed for the DB. But definitely use phpMyAdmin to check the DB out.

Error reporting is TERRIBLE right now. That's one of the things we need to improve, definitely.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on April 29, 2014, 06:23:47 pm
I'm going to add capabilities to get the list of threads from the database. Once I'm done with that I'll commit it to a branch and you can take a look, OK?

While I'm at it, though, should I add an object to JAgoraGraph to represent a thread header? Or should I just use argument for that?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on April 29, 2014, 09:46:43 pm
Excellent idea! Commit to the main branch - don't worry about it! If you just add code, you won't break anything! :)

I'm not sure whether to the header should be part of JAgoraGraph or some other structure. My original idea was to just have graphs, which you could potentially merge so you'd have multiple threads linked together. Perhaps JAgoraNodes can have the thread information?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on April 29, 2014, 09:53:33 pm
I had originally thought to just have posts, some of which could be in reply to Main Index's in addition to other posts. That requires that each post have a subject field, like the posts here, which they don't right now, as far as I can tell.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on April 29, 2014, 10:27:26 pm
Each "post" is a JAgoraNode, which have an int threadID, but I think that's about all we get so far. We definitely need to have more thread information! The current hierarchy is forum->subforum->subforum->...->subforum->thread->JAgoraNode. I believe forums can be arbitrarily stacked, but we have no way to get information about any of that stuff (forums, threads, etc).
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on April 30, 2014, 09:53:26 pm
Well, let's see. Posts should be able to exist in multiple threads - that should be easy enough, just make the thread id thing a list.

We also might want to consider making posts have lists of the other posts the are linked to, so that we don't have to scan the entire database whenever we need to find a posts relationships.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on April 30, 2014, 10:44:44 pm
The relationships are given by the attacks (JAgoraEdge), and each post (JAgoraNode) contains a list of ingoing and outgoing edges.

Allowing posts to exist in multiple threads makes queries less efficient because that makes another table. The way I was thinking this could be at least initially implemented is that each post is originally proposed in a thread, and that's what it's associated to. But the cool thing is that the attacks/arrows/relations don't need to be between arguments in the same thread. So even though an argument belongs to a thread, it can attack or be attacked by any other argument.

The way this is used would be something like this:
- Ask for thread #1
- Get curious about a particular argument from thread #2, which attacks an argument from thread #1
- Ask for thread #2, then merge threads #1 and #2

What currently happens is that arguments from other threads do not get sent to the client (until explicitly requested with their thread ID). They are, however, represented as "placeholders", hence the current isPlaceholder() method in JAgoraNode.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on April 30, 2014, 11:42:37 pm
yeah, ok, that works. Though if a post replies to two different threads, which one does it belong to? whichever was posted most recently?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on May 01, 2014, 09:02:19 am
Hmmm, good question. I guess the way this will work is that you post to a specific thread (like in regular forums, though it'll be weird if you ask for multiple threads), and then state which attacks you believe should exist for that post. Until then it's just a lonely post not really contributing to the conversation.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on May 01, 2014, 02:07:54 pm
Another way we could do it is to not have posts remember what thread they're in at all. when someone requests a thread, they get the first post in it, and then they can manuever outward from there. Perhaps have a thread remember it's first post and a list of it's leaves (the posts in response to it with no replies)?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on May 01, 2014, 02:11:59 pm
I thought quite a bit about it, but I'm worried about database performance.

Databases can't really handle recursive queries, which is what you'd need to do if you wanted to get all arguments somehow connected to a given argument. The advantage of each argument having (at least) one thread is that you can get all arguments from that thread at once, then grab all attacks related to those arguments. That's pretty efficient (and it's the way it's currently implemented).

If you grab the initial post, then query again for the posts at 1-step, then again for those at 2-steps, etc etc, you're making a ton more queries. Not to mention that you have to send the database all the posts that you already have, so that you can grab all the posts somehow related to THOSE. And then you get an even larger number of posts, which you have to send again, and so forth.

Similar things would happen if you had to fill in the blanks from the first post and the leaves. Also, there will be cycles, meaning there might be no leaves!
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on May 01, 2014, 02:20:26 pm
I was thinking that the database would save a list of all the leaves, and that it updates it whenever someone posts. So it would only have to be computed every now and again, not all the time. And shouldn't there not be cycles? Since posts can only reply to posts posted before them?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on May 01, 2014, 02:22:43 pm
Well, debates are just graphs, so there isn't really any reason for there NOT to be a cycle. You add a post, and that post is initially unrelated to anything. Then you add an attack saying that your post undermines some other post, and that's how they become connected.

For example, all pro/con debates will start out with a cycle, one pro, one con, attacking each other!
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on May 01, 2014, 02:46:22 pm
I had figured that posts would have their relations to other posts set at the time of creation. Debates would have a topic post, and then each position would be a reply to the topic post.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on May 01, 2014, 03:09:00 pm
The theory is defined over graphs, so there's really no reason we need to restrict its flexibility! I think part of the selling point here is how easy it is to get into the system. Propose an argument/post, then relate it to existing ones. If you spot a connection that wasn't there before, add it later! It's plausible that people don't immediately realise any two posts on the internet are connected. It makes sense that once people realise that, they might then wish to relate them (after they have both created).

There's a nice example here (http://centria.di.fct.unl.pt/~jleite/papers/tafa13.pdf), on page 8.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on May 01, 2014, 04:22:25 pm
Yeah, I suppose that should be something that can be edited. So for now at least, I'll just add the code to get the thread list from the database.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on May 01, 2014, 07:19:55 pm
Awesome :D
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on May 01, 2014, 08:47:49 pm
Now of course, I find myself wondering where to put the code for this. I've started making the methods in JAgoraLib and JAgoraServer. Should I put some of the code in DBGraphDecoder, or just have the server do everything?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on May 01, 2014, 08:59:38 pm
Hmm, good question :\

DBGraphDecoder is the one that does the querying, so I guess you can get the graphs from there. Then you can have a ForumThread class somewhere in JAgoraLib (or should it be part of JAgoraGraph somewhere?). Then you'll need to encode and decode that into BSON.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on May 01, 2014, 10:12:43 pm
I put JAgoraThread in JAgoraGraph, next to JAgoraNode. Next I'll make DBGraphDecoder query for the threadlist, once I figure out how it works.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on May 02, 2014, 05:37:31 pm
Alright so I got to the point where I need to query the database. The problem now is that I have no idea how to phrase the query. Is there a tutorial for this somewhere?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on May 03, 2014, 02:25:59 pm
It's a MySQL database, if you know SQL! I think the queries are all in DBGraphDecoder right now, so you can probably figure out how queries databases from Java works from there. Otherwise I think the name for the library is JDBC? I honestly don't remember anymore, ugh :\
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on May 05, 2014, 09:52:43 pm
I'm about halfway done getting the getThreadList function working. I have a lot of work this week, though, so I've gone ahead and uploaded what I've done for the server, graph and lib repositories. If anyone else is interested, they can take a look. I'm sure I've done something silly somewhere, so if you can catch that it'd be good. I'll try to get back to it when I can, but as I said, I'm fairly busy this week.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on May 06, 2014, 08:36:55 am
Had a quick look over the code and it looks great, man! Nice! I don't think I've said it's great to see someone working on this, so I'll just go ahead and say it: it's great to see someone working on this :D
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on May 12, 2014, 08:02:24 pm
At what point should I upload my changes for JAgoraClient? I started by deleting everything you'd written, because I didn't understand the library you were using and wanted something more familiar, so I don't want to upload until I've replaced all the prior functionality.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on May 12, 2014, 08:03:35 pm
Whenever is fine. All the repositories have the old versions anyway - not that anything I've written is going to be useful for the client at any point :D
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on May 12, 2014, 09:16:17 pm
Well, it's updated. Not nearly done yet, but moving along.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on May 18, 2014, 02:00:04 pm
Alright, I have the client to the point where you can view the list of threads, click on a thread, and view the graph for it, so long as the graph is simple. It won't work for more complicated graphs. Next I'm going to add the capability to add new arguments, and then I'm going to start work on refining the interface for easier viewing. In order to get the project running, you'll need four projects: JAgoraLib, JAgoraGraph, JAgoraServer, and JAgoraClient. You'll need to link these up properly in an IDE and run the server, then the client. Then you can login with the first menu, and view the threadlist with the second. You can click on a thread to to view it's graph. Soon I'll add the functionality to click on a post in the graph and recenter it in your view, or to write a response too it. At some point here I'll see if I can make it easier to load up the project and test it out, but that's a little ways down on my list of priorities. Anyone who wants to take a look and make recommendations or requests is welcome to do so, and anyone who wants to contribute themselves is doubly welcome to do so. I currently have another job, so this'll progress slowly, but bear with me. We'll get there.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on May 18, 2014, 02:05:56 pm
Sweet!

I'm getting a little bit more time recently, and I'll download this and see how it is! Let me know any specific things you'd like my to contribute to!
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on May 18, 2014, 02:12:08 pm
Well, setting up JAgoraServer on bigornas.bounceme.net or somewhere like that and making an easily downloaded compiled version of the Client might be worthwhile. That would make it much easier for people to get involved.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on May 18, 2014, 02:20:16 pm
That's a good point :) At some point it was using 100% CPU and the computer was pretty noisy. I'll see if I can fix that!
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on May 22, 2014, 11:10:47 pm
You can now properly browse a graph, albeit slowly and clumsily. That feature turned out to be easier to get at then adding new posts, so I got it first. I hope to have adding new posts fully implemented by the end of the week.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on May 23, 2014, 10:31:16 am
Hey bud,

Just went to try this out but the code isn't compiling at all. What am I missing? It looks like you might've forgotten to add the JAgoraThread file?

Ugh, nevermind, it's Eclipse acting up...
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on May 23, 2014, 10:37:12 am
Also make sure you update the graph library. I pushed a new version there too, and without it he client won't compile.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on May 23, 2014, 10:43:59 am
Just OCD'd a bit and cleanup warnings and stuff. Added the Mongo Library to JAgoraClient too, which was needed for it to compile!

Other than that I see stuff appearing on screen! Sweet :D :D Did you remove the arguments from the first thread? I'm not getting anything from there. They had votes and everything :(

Quick question: is there any way for us to get a ThreadPanel of sorts that can draw itself, rather than ThreadListPanel drawing the JAgoraThreads under PaintComponent?

Also, you should definitely add all of the tasks you feel need to be done in the GitHub issue tracker. That way it's easier for whoever else to pick up on a task that needs doing.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on May 23, 2014, 10:48:16 am
I did remove the arguments from the first thread. They were causing errors when I went to fetch them, so I figured they were corrupt.

I could indeed add a ThreadPanel, and will once I've finished with my current work. I'm also going to go back and turn all of the prompts for host, login, etc. into panels in the same fashion as graphpanel and threadlistpanel.

Good point. I'l see about that right now.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on May 24, 2014, 01:02:33 pm
Alright, you can now add new posts. It doesn't add the new connections, though, so I'll need to see about cleaning that up. I also merged the cleanup you made, which I had forgotten to pull. I have an eight and a half hour shift now though, so I'll finish this up in a little this evening.

Edit: Ah hell, I'm exhausted. I'll get it some time this next week.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on May 27, 2014, 01:39:03 pm
Alright, so I just spent a couple days being sick and not getting anything done. But I'm feeling sorta better now, so I'm going to get back to work.

Anyway, do you know a simple way to get back an arguments ID after it's been added?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on May 27, 2014, 02:16:36 pm
Hmmmmm, I guess that's the only missing part of the argument, the rest was all added by the user anyways. We can probably add it to the response somehow, we just need a way to figure out the ID of the last added argument, which might not be trivial. I seem to remember thinking about doing that but it seemed like there was no reliable way of getting it?

If we were to add it, it would come from org.agora.server.database.DBAddArgument!

Ugh, I'm sorry I haven't been able to participate more. Grad school is destroying me.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on May 27, 2014, 02:25:12 pm
Yeah, don't worry, I'll figure it out.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on May 27, 2014, 02:28:05 pm
Looks like it might not be terribly hard to add after all: http://dev.mysql.com/doc/connector-odbc/en/connector-odbc-usagenotes-functionality-last-insert-id.html
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on May 27, 2014, 02:37:05 pm
I think I might just make a new function, addArgumentWithAttacks(...). If I use SELECT LAST_INSERT_ID(); I should be able to make it work pretty well.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on May 27, 2014, 02:38:36 pm
We already have functions for adding arguments and for adding attacks; we can build functionality for adding argumentsWithAttacks at the interface level. We shouldn't reimplement functionality!
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on May 27, 2014, 02:47:07 pm
Yeah, I'll make this function call those functions.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on May 27, 2014, 02:49:50 pm
Yeah, it makes sense that this would be at the interface level.

How are you going to make the interface for it? Maybe a button on each argument that says "add new attacker" or something like that?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on May 27, 2014, 02:55:16 pm
I already have the interface working, though it's kinda buggy. right clivk on an argument while you have both the graoh view and the add argument panel open, and then minimize and unminimize the window. you'll see a red box appear above the addargument panel. eventually these will have titles and close buttons and all the goodies, but for now you can remove them by clicking.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on May 28, 2014, 12:14:42 am
Well, I think I almost have it working properly, but it's still buggy.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on May 30, 2014, 12:49:20 am
Alright, I fixed a couple bugs, only to discover that LAST_INSERT_ID() gives me 0 every time. I'll read up on it and see if I can figure something out in the morning.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on May 30, 2014, 09:20:57 am
Huh... I'm pretty sure the database is configured correctly. That's really weird. How are you using it?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on May 30, 2014, 11:59:51 am
I have DBCheck send a query for "SELECT LAST_INSERT_ID();"
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on May 30, 2014, 02:41:16 pm
It's not on Github, is it? Couldn't find it.

Are you doing one or two different queries? Could it be that it needs to be sent as a single query, i.e. query("INSERT ... VALUES (...); SELECT LAST_INSERT_ID();") rather than query("INSERT ... VALUES (...);"); query("SELECT LAST_INSERT_ID();"?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on May 30, 2014, 03:17:18 pm
I forgot to push. Done now.

And yeah, you're probably right.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on May 30, 2014, 06:27:38 pm
Hmm. Well, if that's the case, I have no idea how to proceed. It appears that you cannot get back data at the same time you make changes, thus, you cannot put both in one statement.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on May 30, 2014, 11:48:58 pm
Alright, I figured it out. It works now! Of course, the graphics are bugged, and there are a billion little things to be done, and my code is so messy...
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on May 30, 2014, 11:49:55 pm
Sweet! I was actually looking at it right now trying to figure it out! How did you fix it?

One thing we probably have to worry is whether there are concurrent inserts into the database. We wouldn't want a different ID to be returned. Could that happen in this implementation?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on May 31, 2014, 12:29:42 am
I changed the function that added the argument, to call last insert id from the same dbc, without closing it.

Possibly. I think dbc has code to prevent that, but I'm not sure.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on May 31, 2014, 10:22:19 pm
alright, I fixed some display bugs. It should now be much easier to view a large graph.

We should do something about getting some other people involved. Even if all they do is add issues to github, that's still pretty useful.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on June 03, 2014, 02:12:30 pm
Merged graph and lib, and also fiddled with the client some: Logging in is now done through a panel instead of a prompt.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on June 03, 2014, 02:19:29 pm
Sweet!

If not problems have been reported within a week we can go ahead and remove the JAgoraGraph repository.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on June 03, 2014, 02:39:59 pm
Sweet!

If not problems have been reported within a week we can go ahead and remove the JAgoraGraph repository.

I tested it and found no problems. We just need a few other people to see of it works for them. On that note, I'm considering how to go about expanding our pool of testers. I was considering sponsoring a debate of some sort on the forum, just to test things out. I think we should probably neaten a few things up first, in particular Post needs to not have text run off the edge. This means either turning it into JComponent of some sort, which should be able to take care of that problem automatically, but may be hard to get to assume the right size and position, or writing the code for this myself. Which do you think would be easier to maintain in the long run?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on June 03, 2014, 02:49:45 pm
Again, I really don't know a lot about Swing :( I always felt like it was made for developing forms and fairly static things, whereas I imagine an Agora client to be more graphically flexible, in a way. That's why my go-to solutions were always game libraries and stuff.

If a JComponent is just "any" object that can draw itself, then that sounds like it wouldn't be too different than what people do in games, where you need to break text into lines depending on the width of each desired line, then draw each line, etc. Graphics are hard and annoying!
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on June 03, 2014, 02:53:48 pm
JComponent is indeed for more static things, which will probably be a problem eventually. I think I will go with writing my own code for text scrolling.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on June 03, 2014, 02:54:44 pm
I meant Swing in general - you build forms with it, and they're not really meant to have things moving around, lots of easy scrolling, etc. What is the alternative to JComponent?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on June 03, 2014, 02:57:41 pm
Yeah, you are right about that. We probably will want to see about changing graphics libraries. I have a friend who swears by OpenGL, maybe I'll take a look at that. But first I want a minimally functional client.

JComponent is the parent class of most everything in AWT and Swing. So the alternative is to use a different graphics library, or to have it as I do now, where posts are drawn on top of a JPanel with PaintComponent.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on June 03, 2014, 04:10:34 pm
One thing we ought to try to do is keep this implementation as multi-platform as possible. That means using libraries that are also multi-platform. Some game-dev libraries will not be, and I'm not sure what the whole OpenGL situation is.

I actually tried using OpenGL for a while, but couldn't get transparency to work properly. It's also very low-level, probably more low-level than what we want to work with. Ultimately, I think a vector graphics library would be ideal, but I couldn't find anything that seemed promising for Java.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on June 03, 2014, 04:53:04 pm
Well, by OpenGL, I mean a wrapper for openGL, like LWJGL, or LibGDX for that matter.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: ShadowHammer on June 03, 2014, 09:55:38 pm
I like this idea, but have nothing to contribute except moral support, so this is pretty much just a PTW.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on June 03, 2014, 10:10:28 pm
You can download the project and then post any issues you find on the github pages. And I'm thinking of starting some serious testing soon.

Edit: in other news, I fixed the issue with text running of the Post. Still need some work though, I'll go over it with FontMetrics tommorrow.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on June 04, 2014, 09:59:22 am
Do you think we will be able to position things off-screen? Imagine you have a large debate, can we make it so it will be free navigable?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Antsan on June 04, 2014, 11:53:28 am
One thing we ought to try to do is keep this implementation as multi-platform as possible. That means using libraries that are also multi-platform. Some game-dev libraries will not be, and I'm not sure what the whole OpenGL situation is.
I don't know the situation for Java in this regard either, but as OpenGL is the low-level graphics library/interface/standard (I have no idea what the correct term is) it should be an obvious choice if you want multi-platform support.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on June 04, 2014, 12:46:06 pm
Thanks for the info. LibGDX can basically be used as an interface for OpenGL, but somehow I couldn't even get a nice anti-aliased circle with some transparency going, and the process to fix the weird transparency issues seemed to be way too low-level and convoluted. Ultimately the point is that programming things from scratch in OpenGL is probably a bad idea, especially since we don't want to have to deal with different hardware handling low-level graphics code differently.

I'd love it if we could work with something higher level, yet still multi-platform. It's unclear whether there is such a solution for Java at this point.

P.S. fixed the Eclipse files in all of the repositories, and fixed all the warnings. The new login screen is a lot better. At some point we should also add error handling. Perhaps I can try to tackle that.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on June 04, 2014, 01:07:20 pm
Go for it. I'm gonna work on the registration and host changing screens next.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on June 04, 2014, 09:42:20 pm
Alright, I finished switching over from prompts to panels. can anyone else think of anything we need to do? Do you think it's time we looked into bringing in more people for alpha testing?

I think we should probably consider moderation next. We'll also want to add in voting functionality, probably around the time we add more advanced display options.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on June 05, 2014, 11:51:45 pm
Or perhaps I should add functionality for editing already made posts?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on June 06, 2014, 08:15:00 am
I honestly think we should have a system that is almost fully functional and looks good. Otherwise people would be making us a favour for testing it. I'd prefer it if it was a good enough system that they'd already use it of their own account.

Editing, navigating, some tutorials/help, stuff like that should all be in. That's just my opinion of course! It's also fine if you want to go ahead and bring a few people in for feedback :)
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on June 06, 2014, 11:59:58 am
Yeah, you're probably right. I'll work on adding editing today.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on June 06, 2014, 06:33:14 pm
I talked to my friend about transparency and OpenGL, and he says that first you need to call glEnable (GL_BLEND), then make sure you're using the right blend function, usually glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA), then draw stuff in the right order. Does that help you any? He was probably using LWJGL, which as far as I remember is basically a wrapper for OpenGL and a few other things.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on June 09, 2014, 09:41:48 am
Yeah, those are the things that I ended up trying out. There still ought to be some of the code in one of the initial commits for the client, if you want to try finding it and seeing the bug that came out of that. I did find some webpages talking about the problem I was having with OpenGL and the solution wasn't straightforward or easy or anything.

Again, I'm just convinced that OpenGL is too low-level...

I've been looking at LibGDX again, but just getting the basic resources/skins system working is such a huge pain.... other than that it appears to have some rather nice UI features that could be interesting.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on June 09, 2014, 08:59:22 pm
Yeah, I'll look into that stuff after I get editing working. It's down to the syntax now. I was using "UPDATE Arguments SET content=(CONTENT) WHERE arg_id=(ARG_ID), user_id=(USER_ID) VALUES(?, ?, ?);" but it doesn't like that. DO you have any idea how to make that work?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on June 09, 2014, 09:08:55 pm
UPDATEs don't use VALUES(...). Only INSERTs do! Try:

UPDATE Arguments SET content=? WHERE arg_id=?, user_id=?;



We also ought to start sanitizing input at some point!
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on June 09, 2014, 09:23:09 pm
It doesn't like that either. I'll read up on some documentation and see if I can figure it out.

Edit: alright, theres editing working. Do you think we should add a system to keep track of revisions?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on June 10, 2014, 08:46:46 am
How did you fix it? :)

Argument revisions? No, not really. I think it'd be too much stuff. To be honest, even editing should be a feature that can be turned off at some point! We could actually do it like SMF here: we can store the information of when and who performed the last edit to a post. Shouldn't be horribly hard!
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on June 11, 2014, 03:49:52 pm
I changed the "," to "AND".
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on June 11, 2014, 03:57:17 pm
Hahahahahah :D If I had a nickel for everytime it was something like that.... :D
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on June 11, 2014, 08:59:04 pm
Yeah...

For now, what do you think we should work on next? I was considering taking a poke at switching to LWJGL, should I do that next or let it wait?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on June 11, 2014, 09:18:35 pm
It'll depend on how far you think we can go with Swing. There's no problem in having two implementations. I mean, as far as I understand you can draw components and shapes however you want them, so there might actually not be any technological limitations. I'm not sure whether these are hardware accelerated though, and every Swing/AWT application that I've run has been pretty slow and unresponsive, so we might have to switch at some point.


One of the things that's super important is that it looks, feels and works good. In particular, people should be able to "merge" different related discussion graphs, order posts in different ways, etc. This should be programmed in a very general way so that it is easy to add new visualizations. Good principles for game design probably apply here - things like detaching views from actual content, for instance.

The more I dive into LibGDX, the more great features it appears to have that we can use, but on the other hand it seems soooo annoying to actually get to work at first. It does offer really large portability, but at the cost of a relatively confusing and somewhat undocumented API and associated tools. Worst-case it devolves into OpenGL, which is what LWJGL is anyway. I feel very strongly that we should steer clear from very low-level libraries. It's a recipe for disaster and low productivity.


I say we could go for LibGDX instead of LWJGL (check the older revisions with the LWJGL implementation to see the kind of problems and low-level graphics programming we'd be running into). There's also Batik (http://xmlgraphics.apache.org/batik/), which looks interesting and might be closer to what we want.

If we decide on LibGDX, we should probably talk at some point, or I can write some of what I've learnt about it on here!
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on June 12, 2014, 12:56:17 pm
Yeah, let's wait on that. In the meantime, are there any other features you can think of that we should add? Perhaps some moderation capabilities, like the ability to ban users, instead of just deleting them?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on June 12, 2014, 12:57:15 pm
We'll probably need to change the database for that, but sure, go ahead!
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on June 12, 2014, 01:46:40 pm
We'll probably also want to work on security. Right now, anyone can just write their own server application and edit the database. I have no idea how to address this though.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on June 12, 2014, 01:48:37 pm
Well, the only way to directly access the database would be through the server. Once I get the server working permanently from home, then nobody will actually have credentials to access the database, just that one server.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on June 12, 2014, 07:05:15 pm
What do the user tyoe variables in the data base mean? Do we have an already developed system for these?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on June 27, 2014, 11:54:34 pm
I'm thinking of spending some of my money to hire a professional developer for Agora. What do people think of this idea?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: LordSlowpoke on June 28, 2014, 07:56:19 am
hiring pros to work on open source stuff is rather common, and i can't stop you from spending your money on it if i wanted to

it could lead to a good amount of progress made in a short time period, as long as you know exactly what you want to improve and where
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on June 28, 2014, 09:43:44 am
Is the idea that you'd monetize this somehow afterwards to pay for that? I'd personally rather not go that path, but that's me. Also, we're talking about significant amounts of money... developers are well paid!

I forgot to say something about user types! I honestly don't know at the moment. Diana was working on that, and on permissions and things. I don't think they they currently have a specific meaning, but I could be wrong. I'd guess these would be an integer telling you whether it's a regular user, moderator, administrator, etc.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on June 28, 2014, 11:08:38 am
Monetize it? Not as an entrepreneurial project. Perhaps if it grew to become large enough that managing it would qualify as a full time job, I might ask to write myself a paycheck (y'know, assuming I was the one in charge of managing it). But that's a waaaays off.

My main goal is to get it to the point where I could run a kickstarter or otherwise make it self sustaining.

Edit: Also, Here (http://www.mediafire.com/download/nu4d6adi51ja58t/Agora.zip)'s a couple precompiled jars. You'll need run the server first, then run the client.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on June 29, 2014, 11:46:32 pm
Though now that I think of it, it might be worthwhile to monetize it, not for my sake, but so that I can fund further developement. I could do this simply by creating a system where people can create their own sub-forums, and have ads run only on such sub-forums. This could even be worthwhile simply in it's own right- it'd attract people to the platform, and would make discussion much more freeform and user controlled. What do people think? Is it worthwhile? Is there a better way to do it?

Edit: Really, I think I should do this regardless, the only real question is whether I should have the advertisements.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on June 30, 2014, 09:55:00 am
I actually think github has a way to post releases. We should look into that.


I still don't think the project is anywhere near a condition where it makes sense to monetize it (independently of my preference not to). Right now there are other alternatives that are free and have a much better interface. The only thing we could possibly offer right now is to have the debate outcomes be computed, which was one of the first implemented things but which needs to be updated.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on June 30, 2014, 11:10:12 am
Well yeah, this would be after I spend some of my money on it. And again, strictly as a way to fund the ongoing development of the project.

Edit: well, I did the research, and it looks like I can't afford to get it professionally developed, unless I spend more of my savings than I'm comfortable with.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on June 30, 2014, 02:19:29 pm
Yeah, IT developers get tons of money :) I'm still trying to find some time that I can continue to develop this with. Did we reach the conclusion that we're gonna have to use some other technology for the client?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on June 30, 2014, 02:26:28 pm
Probably. No one really wants to have to download and run java applications.

Edit: Perhaps I should go back to considering running a kickstarter for Agora?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on June 30, 2014, 03:50:25 pm
I dunno, I feel like we just need to find some time and work on it. I personally definitely don't want to deal with finances, moneys, backer rewards, etc etc, until I am comfortable there's a working product here. I'm OK with it taking longer and being a product of love rather than money, if that makes sense.


What I meant by technology was basically if we were OK using Java 2d APIs or whether we need something more. For now we should stick with Java, and then sure, eventually we can use another language, but we'll need to reimplement JAgoraLib, for instance.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on June 30, 2014, 03:56:35 pm
Yeah, I think java 2d API's work well enough for now. I really think I should look into implementing it with OpenGL in html5 or javascript or whatever.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on June 30, 2014, 03:59:08 pm
I still maintain OpenGL is way too low-level for what we are trying to do. We'll get bogged down in hardware compatibility issues, taking forever to implement simple features because it's so low-level, etc. A vector graphics library would be better, which we haven't really explored yet, and if that's not available then just a simple 2d API with good enough quality images will work perfectly too.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on June 30, 2014, 04:04:31 pm
Hmm. Yeah, probably. *Googles* And apparently there (http://raphaeljs.com/) are (http://paperjs.org/) several (https://developers.google.com/closure/library/) Javascript vector graphics libraries.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on June 30, 2014, 04:06:15 pm
Yeah, I've seen a few of those! I guess I really don't understand how these can exist for such an inefficient library and then sort of not existing for Java, one of the most used languages!
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on June 30, 2014, 04:22:01 pm
I think javascript is actually more used, at least for things that have visible interfaces. Though I did at least find this (http://xmlgraphics.apache.org/batik/) for java.

Edit: Also this (http://trac.erichseifert.de/vectorgraphics2d/), which looks pretty good.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on July 07, 2014, 05:03:00 pm
Yeah, alright. I'm going to start work on a html5/javascript client, using paper.js. I'm not sure how to handle the BSON connection, but I'm sure they're a way somewhere. Worst comes to worst, I can use JQuery.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on July 07, 2014, 05:04:20 pm
You'll need to implement JAgoraLib too! What language can you use for that? I'm afraid I'm woefully out of touch with all the new web technologies.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on July 07, 2014, 05:16:16 pm
Yeah me too. I think javascript should do just fine, though. Once I figure out how it works...
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on July 07, 2014, 06:45:33 pm
Alright, I have a very basic project working! I figure I should probably add it as a project on the github, right?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on July 07, 2014, 09:21:16 pm
Yup :D
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on July 08, 2014, 04:04:21 pm
Have a look at D3! http://d3js.org/
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on July 08, 2014, 04:12:45 pm
Yeah, I remember a friend showing me that. I could well use that instead of paper. Of course, the first thing I need to do is put together a javascrip AgoraLib.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on July 08, 2014, 04:14:26 pm
Heheheh, good luck with that! It appears that D3 is using SVG as an underlying format. I think I'll try to use Batik to get nice rendering in Java, since apparently it allows you to render and see SVG documents. Hopefully the performance is up to par.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Benata on July 09, 2014, 04:00:34 am
Reminder: Javascript is good but Java is a piece of shit.

HTML5 is future.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on July 09, 2014, 07:52:50 am
Funny, I hate Javascript and am OK with Java ;)
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Benata on July 09, 2014, 12:07:19 pm
Funny, I hate Javascript and am OK with Java ;)
Weirdo.  :D
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on July 10, 2014, 09:51:55 pm
I keep hearing people talk about wordpress, and got a recommendation to look into it. Does anyone here know how to use it for cutom sites?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on July 10, 2014, 10:40:54 pm
I think that's more of a static page type thing. I don't think it allows you to easily have super dynamic content!
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: dorf on July 11, 2014, 04:47:57 am
With Wordpress (or any other CMS) you trade simplicity with flexibility.
Each CMS is designed to do something specific really well and that's really easy to use, but if you want to do something custom, you will have a hard time with it. But it can be done!

I don't know how Agora works, but it seems to me that it could be implemented as a single-page app (GMail, Facebook...). Which means the choice of CMS is irrelevant (or even unnecessary in some cases) as the integration of Agora would be trivial.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on July 11, 2014, 06:23:16 pm
With Wordpress (or any other CMS) you trade simplicity with flexibility.
Each CMS is designed to do something specific really well and that's really easy to use, but if you want to do something custom, you will have a hard time with it. But it can be done!

I don't know how Agora works, but it seems to me that it could be implemented as a single-page app (GMail, Facebook...). Which means the choice of CMS is irrelevant (or even unnecessary in some cases) as the integration of Agora would be trivial.

Thanks for the tip!

So I decided to dive into some SVG implementation and went with SVG Salamander. The implementation is under the weirdly named branch JFreeSVGClient of JAgoraClient, but it features arguments moving around, and they look nice. I feel like this is probably what we want to go with for the Java implementation.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on July 11, 2014, 06:55:08 pm
Are you still using JAgoraGraph? I'd thought we merged that into JAgoraLib. Specifically, in your JAgoraClient file, you have "import org.agora.graph.JAgoraArgument".
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on July 11, 2014, 07:46:03 pm
Whoooops! Forgot about that - I renamed a bunch of things so that they made more sense, sorry! Let me commit!
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on July 11, 2014, 09:12:44 pm
I'm still seeing a lot of errors. It looks kinda like all the code I had for my version of the client that you ddn't overwrite got kept in with the new files for your branch. If you look here (https://github.com/Agora-Project/JAgoraClient/tree/JFreeSVGClient/src/org/agora/client), you'll see the files I committed a month ago, plus the files you just worked on.

Edit: I deleted those, and sure enough, it works now. I'll note, you didn't make you project exit when the window is closed. You need to add "this.setDefaultCloseOperation(EXIT_ON_CLOSE);" to the frame constructors.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on July 11, 2014, 09:58:31 pm
Well shucks, you're right. I'm not using the Github application, just regular git, and it keeps giving me these weird messages. I guess I should start reading them, I was sure I'd removed the other files! I've never really explored pure Swing stuff, so I'm missing those basic things. Closing it manually was definitely super annoying.

What do you think of the looks of the SVG version? It's got anti-aliasing, very flexible (as flexible as SVG!), we can easily move arguments around, there's functionality for getting the argument at a given position (when we click on them), support for viewports/scrolling, I think there's some native support for animations too... I'm pretty excited about it. It's very dynamic, looks good, and there's basically no dependencies either.

I feel like it looks like the web version that we wanted without being javascript, which is a plus for me personally. Not saying the web interface isn't useful - it's probably even more portable - but I don't know a lot about javascript and we'd have to reimplement a whole bunch of stuff.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on July 11, 2014, 10:08:36 pm
Yeah, it looks pretty good. I myself don't know a lot about javasript, but I'm learning.

I went ahead and committed my changes, no sense duplicating that effort.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on July 12, 2014, 11:47:18 pm
I also went ahead and added a repository for the JSAgoraLib, which is not remotely complete.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on July 17, 2014, 04:03:20 pm
So I came across this  (http://mbostock.github.io/d3/talk/20111116/force-collapsible.html)the other day, and I thought it would make a good basis for Agora. Just make the circles into speech bubbles and add some functionality for browsing and editing the thing.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on July 17, 2014, 04:04:21 pm
Yep, D3 appears to be a great choice. This is a tree though, not a graph, but I'm sure there's a version for graphs :)
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on July 17, 2014, 06:32:38 pm
Yeah, sure enough- Here  (http://bl.ocks.org/rkirsling/5001347)it is.

Also, remember when I was talking about using the thing for formal logic? Check this  (http://rkirsling.github.io/modallogic/)out.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on July 17, 2014, 09:57:26 pm
Oh, hey, cool, Kripke structures! I'm using similar things for my research! :)

This looks kickass!
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on July 20, 2014, 04:19:27 pm
Alright, so now I need to make my JSAgoraLib connect to the JAgoraServer. I'm not sure how to go about doing that. Do you have any advice?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on July 20, 2014, 04:21:18 pm
Since they communicate using BSON, all you gotta do is open a socket and send the BSON query through. JAgoraServer should be able to read it and parse it!
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on August 03, 2014, 06:14:42 pm
Sweet! The SVG-based Java client is now using the Artemis Entity-Systems framework, which should make it super easy to add different visualization methods, and make the application more easily dynamic! I've essentially gotten it back to the state it was before the Entity-Systems were added. The next step is to grab the actual debate in the database, get it, and display it appropriately. Then, allow adding arguments and votes, which will have to include some GUI that I'm not entirely sure how to do :)
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on August 03, 2014, 06:29:31 pm
Looks nice! I'm still working on getting a web client together. I've found a couple of likely programmers, except that neither will get into contact with me.

Edit: I made it close when the window is closed, and pushed to GIT. also, your debug messages look eerily similar to mine.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on August 03, 2014, 07:13:20 pm
Hahahaha, awesome :D Are these programmers who'd contribute to this as an open-source project, or as a paid position? I forget what you ended up deciding on that account.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on August 03, 2014, 07:50:48 pm
I'm going to pay them.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: dorf on August 04, 2014, 03:59:16 am
+1 for using Artemis.

However, the project has been inactive for 2+ years. It _is_ complete, but it does have smaller bugs and limitations.
If you'll ever hit the limitations, I recommend switching to artemis-odb (https://github.com/junkdog/artemis-odb), a forked version (and still active) of the original Artemis.

The intention of this post is purely informational. I'm not affiliated with either of them, nor do I think you should immediately switch to the forked version.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on August 04, 2014, 09:09:30 am
Whoa, nice, that does look pretty cool. Their Github wiki looks real nice too. Assuming their API hasn't changed much, I might refrain from going through the trouble of switching libraries yet again just now and try to get some progress done! Thanks for he heads-up! :D
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on August 24, 2014, 01:48:28 pm
We might want to see about slapping a license on what we've got now. The MIT License (http://opensource.org/licenses/MIT) Looks pretty good.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on September 03, 2014, 11:54:12 am
I found some code (http://pharos.ece.utexas.edu/wiki/index.php/How_to_Form_a_TCP_Connection_Between_a_JavaScript_Program_and_Java_Server) that looks pretty interesting. I'm going through to see if I can adapt it to work with our server. I need to wrap my head around java's networking first, though.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on September 03, 2014, 12:24:07 pm
Cool :) There should already be some examples in JAgoraServer. We're using TCP connections already. All you'd need to do is open up a TCP connection and write a BSON object to it, then get a BSON object in response.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on September 03, 2014, 12:35:42 pm
Yup. Right now I'm figuring out how xamp works, so I can test the thing.

Ad now I've tested the thing, and yup, it works. That was laughably easy. Now I just need to make them understand each other.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on September 05, 2014, 04:35:15 pm
Also - Should we go back and edit the server to not require people to be logged in to view the forums?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on September 08, 2014, 01:27:40 pm
Hmmmmmmmm, that's a good point. That should depend on admin options though. I'm sure there's got to be a way to nicely incorporate that. There's two types of communication already, one which requires authentication and one that doesn't (the one that doesn't is used only for the login, I believe). We could just copy over code without requiring it to check for authentication but there's gotta be a better way...

My life has been a total mess recently, so there's little chance for me to work significantly on this for this semester, I think.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on September 08, 2014, 02:56:13 pm
Yeah, I can probably figure it out. Perhaps add code for some kind of "Default User" and just manage it's permissions?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on September 08, 2014, 02:59:04 pm
Hmmmm, the problem is that we are using tokens - i.e. when you login, you get a token that you reuse, and that's how the server knows who you are. If you had a single user that everyone is reusing, sessions would get mixed up. We can always check for whether it's the default user though.

Or we can just check whether a message comes with authentication. If it does, we check it. If it doesn't we check whether server allows for this query to be "publicly available"?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on September 08, 2014, 03:19:06 pm
yeah, that'd probably be a better solution.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on September 11, 2014, 02:17:52 pm
Alright, so right now I'm trying to get the java code to work with the javascript. The trouble is that I need to sign the java jars, and they won't work with unsigned jars, which includes the mongo db library. Any suggestions?

Edit- wait, that's not it. I unsigned the jars, and they'll still run but they still won't find the BSON library, despite it being in the lib folder with JAgoraLib, which I could swear was finding it earlier.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on September 11, 2014, 02:21:34 pm
I honestly have no clue... but I know that those things can be really finicky given the experience signing jars that some people have had in my research lab. I wonder if it's possible to have it accept unsigned jars somehow?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on September 11, 2014, 02:35:15 pm
Well, alright, I solved the probelm, which was that it was looking for the jar in a lib folder that wasn't there. I solved that by having nested lib folders, which is dumb but whatever. NOW it doesn't want to work cause the mongo db library is unsigned, and firefox won't let it work when the projects are all unsigned.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on September 11, 2014, 02:36:37 pm
I think there's something I don't understand. The java stuff should basically be running on its own. All it's down is it has a socket that's awaiting connections. How is javascript become aware that it's even a java program running? All that the javascript client-side application should be doing is opening a socket?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on September 11, 2014, 02:45:12 pm
Well no, I'm using Java for the sockets and javascript for the display. The java needs to go and pass the information it gets from the socket to the javascript which displays it, and then passes back requests for new information.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on September 11, 2014, 02:48:04 pm
Ooooh, I see. I guess this would allow you to not really have to reimplement AgoraLib in JS?

Do people actually have to run Java on their computer then?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on September 11, 2014, 02:56:21 pm
Yup. On the other hand, programming the networking part of AgoraLib in JS such that i works with JAgoraServer looks like a gigantic pain, so this lets me skip that. and if at some point in the future someone programs that, it'll be easy to switch over to using it instead.

For the moment, I'm working on seeing if I can compile the BSON library myself and sign it. I found the source, and even loaded it into netbeans but it's not loaded as a java project. SO I need to figure out how that works now.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on September 11, 2014, 03:01:05 pm
Yeah, I still can't figure out how JS became a thing...
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on October 05, 2014, 07:04:21 pm
Alright, so I have the basic interface working over the web. you can view threads, and while clumsy, it's sufficient for the moment. Now I'm thinking we should consider changing from having separate threads, to having the whole thing be one big graph, which one can pull individual arguments from one at a time. SO you view the top level, Agora, and it has replies to it for different categories, like Politics, Religion, etc, and they in turn have sub topics, and then eventually individual threads, and you follow the links all the way down in the same manner.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on October 06, 2014, 10:25:17 am
Things are already that way! :)

Querying for one argument at a time is incredibly inefficient, which is why right now we are querying thread by thread. But nothing is stopping an attack from connecting two arguments from different threads. The threads are simply an aid to navigating Agora like you do in a forum!

We do still need to know how to handle "merging" graphs. What's happening right now is that attacks that connect the thread you asked for to another thread will have a "bogus" argument on one end, with just its ID and threadID. Using that threadID though, you can grab the thread. We just then need to merge the old thread we asked for first with the new thread.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on October 06, 2014, 10:38:21 am
I was suggesting that we abolish the thread/graph dichotomy, and just have everything be a single huge graph, including  categories. This'd mean we'd only need one method of navigating the thing, instead of several.

The main problem there is that threads can easily become huge - well over a hundred thousand posts huge. And in this system, they'll likely get even bigger. So grabbing an entire thread at once is also rather inefficient. Perhaps if we grab a post and all the posts in response to it?
 I'll look into merging graphs. It doesn't sound too hard...
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on October 06, 2014, 07:21:40 pm
Welp, this is what I came up with. It seems like it might be horrifically inefficient when working with large graphs, but it should do the purposes of the client, where you shouldn't have more than a couple dozen nodes to work with, and will only be adding one at a time. I haven't tested it yet, though.

Spoiler (click to show/hide)
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on October 07, 2014, 09:27:08 am
Sorry, I guess I didn't explain myself very well :)

Right now, we have basically a huge interconnected graph. It's just annotated with threads so that it can be navigated like a forum. I think it's a good idea for us to have more query types, but it's also important that we not go overboard with it so that we have to implement a bajillion functions in every AgoraLib implementation :)
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on October 07, 2014, 11:14:42 am
This'd only take one extra query, getArgument(). returns a graph containing the argument and the posts immediately connected to it.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on October 07, 2014, 01:17:19 pm
Usually you'd also like to get the attacks that lead away/to all of those arguments, so that you can keep asking for more stuff at the fringes!
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on October 07, 2014, 04:24:15 pm
Well, the idea was that the peripheral posts are the things leading away, and you're only adding one post at a time. But yeah, that sounds like a good idea.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on October 10, 2014, 05:38:56 pm
Is the test server down? I can't seem to access the phpmyadmin page.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on October 10, 2014, 06:32:15 pm
Oh, shucks, yeah decided to turn it off. Had forgotten it was running the Agora server. Should be up in a minute. Sorry about that!
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on October 10, 2014, 06:49:39 pm
Thank you. In other news, I think I'm coming along quite well. In another week or so, I should have a site up, ready for testing. It'll probably be a pain to get working -  I think people will have to edit their java.policy files, which is a pain. But that should be solvable.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on October 13, 2014, 09:28:31 pm
And of course, as soon as I say that, windows spontaneously updates and fubars my laptop completely. LOL JOKES ON ME. I should be able to recover the programming from the hard drive eventaully, but this'll set me back a bit.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on October 13, 2014, 09:29:52 pm
ugh, I hate that :\ Good luck man :\

As for me, I've been working since 9am and it's 10.30pm :D This is also setting back my plans for Agora :P

*shakes fist at work*
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on October 20, 2014, 01:30:07 pm
Well, I had to reinstall my linux, and ended up grabbing an outdated copy of my work. It doesn't really matter anyway, though cause I'm going to have to go and figure out how to make the java security run the bloody thing, and the way I had it working won't work on windows it seems, or with the more recent version of java. So I'm set back a ways.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on October 20, 2014, 01:33:50 pm
Ugh man, that sucks :( Sorry!
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on October 20, 2014, 01:35:00 pm
Eh, It's my fault as much as anything - I coulda grabbed the up to date version, but I thought I didn't need to. Jokes on me...
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on November 03, 2014, 11:22:17 pm
Alright, so I remade much of what I lost. I've gone ahead and committed, so I don't go and lose it this time.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on November 06, 2014, 05:43:58 pm
Can anyone else get the thing to run for them? You'll have to set your java to high security (As opposed to Very High Security) and add
   permission java.net.SocketPermission "127.0.0.1:1597", "connect,resolve"; to your java.policy file, and will need to run JAgoraServer first. But after all that it should work. Once I have the client to a good point, I'll work on setting up a proper site, and should be able eliminate most all of the hassle.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on November 10, 2014, 10:59:40 pm
Did you take the database down again, Anvil? I can't seem to connect.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on November 10, 2014, 11:02:56 pm
Huh, computer shut off somehow. Turning it on again.

Can't test anything right now, totally swamped and tired again. Sigh. Things will be better next year!
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on November 10, 2014, 11:14:03 pm
I never did spend that money. I could send you some, if it'd make things easier for you.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on November 10, 2014, 11:14:43 pm
Aw man, heck no! Financially I'm fine, it's just grad school that's killing me!
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on November 10, 2014, 11:16:37 pm
Oh, lol. Best of luck with grad school, then, and hang in there.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on November 10, 2014, 11:17:43 pm
I didn't say how much I appreciate the gesture though - that is incredibly awesome of you :)
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on November 10, 2014, 11:30:34 pm
Eh, Im not doing anything with it, and you've already put in a ton of work.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Fniff on November 11, 2014, 01:29:56 pm
So how has this been coming along?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on November 11, 2014, 02:23:32 pm
I've got a very basic java client working, and am now working on the web client. I've got most of the display down, except that text wrapping in SVG seems to be a herculean undertaking, and the force layout needs some fine tuning.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on November 12, 2014, 06:42:14 pm
Alright, I found a way to get the text wrapping working. Now I'm going to mess with the size of the post display and the force layout behaviour uuntil it's not such a tangled mess.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on November 12, 2014, 06:43:02 pm
This is cool! You're using SVG, right? I'll probably have a look at whatever you came up with! :) Is there an actual feature, or did you have to code your own?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on November 12, 2014, 06:43:57 pm
I found one coded by someone else, called d3plus. I still had to mess with it, but not too much.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on November 22, 2014, 08:44:57 pm
Alright, so I was delayed a week while I had my laptop fixed, but I'm back in business now. I've refined the force layout, so it doesn't put everything on top of each other. Next I'm going to see i I can figure out a way to make posts move so that replies are below the posts they address.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on November 22, 2014, 09:02:33 pm
Try to make it extensible! That's the kind of thing where different people might prefer to look at it different ways. Some people might organise by weight, some by date, some might want earliest/most important in the middle and spanning out, others might prefer a top-to-bottom tree-like structure! Should be configurable :)
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on November 22, 2014, 10:27:26 pm
Yeah, I'll work on that too - but for now, I just want to make a working alpha so I can get other people interested.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on November 26, 2014, 06:07:12 pm
Alright, I go the force layout working more or less as intended. You no longer need to spend time untangling the bloody thing, at least.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on December 06, 2014, 04:17:50 pm
And now I've added functionality for dynamically adding posts to the client display. It's still a little buggy though. Here's a screenshot of what I've got so far -

Spoiler (click to show/hide)
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on December 10, 2014, 03:30:33 pm
Aaaand the server is down again. If it's too much trouble, I could see about setting up my own version.

Edit: And they're up again. was that your doing, or was the internet just being difficult?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on December 11, 2014, 08:57:16 am
It's usually on 24/7, must've been an internet hiccup. It's basically a laptop that I'm redirecting some traffic into. I also use it as an SVN server for other stuff, so I'm gonna mostly have it on anyway.

By the way, I've been talking to people who use MongoDB, and it seems that it might be a much better fit for Agora, since it stores graph-like structures. This might make it easier to perform complex graph queries.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: dorf on December 11, 2014, 09:21:30 am
neo4j (http://neo4j.com/download/) might be of interest to you as well.

There is a myriad of NoSQL databases available now, though.
I've had an excellent experience using Blueprints (https://github.com/tinkerpop/blueprints) for my master's degree. It abstracts and decouples from the underlying NoSQL storages so that you can easily switch databases before you settle.
Of course they also expose the underlying storage instance in case you want to access to low-level or DB-specific features.

Note that you will lose normalization and the convenience of SQL (if that is important to you) when switching to NoSQL.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on December 11, 2014, 07:20:03 pm
Mongo-db could work. We're already using their libraries for the BSON, so we might as well check out their databases. The Neo4j also looks good, and even has a community version. I'm not really familiar with databases, though, so I'm going to continue focusing on the client for now.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on December 11, 2014, 07:31:04 pm
Yeah, hopefully the interface will remain the same, so the client can be developed independently :)
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on December 19, 2014, 03:31:53 pm
Alright, I finally got post removal working. So now you can view the graph, loading arguments and closing them at will. Now I just need to solve some display issues and add features for adding new posts, and we'll be ready for some serious testing.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on December 26, 2014, 06:03:36 pm
Alright, so I got basic reply functionality added. It's all still real clumsy, but I've gotten things to a point where have a usable system. Now, I'd really like to have some greater community involvement in this project, and I figure that in order for that to happen, we need to make things more accessible. To that end, I'm thinking I'd like to go ahead and put together a website, so that people don't need to download loads of code, compile it, jump through all the security hoops, etc. To this end, I'm thinking I'll put together a nonprofit Organization, which will really just handle paying for the site and receiving any money made by ads or donations, all of which will go back into funding the site. I'm willing to spend my own money in order to get things rolling. Does this sound like an acceptable plan?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: dorf on December 30, 2014, 07:48:30 am
From a user's perspective it at least says that you are serious about the product. Which I like a lot.
What's even nicer is you going public so I can finally test this thing out! :)
Also keeping an eye out for JSAgoraClient.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on December 30, 2014, 02:45:31 pm
It'll be a while yet. I still need to go and sort out all the website stuff, so hold on to your hat.

I will also point out, you can test out the JSAgoraClient already, it's just a bit of a pain. I can guide you through it, if you like. Just be warned, there are like twenty steps.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: dorf on December 31, 2014, 10:00:34 am
I'll rather wait for the public/friendly-to-use prototype.
A part of me wants to contribute in a more meaningful way but I'm not sure I'm motivated nor skilled enough to see it through.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on December 31, 2014, 02:30:00 pm
Yeah that's senseible. I'll war you though, it's gonna be a while. I found a thing (https://www.webfaction.com/) that looks like it'll work, or at least it'll be good while I figure out how to work with remote servers. I'm only beginning to scratch the surface, but but damn this stuff is complicated.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: eerr on December 31, 2014, 06:44:38 pm
Amazon ec2 is free for the first year or so- under light usage. You still have to put in credit card info though.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on December 31, 2014, 08:34:39 pm
I went ahead and bought a month of webfaction, and am well on my way through setting the server up. I'm pretty sure it'll do what I want it to do.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on January 02, 2015, 07:00:11 pm
Alright, I have the server set up. There are still no security or moderation tools in Agora yet, though, and you still have to edit a bunch of security stuff to get things to work, so I don't want to go live completely yet.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on January 04, 2015, 01:08:57 pm
Well, alright, I've got things pretty well along. I think we could do a trial run, if people are interested. It'll still be pretty vulnerable to trolls, but not as much as it was. Anyone interested? You'll have to mess with your java security settings a bunch, but it's not too bad, and you don't have to compile anything.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Arx on January 04, 2015, 02:03:33 pm
I may be able to participate a little.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on January 04, 2015, 02:47:49 pm
Alright, I'll set it up live. You'll need to do a couple things to make it work, though. First, you need to find your java.policy file, which should be in your JVM folder, under jre/lib/security. there, you'll need to add "permission java.net.SocketPermission "50.97.175.55:27387", "connect,resolve";" to the list of permissions. Next, you'll need to find your java web start and edit the site exception list under security, adding http://angle.webfactional.com to that list. That's also the test site. If you follow that and see something like this, except not exactly the same thing:

Spoiler (click to show/hide)

Then that means it's working. Next, you'll need to PM me your desired username and password so I can register you. I'd advise making up a completely new password, preferably random keyboard mashing that you save to a text file, because I don't think my database is very secure.

Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on January 04, 2015, 06:22:37 pm
So is anybody interested in testing the thing, or should I take it down?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on January 05, 2015, 01:33:52 am
I'm taking the site down for the night. If anyone is interested, I'll put it up again tommorrow.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Antsan on January 05, 2015, 12:49:25 pm
I am interested in trying, the problem is that I fear I lack the time to do so (and the instructions for making it work are a bit intimidating).
If you are fine with leaving that thing running for a month for maybe… I guess 8 to 24 hours of testing by me, put it up again.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on January 05, 2015, 01:17:11 pm
Alright, I think I have it set up. I'm not sure it'll stay this way, though.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Antsan on January 05, 2015, 02:44:56 pm
I just realized that the java.policy file is system-wide and I'd need to use root privileges to change it. I am quite uncomfortable with that. Is there a way to provide a user-overwrite? I'm not entirely sure what that file even does.
Also, the entires in there seem to be sorted into grant blocks and I am not sure which of those blocks the additional permission should go into.
Also also, I don't know what a "java web start" is (i found some information, but that was for Windows, I use Debian – is there even java web start for Linux?).
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on January 05, 2015, 03:00:01 pm
The java policy file determines what your java applications are allowed to do. I'm pretty sure there is a way to provide a user override in a more specific fashion, but I have no idea how to go about doing that, and I think its more complicated. The snippet there only allows it to make we connections to the specified address on the specified port and send and receive information. It should be put in the second block of "grant {", the one that applies to everything. If anyone who knows their way around java better than I do knows how to make a more specific, less risky version of this, go ahead and post it. I'm pretty sure this has minimal risks associated with it, but there's still probably a better way.

There is a java web start for Linux. For me, it's found under the internet section of the start menu. There are like five different java control panels though, so you may need to check several. I use Xubuntu, which is derived from Debian, so it should be more or less the same or you.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Antsan on January 05, 2015, 03:41:18 pm
The "java web start" equivalent on Linux seems to be "IcedTea", although I had no luck finding something resembling site exceptions.

There seems to be a user-level policy file at
Code: [Select]
/home/<user>/.config/icedtea-web/security/java.policybut I don't know whether it is actually in effect or not.

Currently the site displays neither a graph nor a button saying "Refresh Graph". The rest is there.

[Edit]
After finding this thread (http://ubuntuforums.org/showthread.php?t=2256329&p=13185297#post13185297) I went to the "Extended Applet Security" tab and added a new row where the action is "Always trust this" and http://angle.webfactional.com/ as Document-base and Code-base.
That doesn't seem to work.
[/Edit]
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on January 05, 2015, 03:49:56 pm
The buttons are sorted into two tabs, ones to login and ones to reply to posts. The screenshot I posted is under the "reply" tab. When you load the site, it defaults to the "Login" Tab. The graph is the only part that you need the java to view, the rest is HTML and Javascript. And yeah, iced tea is the linux java web start environment. You're looking for a screen that looks like this:

Spoiler (click to show/hide)

Edit: The icedtea web control panel is not actually what you want, despite sounding like it's the right thing. As I said, there are like five different control panels. For me, the right thing is called Oracle Java 8 Web Start. Anyway, I need to go to work now. I'm leaving the server up, I'll be back in like 8 hours or so. Good luck!
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Antsan on January 05, 2015, 04:00:24 pm
[Edit]
After finding this thread (http://ubuntuforums.org/showthread.php?t=2256329&p=13185297#post13185297) I went to the "Extended Applet Security" tab and added a new row where the action is "Always trust this" and http://angle.webfactional.com/ is Document-base and Code-base.
That doesn't seem to work.
[/Edit]

My IcedTea looks decidedly different from yours.
There is a security tab, but it is suspiciously devoid of anything but checkboxes.

There is no graph drawn. Switching between tabs works.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on January 05, 2015, 07:19:32 pm
Yeah, the IcedTea control panel isn't what you want. I have one of those too, and it's of no use.

For me, the thing is called Oracle Java 8 Web Start. There are a another two or three java control panels that also won't do what you want, either.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on January 06, 2015, 03:30:51 am
Regardless, I think one major thing we can take away from this is that we really need to figure out how to make the thing more accessible. This probably means moving away from java, as I don't think there's really a way to make java work without changing at least SOME security settings. Does anyone here know of a good language for ongoing server-client browser communications? I have little to no expertise in this area.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: dorf on January 06, 2015, 08:43:05 am
JavaScript and the HTML5 technology stack seems to be popular nowadays.
If you dislike JS, you could use Unity (C#) however that requires a (surprisingly painless) add-on installation in the browser.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on January 06, 2015, 01:55:00 pm
I've been liking javascript. I'll look into that. I just started job training though, so it'll be a couple weeks.

As an additional note, the server is still up, for anyone who still wants to test it.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: dorf on January 06, 2015, 03:49:59 pm
Screw jobs! Open an LLC and make graph forum software for a living! :D
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on January 07, 2015, 04:38:35 am
I doubt it'd be so easy. I wouldn't mind running Agora as a job, but I doubt that will be viable aaaaaaaany time soon.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Antsan on January 07, 2015, 05:03:27 am
Don't leave the server up for me. I don't want to change my system wide "java.policy" as I don't know what I am doing there.
Sorry about that. Thank you for trying to walk me through setting it up.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on January 07, 2015, 02:07:48 pm
 Mmm, fair enough. I'll leave it up anyway, just in case anyone is interested.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on January 11, 2015, 03:14:50 pm
Alright, so I'm looking at Grails, and it looks pretty good. I haven't wrapped my head around it yet, it's pretty mind blowing, but I'm gonna go over it and see if it does what we want.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on January 13, 2015, 12:27:00 am
Turns out grails is more for apps to be used within a company, they have to be downloaded and installed. I think I can get the java working more or less the way we had it, without needing to edit the policy file. It says that "They can make network connections to the host and port they came from. Protocols must match, and if a domain name is used to load the applet, the domain name must be used to connect back to the host, not the IP address." I think I can make that work somehow. I haven't got it yet though.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Antsan on January 13, 2015, 05:56:50 am
I don't know whether this is workable for what you are doing, but in "Land of Lisp" a lisp server is used to run a game of Risk. The image was drawn on the server and sent as an svg to the client.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: dorf on January 13, 2015, 06:30:10 am
Well, an image can be generated in any language on the backend, not only Lisp. But it's an interesting idea!

But what should Angle do when a single thread (graph) is HUGE? Serve a HUGE image, or make the posts unreadably small?
Also, what happens to the interactivity of the application? Sending plain data to browser and letting the browser visualize and modify can offer much better user control. And uses less bandwidth.

If this is considered a prototype with intention of rewriting later, using the simplest of methods will probably be best.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on January 13, 2015, 07:04:02 am
Sending the data is relatively easy, it's establishing a connection that's difficult.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on January 13, 2015, 11:43:17 am
Yeah, the increased security in the JVM is making it increasingly hard to establish socket connections when programming web applications.

I don't think the same is true if you're just running a Java application locally. There you can easily open a socket connection to somewhere else.

And yeah, dorf, the idea is definitely that you'll simply send the data, and the client will interpret it and show it to the user. Sending images would be very unoptimal for large graphs/debates!
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Antsan on January 13, 2015, 01:19:03 pm
Well, that was to be expected.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on January 18, 2015, 12:03:48 pm
Alright, I think I have this figured out - I just need to convert the server into a servlet, which doesn't look too hard.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on January 28, 2015, 10:38:09 pm
I'm quitting my job so I can find time to work on this again, so things should start moving again. Do you guys think we should see about sticking a copyleft license of some sort on it? We haven't really been bothering with that. I think we kicked the idea around a few times and never really got around to it.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on February 01, 2015, 01:17:36 pm
well, I managed to figure out how to get the HttpServlet going, and that was pretty easy. I had a lot of trouble getting Tomcat installed and running, and some more getting my HttpServlet installed, but I worked it out in the end. Now I need to figure out how to get the actual meat of JAgoraServer turned into a servlet, which may be more difficult than I had anticipated. I'm thinking I'll use the facilities for Websocket servlets. Does that sound like a reasonable idea? I'm also considering getting rid of the client applet altogether and having he entire response be stuffed into HTML and JavaScript. That would be a pretty significant project, though...
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on February 01, 2015, 01:20:43 pm
I'm afraid I am not familiar at all with most of these web technologies, sorry! I'd say that unless you find a way to send binary data, i.e. BSON, then it's going to be a fair amount of work to rework the server part of Agora.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on February 09, 2015, 10:46:29 pm
Alright, so I'm getting pretty well along. I finished the first draft for the server, and I'm working on the client now. I'm doing some pretty significant refactoring, though - I turned JAgoraServer into JAgoraSocketServer and created an interface called JAgoraserver, which the socket server and the websocket servlet both extend. I'm also turning IJAgoraLib into an abstract class and moving much of JAgoraLib's functionality there - all of the construct and parse methods - so as to avoid duplicating them in JAgoraWebSocketLib. Sound alright?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on February 09, 2015, 10:57:46 pm
I'm just a bit worried that we're replicating a ton of work. Is there a way that we can separate the delivery method (raw sockets vs HTTP) but not the payload (JSON/BSON)?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on February 09, 2015, 11:37:50 pm
Yeah, that's what I did. That's why I moved a bunch of methods to IJAgoraLib. So that don't need to have two copies in both JAgoraLib ad JAgoraWebSocketLib. The only thing that should matter is how the binary data is sent from place to place, after that, all the same methods are used to parse and respond to it.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on February 09, 2015, 11:42:54 pm
Hmmm. So there's going to be some server stuff (interfaces, mostly?) over in JAgoraLib? So that people can implement multiple types of server? That sounds good!
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on February 09, 2015, 11:55:11 pm
Well no, the server interface is still in JAgoraServer. But it can now be used to implement different kinds of servers, if people wish to. I actually already uploaded that one, so you can view (https://github.com/Agora-Project/JAgoraServer/blob/master/src/org/agora/server/JAgoraServer.java) it if you wish.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on February 13, 2015, 05:57:01 pm
Alright, so I've written both the client and server side websocket classes. Now I just need to figure out how to make the tomcat server run the server side code and we're off to the races.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on February 15, 2015, 04:17:12 pm
Welp, websockets are being exceptionally difficult. I put up a stackoverflow question, but I don't know if anyone is going to be able to help me. If not, I'm thinking of ditching websockets entirely and just using HTTP to send requests. I'm pretty sure I can squish the BSON into HTTP requests somehow, and HTTP is a better fit for Agora than websockets is anyways - Agora tends to follow the Request-response model, not the constant two way streaming model. HTTP is also a much older and thus more thoroughly tested and documented system than websockets, which will be nice - much of my difficulties with websockets have been due to having a hard time finding information on it.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on February 16, 2015, 12:19:57 am
Alright, forget websockets -  I went ahead and put together a HTTP server and Library, and they work. Of course, now I can't get the server to connect to the database, probably because it can't find the conf file that tells it how. I'll take a look at that tommorrow.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on February 17, 2015, 01:42:14 pm
Alright, we are go! I managed to get the HTTP Lib going, you can see the results here (http://angle.webfactional.com/JAgoraHTTPServer/). It still requires you to add the site to your site exception list in java, but other than that you shouldn't need to do anything. Now I need to see about getting a proper certificate, which requires money I think, and then we'll see about refining the system and all that. What do people want to see in particular?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on February 17, 2015, 01:45:19 pm
Tested it out quickly - couldn't really login or add an argument. Is that part working yet?

I had to allow plugins and also accept the certificate. This happens a lot for Java, I think it's normal. I don't think there's a point in spending money to make that go away right now :)
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on February 17, 2015, 01:49:51 pm
Logging in works, but I haven't added registration so it requires me to go and make an account for you.

Hmm, you didn't need to go and add "angle.webfactional.com" to your site exception list in order to get that option at all?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on February 17, 2015, 01:51:03 pm
I'm using Chrome on MacOS. I just told it "always allow for this website", though I think picking the "run this time" option worked too!
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on February 17, 2015, 01:53:16 pm
Hmm, weird. I'm using Firefox on Xubuntu, and I don't even get that option unless I go and edit an obscure java control panel.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on February 17, 2015, 01:54:33 pm
Hmmmm. Are you using Java 1.8 or Java 1.7? I'm currently on Java 1.7 - I also have a Java Control Panel thing, but I didn't have to do that.

Can you try to use Chrome/Chromium and see if you get the option? It might be browser-dependent. If that doesn't change it, it might be OS dependent!
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on February 17, 2015, 02:01:55 pm
It's probably OS dependent - most forms of Linux are a little obsessive about security.

Well, regardless, what next? Should we consider slapping an Open source license on it? Are there any features that need to be implemented post haste? I'm thinking we should keep registration fairly limited for now, because our only moderating capabilities come from directly editing the database. Still, it'd be nice to start getting some testing done. We also probably need to refine the interface a bit - the posts are both really small and rather poorly positioned right now.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on February 17, 2015, 02:15:11 pm
Yeah, somehow I feel that it needs a super professional look. Until it gets that, it's always going to look like an amateur project and not really something that will draw people!

I think with all the changes, the part where the outcomes are computed isn't really working anymore. Database changes and all that. We'd need to have a way to do that periodically. I don't think it's super feasible to do it every time there's a change.

I'd really like to look into changing the database from an SQL one to a graph-based one, since that is so much more adapted to the kind of data we are storing. That will require quite a bit of behind the scenes changes, but hopefully it will be more efficient in the long-run. I don't really know if this is the case, but we should look into it.

Right now I'm totally pinned down by a conference deadline on Friday... but I've been working on a side project that is giving me a whole lot of experience with SVG, so hopefully I can get a nice, good looking app at some point!
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on February 17, 2015, 02:17:15 pm
Awesome. I'm going to take some time to work on cataclysm while I stew about what to do with Agora next, and then we'll see.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on February 17, 2015, 02:23:28 pm
You're working on Cataclysm (the roguelike)?? That's awesome :D

I'm hoping this side project of mine will eventually allow me to get the Agora client working a lot faster. I'm learning a ton about lots of things like architecture, event-based systems, etc, all of which are applicable for the Agora client! This way we won't have to refactor it all the time as we learn new things!
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on February 17, 2015, 02:26:05 pm
Yup, I'm doing a mapgen rewrite, and then maybe tackling z-levels afterwards.

I'm hoping this side project of mine will eventually allow me to get the Agora client working a lot faster. I'm learning a ton about lots of things like architecture, event-based systems, etc, all of which are applicable for the Agora client! This way we won't have to refactor it all the time as we learn new things!

Go for it! The client is pretty hacked together right now, and could use a major touch up.

Also, it occurs to me that it might be worthwhile to make a proper home page for Agora, with links to this page and all that. I'll go ahead and slap together some thing basic. Any suggestions for things I should put on it?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on February 17, 2015, 02:28:11 pm
I think we have a couple of things on the Wiki of the github repo for the AgoraDocs. Might be worth taking a few things from there!

I think right now the only thing that's worth doing is sort of the mission statement. An online debating system with formal computed outcomes that make theoretical sense. Could be used for pure and simple debate, or for decision making. Provides more granularity than the competition. Is extremely flexible.

That kind of stuff!
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: dorf on February 18, 2015, 05:00:05 am
Is extremely flexible.
(http://xaxor.com/wp-content/uploads/2012/10/Etremely-flexible-people17.jpg)

Go, team Agora!
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Anvilfolk on February 18, 2015, 09:23:23 am
That is... incredibly disturbing! Hopefully that that will totally not be on the main webpage :D
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on February 21, 2015, 12:41:49 am
I put together a very basic homepage (http://angle.webfactional.com). It's kinda ugly ad hella amateur, but hey it's a start.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on February 23, 2015, 03:17:35 pm
Alright, so at this point I think we should begin considering what our next move is going to be. Should we work on improving the user interface, or implement some basic mod tools and enable registration, or just spend some time cleaning the code up? Whattaya think, people?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Antsan on February 24, 2015, 02:41:31 am
I think when you are at a point to ask this question it seems like the right time to do some code cleanup before proceeding.
I don't know about the user interface. As soon as other people start using the library they'll probably want to design their own UI either way, so it might be sensible to move that to the back.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on February 24, 2015, 03:30:09 pm
The trouble here, is that I don't expect anyone else to adopt our system until after they've seen it in use. That means we need to put together a proper demo so they CAN see it in use.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Antsan on February 25, 2015, 04:40:27 am
Of course. My point is rather that you should make it usable first and foremost, beauty can come later. So, registration and stuff should come before a better user interface as long as the UI doesn't obstruct usability.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on February 25, 2015, 01:32:55 pm
Well no, I'm talking about modifying the UI for usability. Right now the posts are super small, and if there's a lot of them they tend to cover each other up. You can see what I'm talking about right here (http://angle.webfactional.com/JAgoraHTTPServer/).
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Arx on February 25, 2015, 02:02:25 pm
Agora currently locks up my Firefox until I kill it with task manager, which is probably a problem.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Antsan on February 25, 2015, 02:17:54 pm
Well no, I'm talking about modifying the UI for usability. Right now the posts are super small, and if there's a lot of them they tend to cover each other up. You can see what I'm talking about right here (http://angle.webfactional.com/JAgoraHTTPServer/).
That certainly seems like it might be a bit obstructive.

I see a menu on the left and a large blank area.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on February 25, 2015, 02:23:02 pm
Ah, that's right. I eliminated the requirement to edit the java.policy file, but you'll still probably need to add the site to your site exception list for java. Anvilfolk is using a less restrictive operating system, so he can skip that step, but you and I use linux, so it's necessary for us. I'm pretty sure I could get around that if I bought a proper certificate, but I don't want to spend that kind of money right now.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Antsan on February 25, 2015, 02:48:29 pm
I am too lazy right now to try that again. I have been confused by Makefiles lately – that's enough for now.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: dorf on February 26, 2015, 04:21:04 am
Agora currently locks up my Firefox until I kill it with task manager, which is probably a problem.
It works here on Win 7 SP1 64-bit with Java 8U31 when using:
 - FF 4, 10, 34.0.5, 35.0.1 and 36.
 - Latest Chrome
 - Opera 15.0.1147.130

Probably doesn't work on:
 - IE 9 (it shows the alert window, but then the canvas is blank)
 - Safari 5.1.4 (because I can't get it to detect Java for some reason)
 - Opera 12.10 (it's having problems with Java Applets for some reason)
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on February 26, 2015, 06:50:11 am
Agora currently locks up my Firefox until I kill it with task manager, which is probably a problem.

Hmm. What version are you using?

Spoiler (click to show/hide)

...Huh. Do you have to add it to your site exception list, for java, or does it just give you the option to run it anyway?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: dorf on February 26, 2015, 06:56:07 am
I had to add your site to the exception list in Java's control panel.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Arx on February 26, 2015, 09:19:47 am
I think I'm on the latest. My Java could well be a bit out of date, though.

Windows 7, 2GB RAM 1.5GHz Intel dual-core, if that helps.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on February 26, 2015, 05:22:08 pm
Agora currently locks up my Firefox until I kill it with task manager, which is probably a problem.

Hmm. Have you tried clearing your cache? You might be running an old version, some of them have that problem. Ad of course, did you do the whole Site Exception List thing?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on March 05, 2015, 05:33:40 pm
So how many people have the applet working and would be interested in helping me test it if I enable registration? How many do not have it working yet, but would be interested in helping me test it if I can get it working for them? I'm considering just buying a code signing certificate, which should make it run for most people so long as I get the right one.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: dorf on March 06, 2015, 02:54:22 am
So how many people have the applet working and would be interested in helping me test it if I enable registration?
Tester reporting in.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Antsan on March 06, 2015, 06:08:21 pm
Its not working for me but I'd test it if it did.

Would it maybe be useful to make a poll for this?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on March 06, 2015, 06:22:56 pm
Good idea. Poll is up.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on March 07, 2015, 04:56:41 pm
Alright, I've enabled registration. Those of you who can view it, what do you think? For the rest of you, I'll see about getting that certificate soon.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: dorf on March 09, 2015, 04:00:01 am
It works!
I've made a few weird posts where I've described my intent, like connecting a post to every other node.

I've noticed that the graph doesn't update correctly after adding a multi-parent post. It doesn't show all the connected parents. I have to double-click the blue button to show that it seems.
Sometimes when I expand posts they appear at the top-left corner of the applet. They seem to snap into place when double-clicking (multiple times) the blue button.
I won't comment on general UI/UX at this stage of the project.

I've figured out the graph UI pretty quickly. The green button took a bit longer because of the bug(?) described above.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on March 09, 2015, 07:30:28 am
Yeah, I don't know why posts are sometimes stick in the corner. That's what the refresh graph button is for, to try and get them unstuck. The improper graph updating should be fixed soon. Also note, if you there's a github entry (https://github.com/Agora-Project/JSAgoraClient) for this, so if you want to report lot's of bugs you can stick em there.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on March 16, 2015, 02:01:49 am
I'm moving ahead with getting a nonprofit set up for Agora, so I can buy that bloody certificate. I have no idea how long this'll take, but I'm getting it moving.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Cryxis, Prince of Doom on March 18, 2015, 05:05:16 pm
Ptw
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on March 25, 2015, 06:50:47 pm
So I think I've gotten most of the paperwork figured out - I just need to get another person or two to sit on the board of directors and we should be good to go. Having some input from a accountant and/or attorney would be nice, but I don't think it's necessary. Anyway, is anyone here interested in being a director?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: dorf on March 27, 2015, 09:09:04 am
Sounds fun but I'm guessing non-US citizens aren't eligible?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on March 27, 2015, 12:13:03 pm
Mmm, probably not. Or at least, not without the IRS giving me a gigantic fisheye.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on April 03, 2015, 08:39:42 pm
So alright, I've filed the articles of incorporation. Now I need to file a bunch more paperwork in order to get nonprofit status. I'll also need to make sure we've got a license applied to our software. I'm thinking one of these (http://opensource.org/licenses), not sure which yet. That sound good?

Edit: More specifically, the GPL (http://choosealicense.com/licenses/gpl-2.0/) looks pretty good.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on April 06, 2015, 01:25:16 pm
I've gone ahead and applied the GPL to the work. So there's that, now. I've also created a corporation for the project, and soon I'll be applying for 501 c (3) status.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on April 14, 2015, 02:46:12 pm
It turns out 501 c 3 status has a filing fee of $400, which is more than I care to spend, so I'm going to leave that until we're looking to do some significant fundraising. For the moment, I've purchased agora-project.co (http://agora-project.co) and should soon be acquiring a ode certificate.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Urist McScoopbeard on April 14, 2015, 03:05:17 pm
I remember when this was just an idea thrown around here, this has come so far! This is pretty cool people, be proud!
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on April 16, 2015, 01:57:41 pm
So alright, it's looking like I can't get a code certificate for less than $150-$200 dollars. I could pay that, but on the other hand, I think I could probably just eliminate the applet part and rely on pure javascript, which requires no certificate. Do you guys think i should try and just skip the certificate? I found a javascript counterpart (https://github.com/mongodb/js-bson) to the java library I needed the applet for, so if that works as advertised the coding should actually be relatively straightforward.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Antsan on April 16, 2015, 03:13:14 pm
I think you should go for it. That's one language less and there are companies and schools who don't install Java add-ons.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on April 16, 2015, 03:18:44 pm
Alright, here we go. I'm gonna go ahead and rewrite JAgoraLib (https://github.com/Agora-Project/JAgoraLib) in javascript as JSAgoraLib (https://github.com/Agora-Project/JSAgoraLib). I tried forever ago but that attempt was trash, so I'm gonna start over. Anyone feels like helping me, go ahead and say so and we'll figure something out.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Skyrunner on April 18, 2015, 01:33:38 pm
I was going to drop by and say that it was a shame that Agora was in java, since (1) I dislike Java (2) Java is not enabled by default anymore, but huh, you decided to switch to JS it seems?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on April 18, 2015, 01:35:10 pm
The server side code will still be in java, but the client should soon be entirely in Javascript.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Skyrunner on April 18, 2015, 01:41:12 pm
That is good to hear then :D you could run the server on assembly if you wanted, but the client definitely has to be JS in this age...
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Radio Controlled on April 19, 2015, 05:38:38 am
What exactly do you need testers for at this stage? Haven't read the entire thing yet, just curious about it after you bombed the other discussion.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on April 19, 2015, 02:55:00 pm
Right now I need testers to help me debug the Javascript client, which SHOULD work, but stubbornly refuses to.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on April 19, 2015, 10:38:21 pm
Alright, so I'm pretty sure I can now send data to the server. But figuring out how to read the data I get back is a pain in the ass. See, it says that it takes a "Buffer" as input. But I can't seem to figure out what kind of buffer. Can anyone else make heads or tails of this?

http://mongodb.github.io/node-mongodb-native/api-bson-generated/bson.html#bson-deserialize
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on April 21, 2015, 01:20:44 pm
And it looks like thats the buffer class from node.js. I think I can use it in the browser, but I'll have to learn at least the basics of node.js and node browserify (http://browserify.org/). AAAAAAAAAAARGH...
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Eagleon on April 21, 2015, 03:11:50 pm
I've never worked with JS but this https://iojs.org/api/buffer.html says that there's a buf.toJSON() method in there (https://iojs.org/api/buffer.html#buffer_buf_tojson (https://iojs.org/api/buffer.html#buffer_buf_tojson)) and I think the example in the last link might be showing how to convert a JSON object into a buffer. The github page for buffer also says a bit more in 'usage' about how to maybe use it without browserify https://github.com/feross/buffer (https://github.com/feross/buffer)
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on April 21, 2015, 03:13:29 pm
Huh. That looks really useful. I'm already working on something, but if it doesn't pan out, I'll take a look at that.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: SirQuiamus on April 21, 2015, 03:26:45 pm
The server side code will still be in java, but the client should soon be entirely in Javascript.
That's good news. I'm also a bit leery of JavaWS and Java in general, but I'd be willing to try the Javascript version.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on April 21, 2015, 04:38:15 pm
It's funny, cause I like java, but it just doesn't look like it's gonna work out for us. So instead I'm stuck using bloody javascript, which I am developing a significant dislike for.

For example, this latest attempt to get Agora working: It says use a buffer? What kind of buffer? hell if I know. The thing I'm using is a re-purposed node.js module though, so I figure it must be the node.js buffer. So I jump through a billion hoops to make that class work in my thing, installing the node package manager and several of it's libraries. I finally iron out al the bugs that causes and... It still doesn't work. Same error as before.


AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGHGHGAHGHAGHAGHAGHAGGHGA...

*sigh*. I'll wait a bit, try soe things out, and if none of them work, I'll try rewriting it to use the io.js buffer and see if THAT works.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Eagleon on April 21, 2015, 06:04:26 pm
It's funny, cause I like java, but it just doesn't look like it's gonna work out for us. So instead I'm stuck using bloody javascript, which I am developing a significant dislike for.

For example, this latest attempt to get Agora working: It says use a buffer? What kind of buffer? hell if I know. The thing I'm using is a re-purposed node.js module though, so I figure it must be the node.js buffer. So I jump through a billion hoops to make that class work in my thing, installing the node package manager and several of it's libraries. I finally iron out al the bugs that causes and... It still doesn't work. Same error as before.


AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGHGHGAHGHAGHAGHAGHAGGHGA...

*sigh*. I'll wait a bit, try soe things out, and if none of them work, I'll try rewriting it to use the io.js buffer and see if THAT works.
I got that io.js link from this page https://github.com/feross/buffer (https://github.com/feross/buffer) and judging from
Quote
The goal is to provide an API that is 100% identical to node's Buffer API. Read the official docs for the full list of properties, instance methods, and class methods that are supported.
the api appears to lift the method names from that class, to the extent that that is considered the official documentation, other than the two or three differences listed on the git page. Sorry if that wasn't clear.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on April 21, 2015, 06:12:42 pm
Ah! Alright, that looks pretty good. I'll look over it.

Also: I just found out that the error I was getting was because I was directing the queries to the wrong address, and was thus just getting another copy of the html page in response.

AAAAAAAGAGGHAGAG...
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on April 21, 2015, 06:29:23 pm
And now we're back to not being able to encode data such that the server will be able to read it. Aaaarg.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on April 22, 2015, 12:37:02 am
All is not lost! I managed to get it to read the queries again! The client still can't understand the replies yet, but we're making progress.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on April 24, 2015, 06:04:41 pm
Alright, it looks like I can get data to the server and back, using xmlHttpRequest. Unfortunately, I still can't read the data that I receive. It think that's because of the encoding - the xmlHttpRequest encodes it in utf16, and the thing I sue to read it can't understand utf16. I don't know how to make the two match up, unfortunately - Here's the list of encoding supported by xmlhttp (https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest):

Spoiler (click to show/hide)

and here's the list supported by the buffer class that is used as input for BSON:


Spoiler (click to show/hide)

and no, utf16, the default value for xmlhttp, is different enough from utf16le that they don't work together.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Eagleon on April 25, 2015, 09:49:59 am
You could maybe use a Blob (https://developer.mozilla.org/en-US/docs/Web/API/Blob) as the go-between. FileReader (https://developer.mozilla.org/en-US/docs/Web/API/FileReader), which is used to read Blobs, has a readAsText (https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsText) output which puts out utf8 (amongst others? I can't find what strings are acceptable for encoding type. It might be all of those if it's from the same library), and DataURL (https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsDataURL) output which puts out base64, but I've never heard of dataurls and don't know if that's suitable at all.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on April 25, 2015, 04:22:24 pm
When I set the response type, I get an end of file error on the server side application, causing it to give me no response. but if I don't set the response type, I get the response just fine, albeit in an encoding I can't seem to do anything with...
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on April 30, 2015, 09:30:23 pm
Alright, I finally got communication working. Now I just need to go through and rewrite the rest of the client in javascript, which should only take a day or two, and we will be back in business.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on May 04, 2015, 04:25:22 pm
LOOOOOOOL of course it's not that easy. Now my BSON will decode some messages, but not all. Why? Hell if I know. I suspect it may be related to size, so I'm going to go ahead and try rewriting it to deal with shorter messages.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: dorf on May 05, 2015, 01:33:59 am
The joys of programming, eh?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: BoredVirulence on May 05, 2015, 03:20:04 pm
I'm going to be honest, I skipped pages 6-30 because it was getting cumbersome...

I see that you started your design hoping to use java for the server side. I don't like javascript, but you pretty much have to use it on the client side, and if your using it there why not on the server as well? It could solve a lot of your issues with communication, a server running node.js and a web framework (I like express.js personally) communicate easily in JSON to the client side.

If I were building this I would probably do it using Node.js, Express.js (although thats really out of familiarity) and probably Durandal on the clientside. AngularJS has nice features, but can be really cumbersome, and I find Durandal to provide the same features in a cleaner way.

I'm somewhat interested, so I'll go through the google doc's page, and maybe stumble through the github a little. Although I'm more likely to fork the project using the frameworks I described than actually contribute. Especially Java, I hate Java (not the language, the environment forced on you, and also the security vulnerabilities).
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on May 05, 2015, 03:42:51 pm
I'm using java because that's what anvilfolk used when he wrote the server, and it's what I'm most familiar with too. If you wanted to rewrite the server application in javascript, I'd be happy to take your work and run with it.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: BoredVirulence on May 06, 2015, 08:29:06 am
Yeah, I might do a rewrite. I've been looking for a good web-app idea to play with some frameworks, and this seems a good fit. Besides, I've done a similar project (it was a marketplace, like an ebay clone), and it actually wasn't too much effort. Well the server wasn't, that was a breeze. The client side was difficult, but thats AngularJS for you, cool features, nothing easy.

And of course, if I do fork it, you're welcome to take any of the resulting implementation. We'll see what happens.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on May 06, 2015, 12:01:04 pm
Sure, go for it. The relevant projects are https://github.com/Agora-Project/JAgoraHTTPServer, https://github.com/Agora-Project/JAgoraServer, and https://github.com/Agora-Project/JAgoraLib. I'f reproduced much of the functionality of the last one in https://github.com/Agora-Project/JSAgoraLib. And of course, if you have any further questions, just go ahead and ask.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on May 09, 2015, 01:11:59 pm
Well, I'm having a lot of difficulty getting BSON to work properly. I even went and hired a dude, and he can't get it to work properly either. So if you want to rewrite the server in java such that we can ditch BSON, be my guest. You don't even have to do the whole thing, just do enough of it that I can finish the rest by mimicking your code and we should be good.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: BoredVirulence on May 09, 2015, 05:28:21 pm
What kind of API does your server use? Express+node makes for a great, and simple, restful API.

Just a list of functions or partial URL's your client side needs. I could pump out a skeleton server with the proper routes, and a few examples on how to fill in the rest, in a few days.

I don't know what your using for the client side, I intended on forking it as a single project and would have re-written the client side too (I'm using it as an opportunity to learn Aurelia, it looks cool). But writing a quick server using express and node is super easy. Either way, most javascript frameworks speak JSON inherently. So my server would be passing and receiving JSON. And really, I see no reason why you would need BSON. It might save some bandwidth, but the complexity surely isn't worth it, especially not when JSON works out of the box.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on May 09, 2015, 05:31:44 pm
We were using BSON because it would work with a java server. As for express and node, I don't have either of those set up, but I could probably get them. I've been using tomcat. The server is with webfaction, and they have their own custom API.

I have access to the bash shell, so I should be able to install most anything.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: BoredVirulence on May 09, 2015, 06:12:50 pm
When I have a server set up, you will need to do only a few things.

Install node. Its especially easy in a UNIX like environment.
There will probably be a few utilities you need to install globally with npm (the package manager for node). Specifically a task runner will be helpful, I've worked with grunt and gulp. It will probably be grunt, because I'll probably steal most of the configuration from my last node + express project.
After that it should be as simple as cloning a git repo.

Do you want me to try and package a database with it? MongoDB pairs well, I'm sure there are others. NoSQL databases are nice for quick start up, and tend not to be bad on performance, but if performance is a concern I think Cassandra has some pretty good specs. I can probably plug a relational database in as well. I'll focus on the server first though.

Also, is this more of a web app, where the majority of the GUI is controlled by the client side in javascript? Or does the server spit out a number of different slightly dynamic pages? I imagine the "web app" approach would work better for this kind of site, and it keeps the server side very clean and simple.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on May 09, 2015, 06:21:12 pm
We're already using MySQL. You don't need to package it with the server, though you can if you like.

And yeah, it's a web app. The GUI is entiely on the cient end, with the server only responsible for working with data.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: BoredVirulence on May 11, 2015, 08:42:29 am
I've got an incredibly simple, bare-bones server running express + node. It does nothing other than provide an example restful API. Its literally only 140 lines of code, and does virtually nothing.

I can hand it over now if you would like. I plan on working on my fork, which would use the same server, but my next steps will diverge from what you've done already.

You should be able to take the server, add a MySQL driver to it, and add whatever routes you need for your client. Since your using your client side as a separate project I assume you aren't worried about having the server "serve" the client side app to the browser. If you are there are ways to do it, but it would take some time to set up.

The only other thing to add is some simple user authentication, but to add it you really need to hook up a database, and there should be an agreement on how it works with the client side. I have some code examples from an old project I could throw your way that demonstrate some authentication. Its been a while since I worked with that, and it worked out of the box so there was little that needed changing. A good example if you can follow it comes from the MEAN.js stack.

Edit: You can find the example server here:
https://github.com/BradyPowers/AgoraServer
I'll continue working on the fork. I'll be adding Cassandra as a NoSQL database, and I'll see about packaging a client side using Durandal. I'll probably put the actual fork in a separate repository, so if you need any help with the server I uploaded (its very minimal) we have a common repository. You have push access. Or you can just fork it and run with it.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on May 11, 2015, 12:33:24 pm
I've got an incredibly simple, bare-bones server running express + node. It does nothing other than provide an example restful API. Its literally only 140 lines of code, and does virtually nothing.

I can hand it over now if you would like. I plan on working on my fork, which would use the same server, but my next steps will diverge from what you've done already.

I already have a server I can set the project up on, I don't need to use yours. I just want the code.

What are your next steps? I would assume you'd start adding the coding to handle requests, and all that.

You should be able to take the server, add a MySQL driver to it, and add whatever routes you need for your client. Since your using your client side as a separate project I assume you aren't worried about having the server "serve" the client side app to the browser. If you are there are ways to do it, but it would take some time to set up.

I already have both tomcat & htdocs on my server. I could just use one of those, right?

The only other thing to add is some simple user authentication, but to add it you really need to hook up a database, and there should be an agreement on how it works with the client side. I have some code examples from an old project I could throw your way that demonstrate some authentication. Its been a while since I worked with that, and it worked out of the box so there was little that needed changing. A good example if you can follow it comes from the MEAN.js stack.

That is something I'll be wanting eventually.

Edit: You can find the example server here:
https://github.com/BradyPowers/AgoraServer
I'll continue working on the fork. I'll be adding Cassandra as a NoSQL database, and I'll see about packaging a client side using Durandal. I'll probably put the actual fork in a separate repository, so if you need any help with the server I uploaded (its very minimal) we have a common repository. You have push access. Or you can just fork it and run with it.

Awesome, thank you!
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: BoredVirulence on May 11, 2015, 02:23:53 pm
To clarify a few things.

I'm technically working on my own project. Its a fork, that is it does the same thing, but its an alternate implementation. So I will do things to a separate repository that won't be completely compatible. I'm doing it because I want a good web project to play with a few technologies I've been wanting to play with. Any work I complete related to this project can be used by you however you see fit. For instance, if my fork were to pass yours in functionality with less complexity, you have my express permission to incorporate it into the your project.

Since you are having such a problem with getting Java to communicate with your client side Javascript, I provided a simple Javascript server (back-end is synonymous here). When I say server, I mean the code that makes a machine behave like a server. The point of the Javascript server was to show you how you can accomplish those same tasks in Javascript. It is incompatible with your Java work though, commiting to it would require abandoning Java on the server. Technically you can get the two servers to communicate with eachother, but it would likely involve solving your current issues, and introduce a lot of unnecessary complexity. You may be able to use some Java technologies with the Javascript server, but thats likely to reintroduce issues getting Java and Javascript to work.

The server I provided can be used by you as you see fit, the repository too. If you aren't sure which direction to go with, feel free to develop them both side-by-side for a while. My fork will take place in a different repository.


Things you can do...

Install a driver for your database. Looks like there is one named mysql (type: npm install --save mysql). Here is a page on it. (https://www.npmjs.com/package/mysql)
This will allow you to connect to your MySQL database.

Since this server will be incompatible with your Java server, you will need to investigate to how to reimplement functionality you already have. Consider a little bit of effort here an investigation into which server you want to keep. I would also try and implement some of the routes your client side needs, and see if you can get it communicating.



Things I will be doing with my fork...

I will be adding a database (Cassandra in my case) to my fork. Next I will see if I can get Browserify (http://learnjs.io/blog/2013/12/22/express-and-browserify/) to serve (bundle, build, ship, whatever) a client side Durandal app to the browser (when a browser makes a request of the server, how else would the client side run?).

After that I will have a simple full stack application. From there I would implement most of the required functionality on the back-end. Test it using curl where applicable. Then implement the client side to provide an interface that utilizes the back-end restful API. At this point we have a partially functioning Agora implementation. Further iteration would refine it.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on May 18, 2015, 08:27:18 pm
I have a guy suggesting that we rewrite the thing in Meteor.js with Polymer and Mongo-db. Does that sound like a god idea, that will make things easier in the long run?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Eagleon on May 18, 2015, 09:49:17 pm
I have a guy suggesting that we rewrite the thing in Meteor.js with Polymer and Mongo-db. Does that sound like a god idea, that will make things easier in the long run?
Is he offering to rewrite it? ;) Otherwise I would stick with an implementation and follow it through. That's a platitude, I don't really have the first clue about web development or JS - you're probably in the best position at this point to decide if Meteor or Polymer are good fits, or something you can work with.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on May 18, 2015, 09:59:02 pm
He's offering to rewrite it for $650. I think it's probably worth it, as it includes the server and client, and should bring us pretty much back up to where we were with the java server.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Eagleon on May 18, 2015, 10:13:27 pm
He's offering to rewrite it for $650. I think it's probably worth it, as it includes the server and client, and should bring us pretty much back up to where we were with the java server.
I can't contribute financially, things are nuts with work and they might not keep me on if I can't get the work restriction I have lifted. I can look at his portfolio if he has one if you want a second pair of eyes - tomorrow, I've had four hours of sleep in the past 16 haha. But yeah, keep options open?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on May 18, 2015, 10:25:45 pm
I have plenty of money, what I need right now is advice. Does meteor.js look like a good platform to have Agora use? Are Polymer and Mongo-db techs we want to employ?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: dorf on May 19, 2015, 10:30:13 am
meteor.js is a cutting edge realtime full-stack web tech. It is also well backed up financially ($millions). I've tried it before v1.0 and I liked it very much.
I hear they like to break their API from version to version and that old tutorials will not work in newer version.
meteor.js fits Agora well.

I've never heard of Polymer, so I don't know whether it belongs with Agora or not. Can you ask the dev in what way Polymer fits into the picture? Also make sure the dev knows whether you'll be rendering the forum in HTML5 canvas/canvas3d or not.

MongoDB is well supported in a JS environment and can be used as a graph DB to a degree. Neo4j is a fully-featured graph DB which comes with a lot of graph-related functions & algorithms. It's written in Java though. Ask dev why he thinks a document-based DB is more suited for a graph forum vs. a graph DB.
MongoDB might be OK for Agora, but that depends on the use-cases and the sizes of the graph.

TL;DR: I most probably wouldn't use such a tech configuration for Agora.

That said, I'm not your lead dev, and I don't have all the design facts before me.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on May 19, 2015, 11:29:02 am
Polymer is for display. It would essentially take the place of d3, which is just as well, as d3 has been a pretty awkward fit for the things I want to do.

The reason he suggests Mongo-db is because that's what works best with Meteor. I'll talk to him about alternatives.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: BoredVirulence on May 20, 2015, 01:06:42 pm
Meteor is good. I don't have much experience with it, but it is good.
Meteor would do what my fork would do. But where I would use 2 frameworks (one for the client side, another for the server) Meteor is just one.

So yeah, it seems like a fine idea. It would bring pretty much the same benefits as my fork. Except it would be more consistent.

There is nothing wrong with MongoDB. NoSQL databases generally perform only slightly worse than properly normalized SQL database. MongoDB isn't the best for performance though, redis or Cassandra would be a faster choice. Both would probably work well with Meteor. Honestly, its not too difficult to swap in another NoSQL database if required, so I don't think that its an important design decision here, they all operate similarly.

NoSQL databases are nice because they don't require you to normalize them. You can nest data structures if necessary, and you can leave a document ID and join it later. They better represent the data than a series of tables that have to be manually assembled. I do think a NoSQL database better fits your graph structure than a SQL database.

Not familiar with Polymer. I'm not sure if its necessary. I guess Meteor might not provide enough DOM manipulation for Agora. Thats why I was using Durandal, to manipulate the DOM for to make it a single page app. I'm not familiar enough to say Polymer is good or bad.



TL;DR, Meteor should be fine. I can't speak for Polymer (Nor do I see why its necessary, but I'm guessing Meteor doesn't manipulate the DOM enough). MongoDB will be fine, especially initially. NoSQL databases are quite nice, I think the model fits your data better than a SQL database, and if you need more performance you should be able to swap a faster NoSQL database in without too much effort.

If the $650 isn't breaking the bank, go for it. It doesn't look like a bad decision. Just pay him in installments so you can see work is being done.

I'll still work on my fork, slowly (I have a lot of projects I like to work on).
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on July 09, 2015, 03:36:57 pm
Alright, the dude set up a staging version (http://agora-staging.meteor.com/). It's only a basic test, but here it, no java config editing required.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Antsan on July 10, 2015, 03:29:38 am
It's working for me. Kind of. Which is to be expected, I suppose.
When entering '…' (the Unicode character, [Alt Gr]+[.] on my keyboard) the mask for entering a new topic reloaded. I cannot reproduce this, so that might have been a fluke.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Jarvis on July 11, 2015, 12:36:44 am
So, I clicked on the red circle on the "Test" box and now it won't show up. Did I accidentally delete it?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Antsan on July 11, 2015, 05:14:48 am
I think these red circles are for deleting. That's how I used them.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on July 11, 2015, 11:03:16 am
Those are supposed to close posts, just to get them out of the way. Right now the guy has them deleting posts, though.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Jarvis on July 11, 2015, 12:50:03 pm
I wasn't even logged in when I clicked the red circle. That should probably be changed.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on July 11, 2015, 01:55:30 pm
Yeah, I talked to him about it. This is just a demonstration version, after all.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Jarvis on July 11, 2015, 03:39:57 pm
What exactly does the green button in the lower left hand corner do?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Antsan on July 11, 2015, 03:48:20 pm
If you click on a green button, it turns white. You answer to any post you marked this way. That's at least my understanding of it after playing around.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on July 11, 2015, 03:57:03 pm
yup, thats for replying to specific other posts. You can check multiple to reply to multiple posts.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Jarvis on July 11, 2015, 04:06:56 pm
It seems like it could get real cluttered pretty easily if a lot of people reply to a lot of posts at once. Maybe there could be a feature where all but selected webs are made transparent for easier reading.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on July 11, 2015, 04:28:18 pm
The red buttons are supposed to close a post, not delete it. And it's only supposed to load a few at a time - there should be a blue button that lets you load all posts relating to another post, and eventually I'm going to add a feature where you can see previews of posts hanging off of other posts, and can load them individually.

Also, is anyone familiar with meteor? If so, would you be willing o take the time to look at the code for this (https://github.com/Agora-Project/agora-meteor) and point out any problems you see there? It's cool if you're too busy, I get it.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on October 02, 2015, 06:15:17 pm
Alright, I have a live demo. It's pretty meh, though - the guy I'm paying to work on it hasn't implemented the UI improvements I'm looking for. Still, it's something: http://templeoftheelements-50919.onmodulus.net/forum (http://templeoftheelements-50919.onmodulus.net/forum)
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Antsan on October 05, 2015, 06:16:09 am
If I registered at the other site, does that carry over to the new one?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on October 05, 2015, 02:54:07 pm
I don't think so. I don't believe the database was copied over.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: dorf on October 06, 2015, 06:41:12 am
I've successfully attacked a post, it seems!
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Antsan on October 06, 2015, 06:48:55 am
And I deleted your post without even logging in. :o
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on October 06, 2015, 12:00:52 pm
Yeah, that should be fixed soon.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on August 15, 2016, 05:06:25 pm
I'm trying to debug the demo, as it's not working for some people. Can everyone else view it?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Antsan on August 16, 2016, 04:23:35 am
So… I forgot my old login, reregistered successfully with a new account. I could see the graph and add an attack. Everything seems to be working fine for me.

I cannot read my overly long post, though. I still can delete other people's posts.

It probably would be sensible to replace the link to the forum in the first post.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on August 18, 2016, 11:09:10 am
It probably would be sensible to replace the link to the forum in the first post.
Done. I'm pretty sure that the example forum doesn't work right on chrome. I'm already working on a nwere version, though, so I'd rather focus on pushing that out. Hopefully it won't have the same problem.

In other news, does anyone know anything about Meteor, Atmosphere, NPM, D3, or Cytoscape? I'm currently trying to put the next version together and I need to figure out which of these technologies to use. Right now I'm trying to use meteor, atmosphere, and cytoscape, but one of the extensions to cytscape I want to use relies on NPM and isn't very friendly with meteor. I'm thinking I might just go back to using d3 instead of cytoscape, but that had it's own problems...

Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: dorf on August 19, 2016, 07:39:41 am
but one of the extensions to cytscape I want to use relies on NPM and isn't very friendly with meteor.

If the extension is simple enough: have you tried pasting the extension's code into your software somewhere, somehow?

Also, there seems to be an official way to install NPM packages into meteor (https://guide.meteor.com/using-npm-packages.html#installing-npm).
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on August 19, 2016, 03:41:01 pm
If the extension is simple enough: have you tried pasting the extension's code into your software somewhere, somehow?

Also, there seems to be an official way to install NPM packages into meteor (https://guide.meteor.com/using-npm-packages.html#installing-npm).

I considered doing that. The trouble with that is that it's pretty kludgey and will probably cause problems in the long term, and would also require a lot of work up front. And yeah, there are lots of ways to get NPM packages to work with meteor, but I'm not just using meteor, I'm using atmosphere, and atmosphere is not nearly so compatible. Right now, I have three main branches under developement. One uses meteor and D3, one uses meteor and cytoscpae, one uses meteor, atmosphere, and cytoscape, and is the furthest along, and one uses meteor, atomsphere, and cytoscape. I'm trying to decide which of these to continue development with, and how exactly to structure my code, and it's a difficult decision.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: dorf on August 21, 2016, 03:55:19 pm
In other news:  http://en.arguman.org/
this looks interesting
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on August 22, 2016, 10:46:16 pm
In other news:  http://en.arguman.org/
this looks interesting
Yeah, I've seen a few others like that. None of them seem to have really caught on though.

In other news, I managed to overcome my dilemma and am making progress again! In a little bit I'll see about updating the demo, or just putting up another one entirely.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on August 26, 2016, 03:03:26 pm
Ha! I got a new demo up and running, visible here (http://forum-demo-88817.onmodulus.net). Should have all the necessary functionality for basic use. Go ahead and tell me what you think!
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: dorf on August 26, 2016, 04:02:16 pm
I've tried it in Chrome and FF and it works as well as before, IIRC.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on August 26, 2016, 04:05:57 pm
Excellent, I can see your posts! Mind if I delete them to keep the forum tidy?

Oh, and what do you think? Is there anything in particular you think need to be done next? Maybe auto-sizing posts? Or making it so you can click the blue button and get a pop-up menu of posts, and load them individually?
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: crazyabe on August 26, 2016, 04:09:37 pm
PTW.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on August 26, 2016, 04:12:28 pm
PTW.

Did you check out the test site? It's mostly functional, if somewhat obtuse.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: crazyabe on August 26, 2016, 04:21:33 pm
Sort of, I think you Might want to Include A Bit of Info On what does what, Because It Currently Looks like a Sandbox Toy and I have no Clue How to use it.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on August 26, 2016, 04:22:31 pm
Yeah, good idea. I'll have a basic explanation put up on the home page.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: dorf on August 27, 2016, 05:47:28 am
Excellent, I can see your posts! Mind if I delete them to keep the forum tidy?

Oh, and what do you think? Is there anything in particular you think need to be done next? Maybe auto-sizing posts? Or making it so you can click the blue button and get a pop-up menu of posts, and load them individually?
Sorry for not elaborating, I thought you just wanted to know whether it works.
Yeah, of course you can delete my ugly posts. I would have done it myself, but I didn't find the button that does that.

I think that at this early phase we can talk more about defects than functionality. If you think UI/UX improvements are not necessary at this phase, I'd suggest implementing more features and fixing bugs.
Personally, I'd like to see a functional prototype.
Currently it's difficult to navigate the posts. The graph is too wobbly. To the point that I couldn't click any buttons because it hasn't stabilized yet. Navigation needs to be really, really smooth before any kind of public release.

The mouse-wheel zoom is a nice feature and helps with readability!
Thread view might be nice. You press the blue button on a post somewhere in the graph and you get the whole conversation in a thread-like interface. That's what I imagined when you mentioned pop-ups anyway. This will get tricky when posts will have multiple parents though. S/he will have to annoyingly select the whole path.
Title: Re: Agora, A better forum (Open Source Project): Now with Github
Post by: Angle on August 27, 2016, 01:43:19 pm
Sorry for not elaborating, I thought you just wanted to know whether it works.
Yeah, of course you can delete my ugly posts. I would have done it myself, but I didn't find the button that does that.

I think that at this early phase we can talk more about defects than functionality. If you think UI/UX improvements are not necessary at this phase, I'd suggest implementing more features and fixing bugs.
Personally, I'd like to see a functional prototype.
Currently it's difficult to navigate the posts. The graph is too wobbly. To the point that I couldn't click any buttons because it hasn't stabilized yet. Navigation needs to be really, really smooth before any kind of public release.

The mouse-wheel zoom is a nice feature and helps with readability!
Thread view might be nice. You press the blue button on a post somewhere in the graph and you get the whole conversation in a thread-like interface. That's what I imagined when you mentioned pop-ups anyway. This will get tricky when posts will have multiple parents though. S/he will have to annoyingly select the whole path.

Ah, good to know! I'll work on getting the graph less wobbly, and start implementing the thing for loading posts individually. I am considering how best to implement a kind of "conversation follower". I think first we'll need to add types to replies, so that your reply can be an attack, or a support, or reference another post, etc, etc, and depending on that we can track the flow of a conversation. Combined up and down voting and SAA, we can track which posts are more or less important, and have the conversation tracking ignore all below a certain threshold. That's a little ways off, though.
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: dorf on August 27, 2016, 03:48:52 pm
Heh, I had a few more ideas I could have mentioned. I had to deliberately stop myself to write them out since, like you've said, some dreamy features (https://github.com/Agora-Project/AgoraDevDocs/wiki/Outcome-Computation) are a little ways off :)

I'd go for no wobbling myself. Make it as static as possible.
I had a student show me his work: some interactive JS graph-like visualization thingy. Whenever I clicked/changed something the whole graph spun off the screen completely and then spun back into view wobbling around until it finally stabilized. I really hated that. I think other users will too.

Once you'll have the reply types figured out the conversation follower feature should fall into place nicely. The "meat" of the conversation will probably have a recognizable pattern (OP post -> attack -> attack -> attack, with various supporting replies mixed in). Such conversations can probably be easily visualized. Or at least easier than graph visualization!


Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Angle on August 31, 2016, 01:53:32 pm
Heh, I had a few more ideas I could have mentioned. I had to deliberately stop myself to write them out since, like you've said, some dreamy features (https://github.com/Agora-Project/AgoraDevDocs/wiki/Outcome-Computation) are a little ways off :)

I'd go for no wobbling myself. Make it as static as possible.
I had a student show me his work: some interactive JS graph-like visualization thingy. Whenever I clicked/changed something the whole graph spun off the screen completely and then spun back into view wobbling around until it finally stabilized. I really hated that. I think other users will too.

Once you'll have the reply types figured out the conversation follower feature should fall into place nicely. The "meat" of the conversation will probably have a recognizable pattern (OP post -> attack -> attack -> attack, with various supporting replies mixed in). Such conversations can probably be easily visualized. Or at least easier than graph visualization!

Well, I managed to cut down on the wobbling significantly, though not completely, and make it so that you can right click on a post to see what all the other posts connected to it but not loaded in the graph are, and click them to load them. I'm also considering a significant number of issues towards a UI rework.

*allowing people to pin posts
*making posts prettier
*Making it so that you can click anywhere on a post to select it.
*Making it so that you can make new links by clicking and dragging.
*making it so that when you want to add a new node to the graph, it just adds a post like when you load an existing one, except that it's text fields are editable. You can then select any number of posts and connections that haven't been added yet, and submit them by clicking the submit button.

After that, we have a couple more functionality oriented changes

*Making more types of connections between attacks, so that you can have attack, supports,
*SAA! Yes, voting and solving for relative value of different posts!

Any idea what all should be prioritized, or anything you'd like to add?
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Angle on September 03, 2016, 06:10:43 pm
So I'm thinking of launching a Patreon page for Agora? And a proper front page for the test website, too. Anyone have any advice? Oh, and should I register a trademark, or is that unnecessary?
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Angle on September 10, 2016, 01:24:21 pm
I switched the forum to use a static layout. It should eliminate the problems people have been having clicking on posts and such. What do you think, people? Is it an improvement?
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Eagleon on September 10, 2016, 03:29:18 pm
I didn't mind the floatiness once the posts froze when you interacted with them, I think this form will break more once you get into lots of cycles with attacks, but that's less important than getting this polished so that we can have fun with it while it's developed :) It's usable in its current state either way IMO.

More feedback! Sorry that I still can't contribute more time to this, I've got my first real commercial music project going =3 pretty exciting
You're treading new territory for UI design, and I'm not a UI designer by any means, so all of this should be taken with a grain of salt of course. As far as patreon, I have no idea D: I've never run one. Couldn't hurt?
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Angle on September 10, 2016, 05:02:12 pm
I didn't mind the floatiness once the posts froze when you interacted with them, I think this form will break more once you get into lots of cycles with attacks, but that's less important than getting this polished so that we can have fun with it while it's developed :) It's usable in its current state either way IMO.

A lot of people were complaining about posts moving, hence the change. It also lets me ditch the obnoxious code for freezing posts.

More feedback! Sorry that I still can't contribute more time to this, I've got my first real commercial music project going =3 pretty exciting

Hey congrats! I'll look it up.


Everything should, visually, have its own layer not necessarily using the same cue, just different. Most of this is about that.

What all do you mean? Links are already displayed behind posts. Do you mean like in terms of contrast and what stands out and draws the eye?


Dragging posts is still awkward because there's no visual cue that a post is being dragged. A small icon is all you'd need if there's no way to get a transparency of the post itself. Also nice would be to draw the connections as you drag them, because where it ends up isn't always too predictable, so you have to search for a second or two after it's dropped.

I actually just fiddled with that. It's still a little finicky, but it's a fair bit better now than it was.

  • The post title should be above or next to the red dot, maybe right-justified into it, or worst-case limited in length. As it is, some of the text is hidden if the title is too long. The dot also doesn't need to be nearly so large if you keep it at the same scale while zooming. Might look a little strange at first, but it'd be worth it for being able to focus on the posts themselves more.
  • While zoomed out, we probably don't want to read the post text itself so much as the titles. Scaling them differently might work?
  • It should be easier to visually transition from title to post, while still making the title most prominent - maybe a line/divider in bracket shape below the title?
  • The background should, IMO, be darker than the posts to make them pop out more, or else the border of the posts should be a bit stronger. If you relied on the border, you could potentially get rid of the right side and make it look like it's being peeled up from the page.

Yeah, rearranging the post displays will probably be my next task. I need to do a bunch of cleaning up on them. Give the posts proper windows, make sure nothing overlaps, rework the colors, etc, etc.

Having a seperate page for composing a post feels a little jarring. Many times I'll reference what's been written in previous posts in a conventional BBS, and this would make that impossible without opening another window. But maybe a pop-up is what you need, since you still want to be able to move stuff around to read through the network. I dunno.

I actually already have a plan for that - I'm gonna change the button so it just adds a blacnk post to the graph, and you can click on it and type in it and make links between it and the other nodes, and even add multiple of them and then submit them all at once.
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Eagleon on September 10, 2016, 05:15:21 pm
All sounds good, and yeah, the visual contrast between elements (title, post, buttons, links, and even background), what their mode of interaction could be, and what information they have at a glance, is what it's missing most right now IMO. It just looks flat :F

The music will be in a CYOA style novel, who knows when the game will be released, I'm just happy I'm starting to get to that point haha. My insane paranoia is that it'll all be "but the music sucks! D+ try again" when it gets to greenlight stage x3 Just have to win a grammy, and then I can stop hating on myself.
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: dorf on September 11, 2016, 04:27:47 am
I switched the forum to use a static layout. It should eliminate the problems people have been having clicking on posts and such. What do you think, people? Is it an improvement?
Yeah, I like it!
I've had a bug where I've opened connecting posts of the 'Forum Games' and they've appeared parentless at the bottom-right side of the graph. Unfortunately I cannot reproduce the bug.

Tooltips are helpful, although jarring. You might wanna try using the browser built-in tooltip by manipulating the title attribute of #posts-graph.

My insane paranoia is that it'll all be "but the music sucks! D+ try again"
It's hard putting yourself out there to be potentially criticized but what's the alternative? Being creative and not showing your work to anyone?
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Angle on September 12, 2016, 04:38:03 pm
I'm working on changing the new posts interface right now, and I hope to consult with somebody about changing the display in a day or two. What kind of advice would you guys put forth, in terms of looks? Any suggestions as to color scheme, size of various buttons, layout, etc? I know it was suggested that I change how things look when zoomed in or out, I.E. only showing titles when zoomed out, keeping the buttons large when zoomed out, etc. Is there anything else along those lines that anyone would like to suggest?

Oh, and what all would be necessary for you to start using it now? I kinda want to start testing it out ASAP so I can get a good feeling for how it works and how it could be made better.
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: dorf on September 13, 2016, 06:15:08 am
LEGEND:
 - category: the top posts (Forum, Creative Forums...)
 - thread: user-created post (OP) that is directly under a category

- The main categories should probably always display in the same order. If you open the application a bunch of times and click the "load connected posts" button, the order of categories will be different almost every time. Since you allow users to manipulate the graph ad-hoc, maybe have a "remember last state" option?
- Make threads and categories visually different. Make user-created threads and mod-created categories visually different.
- Loading icons/animations will keep users from leaving the site.
- I feel the starting view should be more zoomed-in maybe. The font is quite small by default. The buttons are too tiny for mobile-use and uncomfortable for mouse-use.
- The current layout makes me want to create twitter-like posts instead of large posts such as this one.
- Disabled buttons when they are not applicable. When a post doesn't have children the button should be grey'd-out.
- Maybe add some numbers. E.g. posts could have total number of unread/hidden children posts.
- Streamline! Make the most frequently used actions as fluid and simple as possible for the user. Use more recognizable icons for creating posts and loading connecting posts.
- Feature-wise I'm unsure. I guess that's dictated by Agora's use-cases. So, if you're going for an social argument platform, implement features that will go toward that goal.
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Angle on September 13, 2016, 07:10:17 pm
Oh! How do you think I should encourage people to use the forum? I'm currently thinking that having lots of small posts could be desirable. The idea being that instead of posting gigantic walls of text, people post long chains and webs of smaller posts. This breaks arguments into smaller, more digestible pieces, and allows people to single out individual pieces without making things too difficult to follow.

What do the rest of you think? Sound good, or would you suggest something else?
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Angle on September 16, 2016, 05:21:54 pm
I updated it so that new posts can be added from the same page. Still need to rework links, though. I'm gonna do a vsiual rework once I tackle links.
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Angle on October 02, 2016, 03:53:01 pm
So what do people think of the new posts feature that adds them to the graph and lets you type in them before submitting them? Would it be better to have them be separate, like in a pop-up attached to the bottom of the page, and not part of the graph? The idea with having them be part of the graph is that you can drag them around and link them to stuff the same way you would other stuff that's already been posted on the graph, but that might not be necessary.

I ask cause me and a friend are going over the code and he wants to make some major changes. I agree that the project needs some major changes, but I'm not sure that these are the right ones.
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Angle on October 14, 2016, 06:00:09 pm
Been working on getting posts to display nicely. Took a bit of rewriting, but here's where we're at right now:

Spoiler (click to show/hide)
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: dorf on October 16, 2016, 12:49:20 pm
Looks very nice. The UI has a more familiar feel now.
Nice work.
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Angle on October 16, 2016, 02:12:44 pm
That was a friend of mine who did all that work, actually. But I do think it's turning out quite well.
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Angle on November 10, 2016, 05:46:39 am
Finally have a live test of the new UI put together. It's still a bit buggy, but it should at least let people take a look and see how it works.

You will likely need to refresh your browser after navigating to the forum page in order to get the forum to work. We're gonna try and catch that mod soon, but for the moment it persists.

Anyway, what do you think? Look good? Right now you can load posts by clicking the 'Show Connecting posts' button in the lower left of a post, you can close it by clicking the red X, you can drag it around by clicking on the titlebar (But not the title), you can drag the entire forum around by clicking on the back ground and dragging, and you can add new replies by click the reply buttons. Clickint\g reply to multiple posts will connect your reply to those multiple posts. Replies are fairly self-explanatory - they have a title and a body, and you can write whatever you like in them and then click submit to add them to the graph.

You can view it here: http://forum-demo-88817.onmodulus.net/forum
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Antsan on November 10, 2016, 09:01:09 am
The number in parens behind the "Show connecting posts" is confusing. I thought it would be the number of subnodes, but as it is it seems to be the height of the tree the button belongs to. I'm not sure what purpose that measure has – I think number of subnodes is more relevant for the function of that button, since it predicts what strain the user will put on his system by clicking on that node, abstractly speaking.
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: MoonyTheHuman on November 10, 2016, 09:10:30 am
Intresting. i would like to help ^_^ what languages are used? (i know js and html, but what else?)
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Angle on November 10, 2016, 12:36:50 pm
The number in parens behind the "Show connecting posts" is confusing. I thought it would be the number of subnodes, but as it is it seems to be the height of the tree the button belongs to. I'm not sure what purpose that measure has – I think number of subnodes is more relevant for the function of that button, since it predicts what strain the user will put on his system by clicking on that node, abstractly speaking.

That shows the number of subnodes and of supernodes. I'm eventually gonna make it show that number, minus the ones that already present on the graph.

Intresting. i would like to help ^_^ what languages are used? (i know js and html, but what else?)

CSS and a thing called Meteor (https://www.meteor.com/), which isn't a language per se, but requires learning a lot like one. You can view the source for the project here (https://github.com/Agora-Project/agora-meteor) (forum code) and here (https://github.com/Agora-Project/agora-meteor-demo) (Test website).

If you need any help figuring things out don't hesitate to ask!
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: dorf on November 11, 2016, 05:24:09 am
Once I've opened the whole tree, two posts in the tree were shaking their right border while I was moving the mouse.
Their right border moved like 1px in then out, etc.
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Angle on November 12, 2016, 04:44:50 pm
Once I've opened the whole tree, two posts in the tree were shaking their right border while I was moving the mouse.
Their right border moved like 1px in then out, etc.

I'm not seeing that bug, but I'll keep an eye out for it. It's probably a schrodinger bug, it'll show up eventually.

On another note, does anyone have any advice for what order I should start implementing other things? I have a lot of features left to implement and I'm not sure how to prioritize them. These include allowing posts to be expanded so you can read a large post easily, zooming, proper user profiles, SAA, replying to posts and web pages outside the forum, moderation, BBCode, reworking the graph layout, etc.

What all do you guys think should be prioritized, and in what order?
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: dorf on November 13, 2016, 02:22:28 pm
Add spam detection and user registration (with OpenID support) somewhere in there.
I'd wager that SAA is a core feature to Agora.
Add BBCode and proper user profiles last.
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Angle on November 13, 2016, 03:29:29 pm
Add spam detection and user registration (with OpenID support) somewhere in there.
We already have user registration, and adding OpenID support should be pretty easy - there are packages for logging in with facebook, google, etc. I can probably just drag and drop them right in.

I'd wager that SAA is a core feature to Agora.
Add BBCode and proper user profiles last.

Huh, really? I figured I should prioritize having enough features that people can use it normally, so I can build up a user base before going for the high end stuff like SAA. :/
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: dorf on November 17, 2016, 08:32:42 am
It's just my opinion/interests.
Since I thought Twitter and mobile games were merely fads, you can assume that my opinion doesn't count for much :)
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Angle on November 25, 2016, 05:15:32 pm
It's just my opinion/interests.
Since I thought Twitter and mobile games were merely fads, you can assume that my opinion doesn't count for much :)

No, that's fair. I was just surprised.

In other news, I'm considering changing the view to implement a sort of 'broad overview' which would allow people to view the forum as a bunch of dots connected by smaller lines, like this:

For the interface, what about having a panel which shows the posts as a series of nodes linked to others, and they can be selected to bring up a windown showing the content of that post?  something (vaguely) like this:
(http://img.ie/wmum1.gif)

ANy thoughts? Does it seem worthwhile? Are there other changes you'd rather see?
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Angle on December 09, 2016, 05:20:47 pm
I went and added a way to cherry pick which of a posts replies you wish to look at. You guys should look and tell me what you think!

Especially if you have advice on what to add next - I'm thinking of tackling BBCode, but I'm not certain. I have a friend who's working on adding a way to display the entire forum, or at least a large chunk of it as a graph, but that's still being implemented. You can see a preview at the bottom of the forum page, though.
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Angle on December 31, 2016, 12:10:44 am
Went and added a an overview feature to look at the various posts on the graph, and the beginnings of an in depth view for a post and for user profile pages. Right now we're working on redoing the layout so that it's as untangled as possible, and on changing the front page so that's a bit less ugly. Does anyone have any suggestions for information that should be present on the first page but isn't? I can tell from looking at it that it's pretty shoddy, but I'm having trouble figuring out how to improve it. Any suggestions?
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Angle on January 04, 2017, 06:06:06 pm
We finally implemented our new layout scheme for the overview. It still needs a lot of refinement, but I think it's a good start. Take a look! (http://forum-demo-88817.onmodulus.net/forum/overview)
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Angle on January 28, 2017, 07:06:30 pm
And now we've added the new layout to the main forum view, which should make things much easier to navigate. Tell me what you think!
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Urist McScoopbeard on January 28, 2017, 11:33:09 pm
Just dropping by to say this is a great project.
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Angle on January 28, 2017, 11:42:22 pm
Just dropping by to say this is a great project.

Thank you! Any suggestions for things that would make you want to use the forum? Right now I'm mostly trying to get things to the point where people will use it, so that I can see how it works in practice.
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Angle on January 30, 2017, 11:56:00 pm
I added the hourglass view to the expanded post pages (http://forum-demo-88817.onmodulus.net/forum/post/qpkGg73oybwDMfyum), so that when you look at a post in detail you can see it's exact place in the graph.
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Angle on January 31, 2017, 11:07:31 pm
Also, I put together a Patreon (https://www.patreon.com/AgoraForum), for those that are interested.
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Retropunch on February 05, 2017, 03:44:19 pm
So, I've just looked at this and I love the idea behind it. However, I've got to be brutally honest and say that I think through your quest for the whole 'node based discussion' you've gone too far into making it more difficult to use than normal forums. I've done a lot of systems documentation in the past, and this suffers from the classic problem of a lack of basic, quickly readable 'surface' information. You're forced immediately to do a deep dive into stuff, and rather than it being better than a normal forum, it becomes way more time consuming to use and just plain confusing.

Basically, I think it just needs some big changes to how you show the basic stuff. My suggestions would be as follows:

- Highlight the current node you're looking at. Make it a green dot or similar. (this is an absolute MUST)

- Show the alternate nodes you could have jumped to from the last node (I'd suggest that they be fainter/slightly transparent). It's needlessly time consuming to have to jump back to see alternate answers to the same post.

- Label the nodes with their subject. You need to know roughly what you're looking at straight away - do the first three words or something for subjects. This might spread stuff out a bit and make it looks slightly messier, but the whole point of this is that I can see more naturally how conversations are structured - I lose that if I have to hover over everything.


Whilst it's a big change, I'd also suggest having text on the left and the node-tree on the right. Currently you've got small posts, but if you end up with lengthy ones (like this!) you'll lose the one thing that makes Agora stand out (the fact you can see where your entry fits in the tree of stuff) by pushing it all the way down to the bottom underneath the text. Having the text in a scrollable box to the left hand side will help a lot.

Honestly, I love love LOVE the idea, but it's got to be more (or at least equally) efficient than a normal forum for it to be useful. Sorry this has been such a critical first post - I think it's a great and I definitely want to see it come to fruition. I honestly believe it could become the new forum standard if it was made easy enough to use - I'd certainly deploy it across my sites if it did!

 
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Angle on February 06, 2017, 04:21:33 am
So, I've just looked at this and I love the idea behind it. However, I've got to be brutally honest and say that I think through your quest for the whole 'node based discussion' you've gone too far into making it more difficult to use than normal forums. I've done a lot of systems documentation in the past, and this suffers from the classic problem of a lack of basic, quickly readable 'surface' information. You're forced immediately to do a deep dive into stuff, and rather than it being better than a normal forum, it becomes way more time consuming to use and just plain confusing.

Basically, I think it just needs some big changes to how you show the basic stuff. My suggestions would be as follows:

- Highlight the current node you're looking at. Make it a green dot or similar. (this is an absolute MUST)

- Show the alternate nodes you could have jumped to from the last node (I'd suggest that they be fainter/slightly transparent). It's needlessly time consuming to have to jump back to see alternate answers to the same post.

- Label the nodes with their subject. You need to know roughly what you're looking at straight away - do the first three words or something for subjects. This might spread stuff out a bit and make it looks slightly messier, but the whole point of this is that I can see more naturally how conversations are structured - I lose that if I have to hover over everything.


Whilst it's a big change, I'd also suggest having text on the left and the node-tree on the right. Currently you've got small posts, but if you end up with lengthy ones (like this!) you'll lose the one thing that makes Agora stand out (the fact you can see where your entry fits in the tree of stuff) by pushing it all the way down to the bottom underneath the text. Having the text in a scrollable box to the left hand side will help a lot.

Honestly, I love love LOVE the idea, but it's got to be more (or at least equally) efficient than a normal forum for it to be useful. Sorry this has been such a critical first post - I think it's a great and I definitely want to see it come to fruition. I honestly believe it could become the new forum standard if it was made easy enough to use - I'd certainly deploy it across my sites if it did!

 

No no, thank you! I would love to relieve more in depth straight forward criticism like that. It's pretty ate for me right now, so I'll go over your post in detail in the morning.
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Angle on February 06, 2017, 06:32:52 pm
So, I've just looked at this and I love the idea behind it. However, I've got to be brutally honest and say that I think through your quest for the whole 'node based discussion' you've gone too far into making it more difficult to use than normal forums. I've done a lot of systems documentation in the past, and this suffers from the classic problem of a lack of basic, quickly readable 'surface' information. You're forced immediately to do a deep dive into stuff, and rather than it being better than a normal forum, it becomes way more time consuming to use and just plain confusing.

Basically, I think it just needs some big changes to how you show the basic stuff. My suggestions would be as follows:

- Highlight the current node you're looking at. Make it a green dot or similar. (this is an absolute MUST)

- Show the alternate nodes you could have jumped to from the last node (I'd suggest that they be fainter/slightly transparent). It's needlessly time consuming to have to jump back to see alternate answers to the same post.

- Label the nodes with their subject. You need to know roughly what you're looking at straight away - do the first three words or something for subjects. This might spread stuff out a bit and make it looks slightly messier, but the whole point of this is that I can see more naturally how conversations are structured - I lose that if I have to hover over everything.


Whilst it's a big change, I'd also suggest having text on the left and the node-tree on the right. Currently you've got small posts, but if you end up with lengthy ones (like this!) you'll lose the one thing that makes Agora stand out (the fact you can see where your entry fits in the tree of stuff) by pushing it all the way down to the bottom underneath the text. Having the text in a scrollable box to the left hand side will help a lot.

Honestly, I love love LOVE the idea, but it's got to be more (or at least equally) efficient than a normal forum for it to be useful. Sorry this has been such a critical first post - I think it's a great and I definitely want to see it come to fruition. I honestly believe it could become the new forum standard if it was made easy enough to use - I'd certainly deploy it across my sites if it did!

These changes are for the expanded view posts, yes? The ones showing the full text of a post, with the graph down at the bottom showing nodes above and below? What about the main forum view? I just changed things so it should show up as the default front page now.

As for your suggestions, I've been thinking of doing the first one. I'll go ahead and bump it up and do it today. The second is interesting, and I'll definitely think about it. The third one I'm skeptical about, but I've heard it before, so I'll definitely consider it. As for moving the text and the node tree to be side by side, I could definitely do that. I'm worried how well it'll work out on smaller displays, though.
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Mesa on February 06, 2017, 06:56:02 pm
This is about as much as I can offer in terms of feedback right now but...
Why not go with something like Markdown instead of BBCode?

I know BBCode is the 'traditional' markup used for forums, but it feels really needlessly verbose for typing manually - this might be just me but I generally dislike using rich text editors, or at least having to fall back onto buttons a lot when I 'm doing a lot of formatting.

Not to mention that BBCode is absolutely heinous on any device that does not have an access to a proper keyboard - writing B12 posts on my phone is the worst thing sometimes.

I will admit that I don't know how difficult it is to implement either Markdown or BBCode and whether or not you are willing to throw one out in favor of the other, but I really do think that despite being, well, a fair bit more powerful than Markdown, most people do not need that much power and they are especially not fond of the added syntactic verbosity.
Especially with how the rest of the interface seems to be designed in the 'new-age' flat/material/responsive-design sorta way, pairing that with BBCode just strikes me as strange.

Just my 2 cents though. I've been extremely extremely casually watching this thread for a while and I like how much it's progressed so far, but I really feel that BBCode is...not outdated, but not really fit for The Modern Age™.
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Retropunch on February 06, 2017, 07:31:58 pm
These changes are for the expanded view posts, yes? The ones showing the full text of a post, with the graph down at the bottom showing nodes above and below? What about the main forum view? I just changed things so it should show up as the default front page now.

As for your suggestions, I've been thinking of doing the first one. I'll go ahead and bump it up and do it today. The second is interesting, and I'll definitely think about it. The third one I'm skeptical about, but I've heard it before, so I'll definitely consider it. As for moving the text and the node tree to be side by side, I could definitely do that. I'm worried how well it'll work out on smaller displays, though.

Glad you can take the criticism on board, and I'm thrilled you're taking on board some of my suggestions! I honestly think it's a fantastic idea.

I am referring to the expanded posts in my suggestions. In terms of the main view, I honestly don't know if it works well; mostly due to a lack of labelling.

I really do understand that you're trying to sort of make it more 'natural', but without seeing labels I just can't tell where to even start. It's like coming onto Bay12 for the first time, and instead of seeing the different sub-board headers (Other Games, Lets Plays etc) you just saw blank spaces and had to hover over them to see what they were - would that be more user efficient or less?
If you're really convinced that some people may prefer it blank, then put it as a toggle option, but I really can't imagine how people could try to navigate through a forum without labels. Again, sorry my criticism is so strong on that, but it's something I feel is a pretty strong blocker to mainstream enjoyment.

On top of the labelling issue (and something that would help it not look so cluttered), I'd really suggest that you fold up the main view when you enter the page, and allow users to click through it to open it up. As in, it'd just show the first and second row - If you clicked on one of the second row nodes, it'd open everything attached to that node (and so on and so on) - a double click could then open the post itself. A button/whatever to show everything would be good though. Most of this is because on the vast majority of forums, there's tons of boards people aren't interested in. More than that though, if this shows every post on a 30,000+ post site, it's just going to be a complete mess.

In terms of the side by side view - I'd suggest keeping it vertical for mobile devices, but would definitely think it's a big improvement as side by side for non-mobile devices.





Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Angle on February 06, 2017, 09:11:21 pm
This is about as much as I can offer in terms of feedback right now but...
Why not go with something like Markdown instead of BBCode?

I know BBCode is the 'traditional' markup used for forums, but it feels really needlessly verbose for typing manually - this might be just me but I generally dislike using rich text editors, or at least having to fall back onto buttons a lot when I 'm doing a lot of formatting.

Not to mention that BBCode is absolutely heinous on any device that does not have an access to a proper keyboard - writing B12 posts on my phone is the worst thing sometimes.

I will admit that I don't know how difficult it is to implement either Markdown or BBCode and whether or not you are willing to throw one out in favor of the other, but I really do think that despite being, well, a fair bit more powerful than Markdown, most people do not need that much power and they are especially not fond of the added syntactic verbosity.
Especially with how the rest of the interface seems to be designed in the 'new-age' flat/material/responsive-design sorta way, pairing that with BBCode just strikes me as strange.

Just my 2 cents though. I've been extremely extremely casually watching this thread for a while and I like how much it's progressed so far, but I really feel that BBCode is...not outdated, but not really fit for The Modern Age™.

I didn't even know markup existed. :/

I'll definitely consider it - I'm hoping to have proper editors, so that people don't need to deal directly with the BBCode so much, but failing that I'll definitely consider using markup instead.

Glad you can take the criticism on board, and I'm thrilled you're taking on board some of my suggestions! I honestly think it's a fantastic idea.

I am referring to the expanded posts in my suggestions. In terms of the main view, I honestly don't know if it works well; mostly due to a lack of labelling.

I really do understand that you're trying to sort of make it more 'natural', but without seeing labels I just can't tell where to even start. It's like coming onto Bay12 for the first time, and instead of seeing the different sub-board headers (Other Games, Lets Plays etc) you just saw blank spaces and had to hover over them to see what they were - would that be more user efficient or less?
If you're really convinced that some people may prefer it blank, then put it as a toggle option, but I really can't imagine how people could try to navigate through a forum without labels. Again, sorry my criticism is so strong on that, but it's something I feel is a pretty strong blocker to mainstream enjoyment.

On top of the labelling issue (and something that would help it not look so cluttered), I'd really suggest that you fold up the main view when you enter the page, and allow users to click through it to open it up. As in, it'd just show the first and second row - If you clicked on one of the second row nodes, it'd open everything attached to that node (and so on and so on) - a double click could then open the post itself. A button/whatever to show everything would be good though. Most of this is because on the vast majority of forums, there's tons of boards people aren't interested in. More than that though, if this shows every post on a 30,000+ post site, it's just going to be a complete mess.

In terms of the side by side view - I'd suggest keeping it vertical for mobile devices, but would definitely think it's a big improvement as side by side for non-mobile devices.

I think you're talking about the overview, not the main forum view. The main forum view is the one with all the individual posts displayed as cards, where you click through to open them up. You can find it here (http://forum-demo-88817.onmodulus.net/).

As for your suggestions on the overview, The labeling thing is something I've heard before, and as it seems to be a frequent suggestion I'll probably start seeing about implementing it. Not sure on the specifics, though. As for opening nodes individually on the overview, that's supposed to be what the main forum view is for. I do have plans to change what all is displayed, though, and allow people to close and remove nodes from the view. Still figuring out the details.

Oh! And just now, I pushed some updates that should make the graph much more readable with lots of nodes. Still working on a few more small changes, most notably allowing it to shuffle nodes around in a layer for improved viewability.

Edit: And now node shuffling is also implemented, and it looks much better. Gonna go and look at implementing these suggestions for the other views next, and maybe fix some old bugs.
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Retropunch on February 07, 2017, 11:33:55 am
I think you're talking about the overview, not the main forum view. The main forum view is the one with all the individual posts displayed as cards, where you click through to open them up. You can find it here (http://forum-demo-88817.onmodulus.net/).

As for your suggestions on the overview, The labeling thing is something I've heard before, and as it seems to be a frequent suggestion I'll probably start seeing about implementing it. Not sure on the specifics, though. As for opening nodes individually on the overview, that's supposed to be what the main forum view is for. I do have plans to change what all is displayed, though, and allow people to close and remove nodes from the view. Still figuring out the details.

Ahh unfortunately the 'main forum view' doesn't really work for me (and therefore I didn't realise that was the main view) - if I click connecting posts, I see the 'load all' and 'show list' flash and then disappear - even if I'm fast enough to click on them they don't do anything. I've tried in a few different browsers.
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Angle on February 07, 2017, 12:53:48 pm
That bug again? Ugh. Alright, I'm gonna try and squash that one today.
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Angle on February 12, 2017, 07:21:49 pm
Well, it took longer than expected, but I fixed up a couple of the bugs with chrome. It should be much more cooperative now. Anyone give it a try and see if it works better for other peoples chromes, and not just mine?
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Retropunch on February 12, 2017, 08:15:52 pm
Well, it took longer than expected, but I fixed up a couple of the bugs with chrome. It should be much more cooperative now. Anyone give it a try and see if it works better for other peoples chromes, and not just mine?

It works now, thanks!! Great work all over.

I've got a bit of feedback though(again, sorry to sound critical, it's awesome work!):
- Firstly, clicking on connected posts/load all resets my view to somewhere in the middle of all the posts - it makes me lose track of where I am unfortunately.
- Secondly, but most importantly, this really, really needs a zoom in/out function!
- I'd recommend that when you close one post, it closes all the posts beneath it in the chain. You could have two close buttons, one that closes everything, and one that keeps the posts under it.
- There's a lot of empty space on each card - real estate is at an absolute premium in this kinda design, so each card should be as tight as possible design wise. I wouldn't both with
- I'd change the 'connecting posts (load all and show list)' and 'more' buttons to just being three buttons you can click on from the card - even if you want to add more options (and hence need a fold out more button) then at least allow the user to open up connecting posts and show a list in one click.


All this being said, I think there's a bit of a bigger problem here; you've pretty much got two completely different forum systems running at the same time. The card based view is good, and the node based view is good, but they seem like two separate thing and I don't think they mesh together well.

I'd honestly suggest sticking with cards or nodes and developing that fully. I much prefer the node based design (with some more headings) as the card based design gets really, really quickly unmanageable - imagine loading up even the amount of posts we have on this thread as cards - let alone a thread with 400+ pages.

You can always go back and implement the other system later as an alternative view (or completely different forum software), but currently it's sorta pulling things in two directions at the same time.

 
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Angle on February 12, 2017, 08:52:40 pm
It works now, thanks!! Great work all over.

I've got a bit of feedback though(again, sorry to sound critical, it's awesome work!):
- Firstly, clicking on connected posts/load all resets my view to somewhere in the middle of all the posts - it makes me lose track of where I am unfortunately.
- Secondly, but most importantly, this really, really needs a zoom in/out function!
- I'd recommend that when you close one post, it closes all the posts beneath it in the chain. You could have two close buttons, one that closes everything, and one that keeps the posts under it.
- There's a lot of empty space on each card - real estate is at an absolute premium in this kinda design, so each card should be as tight as possible design wise. I wouldn't both with
- I'd change the 'connecting posts (load all and show list)' and 'more' buttons to just being three buttons you can click on from the card - even if you want to add more options (and hence need a fold out more button) then at least allow the user to open up connecting posts and show a list in one click.


All this being said, I think there's a bit of a bigger problem here; you've pretty much got two completely different forum systems running at the same time. The card based view is good, and the node based view is good, but they seem like two separate thing and I don't think they mesh together well.

I'd honestly suggest sticking with cards or nodes and developing that fully. I much prefer the node based design (with some more headings) as the card based design gets really, really quickly unmanageable - imagine loading up even the amount of posts we have on this thread as cards - let alone a thread with 400+ pages.

You can always go back and implement the other system later as an alternative view (or completely different forum software), but currently it's sorta pulling things in two directions at the same time.

Again, thank you! Feedback is what I really need right now, criticism or otherwise. Even better if it's nice and polite criticism.
 - Yeah, I'm gonna go ahead and break off that functionality and make it so it doesn't constantly do that.

 - I'm definitely considering this. I actually had an idea (http://forum-demo-88817.onmodulus.net/forum/post/Jb8gQdXC2PXg49qKn) to merge the functionality of the overview and forum view graphs with zooming, though I'm not sure it's a good idea. I could also just implement normal zooming - we had that at one point but removed it cause it didn't work super well. Shouldn't be too hard to re-implement and get working properly. Should it trigger off of mousewheel or have a zoom bar, do you think?

- I don't think it should always do this, but adding a button for it would be easy enough.

- Yeah we're planning to rework the cards at some point. Not sure on the specifics yet though. We may want to add more information? Like word count, date last edited, etc. And of course change up the buttons while we're at it.

Yeah, we've been thinking about that. I was considering adding a gmail style form for writing new replies, and having that work with the node system? I'm not too sure yet though. Regardless, we are going to have some kind of system for skipping though links more quickly no matter what we do - loading each layer a bit at a time is silly. Probably wait until after we have voting and maybe SAA, though, so we have a metric by which to choose what posts to display.

EDIT: I just added a button to close all nodes descending from a node, recursively. It doesn't close the node itself, but that only takes one extra click anyway. Though I did make it so that the buttons only available if all of the nodes children are open, in retrospect I should change that to only require one open. I'll do that later though. Oh, and it'll take a few minutes for the server to catch up.
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Retropunch on February 13, 2017, 05:14:21 am
Again, thank you! Feedback is what I really need right now, criticism or otherwise. Even better if it's nice and polite criticism.
 - Yeah, I'm gonna go ahead and break off that functionality and make it so it doesn't constantly do that.

 - I'm definitely considering this. I actually had an idea (http://forum-demo-88817.onmodulus.net/forum/post/Jb8gQdXC2PXg49qKn) to merge the functionality of the overview and forum view graphs with zooming, though I'm not sure it's a good idea. I could also just implement normal zooming - we had that at one point but removed it cause it didn't work super well. Shouldn't be too hard to re-implement and get working properly. Should it trigger off of mousewheel or have a zoom bar, do you think?

- I don't think it should always do this, but adding a button for it would be easy enough.

- Yeah we're planning to rework the cards at some point. Not sure on the specifics yet though. We may want to add more information? Like word count, date last edited, etc. And of course change up the buttons while we're at it.

Yeah, we've been thinking about that. I was considering adding a gmail style form for writing new replies, and having that work with the node system? I'm not too sure yet though. Regardless, we are going to have some kind of system for skipping though links more quickly no matter what we do - loading each layer a bit at a time is silly. Probably wait until after we have voting and maybe SAA, though, so we have a metric by which to choose what posts to display.

EDIT: I just added a button to close all nodes descending from a node, recursively. It doesn't close the node itself, but that only takes one extra click anyway. Though I did make it so that the buttons only available if all of the nodes children are open, in retrospect I should change that to only require one open. I'll do that later though. Oh, and it'll take a few minutes for the server to catch up.

I'm happy to help - even if I do feel a bit awful coming on and criticising every time I post! I'm truly a big fan though, I've always felt that forums need a bit of a shakeup.

Re Zooming: I'd suggest both mouse wheel and zoom bar - some computers don't have mouse wheels, and laptop trackpads can be awkward to work with.

Re Extra card data: I'd definitely keep it as minimal as possible - any extra information at that stage is just going to be info overload - if they want to get that info then they can look at the post itself.

In terms of a redesign - I'd really try to have everything on one page if possible. Having the node/card diagram on the right with the full text of the clicked post on the left for instance, could work well. Mobile screens would obviously have to have a separate layout, but I believe that forum usage is still largely skewed towards desktops/laptops.
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Angle on February 27, 2017, 09:56:24 pm
Hey sorry about going incommunicado - I was busy moving for a bit. I'm back now though, and gonna work on

I'm happy to help - even if I do feel a bit awful coming on and criticising every time I post! I'm truly a big fan though, I've always felt that forums need a bit of a shakeup.

Don't worry about it! Polite useful criticism is a real treasure. Think of it this way - anything you don't point out politely now, some asshole can be a dick about later. XD

Re Zooming: I'd suggest both mouse wheel and zoom bar - some computers don't have mouse wheels, and laptop trackpads can be awkward to work with.

Mmm, good point. We'll add both of those, then.

Re Extra card data: I'd definitely keep it as minimal as possible - any extra information at that stage is just going to be info overload - if they want to get that info then they can look at the post itself.


Yeah, this sounds best.

In terms of a redesign - I'd really try to have everything on one page if possible. Having the node/card diagram on the right with the full text of the clicked post on the left for instance, could work well. Mobile screens would obviously have to have a separate layout, but I believe that forum usage is still largely skewed towards desktops/laptops.

Hmm, we'll deifnitely consider it. Keeping things on one page would be really nice. I'm not entirely sure we want to make the view quite that crowded, though. We'll try some stuff and see.

For the moment we're working mostly on refactoring, minor presentation changes, and bug fixes. After that we'll see about some more major changes.
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Angle on March 06, 2017, 06:41:00 pm
Alright, we got a fair amount of simple changes finished. Now we're considering some more major changes. Namely, merging the main view and forum views, and allowing people to zoom between them. So you can scroll in and out, and as you do the posts turn from simple dots, to dots with titles, to small cards with titles and basic data, to larger posts with title, content, and data, to fully zoomed in posts that take up pages in their own right. What do people think of this idea? I hope it will make it much easier to work with loaded posts - you don't have to switch between different views all the time, just scroll in and out as needed.
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Angle on April 10, 2017, 07:44:32 pm
Working on the view merge. Have a screen shot. What do people think of the layout? It's not centered, but it does a good job of staying readable, even when displaying 100,000 posts way zoomed out.
Spoiler (click to show/hide)
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Angle on May 03, 2017, 08:06:01 pm
Pushed new version to live demo! Database got wiped cause the company hosting the previous demo disappeared without me noticing. XD

https://agora-2866.nodechef.com/
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Parsely on May 03, 2017, 11:01:29 pm
Oh hey, this is still alive! Glad to see it!
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Angle on May 03, 2017, 11:50:34 pm
Yeah, things were a little slow while we did a small rewrite but they should pick up again. XD
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Angle on May 10, 2017, 05:16:50 pm
And we pushed a new update! Now with edit and report functionality, and without the massive layout bug that would put posts on top of each other.
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Angle on June 03, 2017, 03:42:16 pm
We've been adding lots of little things - better support for mobile browsers, bbcode, proper gravatar support, etc, but we're thinking we need a proper road map. Would anyone be interested in helping us come up with one?
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Angle on June 03, 2017, 06:23:54 pm
For anyone who's interested, we're holding this conversation on the Agora test server right now. It's the long trailing conversation, you can't miss it.

https://agora-2866.nodechef.com/
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Angle on June 14, 2017, 01:10:47 pm
I just pushed a change to how posts are displayed at different zoom levels, somebody take a look and tell me what you think?

https://agora-2866.nodechef.com/
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Antsan on June 14, 2017, 01:24:10 pm
I'm looking at this on a 1920x1080 monitor and for that long thread it seems like at the zoom levels where the, uhm, headers are still missing, there's a lot of unused space to the sides. Maybe stretch the visible levels out so that they stretch over the whole screen horizontally? I think that would make it look less cramped.
I'm not sure how exactly that could work, though. If the currently visible nodes are spread evenly across screen width, how do you handle the user scrolling sideways?

Also when zoomed in very far the levels stay aligned, which means that a discussion with short posts takes up the same vertical space as a discussion with very long posts. This does seem a little more important to me than the issue above.

Maybe arrange the topics in columns at a certain zoom level and instead of a continuous scroll, let users do whole-column-scrolling. The question is what columns to consider when scrolling, because not all columns are "filled" equally far.

When zooming out so far that only dots are visible the dots that were expanded before seem to be loading something. That seems like a bug to me – you're displaying the same dot as everywhere else, what are you loading?


Overall this does look a lot better than when I last looked at it, though.
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Angle on June 14, 2017, 06:51:23 pm
I'm looking at this on a 1920x1080 monitor and for that long thread it seems like at the zoom levels where the, uhm, headers are still missing, there's a lot of unused space to the sides. Maybe stretch the visible levels out so that they stretch over the whole screen horizontally? I think that would make it look less cramped.
I'm not sure how exactly that could work, though. If the currently visible nodes are spread evenly across screen width, how do you handle the user scrolling sideways?

Yeah, I'm not sure how to deal with that either. Especially given that a thred might suddenly baloon out, and theres no way to predict how many nodes you're gonna have next to each other other than counting them, so you could end up with really wide flat nodes.

Also when zoomed in very far the levels stay aligned, which means that a discussion with short posts takes up the same vertical space as a discussion with very long posts. This does seem a little more important to me than the issue above.

I figured the answer to that would just be to let people zoom in more or less as they pleased? So in a discussion with larger nodes, people will naturally zoom in farther to see them? How does that work out for you in practice?

Maybe arrange the topics in columns at a certain zoom level and instead of a continuous scroll, let users do whole-column-scrolling. The question is what columns to consider when scrolling, because not all columns are "filled" equally far.

I'm not sure I know what you mean. Like, have solid columns show up that users can scroll normally? How does that work with splitting conversations?

When zooming out so far that only dots are visible the dots that were expanded before seem to be loading something. That seems like a bug to me – you're displaying the same dot as everywhere else, what are you loading?

Did they disappear after a second? The loading spinners often hang around for a second or so for me, but they disappear pretty quick after that. :/

Overall this does look a lot better than when I last looked at it, though.

Thank you! :D
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Antsan on June 15, 2017, 09:41:49 am
Quote
I figured the answer to that would just be to let people zoom in more or less as they pleased? So in a discussion with larger nodes, people will naturally zoom in farther to see them? How does that work out for you in practice?
The problem is not the discussions with larger nodes but the ones with smaller nodes. Those just are spaced out very much vertically. Actually, they are spaced with constant height and I guess that's my problem. When zooming in so far that I can comfortably read the text in the smaller nodes, I can see three at once on my monitor with 1080 pixels of height. I'd like to see more. Aligning vertically related nodes top-to-bottom would seem more sensible to me.

Quote
I'm not sure I know what you mean. Like, have solid columns show up that users can scroll normally? How does that work with splitting conversations?
Conversations don't rejoin in the current view, as far as I can see. Arrange nodes only in columns instead of a grid. Columns can contain a splitting conversation by containing n columns where the conversation splits into n parallel conversations.
"Scrolling by column" would then mean that there are buttons at the left on and the right. Clicking on one of those would move the view by one column into the appropriate direction. So you'd basically scroll between parallel conversations.

Vertical scrolling would work as it does currently.

Quote
Did they disappear after a second? The loading spinners often hang around for a second or so for me, but they disappear pretty quick after that. :/
Yes, they disappear. I'm just confused that they show up at all when zooming out to a level where the graphic to put into their place is a constant.
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Angle on June 15, 2017, 01:08:04 pm
The problem is not the discussions with larger nodes but the ones with smaller nodes. Those just are spaced out very much vertically. Actually, they are spaced with constant height and I guess that's my problem. When zooming in so far that I can comfortably read the text in the smaller nodes, I can see three at once on my monitor with 1080 pixels of height. I'd like to see more. Aligning vertically related nodes top-to-bottom would seem more sensible to me.

Hmm, yeah we can see about dynamically spacing nodes. At a guess though, this is gonna be a real pain to implement. How important do you think it is? :/

Conversations don't rejoin in the current view, as far as I can see.

Well, not yet. They probably will though, once we reimplement that feature.

Arrange nodes only in columns instead of a grid. Columns can contain a splitting conversation by containing n columns where the conversation splits into n parallel conversations.
"Scrolling by column" would then mean that there are buttons at the left on and the right. Clicking on one of those would move the view by one column into the appropriate direction. So you'd basically scroll between parallel conversations.

Vertical scrolling would work as it does currently.

So you mean columns within columns? That sounds awfully complicated. How does it work when you have constant splitting? Do posts that would currently be above each other but not directly connected appear in the same column? Or do you mean more like reddit? :/

Yes, they disappear. I'm just confused that they show up at all when zooming out to a level where the graphic to put into their place is a constant.

That's just the code being slow to catch up. Not sure how much I can do about that but I'll take a look at it at some point.
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Antsan on June 15, 2017, 02:34:18 pm
Quote
Hmm, yeah we can see about dynamically spacing nodes. At a guess though, this is gonna be a real pain to implement. How important do you think it is? :/
It does slow down reading a bit since this means more scrolling and scrolling means loading nodes. Testing it out it's pretty minor, though.

Quote
Well, not yet. They probably will [rejoin] though, once we reimplement that feature.
Hm, okay, that does change things a bit.

Quote
So you mean columns within columns? That sounds awfully complicated. How does it work when you have constant splitting? Do posts that would currently be above each other but not directly connected appear in the same column? Or do you mean more like reddit? :/
Yeah, that was the idea, definitely not like reddit. Those two questions to show some serious problems with my imagined approach, though, and so do rejoining conversations.
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Angle on June 15, 2017, 04:42:21 pm
It does slow down reading a bit since this means more scrolling and scrolling means loading nodes. Testing it out it's pretty minor, though.

Hm, okay, that does change things a bit.

Yeah, that was the idea, definitely not like reddit. Those two questions to show some serious problems with my imagined approach, though, and so do rejoining conversations.

Well, as it happens, I'm currently thinking that I'll be working on changing the layout eventually. Not sure how exactly, but I'll figure something out. probably be more or less like it is now, but with a different algorithm for arranging nodes. I think I'm gonna implement federation (Different servers talking to each other so you can view posts on any of them from any other.) via ostatus first though? And probably proper user profiles and alerts and all that. Though I might get someone else to work with layouts...
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Angle on June 24, 2017, 08:53:22 pm
Just pushed that change I was talking about, making some posts display little previews when you're zoomed out. What do y'all think? :P
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Angle on July 15, 2017, 12:01:14 am
Added email verification, some more navigation buttons on the side, and better adjustment of the layout when new posts are added. Now I'm looking at updating the users profile pages, adding functionality for tracking which posts have been seen, and maybe also a proper system for alerts?
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Angle on July 29, 2017, 07:38:27 pm
Hey all, I went and added a feature to show new posts. It works off of cookies right now, which is kinda buggy. I might go and make it use the server instead? Though I'm kinda worried that would eat up large chunks of my database. I'm also not entirely sold on the current visual indicators for seen vs unseen posts. Maybe take a look and tell me what you think? :/
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Angle on March 26, 2018, 11:25:08 pm
Alright, still working on this. I updated the post preview functionality, so it shouldn't overlap anymore. Tell me what you think? :/

https://agora-2866.nodechef.com/forum
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: dorf on March 27, 2018, 04:56:56 am
Nice to see this is still being worked on.
The preview feature is functional and cool-looking.
The zoom feature and moving around the graph is sluggish for me on almost-latest version of Chrome on Windows.
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: blueturtle1134 on March 27, 2018, 06:49:05 pm
Noticed this and just want to throw out some suggestions:


A non-linear forum is an interesting concept. It'd fix the problem of unrelated conversations in the same thread - if you don't have anything to add to the person above you you're just replying to OP you can just reply to OP.
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Angle on March 27, 2018, 09:24:16 pm
Noticed this and just want to throw out some suggestions:

  • Different types of connections, denoting different relations between nodes. For example, reply, subordination, approval, contradiction, etc... Also ability to add connections post-node-creation, so someone can go "oh, these are related!" *bamf*
  • Different types of nodes denoting different functions. Some should be headers, for example, that other stuff goes under. Or +1 posts can get a different color.

A non-linear forum is an interesting concept. It'd fix the problem of unrelated conversations in the same thread - if you don't have anything to add to the person above you you're just replying to OP you can just reply to OP.

Aye, those are all features I'm planning to work on. I'm also thinking of a connection between posts that basically says "these posts say the same thing", which would cause replies to one to show up as replies to both? I'm not sure though.

Nice to see this is still being worked on.
The preview feature is functional and cool-looking.
The zoom feature and moving around the graph is sluggish for me on almost-latest version of Chrome on Windows.

As for the lag, I'm also still trying to optimize a bit more, too, so hopefully it'll work better. I'm curious as to what sort of computer it was running on? Like, an old laptop, or a new gaming computer...?
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: dorf on April 05, 2018, 06:21:00 am
Something in between. Win 8.1, i7 3rd gen CPU, 8 GB RAM, Radeon x600/x550 series.

I've tried it on Chrome and FF. Both are similarly sluggish, FF might be a bit less sluggish.
The size of the window also plays a factor.
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Angle on April 05, 2018, 02:25:02 pm
Huh, it's still sluggish? I did a bunch of optimizing, it hardly lags at all for me now, especially on chromium. :/
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: dorf on April 09, 2018, 01:45:41 am
Still sluggish. Maybe it's network lag? I'm from central Europe.
The site loads in ~5 secs, the times for each request range from 100 ms to 400 ms.
Not sure how to measure websocket's lag, but it seems quite fast.

Also, on Chrome the dots are only partly connected: https://imgur.com/a/5JQ3A
On FF they are fully connected.
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Angle on April 09, 2018, 05:44:28 pm
Huh, weird. I've had other people get the same problem, but haven't managed to reproduce it myself yet. :
Title: Re: Agora, A better forum (Open Source Project): Now with Github and test site.
Post by: Angle on June 09, 2018, 01:34:40 pm
Hmm. So I'm working on implementing federation, which will allow Agora sites to connect to each other, and to Mastodon, Pleroma, and other such sites. I hope to have the feature implemented within a week or two. While I'm at it, I'm thinking of rebranding, maybe? The name Agora seems kinda plain, and it's used by an awful lot of different projects. I was thinking Canopy might work better? Or some other foresty sounding name? I'm not sure on the details. XD