#bitfighter IRC Log

Index Search ←Prev date Next date→

IRC Log for 2012-02-17

Timestamps are in GMT/BST.

00:22:36Watusimotook, I'm checking some code it; it compiles on the client, compiles on master, but has not been tested on master. Just so you're aware.
00:32:06Watusimotook, bedtime for me
00:36:33BFLogBot - Commit b781d206bae3 | Author: watusim...@bitfighter.org | Log: Function name
00:36:35BFLogBot - Commit d0d869165732 | Author: watusim...@bitfighter.org | Log: Write achievement to db on master. Compiles, but HAS NOT BEEN TESTED.
00:36:36BFLogBot - Commit d50730270e49 | Author: watusim...@bitfighter.org | Log: Add some untested code for creating new tables
00:36:38BFLogBot - Commit abf5261b9306 | Author: watusim...@bitfighter.org | Log: Formatting
00:36:39BFLogBot - Commit 913ce87f255a | Author: watusim...@bitfighter.org | Log: Merge
00:39:55Watusimoto Quit (Ping timeout: 252 seconds)
02:44:44sam686 Quit (Ping timeout: 245 seconds)
02:59:10sam686 has joined
02:59:10ChanServ sets mode +v sam686
03:39:44sam686 Quit (Ping timeout: 245 seconds)
03:39:57sam686 has joined
03:39:57ChanServ sets mode +v sam686
03:53:54sam686 Quit (Ping timeout: 245 seconds)
03:54:20sam686 has joined
03:54:20ChanServ sets mode +v sam686
04:02:56sam686` has joined
04:04:44sam686 Quit (Ping timeout: 245 seconds)
04:29:49sam686` is now known as sam686
04:29:50ChanServ sets mode +v sam686
05:00:38raptor has joined
05:00:38ChanServ sets mode +o raptor
05:00:47raptorgood evening
05:02:18sam686good start-night (it is not middle of the night yet)
05:02:44raptori have a new goal: i must sign off by 11pm my time (midnight your time)
05:03:02sam686it is 11:02 central time for me
05:03:18sam686or midnight central time?
05:03:22raptori need more sleep - but i get too interested in bitfighter sometimes
05:03:26raptormidnight central
05:03:32sam686ok
05:05:14sam686oh, even if you signed off in 55 minutes, it might or might not mean you go to sleep right away (you could still be up, playing with bitfighter, without being in irc)
05:05:23raptorcorrect...
05:05:30raptorbut it's a start :)
05:05:49raptoroh good, you fixed the assert define..
05:07:08raptorhave you tested watusimoto's code for creating new stats_level table?
05:08:11sam686not yet...
05:09:44raptorhas anyone said they like the simple new leaderboards?
05:09:50sam686i get compile errors: http://sam686.maxhushahn.com/upload/text1202/120216_23-02-38.txt
05:09:59raptoror had other comments in-game? (i saw lots of players playing...)
05:10:33raptorha!
05:10:46raptordid watusimoto remove the empty Query class?
05:13:08sam686it wasn't removed, but more like a namespace and forward declare problem
05:13:24sam686the empty Query is only there if you are compiling without mysql
05:13:35raptorah, that's right
05:29:30sam686looks like typedef void Query; does the trick for non-mysql compild
05:29:52sam686instead of using empty class...
05:52:05BFLogBot - Commit 558e47d2e8fc | Author: sam8641 | Log: Fix compile errors when compiling with BF_WRITE_TO_MYSQL
05:55:05sam686interesting... i didn't know logprintf("hello" "there"); will compile and print as "hellothere"
05:55:13raptorhaha
05:57:05sam686i started to notice that after looking at string DatabaseWriter::getSqliteSchema() in database.cpp
06:03:14raptoryay, i got a fix in
06:03:16raptorok going to bed
06:03:53raptorgood night!
06:04:53raptor Quit ()
06:07:08BFLogBot - Commit 038758e65f02 | Author: buckyballreaction | Log: Fix client-side Core health calculations, they now match server-side. This also fixes Core heartbeat
08:45:34sam686 Quit (Read error: Connection reset by peer)
08:48:54sam686 has joined
08:48:54ChanServ sets mode +v sam686
08:50:53watusimoto has joined
08:50:53ChanServ sets mode +o watusimoto
11:24:47LordDVG has joined
13:05:41Watusimoto_ has joined
15:34:37Watusimoto_ Quit (Ping timeout: 255 seconds)
16:35:25raptor has joined
16:35:25ChanServ sets mode +o raptor
16:36:00raptorgood morning!
17:02:08raptori just learned the coolest thing: reverse tunnels over SSH
17:05:53Watusimoto_ has joined
17:10:33Watusimoto_ Quit (Ping timeout: 248 seconds)
17:24:59karamazovapyam I correct in suspecting that the "prolific players" board doesn't follow the same qualifying rules as the "most winning players" board?
17:25:07raptorcorrect
17:25:17raptorwe have this category of 'official games'
17:25:28karamazovapyyeah, I'm wondering if that makes the two look odd side-by-side
17:25:33raptoran official game = a game with minimum 4 players, two of which are authenticated
17:25:47karamazovapyHugo played 133, but won less than 19 of them?
17:25:47raptorwinnings only count with official games
17:26:11karamazovapyLittle_Apple has played 53 this week, but won less than 7 of them?
17:26:12raptoreasily could have played lots of games with 3 or fewer players
17:26:31karamazovapyright, I understand how it works, I'm just saying they look weird side-by-side
17:26:38raptorbut yeah, it is definitely lop-sided
17:27:23karamazovapyto me it really looks like last week Hugo played 133 games and won fewer than 19 total
17:27:37karamazovapywhich comes off as "man, Hugo must SUCK"
17:27:40raptorhaha
17:27:57raptormaybe we need to add clarification to the tables?
17:28:04raptorlike 'Total Games'
17:28:08raptoror 'Official Wins'
17:28:26karamazovapyeh...I think the solution is just using one metric for all the numbers
17:28:42raptoryou mean get rid of total games
17:28:44raptor?
17:28:54karamazovapyreplace total games with official games
17:29:00raptorah...
17:29:03karamazovapyor replace official wins with total wins
17:29:04raptori did that at first, actually
17:29:25raptorbut watusimoto said to add both official + unofficial
17:29:40karamazovapythen I think the most winning players should include unofficial games
17:30:06karamazovapyif we agree that these things are meaningless, why add qualifiers to pretend the whole thing has meaning?
17:30:46watusimoto Quit (Ping timeout: 260 seconds)
17:30:50raptori'm not against it - i just like the challenge of the work
17:31:23raptoror even, we could add total unofficial wins as a third chart
17:31:35karamazovapythat's not a bad compromise
17:31:47raptorlet me build out those views anyways...
17:32:16karamazovapythe opposite of the Hugo situation is the CleverBot situation
17:32:28karamazovapywhere he has the second most wins this week, but doesn't rank in prolific players
17:32:31raptorhaha
17:33:00karamazovapyso either CleverBot or Random Insanity could be the most efficient
17:33:37karamazovapywell...technically, anyone with less than 7 wins could be most efficient, we just know that Little_Apple and Hugo aren't
17:33:58karamazovapyand, of course, sam
17:34:06karamazovapysince he's on the top of the wins list
17:35:14raptori'm going to break the leaderboard for a few minutes as I edit stuff...
17:35:23karamazovapycolor me unconcerned
17:43:01raptori didn't add it to the homepage yet, watusimoto may have to do that... but, now Hugo is on top with 43 wins (counting all games)
17:43:13raptoraccording to the database
17:51:58karamazovapyyeah, watusimoto should probably make the call as to what goes up
17:52:52karamazovapyhe might not find the juxtaposition weird
17:54:29raptoryeah, it seems weird now that you brought my attention to it
18:20:16Watusimoto has joined
18:30:35Watusimotohi
18:30:41raptorhi
18:30:53raptori just played a fun game of soccer on karamazovapy's new map
18:30:59raptorstock map
18:31:18raptorand my opponent stayed with me until the end... which rarely happens
18:31:27WatusimotoExcellent! We have yet to discuss the new soccer mods -- completely overshadowed by core
18:31:56raptorbursts are really useful in soccer now
18:32:44Watusimotocool
18:32:47Watusimotohey -- is there an easy way to duplicate the tables (structure, not contents) of the stats database? I am creating a quick test function for the database.cpp restrucuring I've been doing, and want to test the mysql portion. I think I'm ok for the sqlite3, since that creates its own structure.
18:33:14Watusimotobasically I'm adding a master -testdb option
18:33:34raptoryeah, just export with phpmyadmin, but do structure only
18:33:37Watusimotothat will just write some junk into a table, and I don't want to pollute the real deal
18:33:40Watusimotook
18:34:15raptori'd select all the tables, export, create a new db and import the tables again
18:34:27Watusimotoimagine... a real test function!
18:35:50raptorno!
18:54:05raptorWatusimoto: karamazovapy mentioned a little weirdness with having the two stats types on the home page: at first glance seeing Hugo as the most prolific player but not even on the 'most winning' list, makes it seem like he's the biggest loser
18:54:32raptorand that's because we based one off of official games, the other off of all games
19:05:29raptorI suggested we show a third type: wins across all games, and I made views for it
19:05:37raptorbut i wanted to ask your opinion
19:11:52Watusimotothe biggest loser?
19:11:54Watusimotohmmmm
19:12:20Watusimotodo you think we should have yet another stats table?
19:12:39raptori just created the view for biggest winner in all games
19:13:06raptorthat would smooth the differences between the two tables we have currently
19:13:57raptori renamed the official wins view to: v_current_week_top_player_official_wins
19:14:06raptorand named the new one: v_current_week_top_player_wins
19:14:28raptorthat second one includes all games like the top_player_games one does
19:21:44WatusimotoWhat if we changed the title to "Most official Wins"
19:21:57raptori'm sure that would clarify it
19:23:06Watusimotoif you think that would fix the problem, let's do that... too many categories of similar sounding stats will dilute them, I think
19:24:12WatusimotoThe next step is to figure out how to jam the stats into a box over on the right under the videos
19:24:48raptori figured that out once...
19:24:54raptorhm
19:25:30raptorhas somethign to do with blocks or something
19:27:22Watusimotooh, I know how to do it
19:27:36Watusimotowell, I would, if the items weren't so wide
19:27:53Watusimotobut if we stack them 4 tall, we'll end up with a really long right-bar
19:28:03Watusimotorather a long column of stuff along the right
19:31:33raptorwe might have to reorder the data
19:32:22raptori've got to change some of those screenshots...
19:34:10raptorsmaller font maybe
19:35:43raptorreduce width of boxes: maybe rename 'screenshots' to 'media' and put the video there, then just link the front page to the screenshots page
19:42:26Watusimotowas thinking about getting rid of screenshots altogether, as in who cares when there's video?
19:42:42Watusimotobut I have to say I like some of Sam's much better than what we've got now
19:43:23Watusimotothey're easy to replace; I think it's just a matter of generating some thumbnails (imagemagick) and dumping them in a folder. if I recall correctly, they're randomly selected from what's there.
19:43:39Watusimotothough I suppose the screenshot page itself will need to be rebuilt
19:44:01Watusimotomaybe we should install a slideshow and get rid of the screenshot page???
19:44:44raptorwe could have a 'media' page
19:44:50raptorthat has screenshots/videos
19:47:39Watusimotook
19:49:49raptori did stick a 'live chat' link up there
19:49:58raptorbut it doesn't show up on the forums/wiki
19:50:04raptorwhich may actually be a good thing..
19:52:30Watusimotoah yes
19:52:47Watusimotothe reason why is the title bar is hardcoded in the forums and wiki
19:53:08Watusimotoso you need to find the file that has the code and update it manually
19:53:25Watusimotowhen I've done that in the past, I've found it with grep :-)
19:54:08raptori'm not sure i want to add it to the forums page... it may invite more distractions to the channel
19:54:13raptor:)
19:54:32raptoralthought granted, i did post an announcement about it
20:03:46Watusimotoyes, understood
20:04:02Watusimotobut at least you understand why it didn't get added there
20:04:07raptoryes
20:04:25Watusimotoit's ugly to try to integrate so many different progs (drupal, phpbb, mediawiki)
20:04:36Watusimotothough I do think overall the site has a reasonably unified feel
20:05:06raptorI've stumbled across systems that are completely integrated, like 'TWIKI'
20:05:44raptorbut they're not so popular, because each module is nowhere near as advanced as having separated state-of-the-art software
20:07:01Watusimotowell, I don't really like any of our individual components... yet they are good enough that I'm not looking for alterntaives
20:08:17Watusimotooh yes, twiki
20:08:22Watusimoto"Powered by Perl"!
20:08:31Watusimotogood recommendation!
20:08:33raptorhaha
20:10:10Watusimotoyou forget that I'm serious!
20:13:43raptorwell...
20:13:59raptori don't think i'm up to the task of converting the entire site to twiki
20:14:17raptorthe re-styling would kill me
20:16:08Watusimotoit would be bad but not horrible
20:16:16Watusimotohey, what we have works well enough
20:17:41raptori think i get a grey hair everytime i have to look at CSS
20:18:48Watusimotoamen, brother
20:19:02Watusimotoexcept i do it every day at work
20:19:14raptorha! me too...
20:19:39raptorwell, maybe for 1 week out of two
20:20:00raptorok, so
20:20:05raptorwhat have we to do for 017?
20:20:10raptor(back to the fun stuff..)
20:20:58karamazovapyI do kind of question the value of screenshots when we have so much video, but they may be good for mobile devices...if we care about those
20:21:53Watusimotook, well there's the bug checklist, and then anything that looks fun on the 016a list
20:21:56Watusimotoon google
20:22:08Watusimotobut I don't think we need to do all of those for 017
20:22:17WatusimotoI'll be happy to release when we get the bugs fixed
20:22:25raptori fixed another last night
20:22:35Watusimotowe have enough new features already, with pulse and the core updates
20:22:58Watusimotobut you've got at least a week if you want my help with the release
20:22:58raptorthe mac fullscreen problem still baffles me slightly - i switched it to fakefullscreen for now (even though the dock covers it)
20:23:27Watusimotolet's hope SDL2 will resolve some of hte outstanding display issues
20:23:34WatusimotoI'd hate to go back to glut at this point
20:23:38Watusimoto:-)
20:23:53raptornooooo
20:23:55raptorno GLUT
20:24:13raptorglut is great for example programs
20:24:43raptorour next move is QT
20:24:45raptor:)
20:25:03karamazovapyyou should really use flash
20:25:55Watusimotoright on
20:26:02Watusimotokeep on truckin'
20:27:06raptorwow, the soccerball can really move when you boost yourself into it with burst
20:28:10raptorand pulse might add some interesting element to it, too..
20:29:39Watusimotough, creating dummy stats by hand is exhausting
20:32:14karamazovapyI'm browsing craigslist for additional work, and certain jobs catch my eye, for example "Experienced Tree Climber (Grand Rapids)"
20:36:22Watusimotothat's all you!
20:36:46WatusimotoI wonder if you can time a pulse and a burst somehow
20:36:55karamazovapypulse?
20:36:57Watusimotomaybe get burst then pulse?
20:37:08raptorare we calling it 'pulse' or 'super'?
20:37:17Watusimotooh yes, super
20:37:18Watusimotoah
20:37:20raptorhmm... let me try
20:37:21karamazovapyis this your kinetic turbo idea?
20:37:21WatusimotoI kind of like pulse
20:37:24raptori still like pulse
20:37:30Watusimotook, pulse it is
20:37:35Watusimoto@k yes
20:37:47Watusimotoraptor got bored and implemented it
20:38:15raptorha! if you hit a soccer ball just right with it, you go flying in a crazy direction at top speed
20:38:31karamazovapyI'm not sold on the concept of adding additional aspects to modules, but as with everything else, I'll withhold judgement
20:38:50raptorwe can remove it if it's bad
20:38:53raptori'm not attached
20:39:27karamazovapyI'll be curious to see how the new mods work out. I'm not bound and determined to hate them.
20:39:46raptori've used sensor to great advantage in a bitmatch once
20:39:57raptorbut it relied on the other person not having it...
20:40:52raptorha! yeah, don't hit the ball at a shallow angle with the pulse
20:43:30Watusimotowell, we're trying a (much) more rapid release cycle again, so that makes it easier and safer to experiment
20:43:58Watusimoto016 was just such a slog
20:44:06raptorsloggety slog
20:44:16Watusimotoso the focus for the next 9 months is fun!
20:44:21Watusimotofun stuff!
20:44:27Watusimotofun experiments!
20:44:33Watusimotofun fun fun!
20:44:35karamazovapyyou think this is a game or something?
20:44:51Watusimotofor a while I wasn't so sure
20:44:59WatusimotoI am happy core has been so well received
20:45:10raptori'm still not sure about the panels...
20:45:16Watusimotonot a single thread about a zombies game since then
20:45:18raptorbut also not sure about the shrinking...
20:45:26Watusimotowhy not the panels?
20:45:32Watusimotomake a case
20:45:50karamazovapythey sound like a pain in the ass?
20:45:51raptorit seems like the panels should have more 'meat' on them
20:46:07raptorinstead of shrinking from 2 to 0 line width
20:46:14Watusimotoso it's an implementation issue, not the concept
20:46:28Watusimotoif so, I'm with you
20:46:44Watusimotohere's another idea
20:46:46raptorwell... i think we lots to work out with core in concept... especially if you're wanting star fortress :)
20:46:56raptorand how well it'll play
20:47:15WatusimotoI am wanting star castle, but I know we can;t do it
20:47:26raptorstar castle, yes
20:47:26Watusimotothe timing issues are just too delicated
20:47:34Watusimotobut that's really what I want
20:47:38Watusimotoreally really really
20:48:02raptori can't tell what you're driven by... nostalgia?
20:48:04raptortoo many invested quarters?
20:48:10Watusimotonostalgia
20:48:41WatusimotoI added asteroids when I was really bored with the game, and there were only about 10 players, and I thought it was a funny joke
20:48:49raptorhaha
20:48:57Watusimotobut it turns out it was awesome!
20:49:05raptorwasn't testitem supposed to disappear, too?
20:49:14Watusimotothat's been there since zap
20:49:19raptorah
20:49:30raptordid you know sam686 added asteroid size to the editor?
20:49:38Watusimotogreat
20:49:47raptornow we have Little_apple making size 5 asteroids...
20:49:50Watusimotothat's probably going to have to be a dungeon feature
20:49:50raptor(normal is 3)
20:49:55Watusimotoreally?
20:49:59karamazovapyI'm not a fan of that idea
20:50:06Watusimotonever thought of bigger
20:50:15raptori had no idea it was there until Little_apple showed me a map with it on
20:50:16karamazovapy is now known as SCROOGEfighter
20:50:18Watusimotoso they just split more
20:50:31raptoryep
20:50:36SCROOGEfighterbah humbug
20:50:44Watusimotowe need to get that dungeon mode going, to provide a home for all these things
20:50:55SCROOGEfighter"Web developer with disabilities wanted - (Ingham County)"
20:51:03raptorwhat
20:51:05Watusimotocut off your finger
20:51:30SCROOGEfighter"My clients are leading MI companies who are looking for college educated, ready to work people with hidden or visible disabilities. Please email me your resume and I will follow up! All submissions with be held in confidence and I will not submit you for a job until I have verified that you are interested in it."
20:51:42SCROOGEfighterI might have hidden disabilities
20:52:28WatusimotoI can't build master on my machine (can compile, but not link)
20:52:43raptorsam686 made some changes last night, it hink
20:52:45Watusimotoso I need to build on the bf.org
20:52:58raptorspeaking of which
20:53:10Watusimotothat;s not the problem
20:53:20raptorwe need a way to be able to build the client/ server / master simultaneouls without having to do make clean between each one...
20:53:35raptori'll have to think on it a bit
20:53:59raptormaybe output compiled object files into a separated directory from the sources
20:54:36Watusimotoah, I see
20:54:50Watusimotosounds like a good idea
20:56:39Watusimotoso to check out a new copy of master on bf.org, I do this:
20:56:40Watusimotohg clone https://watusimoto%40bitfighter.org@code.google.com/p/bitfighter/
20:56:43Watusimoto?
20:57:36raptorhg clone https://code.google.com/p/bitfighter/
20:58:28BFLogBot - Commit 093ded922422 | Author: watusim...@bitfighter.org | Log: More untested master code (but compiles!)
20:58:29raptorit will give you a few warnings because i had to update the system python to a new version to support pushing back to google code
20:58:30BFLogBot - Commit 31d7ba36caa7 | Author: watusim...@bitfighter.org | Log: Merge
20:58:56Watusimotoall kinds of crazy py warns
20:59:08Watusimotoignoring them
20:59:14raptorignore
20:59:55Watusimotoignored
20:59:57raptoras soons as the world's VPS providers update to Centos 6 then we won't be stuck with messing with packages so much
21:00:14Watusimotoholding breath
21:02:04Watusimotoif I want to define a flag (such as BF_WRITE_TO_MYSQL) can I do that from cmd line to make?
21:02:12Watusimototo think I knew all this at one point
21:02:38raptoradd it to the makefile as a CFLAG in the form of -DBF_WRITE_TO_MYSQL
21:02:48raptoruh
21:02:56raptorit should be set up in the make file in master/
21:02:57raptormake help
21:03:14Watusimotooh nice!
21:04:17Watusimotovery handy!
21:04:30raptori was only so thorough with the master Makefile... the others don't have a 'help' i think
21:07:01WatusimotoI forgot you need to manually build tnl and libtomcrypt
21:09:19sam686 Quit (Ping timeout: 245 seconds)
21:09:44Watusimotook, I added to help; I should check that in
21:10:10raptorgreat - i may have to rewrite someone's perl script in php...
21:10:37Watusimoto:-)
21:10:49sam686 has joined
21:10:49ChanServ sets mode +v sam686
21:13:34Watusimotoany idea why hg push won't work?
21:13:49WatusimotoI am prompted for username & pw, I enter watusimoto
21:13:51Watusimotooh wait
21:13:58Watusimotolet me try full email addr
21:14:36raptorhg push -u <email tied to google code account>
21:14:57Watusimotoit worked!
21:15:02Watusimotoemail address was the key
21:15:08raptorsorry, yes - that
21:15:09sam686 Quit (Ping timeout: 245 seconds)
21:15:10Watusimotowas using just name
21:15:15Watusimotothanks!
21:15:21Watusimotogetting better at cmdline
21:15:32Watusimotoactually use cmdline git sometimes at work too
21:15:38WatusimotoI REALLY like github
21:15:45raptorgithub is great!
21:15:54Watusimotoin retrospect maybe we should have gone there!
21:16:08Watusimotobut google code is such a step up from sourceforge
21:16:08raptoryeah, it's free for open source projects
21:16:17raptorgoogle code allows git now, too
21:16:34Watusimotoit's not the git I like; git == hg for most purposes
21:16:46Watusimotoit's their whole site
21:16:52raptoryeah, it's snappy
21:16:57Watusimotothough I do like google's presentation of diffs
21:16:57raptorand set out very well
21:18:33BFLogBot - Commit 026be0cf9e30 | Author: watusimoto | Log: More help!
21:19:40sam686 has joined
21:19:40ChanServ sets mode +v sam686
21:22:02sam686i don't know why i can't connect to "card.freenode.net [38.229.70.20]" anymore... can't even ping that server either..
21:24:07Watusimotowhatdo we use to strim ^Ms?
21:24:12Watusimotodos2unix isn't around
21:24:25Watusimotostrip
21:24:36raptordos2unix
21:24:39raptorlet me get it...
21:25:47raptorok it's there now
21:25:47sam686 Quit (Read error: Connection reset by peer)
21:25:52sam686 has joined
21:25:52ChanServ sets mode +v sam686
21:26:37sam686or not, looks like my connection is bad again..
21:35:36sam686 Quit ()
21:36:26sam686 has joined
21:36:26ChanServ sets mode +v sam686
21:44:52sam686 Quit (Read error: Connection reset by peer)
21:48:08sam686 has joined
21:48:08ChanServ sets mode +v sam686
21:48:36BFLogBot - Commit 16c8399f9e78 | Author: watusimoto | Log: More fixes to sql
21:52:37sam686 Quit (Read error: Connection reset by peer)
21:55:25sam686 has joined
21:55:25ChanServ sets mode +v sam686
21:56:48SCROOGEfighter is now known as karamazovapy
21:57:51raptorgoodbye SCROOGEfighter, you will be missed...
21:58:39BFLogBot - Commit 896253354072 | Author: watusim...@bitfighter.org | Log: Added option to dump sql
22:03:13karamazovapyit's okay, I can still bah humbug with the best of them
22:05:21Watusimotothere's a whole ton of stats we get on the server that never get saved
22:10:36raptordedicated server you mean?
22:11:07Watusimotoyes
22:11:19Watusimotothey're right there, just never added to the sql
22:11:27WatusimotoI added a note on the bugs page
22:11:39WatusimotoI'd do it now, but I have only a few minutes left before I have to go
22:11:50Watusimotogot to get some sleep tonight, have a long a dangerous drive tomorrow
22:12:12Watusimotojust need to update the tables & queries.
22:12:26Watusimotoso I guess something good came out of my test!
22:12:54raptorok
22:12:56raptorget some sleep
22:13:23Watusimotogot a few more minutes :-)
22:13:25karamazovapyI added a couple word filters for people who turn censoring on
22:13:35karamazovapysee if you can pick them out
22:13:36karamazovapyRe: !The Lame Prankstering Thread!
22:13:36karamazovapyThis thread is so wrong. Lame Prankstering can not be limited to a single thread, and what you people are doing is nowhere near Lame Prankstering. You all disgust me. You should all be ashamed, trying to limit Lame Prankstering to a single thread. Lame Prankstering is meant to be used whenever is possible, regardless of thread or topic, all for the amusement of the Lame Prankster and no one else. Lame Prankstering should ca
22:13:36karamazovapyuse hate, disgrace, and rage! Not smiles, chuckles, and companionship! SHAME ON YOU ALL.
22:13:41BFLogBot - Commit 08b47c1beee1 | Author: watusimoto | Log: Minor fixes to stats
22:14:02raptorsmiles and chuckles
22:14:14Watusimotomy goodness
22:14:23karamazovapyoooh, good guess, but no
22:14:37karamazovapyI've subbed out "troll" "trolling" and "trolled"
22:14:57karamazovapybecause I think they make people sound stupid
22:14:59raptori was about to say there is high incidence of 'lame prankstering'
22:15:10karamazovapythere was a high incidence of "trolling"
22:15:29karamazovapybut that's because people who like "trolling" are lame pranksters
22:15:35karamazovapyoooh - gotta add that one, too!
22:15:43raptorsomeone at work today used the phrase 'trolling twitter for feedback'
22:15:58karamazovapyyeah, but our audience isn't that highbrow
22:16:13raptorhahaha
22:18:39karamazovapysince "trolling" makes people sound stupid, I like that "lame prankster" makes them sound extra stupid and makes me giggle
22:19:11raptorso is this a default word filter?
22:19:20karamazovapyonly if you enable censoring
22:19:28raptorbecause if not, you should turn it on for a few people...
22:19:31karamazovapyand then it doesn't change content, only display
22:19:39karamazovapyI should turn it on for them in the admin cp!
22:19:45karamazovapygood iea
22:19:46raptorhehe, yep
22:19:47karamazovapy*idea
22:19:53raptorand watch the confusion flow
22:20:27raptoranother good one would be to change common words like 'the' to 'teh'
22:20:49karamazovapyI think a lot of people might have censorship on by default
22:22:05karamazovapyyeah, it must be on by default!
22:22:11raptorwell great!
22:22:26karamazovapyooooh, I know a good one
22:22:52karamazovapyunfortunately, I don't think these are case sensitive
22:23:00sam686word censoring doesn't really work on pictures and images (especially not automatically)
22:25:08sam686i wonder if there is... image / picture links censoring?
22:25:21raptoryes - but i think the goal is not to be authoritarian
22:25:27karamazovapyyou can shut them off, but I don't think there's any selective censorship
22:26:09karamazovapyraptor - see if you can find my other swap
22:26:37karamazovapyman, I just wish it was case-sensitive
22:34:13sam686 Quit (Read error: Connection reset by peer)
22:37:23sam686 has joined
22:37:30ChanServ sets mode +v sam686
22:38:12LordDVG Quit (Remote host closed the connection)
22:38:45BFLogBot - Commit 4a9353bfe11b | Author: watusim...@bitfighter.org | Log: Create sql for saving level info
22:47:16karamazovapy wonders how long it will take to hear people bring up his insidious changes
22:48:47BFLogBot - Commit 122f042f9460 | Author: watusim...@bitfighter.org | Log: Fix stats problem
22:51:08Watusimotook, so we do this:
22:51:10Watusimoto U64 serverId = getServerID(query, serverName, serverIP);
22:51:10Watusimoto string sql = "INSERT INTO player_achievements(player_name, achievement_id, server_id) "
22:51:10Watusimoto "VALUES( '" + sanitize(string(playerNick.getString())) + "', '" + itos(achievementId) + "', " + itos(serverId) + ");";
22:51:10Watusimoto query.runQuery(sql);
22:51:15Watusimotowhen we save an achievement
22:51:34Watusimotothere is a unique index that ensures the same player doesn't get two entries for the same achievement
22:52:15Watusimotobut we have no easy way to check if we're inserting a duplicate record
22:52:25Watusimotooptions:
22:52:36Watusimoto1) we could query to check before the insert
22:52:46Watusimoto2) we could just insert regardless and let it fail
22:52:52Watusimoto3) ???
22:53:00Watusimotoso... what should we do?
22:53:45WatusimotoI'm going to leave this to you to think about... I'm happy to address it when I return in a week, but it's quite likely I'll have forgotten about it :-0
22:53:47Watusimoto:-)
22:54:06Watusimotoright now, the default option is 2
22:54:09raptorunique index?
22:54:29raptorwe can check for a return exception that fails a unique constraint
22:54:33WatusimotoCREATE UNIQUE INDEX player_achievements_accomplishment_id on player_achievements(achievement_id, player_name COLLATE BINARY);
22:54:48Watusimotothat''s a hell of an index name
22:54:49raptorgood
22:54:52raptoroh
22:55:13Watusimotowell, if the insert fails, we don't care
22:55:17Watusimotoso no need to check
22:55:41Watusimotothe question is really should we do a preemptive check to avoid the failure
22:56:18Watusimotothis is as much a philosophical issue as a technical one
22:56:49raptornah
22:57:03raptoras long as we catch the exception, then we know exactly what happened
22:57:17raptorwhy not use the insert as the 'check'?
22:57:21WatusimotoI'm inclined to go with 2 then
22:57:33raptorme too
22:57:40Watusimotook, then... done!
22:57:56Watusimotoall the master work I;ve done works with sqlite
22:58:08WatusimotoI haven't checked with mysql
22:58:40WatusimotoI restrucured a lot of things, so my suspicion is that if mysql fails, it will fail obviously
22:59:12Watusimotobut the details of queries are db independent, and as I said they work
22:59:40Watusimotoso if anyone wants to do further work on the master, I think it's ok to try it live as long as you watch it for a while
23:00:14Watusimotothe test option found some stupid bugs that would have been hard to find otherwise
23:00:31raptori'm still not sure exactly what you've done...
23:00:58WatusimotoWell, I regiggered a lot of the innards of database.cpp to make it easier to use
23:01:37WatusimotoI added tables to track level stats (but servers don't yet send the stats to the master... but as soon as they do, the saving should work)
23:01:47raptorso did you make all the changes to bf_stats on master?
23:01:58raptorok
23:01:59Watusimotoand I've added sql to save achievements, but the servers do not yet send achievement info to the master
23:02:25WatusimotoI believe that all tables in bf_stats aer up to date and reflect all my changes in master
23:02:35raptorok
23:02:38raptorthat was what i was after
23:02:40raptorcool
23:03:05Watusimotothe sqlite tests were done on the structure in the code, which I updated by exporting table defs from mysql, so I'm reasonably confident it's all in sync
23:03:19raptorok
23:03:42Watusimototherefore, I think that you could, if you wanted, update the master, and start calling the methods to log level stats and achievements
23:04:08Watusimotoand by update I just mean hg update
23:04:16raptorok
23:04:20raptorrecompile
23:04:38Watusimotoor... you could do nothing, and I'll pick this up when I get back
23:04:45Watusimotono worries either way
23:05:19sam686so... the master needs a new table to hold the achievements?
23:05:24Watusimotono
23:05:26Watusimotoall set
23:05:26raptordo you have a naming scheme for achievements?
23:05:39raptorlike 'developer' all lower-case
23:05:46raptoridea in mind, i mean
23:05:47Watusimotonot sure what you mean
23:05:51Watusimotooh
23:05:52Watusimotono
23:05:55raptorbecause you put a unique index on it..
23:06:02Watusimotoon name?
23:06:08Watusimotoit was a checkbox
23:06:09raptoryes
23:06:14Watusimotoit was easy
23:06:17Watusimotoi clicked
23:06:26Watusimotodon't want dupe names, after all
23:06:51raptorwhat i'm saying - generally speaking unique indices on a field usually indicate some forethought on the data in the field
23:06:52WatusimotoI;m not entirely sure we want to draw names from the database
23:06:53sam686i can build window's master with mysql for some testing
23:07:03Watusimotoit should be unique
23:07:09raptorthat's why i asked..
23:07:14raptorok
23:07:17Watusimotothat's all I;ve thoguht about it
23:07:22raptorif no more than that, then good
23:07:25Watusimotobecause two acheivements with the same name woudl suck
23:07:30raptorhaha
23:07:44raptorare we keeping the developer one?
23:07:58Watusimotobut most likely, the name will be hardocded in the interface somewhere, and we'll not use the db name
23:08:03Watusimotofor the moment
23:08:13Watusimotoi guess
23:08:35Watusimotowe should add k as an honorary developer until we delete it
23:08:43raptori agree
23:09:22raptorso programmatically how will we get the achievements? by the name? (which will be a list in the code somewhere?)
23:09:35Watusimotono comprende
23:09:45Watusimotono comprendo
23:09:55raptorin order to insert the achievement in player_achievements
23:09:59raptorwe need teh id
23:10:02Watusimotoyes
23:10:12raptorhow do we get the id programmatically? hardcoded id -> name list?
23:10:16Watusimotoah
23:10:17raptoror just a name list
23:10:17Watusimotook
23:10:34raptorbecause that's the forethought about the data i was thinking about
23:10:45raptorwe keep a list of unique names in the code and look up the appropriate ID
23:10:50Watusimotoon the server we have some function somewhere that watches for the conditions that trigger the awarding of the acheivemtn
23:11:08Watusimotoand I think the id is just coded as an enum and referenced by that fn
23:11:12Watusimotoso
23:11:14raptoryuk
23:11:21Watusimotoif(condiitons_met)
23:11:33sam686` has joined
23:11:58raptorhmm, ok
23:12:06Watusimotos2m-award_achievement(MAJOR_SLAUGHTER, player.nick)
23:12:11raptorbecause primary key is one-indexed i think
23:12:25sam686`compile errors: http://sam686.maxhushahn.com/upload/text1202/120217_17-02-09.txt
23:12:32Watusimotoand MAJOR_SLAUGHTER is an enum
23:12:43Watusimotoso maybe the name could be removed from the db
23:12:56Watusimotoin the client, we'd have:
23:13:13sam686 Quit (Ping timeout: 276 seconds)
23:13:26WatusimotogetName(Achievement) { if(Achievement == MAJOR_SLAUGHTER) return "Major killer dude" }
23:13:41Watusimotoand drawBadge(Achievement)
23:14:06sam686` is now known as sam686
23:14:06ChanServ sets mode +v sam686
23:14:10Watusimotothe only hangup is if we displya the achievements on the website
23:14:20raptorin practice, i've found tying the code to auto_increment primary key ids is a little bit of a maintenance problem
23:14:36Watusimotohow so?
23:14:47Watusimotoin this case, it might well be, since we are replicating an enum
23:14:59raptorbecause then we cannot reorder anything in the code without reording the database as well
23:15:04Watusimotoright
23:15:09raptoralso enums are zero-indexed
23:15:11Watusimotothen we shoud unindex that
23:15:19raptorprimary key: 1 indexed
23:16:16Watusimotowe already have a working mechanism to propigate achievemetns via their id from master to server and master to client
23:16:37raptorif we decide to hook tables by the primary key, then we should have another unique field to look up that id from
23:16:46Watusimotobased on an id btwn 0-32
23:16:55raptori.e. the name, or enum-order
23:17:16Watusimotook; I'll go along with whatever makes sense
23:17:30raptorok, i'm just thinking about future ability to adjust
23:17:58raptormaybe i'll tinker a bit later tonight
23:18:05Watusimotomy current thinking is that the acheivements table can be deleted as far as the game is concerned
23:18:13Watusimotoit only makes sense in context of the website
23:18:34Watusimotodo you understand why?
23:18:46Watusimoto(not asking if you agree, just want to make sure you understand my thinking)
23:18:52raptori'm not following, sorry
23:19:09Watusimotoif we have this fn
23:19:10WatusimotogetName(Achievement) { if(Achievement == MAJOR_SLAUGHTER) return "Major killer dude" }
23:19:20Watusimotowe don't need to store that info the db
23:19:32Watusimoto(except perhaps to dispaly it on the website)
23:19:42raptorok, not in-game badges?
23:19:56WatusimotodrawBadge(Achievement) would be ingame
23:20:10raptoryes, but we'd have to get that from the db
23:20:12Watusimotoas woudl getName(Achievement) { if(Achievement == MAJOR_SLAUGHTER) return "Major killer dude" }
23:20:22raptorthe time they connect
23:20:24Watusimotoyou have to get the id from the database, but nothing ore
23:20:30Watusimotomore
23:20:38raptoryes
23:20:53Watusimotodoes that clarify anything?
23:20:57raptorso how does that tie in with not needing the table?
23:21:04raptorbecasue we still need the id externally
23:21:14Watusimotoachievements table is just id, name, descr
23:21:33raptorohhhhhhhh... we just need the id from the player_achieve... table
23:21:35sam686there appears to be a problem with accessing mMySql in DbQuery::DbQuery when DbQuery don't have mMySql (it is on DatabaseWriter)
23:21:38raptori see what you mean
23:21:39Watusimotoif we have getName function, that means name is already on the client; why is it in the db?
23:21:47WatusimotoYES!
23:21:55raptorok, yes
23:21:59raptori follow now
23:22:03Watusimotogood
23:22:17raptorimagine how much faster these discussions would go if we were standing next to each other...
23:22:21Watusimotosam --> of course you found the one area I didn;t test!
23:22:27Watusimotono kidding
23:22:39raptorok cool
23:22:50Watusimotoachievement table might b useful on the website
23:22:52raptori'll check it all out tonight - probably make minor adjustments to the schema and code
23:22:56Watusimotofeel free
23:23:03sam686game stats don't get send until the game ends, but badges does get send in mid game? if so, then it is possible for achievements to be gotten, then leave game without the game ending...
23:23:04raptoryes, to pull the proper names, etc...
23:23:19Watusimotosam - yes
23:23:25Watusimotothis was the problem I found yesterday
23:23:46Watusimotoso we just store server and date, not gameId
23:24:04WatusimotogameId only comes at the end of the game, and maybe not at all under some circumsatances
23:24:16sam686one option is to send achievements together with game reports (no report, no achievement)
23:24:27raptornot tied to a game? interesting...
23:24:40Watusimotoyes, but if you earn the achievement, even if the game is later aborted, you've still earned it
23:24:52Watusimotoraptor: can't be tied to game
23:24:53raptori guess that's sort of unavoidable
23:25:19Watusimotowe don;t have game when acheivement is earned, and there is no gurarntee we ever will have it
23:25:32raptormakes sense
23:25:36Watusimotoalas
23:26:55Watusimotosam -- you can either fix the DbQuery (bad name, btw), or add a note to the runnign bug list and I'll fix it when I get back next week
23:27:16Watusimotountil then, gentlemen... my children's very survival may depend on my going to bed
23:27:26Watusimotoso good night!
23:27:30Watusimotoand farewell!
23:28:00raptornight!
23:28:18raptorwhen will you be back again?
23:29:16sam686` has joined
23:29:20Watusimotoabout a week
23:29:24raptorok cool
23:29:27raptornight!
23:29:27Watusimotosat or sun night
23:29:33sam686`one problem with game reports by itself is when player leave near the end of game, that player doesn't get included in game report
23:32:04sam686 Quit (Ping timeout: 276 seconds)
23:32:37sam686` is now known as sam686
23:32:37ChanServ sets mode +v sam686
23:45:19Watusimotosam -- not a new problem, not sure how to deal with it... how long does a player play before being counted?
23:45:26Watusimotoanyway,we can pick this up next week
23:45:30Watusimotoso long!
23:49:37sam686 Quit (Read error: Connection reset by peer)
23:50:43Watusimoto Quit (Ping timeout: 255 seconds)
23:53:00sam686 has joined
23:53:00ChanServ sets mode +v sam686
23:59:11raptorhaha - i guess i have the filter on

Index Search ←Prev date Next date→

These logs were automatically created by BFLogBot on irc.freenode.net.