Username:
B
I
U
S
"
url
img
#
code
sup
sub
font
size
color
smiley
embarassed
thumbsup
happy
Huh?
Angry
Roll Eyes
Undecided
Lips Sealed
Kiss
Cry
Grin
Wink
Tongue
Shocked
Cheesy
Smiley
Sad
page  <- 1234567891011121314151617181920 -> <- 1 .. 3 .. 20 ->
--
--
List results:
Search options:
Use \ before commas in usernames
Edit history:
Rakuen: 2010-12-23 01:40:03 am
Rakuen: 2010-12-23 01:33:45 am
Rakuen: 2010-12-23 01:31:52 am
Weegee Time
Yeah, that's basically it.  Someone who donates between a specific time period gets the prize.  I did remember another filtering option that would be useful/neccessary though: donations over a certain dollar amount.  For example, I think a lot of the artwork last year required $5 or greater in the time period.

Edit: Also, apologies for getting bent out of shape in your thread, SMK.
My feelings on The Demon Rush
We just randomly picked anyone who donated 5+ dollars for prizes, and we're going to stick with that again this year. We did have some time-sensitive prizes, so that time filtering will be nice.
Weegee Time
TSG's and SDA's prize giving techniques must be bleeding together for me. @_@

Another suggestion, shouldn't the Bid Options table be sorted by the current bid amount, rather than alphabetical order?  It'd make it easy to instantly see who's in the lead.
Quote from mikwuyma:
We just randomly picked anyone who donated 5+ dollars for prizes, and we're going to stick with that again this year. We did have some time-sensitive prizes, so that time filtering will be nice.

I changed the layout of the filters on the prize tab a little to include these things. I'm still not quite happy with the look and feel, but at least the functionality is there and we can make it pretty later.

Quote from Rakuen:
TSG's and SDA's prize giving techniques must be bleeding together for me. @_@

Another suggestion, shouldn't the Bid Options table be sorted by the current bid amount, rather than alphabetical order?  It'd make it easy to instantly see who's in the lead.

Good call, fixed.

I'll probably be busy for the next two days, happy holidays.
Re search: how about just using SQL's implementation? It worked pretty well when I tested it.
Quote from Mystery:
Re search: how about just using SQL's implementation? It worked pretty well when I tested it.


