Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Poll

Does The test server work for you? Are you willing to sped time helping me test it?

It works for me.
- 6 (31.6%)
It does not work for me.
- 1 (5.3%)
I'd be willing to help test it.
- 6 (31.6%)
I'm not interested in testing it.
- 1 (5.3%)
I might be willing to help test it.
- 5 (26.3%)

Total Members Voted: 14


Pages: 1 ... 7 8 [9] 10 11 ... 42

Author Topic: Agora, A better forum (Open Source Project): Now with Github and test site.  (Read 80315 times)

Angle

  • Bay Watcher
  • 39 Indigo Spear Questions the Poor
    • View Profile
    • Agora Forum Demo!
Re: Agora, A better forum (Open Source Project)
« Reply #120 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.
Logged

Agora: open-source platform to facilitate complicated discussions between large numbers of people. Now with test site!

The Temple of the Elements: Quirky Dungeon Crawler

Anvilfolk

  • Bay Watcher
  • Love! <3
    • View Profile
    • Portuguese blacksmithing forum!
Re: Agora, A better forum (Open Source Project)
« Reply #121 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 :)

Xgamer4

  • Bay Watcher
    • View Profile
Re: Agora, A better forum (Open Source Project): Now with Github
« Reply #122 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?
Logged
insert something mind-blowing/witty here*

Angle

  • Bay Watcher
  • 39 Indigo Spear Questions the Poor
    • View Profile
    • Agora Forum Demo!
Re: Agora, A better forum (Open Source Project): Now with Github
« Reply #123 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.
Logged

Agora: open-source platform to facilitate complicated discussions between large numbers of people. Now with test site!

The Temple of the Elements: Quirky Dungeon Crawler

Anvilfolk

  • Bay Watcher
  • Love! <3
    • View Profile
    • Portuguese blacksmithing forum!
Re: Agora, A better forum (Open Source Project): Now with Github
« Reply #124 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.

Anvilfolk

  • Bay Watcher
  • Love! <3
    • View Profile
    • Portuguese blacksmithing forum!
Re: Agora, A better forum (Open Source Project): Now with Github
« Reply #125 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! :)

Singularity125

  • Bay Watcher
  • [GAMING INTENSIFIES]
    • View Profile
Re: Agora, A better forum (Open Source Project): Now with Github
« Reply #126 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.
Logged

Anvilfolk

  • Bay Watcher
  • Love! <3
    • View Profile
    • Portuguese blacksmithing forum!
Re: Agora, A better forum (Open Source Project): Now with Github
« Reply #127 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! :)

Eagleon

  • Bay Watcher
    • View Profile
    • Soundcloud
Re: Agora, A better forum (Open Source Project): Now with Github
« Reply #128 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 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.
« Last Edit: November 02, 2013, 12:32:37 pm by Eagleon »
Logged
Agora: open-source, next-gen online discussions with formal outcomes!
Music, Ballpoint
Support 100% Emigration, Everyone Walking Around Confused Forever 2044

Anvilfolk

  • Bay Watcher
  • Love! <3
    • View Profile
    • Portuguese blacksmithing forum!
Re: Agora, A better forum (Open Source Project): Now with Github
« Reply #129 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):
  • User requests thread
  • AgoraLib contacts server, asks for thread
  • Server receives request, queries database for all arguments/attacks in that thread
  • Server converts database response into AgoraGraph, using server-side library (client never interfaces with DBs)
  • Server-side AgoraLib serialises AgoraLib into BSON, and sends it over network
  • Client-side AgoraLib deserialises BSON from network into AgoraGraph
  • The user's/application's JAgoraNode subclasses parse the the Content (BSON) of nodes into whatever.

Proposal #2 (BSONable branch):
  • User requests thread
  • AgoraLib contacts server, asks for thread
  • Server receives request, queries database for all arguments/attacks in that thread
  • Server converts database response into AgoraGraph, using server-side library (client never interfaces with DBs)
  • Server-side AgoraGraph serialises itself into BSON
  • Server-side AgoraLib sends BSON over network
  • Client-side AgoraLib reads BSON from the network
  • User/application-side AgoraGraph constructs itself from BSON


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?

Eagleon

  • Bay Watcher
    • View Profile
    • Soundcloud
Re: Agora, A better forum (Open Source Project): Now with Github
« Reply #130 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.
Logged
Agora: open-source, next-gen online discussions with formal outcomes!
Music, Ballpoint
Support 100% Emigration, Everyone Walking Around Confused Forever 2044

Anvilfolk

  • Bay Watcher
  • Love! <3
    • View Profile
    • Portuguese blacksmithing forum!
Re: Agora, A better forum (Open Source Project): Now with Github
« Reply #131 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:
  • Send malware_byte_code through network, and decoding that into a BSON Object fails. SAFE!
  • Send {"executable"=malware_byte_code}, and it's parsed into a BSON object, but the evil binary code is stored as a byte[], so it's harmless.

We should be safe, hopefully :)

Eagleon

  • Bay Watcher
    • View Profile
    • Soundcloud
Re: Agora, A better forum (Open Source Project): Now with Github
« Reply #132 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.
Logged
Agora: open-source, next-gen online discussions with formal outcomes!
Music, Ballpoint
Support 100% Emigration, Everyone Walking Around Confused Forever 2044

LordSlowpoke

  • Bay Watcher
    • View Profile
Re: Agora, A better forum (Open Source Project): Now with Github
« Reply #133 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~
Logged

Anvilfolk

  • Bay Watcher
  • Love! <3
    • View Profile
    • Portuguese blacksmithing forum!
Re: Agora, A better forum (Open Source Project): Now with Github
« Reply #134 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! :)
Pages: 1 ... 7 8 [9] 10 11 ... 42