#bitfighter IRC Log

Index Search ←Prev date Next date→

IRC Log for 2013-08-01

Timestamps are in GMT/BST.

00:06:18Flynnn Quit (Quit: This computer has gone to sleep)
01:07:08koda has joined
01:15:03Flynnn has joined
01:43:07watusimoto has joined
01:43:07ChanServ sets mode +o
02:49:06LordDVG has joined
03:07:15Flynnn Quit (Quit: Leaving)
03:24:24Flynnn has joined
03:42:23Flynnn Quit (Quit: This computer has gone to sleep)
04:35:35LordDVG Quit (Ping timeout: 276 seconds)
04:36:27LordDVG has joined
05:04:09LordDVG Quit (Ping timeout: 240 seconds)
08:55:40bobdaduck has joined
09:36:09bobdaduckNOOOOOOOOOOO
09:36:50bobdaduckLINE ITEMS AREN'T VISIBLE TO ALLLLL
09:38:45watusimotoI think they are in 019
09:38:50watusimoto*think*
09:40:07bobdaduckThey are
09:40:10bobdaduckbut like
09:40:18bobdaduckI CAN'T WAIT THAT LONG TO SHOW STUFF OFF.
09:41:12bobdaduckalso
09:41:31bobdaduckwhat's the maximum objects that can be held visibly?
09:42:54kaen2048 is the scope limit
09:43:03bobdaduckOkay
09:43:10bobdaduckI'm hitting that in ~20 seconds
09:43:12kaentnl will drop objects if it's using too much bandwidth on though
09:43:19bobdaduckCan we increase that?
09:43:26kaenwe did 019
09:43:42bobdaduckk
09:43:43kaenI even made a cool little scoping test
09:43:55bobdaduckhow do I grab the latest 019?
09:44:03bobdaduckBFBuildBot: build something!
09:44:03BFBuildBotWhat you say!
09:44:20bobdaduckThat's probably the second best generic response ever
09:44:26bobdaduckthe first best being the calvin and hobbes quotes
09:44:44kaenI'm going to rewrite buildbot
09:44:56kaenI'm just using the stock irc bot, but it annoys me...
09:45:07kaenhttp://buildbot.bitfighter.org:8010/latest/
09:45:09kaenbookmark that
09:45:13kaenit's always up to date
09:45:48raptor has joined
09:45:48ChanServ sets mode +o
09:45:55bobdaduckgoodmorning raptor
09:46:02bobdaduckI got the paint script working
09:46:04raptorgood morning
09:47:25kaengood morning
09:47:28raptorpaint script?
09:47:35kaencan we change readFromFile to readFile ?
09:47:53raptoruh, sure
09:47:55bobdaduckhttp://pastie.org/8197058
09:48:00raptori don't remember why I made it that way..
09:48:09raptorbecause writeToFile needed to match?
09:48:10bobdaduckplug that in to any level
09:48:15bobdaduckor make it a gloabal script
09:48:16bobdaduckyeahhhh!
09:49:01kaenand then I was thinking we should make a util object
09:49:07kaenfor stuff like getRandomNumber
09:49:28kaenbecause putting that function on the same class as addItem() feels wrong ...
09:49:32bobdaduckif I call ship:isModActive()
09:49:32raptorwell
09:49:34raptorit's not
09:49:41bobdaduckwill that return true if there is a mod active?
09:49:49raptorthey are static methods that are accessible outside of the 'bf:' object
09:50:31kaenoh I see
09:50:32raptoryou have to use bf:addItem, but it's just writeToFile()
09:50:32kaenok then
09:50:48raptorbecause I thought those util methods that are outside of game stuff should be separate
09:50:57kaenyep I agree
09:51:17kaencan we put them into a util namespace?
09:51:34kaenthat way it's clear when reading scripts what is and isn't builtin
09:51:56kaenif all builtin functions are namespaced or class methods
09:52:21raptorsooo.... this was a problem I ran into
09:52:38raptorbecause in order for them to be in a namespace, they need a separate object
09:52:47raptorand...
09:52:57raptorbecasue of LuaW
09:53:08raptoractually maybe not
09:53:19kaenyeah, I'm thinking of util.readFile()
09:53:25kaenrather than util:readFile()
09:53:36kaenso like just hang them all on a table and call it util
09:54:40raptorahh... that's a better idea
09:55:38raptorwhat do you think watusimoto?
09:55:47watusimotouh what? sorry... reading
09:55:50raptoris 'util' too generic?
09:55:58raptorbfutil.getMachineTime()
09:56:36kaenI don't think so. you're writing a script for bitfighter
09:56:41kaenthe bf is kind of implicit
09:57:00raptorbobdaduck: you didn't...
09:57:02kaenI don't know actually... now I'm wavering
09:57:07watusimotoutil.readFile() ?
09:57:17watusimotopersoanlly... I dislike it
09:57:18watusimotohowever
09:57:23watusimotoit is the lua way
09:57:34watusimotostuff like math.sin()
09:57:37raptoreverything global!
09:57:40watusimotoand table.whatever
09:58:05watusimotoI like general keywords, not namepsace partitioned stuff
09:58:21watusimotohowever... I can always do whatever = table.whatever
09:58:27raptori found something neat the other day, if you do sin = math.sin at the top of your script, it is more performant to use that 'sin' than call math.sin
09:58:32watusimototo create my own little cozy environment
09:58:40kaenI'd never thought of that
09:58:44watusimotoyes -- locals are cheaper than globals
09:58:44kaenokay, while we're all here
09:58:51kaenhow does script inclusion go?
09:58:51watusimotoin a tight loop it can make a difference
09:59:10watusimotoI will accept bfutil or util or whatever, but over mild protest
09:59:16kaen(we can still include scripts, right?)
09:59:56raptori think so?
10:00:05raptorwhat does the sandbox allow?
10:00:25kaenif not it'd be nice to expose it
10:00:33raptorhmmm....
10:00:44watusimotoinclude scripts ==> import ?
10:00:49kaenyeah
10:00:55raptorlooks like
10:00:55watusimotowe definitely want that
10:00:59kaenok good
10:01:03raptorsandbox kills it
10:01:05raptorBUT
10:01:18raptorwe set up an 'include' method in lua_helper_functions.lua beforehand
10:01:29kaenso, how to specify the exports?
10:01:35kaendo we just merge the global tables?
10:02:04kaenanother way to do it is to have an _export local variable, and have include() return the value of that
10:02:10bobdaduckI did!
10:02:21kaenso in your script you can do `local lib = include('library.lua')`
10:02:23bobdaduckI hit the object limit in less than 20 seconds with only one player!
10:02:55kaenwhich is pretty much ripping off node.js ...
10:03:28kaenbut it allows you to not care about polluting client code's globals
10:03:34watusimotobobdaduck: the reason we have object limits is that it really kills network performance
10:03:46raptorbobdaduck: did thread help you?
10:03:50bobdaduckNo
10:03:53bobdaduckI just barely did that
10:03:56raptorare you protecting him?
10:04:03kaenlol
10:04:06bobdaduckrofl
10:04:20bobdaduckI asked thread for help but got impatient this morning
10:04:23watusimotoI've always thought that in small projects, there is rarely a real danger in polluting the global environment
10:04:51bobdaduckpshhh network performance
10:04:52kaencorrect, but it gets sticky once we have uses writing libraries
10:04:57kaenusers*
10:05:00bobdaduckI'll just make the level only like a minute long and we'll be fine
10:05:25watusimototrue -- but those libraries would have a lib. type prefix, no?
10:05:35kaenfor every global they expose?
10:05:45kaennot expose -- declare
10:05:48kaenfor private use
10:06:07kaenif we merge the globals indiscriminately then all of my private lib functions get mixed in with bobs
10:06:21kaenunless I start doing IIFEs and returning exposed object literals
10:06:43watusimotook, I think I'm thinking of a different topic :-)
10:06:49kaenoh ok
10:07:05kaenI'm still on the mechanics of include()
10:07:54kaenlocally you can call the library whatever is convenient
10:08:05kaensince you're just storing the return value of include() in a local variable
10:09:34bobdaduckI added a check for if the ship isn't moving and increased the scripts lifetime to 45 seconds!
10:10:36raptorbobdaduck: maybe you could add a distance check to make line segments no shorter than some amount
10:11:14bobdaduckWell actually it would probably make things wayyy better if I made it so it added segments up to 32 segments, instead of making a whole new line Item each tick
10:11:29bobdaduckbut then I would have to like, do actual work
10:14:09bobdaduckOkay so now testing in 019...
10:14:20bobdaduckI'm not seeing a level clock
10:14:32bobdaduckI like the scrolling level list in the editor
10:14:37raptorline items are invisible in 018 when you add the team?
10:14:45bobdaduckeverything works great
10:14:50bobdaduckyeah
10:15:20bobdaduckasteroid spawns are cool
10:16:14bobdaduckEven DnD is running in latest 019 without having to make any levelgen script changes...
10:16:26raptor:)
10:16:33raptorthanks to my deprecation work!
10:16:40raptoryou should be getting warnings though...
10:16:44bobdaduckyeah
10:16:45bobdaducktons of them
10:16:46bobdaduckxD
10:16:49raptoroh good
10:16:54raptormay they inspire you
10:17:06bobdaducklike I'm pretty sure if I printed them out I would have about 30 sheets of paper worth of deprication warnings
10:17:13bobdaduckalso there is a number underneath my ship
10:17:23bobdaduckthat changes colors randomly
10:17:35Skybax has joined
10:17:42bobdaduckalso 019 is way more performant
10:17:42raptorjust pretend that doesn't exist for now... watusimoto has big plans for it
10:18:20bobdaduckEven levelgen carnival works fine
10:18:22watusimotothat number is the number of kills you have, lifetime total\
10:18:30raptori thought it was games played
10:18:37watusimotowill be converted into some sort of icon to show your awesomness
10:18:43watusimotoah, yes, in fact it is!
10:18:45watusimotojust testing you!
10:18:50watusimotoyou passed!
10:18:56bobdaduckrofl
10:19:03raptorA+!
10:19:27bobdaduckholy crap
10:19:32bobdaduckI forgot 019 was so awesome
10:19:34SkybaxxD
10:19:36bobdaduckwhen are we releasing again?
10:20:16raptoruhh
10:20:18raptoryes
10:20:19kaengood question :)
10:20:38kaenthoughts, wat?
10:21:23watusimotowe really
10:21:31watusimotoneed to triage the 019 todo list
10:21:40kaenyes
10:21:41watusimotothe inline help is mostly there
10:21:56watusimotoI want to do a little more cleanup of fonts and making things pretty
10:22:01raptorI *almost* done with my Lua clean-up,e tc...
10:22:03kaenI think leveldb is solid now
10:22:05watusimotothose have been my two big pushes for 019
10:22:15watusimotowe really need to add more achievements
10:22:19kaenagreed
10:22:20watusimotowe skimped on this in 018a
10:22:23kaenyeah
10:22:36watusimotoaand now there is more room in the help to show them :-)
10:22:42kaenhehe
10:23:18watusimotoI think we should definitely add a killstreak badge to go along with our new killstreak tracking
10:23:23kaendefinitely
10:23:24kaenok
10:23:26kaenhow about this
10:23:27watusimotomaybe 3 tiers at 5, 10, and 20 ?
10:23:36kaencan we call a feature freeze?
10:23:44watusimotowe... can
10:24:07watusimotowe should go through the items in the bug list and those that we want to defer should be tagged with 020
10:24:12kaenagreed
10:24:24watusimotowe have tons tagged with 019
10:24:27kaenyes
10:24:49watusimotoso once we have a more focused 019 list, we should be able to figure out when we can do a release
10:24:52kaenhow about, let's mass-tag them 020, and pull back any that we *really* want in 019
10:24:54watusimotoat least in theory :-)
10:25:13watusimotothat might be a good approach
10:25:16kaenok
10:25:17kaenI'll do that
10:25:32kaenthen the three of us can pick any that look important and discuss as needed
10:25:33watusimotoalso, can I ask you to port over any remaining issues in the informal bug tracker to the formal one?
10:25:37kaenyep
10:25:41watusimoto(since you pushed us to start using that)
10:25:43kaenI'd be glad to :)
10:25:49watusimotothen you can have the pleasure of deleting the old one!
10:25:52kaen\o/
10:26:48raptorand i'll just keep working on Lua API stuff..
10:27:17raptorshould I rename hasLosPt to something else?
10:27:22raptorlike 'canSeePoint'
10:27:27raptorbot:canSeePoint
10:27:28kaencanSeePoint
10:27:31watusimotosure
10:27:31kaenyes
10:27:36watusimotobtw, which do you prefer:
10:27:37raptoryay
10:27:37watusimotostring strVal = settings.getSetting("strName")->getValue<string>();
10:27:38watusimotoS32 S32Val = settings.getSetting("S32Name")->getValue<S32>();
10:27:38watusimoto== or ==
10:27:38watusimotostring strVal = settings.getSetting("strName")->getValue();
10:27:38watusimotoS32 S32Val = settings.getSetting("S32Name")->getValueI();
10:27:55raptoruhh
10:28:07watusimototwo possibilities for accessing a setting by a name
10:28:07raptorI see templating in that
10:28:14watusimoto(here strName and S32Name)
10:28:39raptorI think both look ugly and i never want to look at c++ again
10:28:39watusimotoI added a settng recently and was dismayed at all the places I had to change code
10:28:40kaenwait
10:28:44bobdaduckI need you guys to release 019 in exactly a week from now, kay?
10:28:46kaenisn't the themplate parameter implicit
10:28:50kaen?
10:28:55watusimotoI don't think so
10:28:56kaensince you have the assignment
10:29:07watusimotobut since I can't get the top one to work (yet) I can't say for sure
10:29:09kaenok I must be crazy
10:29:21bobdaduckBecause like, you should coincide the release of 019 with my 019th birthday
10:29:21watusimotoIf it was, then the answer would be clear
10:29:40watusimoto(and it may be, just can't tell yet)
10:31:05watusimotorelated SO question
10:31:06watusimotohttp://stackoverflow.com/questions/17994833/templates-inheritance-and-virtual-methods-c
10:31:19watusimotofor those of you who do want to see C++ again
10:31:46raptorback in a bit (starting a marathon of meetings...)
10:31:58raptoroh look, that post looks exactly.. like.. hmmm....
10:32:00bobdaduckHave fun
10:34:41kaenugh
10:34:59kaenoutput arguments ...
10:53:31kaenhttp://stackoverflow.com/a/8165847/1255585
10:53:48kaenso, c++ doesn't deduce by assignment :<
10:53:57kaenthat was just wishful thinking
10:54:21kaenbut there's a solution with that syntax the overloads the cast operator
10:56:27watusimotoso yes, the <bkah> is required
10:56:52watusimotoso my question still stands... getValue<S32>() or getValueI()
10:57:07kaenwait, there might be something to this cast overload
10:57:08watusimotoI think getValueI reads a bit better...
10:57:21watusimotooh sorry, didn't see your link
10:57:32kaenif you return an AbstractSetting from getValue, then you can "cast" it to int, string, etc
10:57:43kaenthrought Setting<T>
10:58:21watusimotothat *might* be better
10:58:29watusimotoor might not
10:58:55watusimotoin any event, I've got to roll... I'll read that link tonight and see what I can do
10:58:56kaenwell, the operator overload code should be like four lines for each type
10:58:58kaenlater
10:59:21watusimotoMy main concern is readability and anti-yuck factor... 4 lines is nothing!~
11:04:56watusimoto Quit (Ping timeout: 276 seconds)
11:12:08bobdaduck Quit (Read error: Connection reset by peer)
11:13:17bobdaduck has joined
11:15:44koda Quit (Ping timeout: 264 seconds)
12:09:40SkybaxI just noticed all the Google Code thingys are labeled 020 now lol
12:16:03kaenI just did that
12:16:15kaenwe're triaging to see what needs to be in 019, and what can wait
12:20:46bobdaduckRelease!
12:25:35raptorI don't think we want to release right now...
12:25:41raptorwe need to do balance testing..
12:26:24bobdaduckOkay
12:26:26bobdaduckYou have 7 days
12:26:51bobdaduckWhat do we need to balance? I thought we already tested that like months ago
12:27:12raptorpeople said some stuff, raptor tweaked some stuff... that was all
12:27:29kaenmore generally, we just need play testing
12:27:31bobdaduckIts not like we made any drastic changes
12:27:37bobdaduckI mean, suns still aren't there
12:27:45raptori'd watch out for bouncers...
12:28:04kaendidn't we actually rebalance most of the weapons?
12:28:05bobdaduckAll you did was increase their life?
12:28:18kaenor did that stuff never make it in?
12:28:24raptoryeah, i rebalanced most of them a bit
12:28:28bobdaduckI think most of the weapons are rebalnced
12:28:29kaenok
12:28:30raptorno it's in
12:28:34bobdaduckTriple is actually useful now...
12:28:36raptorit just neesd playtesting
12:28:42kaenyes
12:28:51kaenwe need like though, semi-systematic playtesting
12:28:57kaenthorough*
12:29:04raptorsam686 and I used to do that
12:29:08kaen:/
12:29:14kaenunit tests are supposed to do that
12:29:19raptorwe'd play for like 2 hours, going through crazy levels
12:29:19bobdaduckThough personally I'd prefer seekers take less energy over seekers doing more damage
12:29:26bobdaduckI have those!
12:29:27raptorfor several nights in a row...
12:30:04kaenmaybe we can organize the elders to playtest after we've done the freeze and cleared the tracker
12:30:17kaensince nobody has to compile anything
12:30:33raptorhaha, 'the elders'
12:30:43raptorbut yeah, that's a good idea
12:31:46kaenalso, I've already made my pass over the tracker
12:32:20SkybaxYou should release it to be playtested and then release a 019a or whatever if you need to tweak it more x)
12:32:39kaen:P
12:32:51raptorbad idea
12:32:57raptori mean BAD
12:32:59raptorlike
12:33:01SkybaxHahaha
12:33:16raptorso much has changed that I cannot guarantee any sort of stability
12:33:35kaenconversely, I guarantee brokenness
12:36:18SkybaxI edited some of my contest levels
12:36:29bobdaduckCan I get a warranty on that kaen?
12:36:38bobdaduckLike if it stops being broken can I get like a refund or something?
12:36:44kaenyou bet
12:36:48bobdaduckKay good
12:36:54kaenin fact, I'll give you back double what you paid
12:36:54bobdaduck'cause that's like my staple
12:37:08bobdaduckExcellent! Now this is a dev team I'll stand by!
12:41:04Little_Apple has joined
12:51:38LordDVG has joined
13:03:28raptorSkybax: you can post them on that same thread, or put put them in the relevant forum
13:05:48SkybaxOtay
13:07:34Flynnn has joined
13:09:41bobdaduck Quit (Ping timeout: 264 seconds)
13:31:23bobdaduck has joined
13:34:39kaenlua syntax highlighting on pleiades!
13:39:19raptorlooks good
13:39:38Little_Apple Quit (Ping timeout: 250 seconds)
13:40:11bobdaduckoooh
13:40:13bobdaduckfancy
13:40:25bobdaduckbut wait
13:40:29bobdaducklook at the paint level
13:40:35bobdaduckand look at the first line of the levelgen
13:41:35kaenlooks fine to me
13:41:40kaendid you deep refresh?
13:42:08bobdaducknope
13:42:12bobdaduckthat fixed it xD
13:42:19bobdaduckI was seeing javascript/html stuff
13:49:48kaen(playerArray[name]["position"].y ~= playerArray[name]["lastPosition"].y or playerArray[name]["position"].x ~= playerArray[name]["lastPosition"].x)
13:50:12bobdaduckDon't ask
13:50:15bobdaduckIt had to be done
13:50:29kaenwould be better written as
13:50:30kaenpoint.distanceTo(playerArray[name]["position"], playerArray[name]["lastPosition"]) < THRESHOLD
13:50:48bobdaduckWell
13:50:51kaencomparing floating point numbers for equality is bad
13:51:07bobdaduckI was trying to just make it not make lines if you're not moving
13:51:47bobdaduckbut there was a lot of weird things with that. Like if the x vel was nonzero and the y vel was 0, it would still count that as stationary
13:51:56bobdaduckAnd then I tried a bunch of things
13:52:11bobdaduckand decided that if your position is the same as where you were a tick ago, you're not moving.
13:52:15bobdaduckAnd that method worked. SO.
13:53:18kaenBFBuildBot lua print(1.500000000000000001 == 1.5)
13:53:22kaenBFBuildBot, lua print(1.500000000000000001 == 1.5)
13:53:23BFBuildBotkaen, true
13:53:29raptorhahahaha
13:53:55kaenfloating point \o/
13:54:01bobdaduckBFBuildBot, lua print("yes sir")
13:54:01BFBuildBotbobdaduck, yes sir
13:55:53bobdaduckbuildbot doesn't respond to private queries
13:56:34kaenit does indeed
13:56:38kaenI was just doing it :P
13:56:51kaenyou have to type "lua" before each message though :<
13:56:51bobdaduckOh
13:56:55bobdaduckSo he's prejudice
13:57:25kaenand you have to drop the BFBuildBot, part
13:57:43bobdaduckoh okay.
13:57:43kaenyeah... he's getting rewritten today
13:57:47bobdaduckxD
13:57:56kaenfunctionally, he's nice, but syntactically he's a nightmare
13:57:58bobdaduckThat's okay, I was never really close friends with him
13:58:15bobdaduckLogbot and I are pretty close though
13:58:17bobdaduck!bot
13:58:17BFLogBotI'm a real boy!
13:59:17raptorBFBuildBot: lua fn = loadstring('\27\76\117\97\81\0\1\4\8\4\8\0\47\0\0\0\0\0\0\0\114\101\116\117\114\110\32\102\117\110\99\116\105\111\110\40\41\32\10\112\114\105\110\116\40\34\72\101\108\108\111\32\87\111\114\108\100\33\34\41\10\10\32\101\110\100\0\1\0\0\0\4\0\0\0\0\0\0\2\4\0\0\0\5\0\0\0\65\64\0\0\28\64\0\1\30\0\128\0\2\0\0\0\4\6\0\0\0\0\0\0\0\112\114\105\110\116\0\4\13\0\0\0\0\0\0\0\72\101\108\108\111\32\87\111\114\108\100\33\0\0\0\0\0\4\0\
13:59:17BFBuildBotraptor, lua: (command line):1: unfinished string
13:59:18raptor0\0\2\0\0\0\2\0\0\0\2\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0') fn()
13:59:21raptorrats
13:59:27kaenooh that looks scary
13:59:58bobdaduckxD
14:01:57Flynnn Quit (Quit: This computer has gone to sleep)
14:04:08kaenuh oh ...
14:04:18kaenBFBuildBot, lua os.execute('date')
14:04:19BFBuildBotkaen, Fri Aug 2 00:05:17 MSK 2013
14:04:27raptorha!
14:04:37kaenummm ...
14:04:38kaenyeah.
14:04:40raptorooooo
14:04:44raptornon-sandboxxed!
14:04:44bobdaduckwhat?
14:04:55raptortime to overwrite arbitrary files
14:05:00bobdaducklol
14:06:19raptorBFBuildBot: lua f = io.open("nomnom.txt", "a+") f:write("I eat your files for breakfast") f:close()
14:06:19BFBuildBotraptor,
14:06:31raptordid it do it?
14:06:45kaenchecking
14:06:56Flynnn has joined
14:07:17kaenbitfighter@pyrop:~/master$ cat nomnom.txt
14:07:17kaenI eat your files for breakfastbitfighter
14:07:38raptorha haha
14:07:50kaenat least you were courteous enough to close the file descriptor :P
14:07:55bobdaduckxD
14:07:59raptorhehe
14:08:28SkybaxSo much codeyness
14:08:57SkybaxI got a free 4.5 GB USB wristband from the interwebs
14:09:03SkybaxFinally using it
14:09:29raptori would be interested in looking at the energy to matter converter that would be required to get one like that..
14:10:09bobdaduckWhere'd you get it?
14:10:26SkybaxMe?
14:10:29bobdaduckyah
14:10:34Skybaxwish.com
14:11:25SkybaxThey gave me a free giftcard for select items and the wristband was one of them... but the price of the wristband was less than the amount the giftcard was, so I essentially got it for "free".. there was still like $2 shipping
14:12:17FlynnnSo how did they make money giving you a free giftcard?
14:12:27SkybaxThey didn't. At all
14:12:43bobdaduckthey're hoping he is pleased with the service and comes back
14:12:49SkybaxIt's rare that a giftcard is worth more than an item, tho
14:12:49Flynnnfair enough
14:13:04kaenfour-letter domain name like that, they probably have good VC backing
14:13:09Flynnnthey seem to have succeeded
14:13:11SkybaxI have boughten multiple things from them, so I guess it worked out in the end
14:13:31SkybaxI got a gaming mouse for free too lol
14:13:46kaenhe got a free wristband, they got cheap advertising and now everyone in this conversation has heard of them :P
14:13:55SkybaxThey should hire me
14:14:05kaenor give you more free things at least :P
14:14:06Flynnnlol
14:14:10SkybaxYes xD
14:14:40bobdaduckI'm out of ideas for levelgens...
14:14:50bobdaducksort of.
14:14:55SkybaxDoes this link work? http://instagram.com/p/Z9IJq3oYO9/
14:15:01bobdaduckI have my todo list but none of them sound fun...
14:15:28Flynnnlol it says "gaming mouse" on it, quite literally
14:15:45SkybaxYes it does xD
14:15:55bobdaducklink is blank for me
14:16:00SkybaxHuh
14:16:03Flynnnwell, congrats on the good deal :)
14:16:09SkybaxThanks!
14:16:25Flynnnbe careful, they have your facebook now
14:16:44SkybaxWho does?
14:16:48Flynnnwish.com
14:16:53SkybaxAh. Yes they do
14:16:59Flynnnand your mailing address too
14:17:02SkybaxYou can only use wish if you have a Facebook
14:17:09Flynnnhmmm now that right there
14:17:13kaenahh
14:17:14kaen$$$
14:17:21FlynnnI wonder if *that* might be a source of revenue
14:17:25SkybaxPossibly
14:17:33Flynnndid you check their privacy policy
14:17:33Flynnn?
14:17:51SkybaxI didn't. But there's nothing on my Facebook that I'm worried about hiding, anyways
14:17:54koda has joined
14:18:08kaenthat's a good way to look at it.
14:18:13Flynnnoh dang
14:18:19Flynnnoh, that's good
14:18:21Flynnnbut look at this:
14:18:26Flynnn"The Information We Collect, How We Collect It, And How We Use It."
14:18:38Flynnnthey say, one of the information they collect is
14:18:43FlynnnContact Information that allows us to communicate with you -- including your name, address, and e-mail address;
14:18:49FlynnnWe collect information in two primary ways:
14:18:56FlynnnYou give it to us when you login with your Facebook credential;
14:18:57FlynnnWe collect it automatically when you visit our websites or use our products and services.
14:19:04Flynnnand now, here is where it gets sketchy
14:19:08FlynnnWe may use the information we collect in a variety of ways, including:
14:19:18FlynnnCommunicating with you regarding service updates, offers, and promotions;
14:19:23FlynnnDelivering customized content that may be of interest to you;
14:19:30FlynnnIE
14:19:36Flynnnwe may send you promotions that have nothing to do with us
14:19:43SkybaxThat's why I have a Gmail
14:19:49SkybaxI never get spam
14:19:53Flynnnlol nice
14:19:59kaenthat's actually a pretty nice policy
14:20:11kaenit doesn't mention "sharing" the data with "third parties" ?
14:20:22FlynnnWith ContextLogic Products: Subject to applicable legal restrictions, ContextLogic products may share your Personal Information with each other to make sure your experience:
14:20:23SkybaxWish does send me emails, but they're mostly to do with sales, giftcards, and items they have that they think I might like
14:20:41kaenprogressively dicier ...
14:20:56SkybaxDiciness is the spice of life x)
14:21:02FlynnnIs as seamless as possible;, Benefits fully from what ContextLogic has to offer.
14:21:12Flynnn"what contextLogic has to offer"
14:21:13Flynnnhmm
14:21:17Flynnnlike promotions?
14:21:24FlynnnIn Other Circumstances: We may provide Personal Information to non-ContextLogic companies or other third parties for purposes such as:
14:21:25SkybaxPossibly
14:21:32kaenoh here it is
14:21:35Flynnn"To assist with identity verification, and to prevent fraud and identity theft;"
14:21:42Flynnn"Enforcing our agreements and property rights."
14:21:51SkybaxSounds like "third parties" means "FBI" lol
14:21:54Flynnnwhat are their "agreements"
14:22:26kaenI imagine they mean service contracts and stuff
14:22:30Flynnnand, you can construe almost any information sharing as being soemthign to prevent fraud
14:22:56Flynnnnothing here says that they won't enter into a service contract that says "we will give you free stuff if you give us people's email accounts"
14:23:50Flynnnoh, hmm
14:23:53Flynnnwell it seems less dicey
14:23:57Flynnn"Safeguarding Your Information: Our Policy on Data Protection and Security"
14:24:02Flynnn"We do not sell your Personal Information to anyone for any purpose. Period."
14:24:07kaenwell there you go
14:24:08Flynnn"We require non-ContextLogic companies acting on our behalf to protect any Personal Information they may receive in a manner consistent with this Policy. We do not allow them to use such information for any other purpose."
14:24:15Flynnnso unless there's a loophole in that
14:24:21kaensounds solid enough
14:24:37kaenthey probably just want your facebook to tap its API about you
14:24:55SkybaxProbably
14:25:07Flynnnalright, fair enough
14:25:26Flynnnhowever
14:25:42FlynnnI am pretty sure that the " Safeguarding Your Information: " is the first, and *only* place they say *Personal* information
14:26:18SkybaxWell "Public" information doesn't really matter in terms of who it's shared with, right?
14:26:32Flynnnbut that depends on what their definition of "public" and "personal" is
14:26:50Flynnnthey never directly define personal info
14:26:55raptorif you put it on the web, it's public
14:27:08Flynnnso would that mean your facebook is technically public?
14:27:15Flynnnand that anything you give them is public?
14:27:16SkybaxNot if it's private
14:27:25raptoryep
14:27:34Flynnnyeah, they aren't very specific
14:27:43raptorit's just a good rule to follow
14:27:49Flynnnoh
14:27:54raptorif you post it *anywhere*, it is public
14:27:54Flynnnwell still, they don't specify
14:28:06raptorunless you take specific steps to encrypt it, etc..
14:28:11kaenI'm sure that "personal information" has a definition in case law by now
14:28:17SkybaxProbably
14:28:22Flynnnhmm, alright
14:28:33Flynnnbut is that law up to date enough to include facebook?
14:29:06SkybaxI'm pretty sure most of the laws were redefined in the invention of Facebook lol
14:29:13kaenit's as up-to-date as the last court ruling that was made on the topic
14:29:21SkybaxThere was like a billion cases about "Privacy" and stuff
14:29:25Flynnnlol
14:29:40FlynnnYeah... between wish, and facebook, Facebook is probably the bigger evil
14:29:49bobdaducklol
14:29:56SkybaxFacebook doesn't send me free goodies
14:30:02Flynnnlol
14:30:09SkybaxAnd they force me to spam all my friends with game invites
14:30:15bobdaduckI especially like when people post things complaining about facebooks "new" privacy policies
14:30:25kaenwish is like the little evil sucker fish on the belly of the black pointy-toothed shark
14:30:33SkybaxHahaha
14:30:41Flynnnhaha
14:30:41bobdaduckI swear its like they didn't realize they were selling their souls when they signed up for the thing
14:30:56Flynnnright...
14:31:19Flynnnthough I will admit, so far facebook hasn't caused me to receive any kind of spam
14:31:22SkybaxYeah you can't sign up for something and then complain about the policies >.> you kind of signed up for it and stuff
14:31:27Flynnnso if they are selling my info, god knows to who
14:31:55bobdaduckBig brother
14:31:55kaenwhatever keeps the servers running
14:31:55bobdaduckduh
14:31:59Flynnnlol
14:32:09kaenhehe
14:32:10Flynnntbh, I am okay with a lack of privacy in society
14:32:16kaen> implying the NSA has to pay for your data
14:32:27FlynnnI don't really care. it's more that I just don't want spam
14:32:29Watusimoto has joined
14:32:32SkybaxYeah same here
14:32:36SkybaxJust get a Gmail
14:32:36SkybaxxD
14:32:37Flynnnand also, there is the major problem of,
14:32:55Flynnnif they can listen to me, how do we prevent them from misconstruing what I say as acts of terrorism if they don't like me
14:32:56bobdaduckI'm not sure Gmail is a much better alternative...
14:33:11SkybaxGmail is beautiful
14:33:27kaenhost your own IMAP/POP3 server
14:33:30bobdaduckYes, and it also belongs to googl
14:33:46bobdaduckLike I'm pretty sure google knows way more about you than facebook, if they cared
14:33:51SkybaxGoogle is beautiful in everything except YouTube copyrights and every mobile device they've ever made
14:34:07Flynnnewww android
14:34:10bobdaduckIf we're concerned about privacy, google is certainly not an ally
14:34:25Flynnnthough I hate ipad
14:34:31Flynnnit's just an ipod touch with a big screen
14:34:41SkybaxFlynnn is just anti-handheld
14:34:55FlynnnI never said I disliked ipods
14:35:00SkybaxI want to get an iPad Mini. It's bigger than an iPod, but it still fits in my pocket
14:35:03bobdaduckFlay me alive, I'm content with my windows mobile
14:35:04FlynnnI wanted a touch screen computer, not a jumbo sized ipod touch
14:35:27SkybaxMy dad has a wireless keyboard for his iPad
14:35:38Flynnnthat still doesn't make it a computer
14:35:46Flynnndamn thing doesn't even have a folder system
14:35:54SkybaxIt does if you jailbreak it
14:35:56Flynnnand good luck developing software for it without a 100$ check
14:36:04bobdaducklol
14:36:05Flynnnand blech, jailbreaking opens up all kinds of security holes
14:36:16kaennah there's a free SDK and simulator
14:36:32Flynnnlol that just defeats the purpose of even having one xD
14:36:37kaen$100 at release is nothing if you really care about whatever you're writing
14:36:54Flynnn100$ a year
14:37:01bobdaduckdude Flynn
14:37:14bobdaduckI make $100 every day
14:37:19SkybaxIf I could spend all the time to actually learn how to code mobile apps, $100 would be nothing
14:37:20Flynnnlol
14:37:28bobdaduck(well, almost 100)
14:37:43Flynnnbut on a laptop, you don't have to spend money to develop code
14:37:44SkybaxI made like $125 last week in one day
14:37:45Flynnnyou just develop code
14:37:47Flynnnand you're done
14:38:00Flynnnyou don't even get to run your code on your own ipad without the 100$ fee
14:38:26bobdaduckhah, just yesterday a coworker was looking for a silent ringtone
14:38:33SkybaxIt's a good deterrent for crap apps tho
14:38:36bobdaduckNo sounds at all, just silence. She couldn't find one that cost less than two dollars
14:38:40FlynnnSkybax: no no no
14:39:04FlynnnSkybax: I'm not talking about *selling* your apps. I'm talking about even having them, just for you
14:39:24SkybaxBut if there was no fee, imagine the amount of crap that would be on the app store
14:39:29FlynnnSkybax
14:39:31bobdaduckrofl
14:39:34FlynnnI'm not talking about the app store
14:39:40SkybaxNo seriously, true there are still crap apps, but have you been to the Internet lately?
14:39:45bobdaduckrofl
14:39:49kaenyou can jailbreak and run unsigned code on a personal device
14:39:55Skybax80% crap
14:40:00FlynnnI mean you literally aren't allowed to put apps on your ipad that YOU create
14:40:05Flynnnwithout paying 100$ fee
14:40:15Flynnnregardless of app store
14:40:27Flynnnand jailbreaking opens security holes D:
14:40:36bobdaduckAs in like you can't even seriously test an app you develop without paying money
14:40:45Flynnnyes, what bobdaduck said
14:40:49Flynnnunless you run it on a simulator
14:40:55Flynnnwhich defeats the purpose
14:41:05Flynnnbecause I would very much like to use my ipod as a robotics sensor
14:41:12SkybaxI think the app creation thing that Apple gives out has a built in simulator
14:41:16Flynnnbut nooo they restrict the bluetooth so it can't connect to any devide that isn't apple provisioned
14:41:24Flynnnthe bestp art is, apple never provisioned their own laptops
14:41:34Flynnnso I can't even connect my laptop to my ipod touch
14:41:40Flynnnvia bluetooth
14:41:44Flynnnit's pathetic
14:42:04FlynnnSkybax: the simulator defeats the purpose
14:42:14FlynnnSkybax: I want to be able to create my own apps. For me.
14:42:46bobdaduckSkybax: Like he doesn't even want to sell them
14:42:53SkybaxYeah I realize that
14:42:54bobdaduckSkybax: Like he just wants to use them
14:42:58bobdaducklol
14:43:05bobdaduckThis is fun!
14:43:21FlynnnI used the word "like" once
14:43:23Flynnnwell twice
14:43:41bobdaduckWell I was more referring to the mentioning someone before saying anything to them
14:43:41SkybaxWell you just used it again
14:44:06Flynnnand we all used Well xD
14:44:14Flynnnand I don't understand, bob
14:44:15SkybaxWell is the new Like
14:44:16kaensee? common ground
14:44:19bobdaduckWell I like, use it all the time
14:44:23Flynnnlol
14:44:30kaenthat's, like, all very well
14:44:57Flynnnbobdaduck: You mean like this?
14:45:02bobdaduckI like to use like and well together. It makes me well liked.
14:45:09bobdaduckFlynnn: Yes exactly
14:45:15bobdaduckFlynnn: like, it was funny
14:45:17FlynnnBobdaduck: I thought that was irc protocol xD
14:45:21kaenThis convo is deep
14:45:23kaenlike wells
14:45:28Flynnnha
14:45:28bobdaduckxDD
14:45:32SkybaxxD
14:46:32Flynnngenerally, I just want a touch screen OSX computer. I am seriously considering hackintosh, but I'd prefer it if it were from the source
14:47:05SkybaxAren't there touch screen monitors you can get?
14:47:14Flynnnfor a laptop?
14:47:19SkybaxAh
14:47:20Flynnnoh I didn't say laptop
14:47:22FlynnnI said computer
14:47:22kaenyeah
14:47:23Flynnnmy bad
14:47:32kaenyou can get touch-screen laptops
14:47:33Flynnnlol when most people say computer, I think of a laptop
14:47:48Flynnnnot with OSX unless I use hackintosh
14:47:51kaenthey even have ones where the screen can be turned to let you draw on it when the lid is closed
14:47:57Flynnnand that's a nightmare if you have the wrong hardware
14:47:59kaenor a VM :P
14:48:05Flynnneeww
14:48:07FlynnnI hate VM
14:48:09kaenmine works great
14:48:25FlynnnI dunno, seems sketchy
14:48:32kaenI run the ios sim inside xcode inside my vm inside Debian
14:48:36kaenworks like a charm.
14:48:38SkybaxWrite a strongly worded letter to Apple telling them to make a touch-screen laptop
14:48:49Flynnnwhat is the GHz on your processor?
14:48:55kaen2.8 dual core
14:48:57bobdaduckxD
14:48:59kaenit's a dinky old toshiba
14:49:02Flynnnand furthermore, have you tried doing any 3D gaming with that?
14:49:17bobdaduckBitfighter is 2D
14:49:20bobdaduckyour argument is invalid
14:49:25kaenwell, the apps I was playing with use GL contexts
14:49:27FlynnnI am a 3d developer xD
14:49:28kaenjust like a 3d app
14:49:36SkybaxI have a 2 GHz Intel Core Duo...
14:49:39Flynnnso if I can't do GPU intensive stuff
14:49:40Watusimotokaen: I'm trying to understand that code sample you gave me before I left the office -- overriding ( )s is blowing my mind
14:49:54kaenoh no, it's not overriding the parens
14:49:59kaenit's overriding the cast operation
14:50:26Watusimotooperator T(){ <<==
14:50:29kaenyes
14:50:33Watusimotooh, I see
14:50:36kaenthat's the cast-to-T operator
14:50:50Watusimotoit's overriding int(x) and string(x) and...
14:51:06WatusimotoI never knew there was such an operator
14:51:12kaenso if you can implement something like "return Setting<T>(this).get()"
14:51:14bobdaduckWhat you're talking about: Can I use this to do something crazy in levelgens?
14:51:29kaenit's actually just a one-line override that allows a templateless syntax
14:51:49Watusimotook, well, I'm still mind blown
14:52:06Watusimototrying to work out what it means to override a cast
14:52:27SkybaxHow do I make Bitfighter run from my USB?
14:52:33Watusimotocould I make int(123) return a string if I were evil?
14:52:42bobdaduckSkybax: make a file called bitfighter.ini
14:52:44Watusimotoor return 124?
14:52:46bobdaduckand put it in the bitfighter folder
14:52:52kaen124, yes
14:52:54bobdaduckIt'll run independently that way. Super easy
14:52:57kaenstring, I don't think so
14:53:15SkybaxA Bitfighter folder inside the USB?
14:53:17Flynnnoh wow, so if I do that, it'll stop using the system folders?
14:53:54kaenbecause c++ will deduce which cast to call based on context (e.g. the type of the variable being assigned to), so it already has an expectation for the type to return
14:53:54bobdaduckYou just install bitfighter to your thumb drive or whatever'
14:53:59bobdaduckand make a bitfighter.ini file.
14:54:06kaenwhich is sort of how this little hack works
14:54:07SkybaxAhkay
14:54:10bobdaduckAnd then bitfighter will automatically run standalone
14:54:20SkybaxSounds nifty
14:54:36kaenI still don't see why c++ doesn't just use return values in the template deduction ...
14:54:40Watusimotowell, if I can make it work, neat!
14:54:45Watusimotome neither
14:54:58kaenmaybe it's specifically because of cast operator overloading
14:55:07kaenthose two ideas seem to conflict
14:55:27Skybaxlol I have a shortcut to the Bitfighter folder inside of the Bitfighter folder
14:55:30FlynnnI wonder if it's possible to run an openGL context without displaying it to a screen, and use the context for advanced GPU algorithms by taking pixel samples at various locations
14:55:42Flynnndoes anyone know anything about doing that kind of stuff?
14:55:53kaenthat's an emerging field, Flynnn
14:55:54SkybaxI can literally open folders forever
14:56:01Flynnnkaen: oh cool
14:56:37Flynnnit would make debugging interesting
14:56:54Watusimotokaen: so you're thinking something like this?
14:56:56kaenI know nvidia's CUDA is along that line
14:56:56Watusimototemplate<typename T>
14:56:56Watusimotooperator T()
14:56:56Watusimoto{
14:56:56Watusimotoreturn t;
14:56:58Watusimoto}
14:57:10kaenI think so
14:57:20kaenassuming t is the private member with the actual data
14:57:32Watusimotoit compiled in the easiest case...
14:57:39Watusimotooh right you are!
14:57:45kaenwoohoo!
14:58:00kaenFlynnn, yeah, GPU debugging is a nightmare
14:58:01Flynnnkaen: oh that's cool, but I'm thinking more in terms of just doing actual rendering, and using hte output pixel values as data
14:58:19Flynnnkaen: but without actually displaying to the screen
14:58:50kaenheadless gl contexts is something I'm researching for use in bitfighter's unit tests
14:58:58kaenso I'm probably as clueless as you
14:59:04raptorit's available in OpenGL 3.0 i think
14:59:08Flynnnkaen: interesting
14:59:27kaenbut I know that what you're describing is the general architecture of GPU-calculation
14:59:33raptorhttp://stackoverflow.com/questions/7062804/minimal-windowless-opengl-context-initialization
14:59:50kaenit's used for algorithms well-suited to the SIMD architecture
15:00:03kaene.g. finding the plaintext of an md5 hash
15:00:48Flynnnhuh. interesting
15:01:48kaencheck out the NVIDIA Tesla boards
15:01:57kaenCUDA cores: 3072 (1536 per GPU)
15:02:01SkybaxIf I put the Bitfighter.exe in the same folder as the Bitfighter.app, will they share the .ini and everything else or will they generate completely new stuff?
15:02:22Watusimotowell I got this to compile:
15:02:23WatusimotoS32 S32Val = S32(settings.getSetting("S32Name"));
15:02:35kaencool!
15:02:36Watusimotobut what I really want is this
15:02:36WatusimotoS32 S32Val = settings.getSetting("S32Name")->getValueX();
15:02:44kaenwhoa
15:03:08WatusimotoI did this:
15:03:09Watusimototemplate<typename T>
15:03:09Watusimotooperator T()
15:03:09Watusimoto{
15:03:09Watusimotoreturn getValueX();
15:03:09Watusimoto}
15:03:24Watusimotonot really what we want, but proof that you can do weird stuff
15:03:35SkybaxOr can I even get the Bitfighter.exe on a Mac xD cause I can't install it
15:03:56FlynnnMacs handle exe files just fine, they just won't run them
15:04:22kaenSkybax, they should share it
15:04:32SkybaxYes, but when I download Bitfighter from the website, it gives me Bitfighter Installer 018a.exe
15:04:41Flynnnoh
15:04:41SkybaxNot the actual app
15:04:52Flynnnchange hte install location to your usb
15:04:52kaenthere should be a standalone zip there too
15:04:54bobdaduckhelp
15:04:57Flynnnor do the standalone zip
15:05:00bobdaduckhow do I use quotes in a string
15:05:02Flynnnthat sounds safer xD
15:05:07Flynnnbobdaduck:
15:05:09kaen"say \"hi\""
15:05:15Flynnn"hello, im a \"robot\""
15:05:28kaenit's called "escaping" the quotes
15:05:28SkybaxThe source archive?
15:05:34kaenno
15:05:41SkybaxThere's only one button for windows
15:05:44SkybaxAnd it's the installer
15:05:51Flynnn"hello, there, it's time to \"die\""
15:06:03bobdaduckYeah yeah I know what it is I just didn't know the syntax
15:06:15kaenSkybax, https://code.google.com/p/bitfighter/downloads/detail?name=Bitfighter-018a-portable.zip&can=2&q=
15:06:27SkybaxThanks
15:06:47Flynnn"it's time to \"eat\" your flesh!"
15:07:12kaen'I prefer just using "single" quotes around the string'
15:07:22SkybaxOooog.... this has a lot more in it than my Bitfighter folder
15:07:28SkybaxDoes the .exe need all this stuff?
15:07:34kaenyep
15:07:57SkybaxHmm..
15:08:10bobdaduckNifty
15:08:16SkybaxI'll just use two separate folders and overwrite the .ini
15:08:35bobdaduckNow in DnD you can deploy multiple items at the same time from your inventory
15:09:42bobdaduck"deployAsteroid 5"
15:10:26SkybaxHmm... the PC folder didn't have a .ini in it.. does it normally generate one itself?
15:10:32kaenyes
15:10:35SkybaxGot it
15:10:50SkybaxWell I hope it works lol I have no way to test it xD
15:27:33Flynnn Quit (Quit: Leaving)
15:28:17Watusimotokaen: I think this trick isn;t going to work
15:28:41Watusimotoin the example given, they're casting the FromString object to an int or a bool
15:29:15Watusimotoin my example, I'm trying to cast the results of the getValueX() function, which will be either a string or an int
15:29:53WatusimotoS32 S32Val = settings.getSetting("S32Name")->getValueX();
15:29:57kaenok, I can see the problem
15:30:09Watusimotothough maybe the solution is to get rid fo the getValueX
15:30:15Watusimotoand do S32 S32Val = settings.getSetting("S32Name");
15:30:16kaenthat was my suggestion
15:30:26kaenI think it's okay to implicitly convert Settings<T> into T
15:30:41Watusimotohmmm
15:30:47kaenand if really need the Settings<T> then just don't cast it :P
15:30:58kaenI mean Setting<T>
15:31:02Watusimotolet me see if I can make that work
15:31:13Watusimotothat would be rather interesting...
15:31:24Watusimotothough not entirely intuitive
15:33:10kaenS32 val = settings.getSetting("name") <-- this seems pretty intuitive from the client code's perspective
15:33:19kaenit makes sense as long as you don't think about it too much :P
15:37:03Watusimotowell this compiles
15:37:05WatusimotoS32 S32Val = S32(settings.getSetting("S32Name"));
15:37:08Watusimotobut this does not
15:37:14WatusimotoS32 S32Val = settings.getSetting("S32Name");
15:37:32Watusimotomy template is this:
15:37:33Watusimototemplate<typename T>
15:37:33Watusimotooperator T*()
15:37:33Watusimoto{
15:37:33Watusimotoreturn 4;
15:37:33Watusimoto}
15:37:43Watusimotorather useless at the moment
15:37:48Watusimotounless your setting is 4
15:38:08Watusimotoin which case it would be great!
15:38:34Watusimotothe MS VC++ documentation suggests that both should work
15:39:02Watusimotoit states: Any unary expression is considered a cast expression.
15:39:19Watusimoto(any, that is, except mine )
15:39:24kaenthat's nutty
15:40:12Watusimotothat's a good word for it!
15:41:27Watusimotothe thing is, it knows it wants to convert
15:41:32Watusimotothe error is error C2440: 'initializing' : cannot convert from 'Zap::AbstractSetting *' to 'TNL::S32'
15:41:42Watusimotoit's just itching to cast
15:41:48Watusimotoand yet it can't quite make the leap
15:42:05kaenok, try overloading AbstractSetting's cast operator
15:42:15Watusimotothat's what I did
15:42:16kaenno, wait ...
15:42:35kaenI thought you overloaded Setting<T> 's cast operator?
15:43:09WatusimotoNo -- I only have an AbstractSetting *
15:43:47Watusimotoif I override Setting's, it won't get activated because there's no virtual version in AbstractSetting
15:44:14kaenoh wait
15:44:27kaenI think you need to deref the pointer?
15:44:39kaenstill ugly though
15:45:57Watusimotokaen: you mean try casting an AbstractSetting instead of AbstractSetting*?
15:46:04kaenI think so
15:46:40kaengetsetting should probably return a const ref anyway
15:47:13WatusimotoI'll try it, but I think it isn;t necessary; also, that was my original thought, but you may well want to update teh setting
15:47:49kaenfor that I would propose setSetting(name, val)
15:48:09kaenbut I'm not looking at the code so I don't know how trivial Setting<T> is
15:49:18kaena non-const ref should be okay too, I think
15:49:26kaenif you're returning a non-const pointer
15:50:01Watusimotowell... the dereferencing worked
15:50:06Watusimotoor at least compiled
15:50:28kaenI'm actually really glad it won't implicitly convert a pointer to an int
15:50:37kaenthat would have been a confusing bug if it had worked :P
15:50:40WatusimotoI was explicitly cast it
15:50:43Watusimotocasting
15:51:11Watusimotowell, my template was casting an AbstractSetting *
15:51:18Watusimotonot an AbstractSetting
15:51:23SkybaxDo the forums have [spoiler] tags?
15:51:36kaennope
15:51:40SkybaxDarn
15:51:42Watusimotonow I need to put it all together and see if it is anything better than heinous
15:51:51WatusimotoI thought they did
15:51:51kaen:)
15:51:52SkybaxThat would save on page space soo much
15:52:06Watusimotosomeone posted something a while back with the summary hidden somehow, as I recall
15:52:21Watusimotosorry, the posted a summary with a longer version hidden
15:52:30Watusimotoor maybe it was levelcode
15:52:37Watusimotoor whatever, but I thought there was a way
15:52:49Watusimotobut if it's not obvious, I don;t know how to do it
15:53:07SkybaxWell it's not [spoiler][/spoiler] and it's not in the BBCode list
16:04:49Watusimotoso this fails:
16:04:50WatusimotoAbstractSetting s = *settings.getSetting("S32Name");
16:04:50WatusimotoS32 S32Val = s;
16:04:59bobdaduck Quit (Remote host closed the connection)
16:05:07Watusimoto(as in returns a bit of uninitialzed memory)
16:05:11Watusimotobut this works
16:05:12WatusimotoS32 S32Val = *settings.getSetting("S32Name");
16:05:25Watusimotoweird
16:07:35Watusimotook, so now we have 3 possible syntaxes:
16:07:36WatusimotoS32 S32Val = *settings.getSetting("S32Name");
16:07:36WatusimotoS32 S32Val = settings.getSetting("S32Name").getValue<int>();
16:07:36WatusimotoS32 S32Val = settings.getSetting("S32Name").getValueI();
16:07:49Little_Apple has joined
16:09:00Little_Applehello
16:09:32Watusimotoor, to be fair, we could also do this:
16:09:49Watusimotosettings.getSetting("S32Name").getValue(&S32val);
16:11:21LordDVG Quit (Remote host closed the connection)
16:23:37Flynnn has joined
16:25:17BFBuildBot Quit (Remote host closed the connection)
16:25:29BFBuildBot has joined
16:25:32BFBuildBot Quit (Remote host closed the connection)
16:28:58BFBuildBot has joined
16:30:50BFBuildBot Quit (Remote host closed the connection)
16:30:57BFBuildBot has joined
16:32:04BFBuildBot Quit (Remote host closed the connection)
16:42:00Watusimotoor we could have this:
16:42:01WatusimotoS32 S32Val = settings.getValue<S32>("S32Name");
16:45:57Watusimotoor this... perhaps the best yet:
16:45:59WatusimotoS32 S32Val = settings.getValue("S32Name");
16:46:05kaenyes I like that
16:46:25kaenwhy not just get() ?
16:46:30WatusimotoI'm doing a full compile to see if it builds
16:46:38Watusimotorather see if it links
16:46:42kaenthen we'd be on our way to a nice interface :)
16:46:55Watusimotonot get because you are not getting a setting
16:47:18kaenwell, you're getting a conceptual setting, you're just not getting a Setting
16:47:21Watusimotoyou aer getting a setting's value
16:47:27Watusimotoperhaps
16:47:32kaenwhich is what getSetting does
16:47:48kaengetValue isn't too objectionable :)
16:47:48Watusimotoif we go this route, I'll probably move other setting methods up to the settings object
16:48:07Watusimotoso you won't actually deal with individual settings objects at all
16:48:23Watusimotoand then we can see what the naming looks like in the context of all the rest of the methods
16:48:26Watusimotoit may be clearer
16:48:26kaennow *that* is a nice improvement
16:48:52kaencutting out a class from the mental model is always a win in my book
16:48:59Watusimotoit's only an improvement if we can concentrate all our settings code in one place, rather than having it spread out all over the place
16:49:10Watusimotoyes, that's true
16:49:15Watusimoto(usually)
16:49:20kaenwhat you say is true, too
16:49:47Watusimotoit links!!
16:49:52kaennice!
16:50:02Watusimotonow does it pass the test?
16:50:17WatusimotoI have to say the testing stuff has been really great for this little project
16:50:35Watusimotoit's textbook: write the class along with the tests
16:50:46Watusimotoand use the tests to make sure the class does what you want
16:50:53kaenexactly!
16:50:55Watusimotohmmm... tests failed
16:51:02kaenhmm
16:51:42Watusimotogetting the same weird unitiailzed memory junk rather than my value
16:52:09kaenmaybe the memory really is uninitialized?
16:52:26Watusimotowell it shouldn't be
16:52:44kaenif other tests you've written have passed then that seems unlikely
16:55:49WatusimotoI encountered this earlier
16:55:58Watusimotoin a different but similar context
16:57:23WatusimotoI think it has to do with the dereferencing operation
16:57:43Watusimotomaybe the pointer somehow loses context or something
16:58:37kaencan you paste the implementation?
16:59:02Watusimotosure... let's see if this attempt works, then I'll send you a pasteie
16:59:11kaenok
17:00:31Watusimotowell, here's the implemenation
17:00:31Watusimotohttp://pastebin.com/HfTSr6tZ
17:00:44Watusimotosome of the code is in the .cpp file, but that is mostly obvious stuff
17:00:54Watusimotothe interesting stuff is in the .h, which I pasted
17:01:59Watusimotothis shows the tests
17:01:59Watusimotohttp://pastebin.com/TPU4pGL5
17:02:14Watusimotothis one works:
17:02:15Watusimotostring strVal = *settings.getSetting("strName");
17:02:20Watusimotothis one returns junk
17:02:22raptorgotta go! later!
17:02:27WatusimotoS32 S32Val = settings.getValue("S32Name");
17:02:28Watusimotobye!
17:02:30raptor Quit ()
17:05:00kaendoes getValueX work?
17:06:11Watusimotoin which class?
17:06:21kaenS32
17:06:28kaenoh, abstractsetting
17:06:53WatusimotoI think it does
17:07:00Watusimotowell, yes, it has to
17:07:15Watusimotofor this test to work: string strVal = *settings.getSetting("strName");
17:07:47Watusimotothat calls the overridden cast operator in AbstractSetting, which uses getValueX
17:08:21kaenok
17:10:17kaenhmm I'm not getting any traction here
17:10:47Watusimotoyeah me neither
17:11:00Watusimotono worries... I think I'll sleep on it
17:11:05kaenok
17:11:12kaenrest easy
17:11:15Watusimotothis is all very complicated
17:11:28kaenit's like all the weird parts of c++ coming together
17:11:28Watusimotofor 1:15AM
17:11:35Watusimotothat's exactly it
17:11:53kaenstatically casting templatized class through overloaded cast operators
17:11:59kaenyup that's pretty much all of them.
17:13:35Watusimotowith inheritance!
17:14:25kaenWhyNotToWriteCpp.cpp
17:21:19Watusimotogood night!
17:21:27Watusimoto Quit (Remote host closed the connection)
17:40:22koda Quit (Quit: koda)
17:44:41Little_Apple Quit (Quit: Page closed)
18:08:25BFLogBot Commit: 718712ae42f3 | Author: buckyballreaction | Message: Fix s_bot after recent Lua API changes
18:08:27BFLogBot Commit: 4e94a4e7fe1c | Author: buckyballreaction | Message: Rename bot:hasLosPt to bot:canSeePoint
19:02:40Skybax Quit (Quit: Skybax)
19:12:46Skybax has joined
19:17:49Little_Apple has joined
19:19:54Skybax Quit (Quit: Skybax)
20:12:40Flynnn Quit (Quit: This computer has gone to sleep)
20:16:08Little_AppleSO QUIET
20:16:51Little_Applekaen: just you, me and BFLogBot.....
20:16:52BFLogBotMy family is dysfunctional and my parents won't empower me. Consequently I'm not self actualized. -- Calvin
20:18:02Little_Applewanna steal some nukes?
20:23:23Flynnn has joined
20:49:15bobdaduck has joined
21:05:43kaenbobdaduck, I made conway's game of life for bitfighter
21:05:44kaenhttp://bitfighter.org/pleiades/levels/view/23
21:05:54bobdaduckrofl
21:05:54kaenthe levelgen only works in 018a right now though
21:05:57bobdaduckthat is amazing
21:06:02bobdaduckI'll check it out in a second
21:06:08kaenok
21:06:08bobdaduckright now I have a server full of people to attend to
21:06:19kaenoh my
21:39:17Little_Apple Quit (Quit: Page closed)
21:56:44raptor has joined
21:56:44ChanServ sets mode +o
22:01:00kaenraptor, http://bitfighter.org/pleiades/levels/view/23
22:01:08kaenit only works in 018a though
22:01:28raptora glider!
22:01:46raptorha! this is great!
22:01:49kaenthe top one shoots gliders
22:01:53kaenthe bottom resets it
22:02:40raptorman, i forget all the names of the shapes...
22:02:57kaenme too
22:03:10kaenI wonder if it's big enough to make a glider gun ...
22:03:25raptorhave you ever seen the race track?
22:03:34kaenno
22:03:47Flynnnwhat is a glider?
22:04:26Flynnnactually ,what is a glider gun?
22:04:47kaenit's a shape in conway's game of life
22:04:55Flynnnoh!
22:04:56raptori think this was the one: https://upload.wikimedia.org/wikipedia/en/f/f2/Colour_coded_racetrack.gif
22:04:58Flynnnthis is game of life!
22:05:01kaenthe hacker symbol is a glider
22:05:06raptorbut it looks a bit different from what i remember
22:05:26Flynnnhave you seen the game of life factory?
22:05:36Flynnnhttp://www.youtube.com/watch?v=7bVFO1uXxCg
22:05:38kaenhttp://upload.wikimedia.org/wikipedia/en/3/31/Stable_puffer_animation.gif
22:05:57Flynnnvideo I sent was bad
22:06:00Flynnnlet me find a better one
22:06:09Flynnnwow, at that puffer
22:06:09kaenyeah I've seen that one
22:06:20kaenit's crazy that it's stable ...
22:06:53raptorwow that's crazy..
22:07:43Flynnnhttp://www.youtube.com/watch?v=XcuBvj0pw-E starts out pretty lame but has some interesitng examples
22:08:25kaenhah! I was just watching that one
22:08:29Flynnnhaha
22:13:51bobdaduckDnD!
22:24:11raptorkaen: you said no fillTable needed for findAllObjectsInArea()
22:24:15raptor?
22:24:29raptordo you think it would be a method to be used every tick?
22:31:44kaenprobably
22:31:49kaenmaybe even a couple times
22:31:56raptorbah
22:34:14raptori thiink i'm stupid - how do you get the element at the bottom of the Lua stack?
22:34:26raptorlua_tointeger(L, 1) ?
22:34:41kaenyep
22:34:47raptorand lua_tointeger(L, 2) is second from bottom?
22:34:57kaenyes
22:35:03raptorok, not too stupid yet...
22:35:16kaenwhy are you pulling from the bottom though?
22:35:38raptorbecause findAllObjectsInArea looks like this: (point, point, int, int,....)
22:35:45raptorso the 2 points are at the bottom
22:36:36raptormaybe I should pop off as many ints as I can first...
22:39:46kaenwhoa cool
22:39:58kaenI didn't know lua cleared the stack after a C function returns
22:40:12kaenI thought it had one big, dumb stack
23:23:26raptoroh actually...
23:23:30raptorit might be dumb
23:23:35raptorand my assumption is wrong..
23:35:27kaencan I use c++11 stuff?
23:36:54kaenI'd really like to delegate this constructor ...
23:41:27raptoruhh
23:41:46raptornot if we want to support OSX 10.5 (6?) and earlier... sadly
23:42:01kaenbummer :<
23:42:04raptorbecause I myself would love to rip out boost::shared_ptr
23:49:35raptorok, i'm out for the night
23:49:37raptornight!
23:50:00kaennight!
23:50:13raptor Quit ()
23:56:31bobdaduck Quit (Remote host closed the connection)

Index Search ←Prev date Next date→

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