Do you mean just using 'LIKE' operators, or is there some more advanced string searching in SQL? (I'm not particularly familiar with the fancier aspects of most database systems).
Yeah, the LIKE operator.
Example SELECT * FROM Table WHERE Something LIKE 'foo%'
Will match foo* in field Something.
_ is the same as ?.
Googling it should be quick and easy. I didn't know before either.
Edit history:
arkarian: 2010-12-28 03:59:16 pm
arkarian: 2010-12-28 03:58:08 pm
gamelogs.org
rather than using like i recommend boolean searching using match/against. can just look that up but an example is:

Code:
select * from table where match(fieldname) against('query' in boolean mode)

'query' might look something like +urmom +sucks cocks which means "match fields containing both 'urmom' and 'sucks', with 'cocks' optional".
i just append a + to every word since normally you want to match everything. can also just forget about the boolean stuff entirely and it'll probably be fine.
Talk to the Hand
Took this for a quick spin earlier today...I'm liking it so far, it's come a long way from when I was the first person to give feedback. Looks like a lot of what we need is in there, if not all of it. Smiley
Quote from arkarian:
rather than using like i recommend boolean searching using match/against. can just look that up but an example is:

Code:
select * from table where match(fieldname) against('query' in boolean mode)

'query' might look something like +urmom +sucks cocks which means "match fields containing both 'urmom' and 'sucks', with 'cocks' optional".
i just append a + to every word since normally you want to match everything. can also just forget about the boolean stuff entirely and it'll probably be fine.

That sounds tricky to implement given the little time left to the marathon. Unless, of course, we'd just let the user enter the search SQL manually.
Weegee Time
How many people actually know SQL?  Besides everyone in this topic, I suppose.  Honestly though, then you have to check every string thoroughly to make sure no one throws an update or deletion operation into the query string.  At least, you should do that.
Edit history:
SMK: 2010-12-30 11:12:10 am
SMK: 2010-12-30 11:03:28 am
I need to stop spending half of my holidays drunk.

Quote from arkarian:
rather than using like i recommend boolean searching using match/against.

Quote from Mystery:
That sounds tricky to implement given the little time left to the marathon. Unless, of course, we'd just let the user enter the search SQL manually.

Match/against is a MySQL specific extension, and is not available in the db I am using.  That being said, I can probably get the same result using regular expressions:
e.g.: "+text1 +text2 -text3" would be something like "(.*text1.*)|(.*text2.*)|(.*(?<!text3).*)" using java regex syntax.

I'll give it a shot, maybe making it so that the space-seperated terms in the text field will each be a token to match against, i.e. the search string "cool dude" will match:

cooldude
coolone
1337dude1337
averycoolguy

etc...

Quote from Rakuen:
How many people actually know SQL?  Besides everyone in this topic, I suppose.  Honestly though, then you have to check every string thoroughly to make sure no one throws an update or deletion operation into the query string.  At least, you should do that.

lol, I hadn't really thought about the potential damage it could cause, maybe I should look into that (maybe set a checkpoint before performing any user given operations).  Mostly I've just been using it as a way to debug the database and as a sandbox for additional queries; I don't really want it to be used under normal circumstances.

Quote from Emptyeye:
Took this for a quick spin earlier today...I'm liking it so far, it's come a long way from when I was the first person to give feedback. Looks like a lot of what we need is in there, if not all of it. Smiley

Thanks, glad you like it.

Edit:
Updated the download: I changed the search panel to use a token-based method, basically it will list all names that match any of the tokens, sorted starting with those that matched the most tokens.  I didn't add anything to try to check for closeness of strings, but I may look at that in a bit.
Quote from SMK:
Quote from Rakuen:
How many people actually know SQL?  Besides everyone in this topic, I suppose.  Honestly though, then you have to check every string thoroughly to make sure no one throws an update or deletion operation into the query string.  At least, you should do that.

lol, I hadn't really thought about the potential damage it could cause, maybe I should look into that (maybe set a checkpoint before performing any user given operations).  Mostly I've just been using it as a way to debug the database and as a sandbox for additional queries; I don't really want it to be used under normal circumstances.

Ah, the dreaded SQL injection security issue. Well, if you use sql binding (and not concatenating SQL strings directly), it shouldn't be an issue.
But you should probably disable the SQL query tab in the final release. For security reasons.
Edit history:
SMK: 2011-01-03 07:59:26 pm
SMK: 2011-01-03 07:58:58 pm
SMK: 2011-01-03 06:51:38 pm
Quote from Mystery:
Quote from SMK:
Quote from Rakuen:
How many people actually know SQL?  Besides everyone in this topic, I suppose.  Honestly though, then you have to check every string thoroughly to make sure no one throws an update or deletion operation into the query string.  At least, you should do that.

lol, I hadn't really thought about the potential damage it could cause, maybe I should look into that (maybe set a checkpoint before performing any user given operations).  Mostly I've just been using it as a way to debug the database and as a sandbox for additional queries; I don't really want it to be used under normal circumstances.

Ah, the dreaded SQL injection security issue. Well, if you use sql binding (and not concatenating SQL strings directly), it shouldn't be an issue.
But you should probably disable the SQL query tab in the final release. For security reasons.


Probably a good idea; I removed it from the main application, and put it into a separate executable.  It shouldn't be needed now anyways.

I added another tab called 'Stats' to show some random data that I thought might be interesting (grand total, largest single donation, etc).  If there's some random bit of information that you think might be interesting to spout off randomly while commenting, let me know.  I'll be bringing my laptop, so I might be able to patch in some simple stuff when I'm there if necessary.

Edit:
So I just went insane for the last half an hour and implemented a somewhat limited undo/redo in the system.  Basically, it only affects database operations, but it was really, REALLY simple to implement, so I figured why not.

Basically, at any time, to undo your last action, type Ctrl-Z (edit: Command-Z if you're on a mac, (thx nate)).  The system keeps an 'infinite' undo history, so you can keep undoing to your hearts content (I may modify this to max out at the last 1000 actions or something, just to avoid exhausting virtual memory, how do other applications do this?).

To redo an undone action, type Ctrl-Y (just trying to keep things consistent with other programs).  Using those, you can undo/redo back and forth as much as you want, however, if you manually perform a new action, it will discard the entire redo buffer (I think this is how most programs do it).

Note that this system is very limited, so it won't do things like restore focus to the item you just restored (you'll have to do that manually), but I'm hoping that it could come in handy regardless.  Also, the undo history will be discarded when the program is closed.
weird key = command.
Okay, so... yeah.  I think I'll give myself a C+ on this program's performance, B if we discount it crashing within the first 2 hours (which we do because I saved that like boss).  Obviously I don't want to touch this thing with a 10 meter pole right now, but I'll at least jot down some of what I noticed, specifically things that I think could help next year, and maybe other people can hop in if they want to gripe about their experience in the donations chair.

Part 1: Automation
- The velocity of donations received, especially at the beginning, was sheer insanity.  Nobody could keep up, and I ended up having to hack out a screen which would read in the data copy-pasted from the chip-in screen and parse out all of the donations just to get caught up.
- Of course, I am wholly to blame for not thinking of this, since the chip-in screen _is_ presented in a very regular format (plus I believe I saw an option to export it as a csv (comma separated value btw) format too).  If I had my life to live over again, it would be possible to just re-import the entire data-file to update all donations, and then manually update only those donations related to specific bids and stuff (or even automate that if possible, I'd have to take another look at how the chip-in page is presented, or what information is contained in the csv export).

Chapter 2: User interface
- Okay, considering all of the work was done on laptops, some kind of keyboard only interface would have been VERY VERY helpful to speed things up (and I use vim, so its a tragedy that I didn't think of that possibility sooner).
- Additionally, there were too many steps required when entering a new donation.  I would estimate that roughly 50% of the donations entered were a 'new' donor, which means that most donations required at least 3 steps (search for that name, add the name, add the donation).  Most of this would be solved by the automatic entry, but then dealing with bids was still a pain.  Which brings me to...

Rebel 3: Viewer interaction
- Shouting out the current status of bids over the air distracts from the current run, guarantees that
a) 90% of the people listening to the commentary won't care, and
b) only 20% of the people who actually wanted to know about that bid will hear it. 
Having a separate web-page that people can navigate to that will read the current status of all bids/buys (i.e. things that you need to pay at least X dollars to see) would make things more convenient for everyone, and probably encourage more people to participate in them if they can easily see what's up.
- A couple of people brought this up, but having a more formal system of submitting requests for things like character names or extra challenges would help a lot, since reading them off of the chat is almost impossible, and most of the time people would give like 0.01 donations just to ensure that their comment is read (which just makes everyone's lives more difficult).  This would also help managing the entering of bids, i.e. you can only bid for something that has been approved through the separate process.

Movement no. 4: Distribution
- This was implied in part 3, but having the donations held on a server, and then being able to communicate through it with clients would help things a lot.  I'm probably getting ahead of myself since this is a lot of work, but I there are a lot of helpful possibilities that this could give.

Anyways, again, big thanks to everyone who helped with the creation and execution of this thing, I just wish it could have been better.
Balls jerky
I want my money back. Found out on Monday my truck needs about $1k in repairs Sad fuckin seals be leakin.

Ok thanks for the refund!
Weegee Time
Quote:
Rebel 3: Viewer interaction

Damnit, warn me when the Wheel of Fate is turning!

Another addition I was thinking about, there were a lot of people who were just wanting to know random statistics.  Who had the highest single donation, who had the highest total donation, how much got donated during this game, etc.  Maybe a statistics tab would be a cool addition?
Now a hit show on the CW
We actually did have a statistics tab on our end that at least displayed the highest donation/donor. I'm not sure if it tracked what games generated the most revenue, but it would be cool if we could figure that out.

SMK, I just want to say that the program worked fantastically. None of us could have anticipated that the marathon would be so much more demanding on the donation side of things than it was last year. But now we know what to expect in the future, and I'm sure we'll be able to come up with an even better system for next year Smiley
Talk to the Hand
Yeah, no one could have anticipated that we'd OBLITERATE our initial goal (Which itself was over twice what we raised in the entire marathon last year) with over half of the marathon to go. That couldn't be helped (And as far as problems go, that's a good one to have). Smiley But yeah, as Arrow said, now that we know the potential for a flood of donations, we can try to automate it/poll the Chipin periodically/etc to make it even better for next year.
So... I was thinking. Maybe we should do the donation app server side, eg php? That way, people could easily see statistics and stuff. Plus I believe paypal has some sort of redirection after paying. Perhaps that could be used to automate the donations? Otherwise maybe some forms asking donation amount, name and for what the donation is for, then redirecting to paypal to pay. After it directs back, we should know if a donation was made. Hopefully paypal can also share some details like donation amount. Does this sound like a good idea?
Quote from Mystery:
So... I was thinking. Maybe we should do the donation app server side, eg php? That way, people could easily see statistics and stuff. Plus I believe paypal has some sort of redirection after paying. Perhaps that could be used to automate the donations? Otherwise maybe some forms asking donation amount, name and for what the donation is for, then redirecting to paypal to pay. After it directs back, we should know if a donation was made. Hopefully paypal can also share some details like donation amount. Does this sound like a good idea?


It does sound like a good idea; I'm actually not at all familiar with php since I typically use cgi with python for server pages, but I imagine its about the same.  Basically I think it hinges on how easy it would be to integrate something like this with paypal/chip-in. 
Waiting hurts my soul...
Chip-in may have an API for this sort of thing. I think the first step would be contacting them to check on that. Automating the export of the csv would be another option so long as it included the comments. Also, I don't know how it was done this time around, but it'd be good to have a text parser that could group comments based on word frequency.

I'm wondering if there's a way to create a direct link to the Chip-in page that would pre-load a comment. That way you could actually list out things in links like the current suggested names for characters and their donation values. Using DHTML/HTML5 or Flash for the list and links shouldn't be too hard. That way it could keep the list up to date with the current value of each name and any new names that pop up.

Did anyone have any issues with real names being read aloud? It seems like some people wouldn't want that, nor have their name listed on a website for the donations. Maybe using initials or truncating the name (first 2 or 3 letters from first and last) would be better. It'd be interesting to see all the stats, like the current list of people entered to win a prize. I'm sure there were some people that may not have been aware of being entered to win.

Not directly related to the App, but this would allow an easier time to auction off prizes instead of having random drawings. Something like the Epoch could probably have generated a lot more money if people were bidding on it.
Balls jerky
I know I saw a few comments that said to refer to them only as their username, but I don't know if that actually happened due to donations showing up before comments or whatever.

copy/paste from other thread. feel free to tell me this won't work

I know SMK wants to automate the donations process as much as possible which i totally think is the best idea ever. I didn't have to man the donations app but it looked like a TON of manual text editing. One of the things I was thinking might be possible but not knowing how practical it would be was to have some kind of donation shop set up. Have one page that lists everything we're accepting donations for so that a user could click on Name Chrono Trigger character x and a box would open and you could put how much you want to donate and the name you choose which would then go right into the app. I don't know if that's what he meant, but that's what I was kicking around before I read this thread. I can't program for shit so like I said this may or may not be the most practical thing ever. Having the app export that info to an excel file or something we could put into google docs would also probably eliminate half the questions the chat has.
Edit history:
Mystery: 2011-01-14 05:42:16 am
Having a "donation shop" should definitely be practical. There are shop systems out there, and even if not, it should be easy to code. We just need to be able to hookup Paypal so we can be sure that the donations were made, then store the info into a database where we can pull information into nice looking statistical pages.
I don't know of any shop systems, though. No experience in that area.

EDIT:
I took a look at PayPal API at https://www.paypal.com/developer
It certainly looks feasible. You can use the API to transfer funds from a donator to a PayPal account (though the owner of the "app" or page or whatever must have a business account).
Now if anyone has any suggestions or experience on how to make a demo of this to test it, we could try making a server-side test donation app and see how it works.