#bitfighter IRC Log

Index Search ←Prev date Next date→

IRC Log for 2014-07-12

Timestamps are in GMT/BST.

00:05:54YoshiSmb_mPS: MESA + funny thing = it's a table...
00:06:35fordcarsHaha totally
00:06:44fordcarsIt's name proably comes from that
00:06:53YoshiSmb_myea
00:08:21YoshiSmb_mjust use a spanish traductor to traduct "Table", and you get "Mesa"
00:08:43YoshiSmb_m100% Legit
00:08:55YoshiSmb_m100% FPS
00:09:04YoshiSmb_m100% Secure
00:09:21YoshiSmb_mthe most saffest table in the PC
00:09:36YoshiSmb_m*safest?
00:10:32YoshiSmb_mYou wont get disaproved!
00:11:33YoshiSmb_mstrange fact about me is...
00:12:44YoshiSmb_m... that i dont remember the strange fact... (WHY BRAIN, WHY!!!)
00:13:56YoshiSmb_mwell!
00:14:06YoshiSmb_mgood night guys!
00:14:08YoshiSmb_m has left #bitfighter
00:16:45fordcarsWow
00:16:47fordcarsOk
00:21:41amgine123goodnight
00:25:48no_mu Quit (Ping timeout: 246 seconds)
00:25:48amgine123 Quit (Ping timeout: 246 seconds)
00:36:01no_mu has joined
00:36:12no_muWhat'd I miss? o.o
00:36:33fordcarsI donèt know haha
00:38:28no_muOh wit
00:38:29no_mu*wait
00:38:32no_muthere's a chatlog!
00:38:46fordcarsHahahaha of course!
00:39:04no_muAh I didn't miss anything :D
00:39:16no_muWhat'd you say "Wow" for fordcars ?
00:39:57fordcarsBecause I just came back to IRC and saw that hehe
00:40:16no_mulol
01:05:28sam686 has joined
01:05:28ChanServ sets mode +v
01:15:25fordcarsNight!
01:15:28fordcars Quit (Quit: Page closed)
01:28:34no_mu Quit (Quit: Page closed)
02:03:05Flynnn has joined
03:02:40sam686 Quit (Read error: Connection reset by peer)
03:15:23sam686 has joined
03:15:24ChanServ sets mode +v
03:17:44Akien has joined
04:49:52Flynnn Quit (Quit: This computer has gone to sleep)
04:50:31Flynnn has joined
04:56:08Watusimoto has joined
05:22:28Watusimoto Quit (Ping timeout: 264 seconds)
05:30:28Watusimoto has joined
06:20:35Akien Quit (Remote host closed the connection)
06:58:22Flynnn Quit (Quit: This computer has gone to sleep)
07:06:11destroyerimo has joined
08:06:50sam686 Quit (*.net *.split)
08:06:55ChanServ Quit (*.net *.split)
08:06:55destroyerimo Quit (*.net *.split)
08:06:55Watusimoto Quit (*.net *.split)
08:07:30destroyerimo has joined
08:07:30Watusimoto has joined
08:07:30sam686 has joined
08:07:30ChanServ has joined
08:07:30barjavel.freenode.net sets mode +vo
08:42:04sam686 has left #bitfighter
08:49:45YoshiSmb_m has joined
09:49:51Watusimoto Quit (Ping timeout: 240 seconds)
10:39:16raptor has joined
10:39:26ChanServ sets mode +o
10:59:40destroyerimo_clo has joined
11:02:21destroyerimo Quit (Ping timeout: 240 seconds)
11:26:40no_mu has joined
12:21:16destroyerimo_clo Quit (Ping timeout: 240 seconds)
13:04:52YoshiSmb_m Quit (Ping timeout: 240 seconds)
14:28:55destroyerimo has joined
15:22:56sam686 has joined
15:22:56ChanServ sets mode +v
15:43:40raptoroh hi sam686
15:44:14raptorif you were to do a fresh recompile, do you get a segfault on start-up?: http://pastie.org/pastes/9379350/text
15:44:28raptori think it is some sort of static-initialization-order problem, but I'm not sure
16:32:05fordcars has joined
16:33:26raptor Quit (Ping timeout: 240 seconds)
16:44:59sam686 has left #bitfighter
16:50:05Flynnn has joined
16:51:40Flynnn Quit (Remote host closed the connection)
16:52:48Flynnn has joined
16:56:30raptor has joined
16:56:30ChanServ sets mode +o
17:00:33YoshiSmb_m has joined
17:06:04YoshiSmb_m Quit (Remote host closed the connection)
17:06:30YoshiSmb_m has joined
17:17:44Watusimoto has joined
17:48:16fordcars Quit (Quit: Page closed)
17:52:04raptorhello Watusimoto
17:55:10raptorI wanted to verify your new GameSettings architecture
17:55:40raptorare we going to reference a gSettings everywhere? or are we still going to do a GameSettings:: namespace with static methods?
17:56:04raptorI ask because I'm still getting a segfault in Linux: http://pastie.org/pastes/9379350/text
17:56:26raptorand I think it is a static-initialization-order problem and so i wish to play with the settings object some
18:01:23LordDVG has joined
18:25:22Watusimotohi
18:26:06Watusimototo answer your question, I was thinking of doing gSettings everywhere... but I am open to other ideas
18:26:24Watusimotothe only idea I've mostly decided against is a singleton with a factory and all that
18:26:50Watusimotoif we could do things with all static methods, that would probably be ok too
18:32:35fordcars has joined
18:35:46no_muAnybody know how to Python?
18:37:20fordcarsWhat's up? I know the basics of python (but raptor knows a whole lot more ( I heard he was doing quite a lot of python lately))
18:39:16Watusimotohi
18:39:18no_mufordcars: Well did you finish the codecademy Python course?
18:39:23WatusimotoI know how to Python somewhat
18:39:50fordcarsI never tried it, but I did write a few Python scripts for RPi for getting the weather and Bitfighter status etc
18:40:18fordcarsIf you know how to Pyton, you *kindof* know how to write in any other languages (wel, the basics)
18:40:34fordcarsSince all languages are the same in the basics
18:40:49Watusimotothe concepts are generally the same, yes
18:41:01Watusimotoa loop is a loop, and almost every language has it, for example
18:41:10no_muI'm trying to figure out how this def shut_down(s) thing works
18:41:15fordcarsOf
18:41:17fordcarsOh
18:41:22fordcarsIt's a function
18:41:26no_muhttp://www.codecademy.com/forum_questions/5387cea09c4e9d976d0015c8
18:41:43fordcarsIt's needs indetation?
18:41:47fordcars*indentation
18:41:57YoshiSmb_m Quit (Remote host closed the connection)
18:42:02no_muIt already has that
18:42:05fordcarsOkokok
18:42:08Watusimototwo problems with that function
18:42:11Watusimotoindentation is wrong
18:42:14fordcarsOh wait
18:42:25Watusimotoand the initial return s will cause the rest to not run
18:42:33Watusimotoit never gets to the logic
18:43:07fordcarsYou have to write if shutdown(something)==something
18:43:12fordcarsdo something else
18:43:35fordcarsOr in another way if you want it to be useful
18:45:58fordcarshttp://pastie.org/9382382
18:46:10fordcarsIt's just for an example
18:46:34no_mu is now known as Nothing_Much
18:46:46fordcarsWait, can you pastie your code with indentation?
18:46:47Nothing_Much Quit (Changing host)
18:46:47Nothing_Much has joined
18:46:47Nothing_Much Quit (Changing host)
18:46:47Nothing_Much has joined
18:47:00fordcarsWait, can you pastie your code with indentation?
18:47:11fordcarsSorry
18:47:47fordcarsFor sending that twice
18:53:41fordcarsOhh waitup
18:55:08fordcarsI got to go, but http://pastie.org/9382413 should work
19:09:35raptorhello
19:10:36Nothing_Muchcodecademy is giving me such a headache
19:11:42raptorWatusimoto: ok, if gSettings, then I need to adjust a few things so I can get further in my diagnosis
19:13:10Watusimotodo you have a different preference? I actually don't like the gxxx thing because I've worked so hard to get rid fo them
19:13:27LordDVG Quit (Remote host closed the connection)
19:13:43raptorsomething in here or here?: https://stackoverflow.com/questions/1463707/c-singleton-vs-global-static-object
19:13:49raptorhttps://stackoverflow.com/questions/11999124/a-global-static-class-to-contain-data
19:15:58raptorit could be namespaced
19:16:11raptoror put into a 'Globals' class
19:18:13raptorI' not entirely sure I understand what you mean by 'factory'
19:26:48raptoroh, the: if null then new object construct
19:27:23raptorlooks like Brazil lost again...
19:30:50raptorhmm... the idea of doing a Globals class with a static member and a reference getter method sounds good...
19:30:59raptorit would solve initialization order problems
19:31:17raptormaybe we call it class 'G'
19:31:23raptorfor simplicity
19:31:43raptorbut i'll wait for you to check in whatever you have before I start tinkering
19:37:41Nothing_Much Quit (Ping timeout: 246 seconds)
19:57:16Watusimotoone advantage of gSettings is that it can easily be reset in the tests
19:57:46WatusimotoI've read that first link probably a dozen times over the years :-)\
20:02:34BFLogBot Commit: aa3aa11fb1 | Author: watusimoto
20:02:36BFLogBot Commit: 0d1dd6b6f7 | Author: watusimoto
20:02:37BFLogBot Commit: cd231e2e03 | Author: watusimoto
20:02:39BFLogBot Commit: 096a3cf2ac | Author: watusimoto
20:02:40BFLogBot Commit: b78b44aff8 | Author: watusimoto
20:03:18raptorgSettigns it is then!
20:05:12Watusimotoyes, it seems the least bad
20:05:37Watusimotounless it causes static initialization order errors
20:05:41raptorc++: the code that strives for the least bad!
20:05:50Watusimotoyes, exactly!
20:06:16WatusimotoI love c++ the way I love my alcoholic uncle
20:06:30Watusimotoyou just have to accept it for what it is
20:07:00raptorha
20:07:44raptorif you're done for the night... I'll start tinkering with my issue
20:08:34Watusimotomostly yes
20:09:02raptorpart of it, i think has something to do with the FolderManager object on the GameSettings object
20:09:02WatusimotoI'm working on a team manager crash in the editor, but I don't know how far I'll get and it will have no bearing on anything you are doing
20:09:08raptorok
20:09:22raptordo we need to make FolderManager static anymore on GameSettings?
20:09:32Watusimotomostly removing references to game, which now make the editor furious
20:09:53Watusimotoprobably not; I don't know
20:10:03Watusimotodo whatever works and seems best
20:10:16raptorcarte blanche!
20:10:22raptor.. if i spelled that right
20:10:44Watusimotoyou did
20:11:13raptorfor that matter... should any member of GameSettings be static?
20:11:27WatusimotoI suppose not...
20:15:02BFLogBot Commit: 0e1ad465cd | Author: buckyballreaction | Message: Move gSettings into a compilation unit that makes sense. Also make the FolderManager member non-static
20:15:05raptorThis commit doesn't fix anything, but cleans up a little bit..
20:20:04Watusimotook, good night!
20:34:17raptornight!
20:34:18kaen has joined
20:37:06BFLogBot Commit: 76ed038eb0 | Author: kaen | Message: missing semicolon
20:38:04raptorkaen: you committed!
20:38:18kaenmy new rig almost freezes at -j8 because I need more ram
20:38:20kaenbut at -j7
20:38:28kaenit's what I imagine riding a harley is like
20:38:36raptorhow fast does it do the compilation?
20:38:47kaen73 seconds when I last timed it
20:39:54raptorgreat!
20:40:46kaenI was sure 8GB was more than I could even use
20:40:50kaennow I need a second stick lol
20:40:59raptorhaha
20:41:27kaenbut it goes from power-on to fully-loaded desktop in about 10 seconds
20:41:41kaenincluding grub and POST delays
20:42:10kaenI think most of that is because it's booting from an SSD
20:42:30kaenbut the best part
20:42:41kaenis that blending works in bitfighter!
20:44:05raptorless pixely!
20:44:54raptordoes the game feel quite different?
20:47:46kaenyes, makes it look much more polished
20:50:08raptorok, before I start using the gSettings object everywhere, please convince me not to
20:51:18Watusimoto Quit (Ping timeout: 264 seconds)
20:57:38raptorthis is watusimoto's reason for starting the gSettings object: http://bitfighter.org/irclogs/index.php?date=2014-07-07#l53
20:59:02kaenI was trying to think of an argument against it
20:59:10kaenand I came up with the same conclusion
20:59:15raptori think we all agree that it's ugly
20:59:47raptorbut the more I read about 'static' the more I think we're adding bugs when we use it...
20:59:55kaenthe two problems I know of are testing and the implicit coupling that a shared global reference causes
20:59:59kaenpotentially
21:00:12kaenespecially if things are modifying it when other things expect it not to be modified
21:00:25raptorah, so thread-safety, you mean
21:00:26kaenbut, I haven't seen evidence of that particular problem before
21:00:36kaenor just execution control safety
21:01:14kaenif A is using the settings, then invokes something in B during that process which modifies them, you have to code A to accommodate that, or you'll get a bug
21:01:44kaenbut, if he's got the testing problem sorted, then I guess it's a sin for the greater good
21:01:49raptorah i see
21:02:29kaenbut we only have one instance anyway, so the fact that there's an easy to reach global ref doesn't hurt anything
21:03:58kaenbut the tests don't compile...
21:04:02kaenlet's have a look
21:04:22raptorSIOF
21:04:28raptorstatic initialization order fiasco
21:04:39raptoris my current problem - everything compiles... but segfaults
21:05:36kaeneverything compiles for you?
21:05:46kaenbefore my last commit?
21:05:58raptoryes... which makes me curious
21:06:02raptorbecause it shouldn't have
21:06:11raptorto the make clean!
21:07:06raptoroh, I'm using the cmake option: -DMASTER_MINIMAL=1
21:07:11kaenoh
21:07:14raptorwhich probably helps...
21:07:19kaenI'm not familiar :x
21:07:29raptoryeah, i've redone much in the cmake system
21:07:34raptoryou need cmake 2.8.8 now
21:07:41kaencool!
21:07:49raptorand there are nice libraries compiled and shared and everything now
21:07:50kaendid you kill libmaster?
21:08:00raptorI made it work instead :)
21:08:03kaenoh that's right
21:08:15kaenI couldn't remember if it was my idea or yours lol
21:08:17kaenbeen a while
21:08:18raptorok, tests fail to compile
21:08:32raptorI think it was your idea, but I found a solution with cmake 2.8.8
21:09:19raptorok tests are beyond broke
21:13:19raptorwhat on earth
21:13:28raptorwe're in this quasi GameSettings state
22:14:10raptoryay the game starts up!
22:14:16BFLogBot Commit: ad7838294c | Author: buckyballreaction | Message: Fix static initialization order fiasco problem with gSettings -> FolderManager -> gSqlite
22:14:17raptorbut now i think it overwrote all my settings!
22:14:45raptorit did it again!
22:26:45raptorkaen: what about using something like this for a global object?: https://stackoverflow.com/a/1008289
22:31:53fordcarsHello
22:34:38raptorhi
22:42:29kaenI think I've proposed singletons before, I'm a big fan myself
22:42:43raptordoes that solution look ok to you?
22:43:02kaenthose are mostly meant to solve static initialization order problems
22:43:21kaenthe difference between a global variable and a static class variable is mostly the name :P
22:43:42raptorha
22:43:55kaenthey're usually considered to be bad for testing, like globals
22:44:28raptorwell our testing is currently borke
22:44:31raptor*broke
22:44:35kaenindeed
22:44:58kaenso, for now
22:45:01raptorbut before I go further and clean up the GameSettings object, i want to make sure I have instantiated it well
22:45:15kaenI think there's nothing wrong in using gSettings
22:45:16kaenoh
22:45:19kaenok, in that case
22:45:23kaentotally use a singleton
22:45:25raptorright now in GameSettings.cpp it is just: GameSettings gSettings;
22:45:36raptorand in the .h: extern GameSettings gSettings;
22:45:42kaenright, that works. unless we mess with it during static init?
22:45:48kaen(do we?)
22:45:52raptoryes we do
22:45:54kaenok
22:45:57raptorthat was my last commit
22:46:00raptorto fix some of that
22:46:01kaenthen I stand corrected
22:46:03kaenok
22:46:13kaenyes, that's exactly what a singleton's for
22:46:50raptorso I could change the caller of gSettings to be GameSettings::get() or something liek that with this singleton pattern i referenced in that last link
22:52:06YoshiSmb_m has joined
22:54:28YoshiSmb_m has left #bitfighter
22:57:02raptormaybe we should just create a class called 'Bitfighter' in main() and do Bitfighter->run();
22:57:10raptorthen put GameSettings on that...
23:00:58kaenI think that's a genius idea
23:01:15raptorwait what, really?
23:02:11kaenoh, I don't know about putting the class in main
23:02:19kaenbut having a bitfighter class makes sense
23:02:55kaenI guess that's what Game tries to be
23:03:16kaenthe things that are the same between server and client
23:03:35raptorbut now watusimoto is extracting ClientGame from the editor
23:05:25kaenI think he's also doing some work involving (client) game vs. gametype
23:05:50kaenso I guess his work might cover our "bitfighter" class
23:06:40kaenGameSettings::get() is perfect
23:06:45kaenI didn't read that
23:07:10raptorthen I wouldn't need the extern and run into initialization order problems
23:08:18kaenI think we should go a step further and do that for any other globals we happen upon
23:08:34raptoryes I agree
23:08:37kaenbecause that's totally something we can override in a test
23:08:43kaenor inject
23:09:44raptoroh actually - I'm not sure I can see how a singleton woudl work in tests
23:09:53raptorwhich is probably why nothing works right now..
23:10:29raptorsince we have several tests that want to set up certain settings
23:10:40raptormaybe it doesn't matter - they'll override it anyways
23:13:34raptorall this research is now making me think a singleton isn't necessary and that maybe watusimoto was being lazy while sleepy...
23:15:35fordcarsGahh I keep getting an unresolved external
23:15:44raptormake clean!
23:16:01fordcarsI added an external at first, everything was fine, I add another one, and it blows uh
23:16:04fordcarsOh lol really?
23:16:23raptorif you're compiling the latest bitfighter code, you should do a make clean
23:16:29raptoralso don't expect things to work right
23:16:39raptorlike uh... any settings
23:16:46raptoror directories
23:16:50raptoreverything is broke
23:17:04fordcarsOk thanks :)
23:18:59raptorargh, yeah... the gSettings is bad for tests
23:19:04raptorargh argh argh
23:31:04kaenyou can just add a static setInstance method for tests
23:44:23Flynnn Quit (Quit: This computer has gone to sleep)
23:45:42raptorback later
23:45:46raptor Quit ()
23:46:41Flynnn has joined

Index Search ←Prev date Next date→

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