|
Mindcontroll
|
View previous topic :: View next topic |
Author |
Message |
TuMTuM
Joined: 17 Feb 2002
Posts: 425
|
Posted: 10-31-2002 02:49 AM Post subject: |
|
|
I like Plastic's idea about having a certain amount of mods per section, and have some sort of race! But, I think that would also require you to save points per section in the database, cause a user could enjoy spamming a forum, but he makes great posts in the other forums, so he has reached a level, higher then all the other moderators, and he would become a moderator in the area he spams in.
Also, dont use the points to compete with each other, use your rating. I am thinking we should pick some names (hint), to make all this sound less complicated :).
Why would forum unlocking be a wrong thing? If you have a big forum (>1000 active users), then you probably want to go to forums where the n00bs cant come. The n00bs however, want to know what the hell is going on in there, so they will do their best to get there. I mean, the normal stuff that could be discussed should be there, but the somewhat more fun forums, should be hidden. I know for a fact, that this will attract users into posting, and because they need the points, they cant just spam messages, so they'll try to post interesting stuff.
I think the irc interaction would be a module / hack you can add to the package, but it isnt really needed. Now lets talk about the points :).
Ok, here are some names to use:
Code:
postcount = posts
points you have gotten because someone rates your post = points
the rating you have after the formula ran trough it = karma
if you give points to someone else posts = you rate his posts
Quote:
Ok, the basic idea is that your level is what decides how strong your ratings count. Also, the number of posts you make, should not be the only factor that decides what level you have. It should be about the quality, not the quantity. However, quantity will be used in the calculation of your karma.
Now, lets say we have 100 levels you can obtain, and level 1 means you can give a maximum of 0.1 points per post, or reduct 0.1 points per post. If you mod 10 posts, you will get 1 point, and you will get 2 points for posting something. If you start a thread, the points you get from that, is the average number of points that the users that post in your thread get. This means, if you start a flamewar, you will probably get points reducted, even if your starting post was great.
Each level you advance, your ratings will become more powerfull. However, the user that is rating stuff, should not see this. That is why I proposed a sliding bar without numbers., this would be for ALL posts.
Since rating posts gives you points, your karma will increase faster, because your dont make new posts. So, this does not only makes people post interesting stuff, it will also make them rate stuff, because it makes them level more quickly.
Each 10 levels, you should be rewarded. This could be by giving you access to more forums, or by giving you more theme's, etc.
There can be multiple lite-mods alongside the normal moderators/admins. These are normal users that have the highest rating in the section they post and rate the most in. This also brings in a form of competition, so I suggest you should change lite-mods once a week. The lite-mods can do stuff like open/close a thread, move it, change the topic title, but he should never be able to edit others posts. Why? Well, say he doesnt want B to become a lite-mod next week, so he would just edit all his posts to make him look stupid, and he would not get any points, or even get a negative score.
There are 100 levels, each 10 levels you go up, you will be rewarded with something. If you manage it to level 25, you'll get a blue cross (+) next to your name, to indicate you are a regular. If you manage to get to level 50, this cross will turn green. Level 75 means silver, and level 100 means gold. Moderators and Admins have colored nicknames. Lite-mods get a asterisk instead of a cross, but the colour will stay the same.
Ratings should be simple. Even a complete idiot should be able to understand them, thats why I sad a bar. I now know, it doesnt need to be a sliding bar, it could also just be a ascii bar with colors ( [|||||||||||] ), but the biggest thing should be that there should not be any numbers on there. People mod with their feeling towards a post, so if they like it just a bit, they would not click all the way to the right.
Also, the ratings should be watchable per post, so you can see for instance, 5 people voted 80%, and one voted 20%. Everything above 50% gives you points, but everything below takes them off, so if you see a thing like this, and the auto-*CENSORED**CENSORED**CENSORED**CENSORED* didnt notice it, you should be able to tell this to a moderator / admin, and he could fix it for you.
The forumula that calculates your karma, should work with: your postcount, your points, and your activity (say, 5 posts per month, or 5 posts per day :) ). I havent really got one yet, but the whole levelling and karma would use this formula everytime, so its important we know it :).
Posting this now, want comments :).
[edit:]
Never ever ever ever ever try using jirc :). It doesnt work when you are behind a proxy, so it loses its point. What I am suggesting, is the use of mysql polling, and checking for a new message every 2 seconds. if you have the output done by javascript, a typical output it would need to download every 2 seconds would be:
Code:
[nick] Hi
[nick] I was wondering if you could ...
and I dont think thats a bandwidth hog :). |
|
Back to top |
|
M0nKeY
Joined: 09 Feb 2002
Posts: 1235
|
Posted: 10-31-2002 03:03 AM Post subject: |
|
|
Those databse calls WILL slow the performance of the site down. I'm really against a SQL based chat room. That goes double for somthing thats axx the database every 2 seconds. Ack! How can you not see thats a bad idea. |
|
Back to top |
|
TuMTuM
Joined: 17 Feb 2002
Posts: 425
|
Posted: 10-31-2002 03:23 AM Post subject: |
|
|
Databases are made for that. Not many people will always be in the chatroom, and refreshing a page takes at least 3 times as many queries. Polling is a simple process, where you have your id, the recipitients ip and the message. Then when the recipitient gets the message, it is deleted from the database. It takes 2 queries to do this instead of the 5 (?) it takes to refresh a thread.
You can compare this to sending PM's, and refreshing the pm page every 2 seconds, wich could be the alternative. |
|
Back to top |
|
Pezko
Joined: 09 Feb 2002
Posts: 186
|
Posted: 10-31-2002 04:06 AM Post subject: |
|
|
Don't have time for a long reply now, but basically an application that is going to be released to the public is/should be more flexible, with things like modules, install scripts etc... If you are just doing it for one thing, at least I usually hard code everything... |
|
Back to top |
|
TuMTuM
Joined: 17 Feb 2002
Posts: 425
|
Posted: 10-31-2002 04:18 AM Post subject: |
|
|
Rendering engine
I completely agree with the fact that we should use xml outputting. The rendering, should (IMHO) be done by javascript on the client. I dont know how many browsers DONT support javascript, but I do know many do.
I looked at sourceforge, and I found one project that might does this. XML for [script]. It seems to be pretty big, but since its open source, we could take a look at the source and maybe use some parts of it for our own parsing.
I dont want to be able to parse XML when Im online only, cause a lot of my development is offline.
Anyway, I am willing to help out with the project, alltough I am helping cC as well, and that goes before this. You can add my e-mail to the document (you have it). What we should discuss tough is how you would implent everything, so I suggest someone to make a raw database structure.
Also, should we make some extra ubb tags? For instance, I tought of the [spoiler] tag, wich makes a black table around a spoiler, and you will need to select the text to see it. I also want to use a [code] tag with linenumbers, and an editor like overview. Take a look at phpSourceView, thats hanging around in this section :). To prevent spamming, you should be able to use a [nospam] tag, that turns the info within into a gd created image with the text within. Usefull for giving someone your e-mail adress. I can think of more tags, but its not the priority here :). |
|
Back to top |
|
M0nKeY
Joined: 09 Feb 2002
Posts: 1235
|
Posted: 10-31-2002 04:18 AM Post subject: |
|
|
08 users chatting = 240 DB calls a min
20 users chatting = 600 DB calls a min
30 users chatting = 900 DB calls a min
Then add in all the writing to the database.
Compared to the FREE bw of just using some kind of IRC client.
"Never ever ever ever ever try using jirc . It doesnt work when you are behind a proxy, so it loses its point." -TumTum
90% of poeple don't use proxies... and one wouldn't want people using proxies anyway, for IP identification/banning purposes.
-----EDIT-----
P.S. TumTUm I had to go into the databse to fix your post.... Lesson: when HTML is allowed dont put the word "SCRIPT" between brackets unless you plan on running a script. :p |
|
Back to top |
|
TuMTuM
Joined: 17 Feb 2002
Posts: 425
|
Posted: 10-31-2002 04:40 AM Post subject: |
|
|
But, the whole point of it is, that if you are behind a proxy, you cant use irc, and you cant use msn, and I AM BEHIND A PROXY :(. I dont think you will ever have more then 8 people chatting at the same time, and you could build it so it changes the number of queries per minute to the number of people chatting. And did I say databases are ment to be queried? A big site with more then 1000 pageviews per minute, doesnt have more database servers. (No really, it doesnt!). Still, they have to run at least 6 queries for the frontpage, meaning 6000 queries a minute. And yes, it never has problems. (I am talking about tweakers.net again) |
|
Back to top |
|
Pezko
Joined: 09 Feb 2002
Posts: 186
|
Posted: 10-31-2002 01:25 PM Post subject: |
|
|
Ok, just for fun I did a little script that run X mysql queries and tells me how long it takes...
Code:
# ./mysqltest.php 10000
Ran 10000 queries in 8.831804 seconds
# ./mysqltest.php 100000
Ran 100000 queries in 84.630464 seconds
This is on a P1 233 MHz with 32 MB ram. On a real server I suppose it would be faster...
[edit]
On my real comp:
Code:
# ./mysqltest.php 10000
Ran 10000 queries in 3.138671 seconds
# ./mysqltest.php 100000
Ran 100000 queries in 33.015088 seconds
|
|
Back to top |
|
js995
Joined: 10 Feb 2002
Posts: 226
|
Posted: 10-31-2002 01:41 PM Post subject: |
|
|
site serves 50 million pages per month
site runs on
5 load balanced Web servers dedicated to pages
3 load balanced Web servers dedicated to images
1 SQL server
1 NFS Server
All the boxes are VA Linux Systems FullOns running Debian (except for the SQL box). Each box (except for the SQL box) has LVD SCSI with 10,000 RPM drives. And they all have 2 Intel EtherExpress 100 LAN adapters
note the one sql server ..
on the discussion side, i do agree with LSD, that using a database for what is essentially packet based, is not exactly a good idea (although it would work). Looking into PHP/Java/Perl socket implementations would probably be far more efficient. |
|
Back to top |
|
Pezko
Joined: 09 Feb 2002
Posts: 186
|
Posted: 10-31-2002 02:40 PM Post subject: |
|
|
I agree that it would be better to do something which uses irc, either php or java based, even tho I don't think performance would be a big problem if using a database based thing.
I don't think a database based "chat" would be good, since everywhere I've seen them used they are either abused or empty...
I am not sure java based thing is a good idea either, since most ppl who uses that are n00bs which would only be a pain in the ass... (Some ppl might remember this from fg4a...) If you really like to use irc, you usually takes the time to download and install mirc. |
|
Back to top |
|
M0nKeY
Joined: 09 Feb 2002
Posts: 1235
|
Posted: 10-31-2002 09:12 PM Post subject: |
|
|
Is anyone actually writing code yet? :drool: |
|
Back to top |
|
TuMTuM
Joined: 17 Feb 2002
Posts: 425
|
Posted: 11-01-2002 02:44 AM Post subject: |
|
|
Bleh, how can someone that is behind a proxy (work/school) start a private message conversation, when you are using sockets? I doubt its possible. Sure, you can use httport, but I dont want to risk losing my job, or getting kicked out of school, because I run programs that are not allowed.
Im sure you can make an instant message server that works fully on files, but I doubt that would be very secure, thats why I suggested the database.
But... do not use some kind of weird client to let people connect to irc. If people would use that, then they would probably just connect to ask some simple questions and leave again. Noone is gonna idle 24h/7d in a java based client.
It also defeats it purpose, as it would be an instant message script for the board, not for irc.
If you can run 10000 queries in 8.4 secs on a 233 mhz machine, then you can run about 1100 queries per second on there. I dont think anyone would get that kind of result :).
And plastic, lots of people use proxy's to be secure, and you want to forbid them to do that, because you cant ban them? If someone becomes banned, then he will find other ways of getting here.
So, in short, its not a chat applet, its just for sending quick messages, ala msn. And the database queries are not a problem, so what is the problem?
Oh, and monkey, I doubt anyone has written any code yest. Maybe some test applets, but I dont think its wise to start writing code when your still discussing what should be in there :). |
|
Back to top |
|
M0nKeY
Joined: 09 Feb 2002
Posts: 1235
|
Posted: 11-01-2002 04:24 AM Post subject: |
|
|
"lots of people use proxy's to be secure"
False, (i'd say less than 5-6% use them for regular web browsing)
"in short"
NO SQL chat.... damnit! :)
http://66.78.32.3/~legal-ch/chatroom/
And you dont have to figure out everythinng that you want in the script before you start writing code. I dont see anyone putting forth anything new that couldn't be added later on.... all the crap being discussed at this point is irrelivent when it comes to the main bulk of the code... THE USER SYSTEM.
We need to settle on what information we want the users to enter, then write that code.... The system must be built around the user information. This discussion shouldnt stop somone from starting to work on a user system.
What tables will be needed?
USERNAME
LOCATION
BIRTHDATE
SEX
BIO
POINTS
LEVELS (Or will that be calculated on the fly)
There comes a point when you need to stop writing paragraph after paragraph and start actually coding somthing. Maybe somone is, I dont know. IT SUCKS TO NOT BE ABLE TO DO IT YOURSELF! FUCK. Where should I go to learn PHP?
OK MY POINT IS CODE THE USER SYSTEM FIRST!!!!! (am i wrong?)
And did anyone settle on Hard Coding vs. Template system.
I vote for a teplate sytem. But I cant code one becasue I only know BASIC and Clipper. :finger:
YEA, stress. Huge History test monday. :( |
|
Back to top |
|
TuMTuM
Joined: 17 Feb 2002
Posts: 425
|
Posted: 11-01-2002 05:27 AM Post subject: |
|
|
Uhm, plastic its not a chat system, it an instant message system. and phpMyChat uses mysql I beleive. You should read my post again, cause I also said that a lot of proxy's are used at work, or at school. There is no way I can use sockets here, and it just seems pointless to integrate a socket based instant message system, cause people would just use msn, aol or irc.
And building a user system at this point is pointless. Before you start making anything, you have to know what you want. For instance, when you start developing the points system, you might want to add a field to the users table, but since someone already coded something to integrate with that, you cant.
Shit man, every project starts with discussing the subject, discussing the features, planning everything, and then start coding something. I mean, I wouldnt have a clue where to start. I can make a database in a few hours, but whats the point.
Plastic, you really should start to try learning how to program, even a webpage needs planning, you cant just start out building something and then decide that you want the menubar at the top, not on one of the sides.
Bah, if Im gonna be bossed around by someone who doesnt know anything about programming, or developing anything at all, then I dont even feel like starting to do some work. At least with R*SP**ER, we discussed the stuff we wanted before we started coding it, and it has helped me a lot while developing the main application. Ofcourse, only a limited amount of people know what im talking about.
And what is your problem with sql driven chat? Do you pay per query or something? Whats the big problem with it? And its not even chat, its instant messaging. Like, I see js995 is browsing the forum, so I start the instant message popup, send him a message, wait a few seconds, and when js995 changes to the next page, he gets a javascript popup that someone wants to initiate an instant message conversation, and they say a few words and forget it. Its almost like the regular PM'ing, only it refreshes every second.
Oh, and the main focus of the code should not be at the user database at all, it should be at the posting of new messages, news or updating your profile, wich I think could all be done in one table.
Calculating levels on the fly... thats a very bad idea. Its better to just have a script look if you have obtained the next level everytime you post / rate something.
Shit man, why does everyone seems to think that stuff like this is easy to code... I mean, there are so many aspects that need to be looked at, and coding in a team is so much harder then coding alone.
Bleh, I dont even feel like writing anymore. |
|
Back to top |
|
Pezko
Joined: 09 Feb 2002
Posts: 186
|
Posted: 11-01-2002 07:35 AM Post subject: |
|
|
Quote: Oh, and the main focus of the code should not be at the user database at all, it should be at the posting of new messages, news or updating your profile, wich I think could all be done in one table.
Que? One table? que? Was? Nani? And so on...
Quote: Shit man, why does everyone seems to think that stuff like this is easy to code... I mean, there are so many aspects that need to be looked at, and coding in a team is so much harder then coding alone.
I know how hard it is to do that, doing that with my game... Doing it with more than two ppl must be very annoying.
There is ways of doing it tho, even without CVS or similar.
When/if we decide to start working I'll post more on this :)
Quote: Bleh, how can someone that is behind a proxy (work/school) start a private message conversation, when you are using sockets? I doubt its possible.
Depends on if the sockets are client-side (java, flash(?)) or server-side (php)... If it's PHP sockets it reads from sockets on port 6667 (for example) and sends it through http, no? |
|
Back to top |
|
|
|