--- Log opened Thu Mar 06 00:00:34 2008 |
00:05 | | EvilDarkLord [~jjlehto3@130.233.228.ns-13022] has quit [Ping Timeout] |
00:07 | | Reltzik [Reltzik@76.232.9.ns-3450] has joined #code |
00:07 | | EvilDarkLord [~jjlehto3@Nightstar-2194.vipunen.hut.fi] has joined #code |
00:08 | | EvilDarkLord is now known as NSGuest-5412 |
00:09 | | * Reltzik wishes his graph theory was stronger. |
00:10 | <@AnnoDomini> | Feed it spinach. |
00:10 | < Reltzik> | Nyuknyuknyuk. |
00:10 | < Reltzik> | ....... which I suppose could be a contraction of No, yuk" |
00:12 | <@AnnoDomini> | http://i28.tinypic.com/j6sqx5.jpg |
00:13 | < Vornicus-Latens> | Reltzik: I know some graph theory |
00:15 | | You're now known as TheWatcher[T-2] |
00:15 | < Reltzik> | Okay. I'm playing around with rule dependencies, where some rules don't make sense unless other rules are loaded into the engine. |
00:15 | < Vornicus-Latens> | Okay. |
00:16 | < Reltzik> | ((For example, the rule about strength modifying grapple attacks don't make sense if the rules engine has no notion of strength mod or grappling.)) |
00:17 | < Reltzik> | Now, I'm also playing around with the notion of real-time inclusion of rules into, or exclusion of rules from, the engine. |
00:18 | < Reltzik> | And I'm playing around with the scenario of "What happens when I exclude rule A but not B, when B is dependent on A," and I think I'm going to have to either propogate deactivations or at least throw off a bunch of warnings. |
00:19 | < Vornicus-Latens> | Real-time inclusion/exclusion is a bit silly, imo - you will probably set up the rules at the start of the game. |
00:20 | < Reltzik> | You'll probably set MOST of them up at the start. But we've both gamed enough to KNOW that the DM will encounter a rule he'd forgotten about, or see some unexpected consequences of it, in-game, and he'll say, "Ignore that rule." WHILE the game's ongoing. |
00:21 | | You're now known as TheWatcher[zZzZ] |
00:22 | < Reltzik> | Anyhow, I'm also looking at CIRCULAR dependency, where A depends on B and B depends on A, and I'm pretty sure I should treat those rules as a single solid lump for figuring out what depends on what. |
00:23 | < Reltzik> | But mostly, I'm thinking that this is a lot like some stuff I'd seen in graph theory, and I'm wishing I knew more of it. |
00:24 | < Vornicus-Latens> | Generally you'll want a non-cyclic, directed dependency graph; use modules to group rules. |
00:25 | < Vornicus-Latens> | Doing anything else is silly, because this one is already handled by your language. |
00:25 | < Reltzik> | So, am I right in thinking that if rules ARE cyclically, I just stick them into the same node of a larger DAG? |
00:26 | < Vornicus-Latens> | Right |
00:26 | < Reltzik> | Okay, was worrying about my instincts there, really overthinking it. |
00:27 | | * Reltzik also plays around with the problem of ADDING a rule during an ongoing game which suddenly makes a bunch mutually dependent. |
00:30 | | Vornicus-Latens is now known as Vornicus |
00:31 | | * Reltzik is particularly playing around with rule substitution. |
00:43 | <@McMartin> | Procedural Rules. |
00:44 | < Reltzik> | Pardon? |
00:46 | | AnnoDomini [AnnoDomini@83.21.33.ns-4089] has quit [Quit: God created man, God created woman, but Samuel Colt made them equal.] |
00:46 | <@McMartin> | If you have rules that decide which rules apply, they should be special rules that Always Go First |
00:47 | < Reltzik> | In the sense that they should be loaded first, or in the sense that when something changes they should be evaluated first? |
00:49 | <@McMartin> | They should always be evaluated first, end of story, basically. |
00:49 | <@McMartin> | Otherwise you won't know what you need to run |
00:50 | < Reltzik> | Yeah, it's just I want the user to be able to CHANGE which rules apply at run time. |
00:51 | <@McMartin> | Yeah |
00:51 | <@McMartin> | By "first" I mean "before applying The Rules in some situation". |
00:52 | | * McMartin goes to look up The Pointy Hat of Liminal Transgression as an example of what he means |
00:52 | <@ToxicFrog> | Reltzik: so, you have a procedural rule that looks at what changes the user has mandated, and effects them. |
00:52 | < Reltzik> | Right, but I'm looking at it from the event model, with the event of, "The user deactivates a rule," or "the user adds a rule", or possibly even "the user modifies a rule". |
00:53 | <@McMartin> | http://www.inform-fiction.org/I7/ex204.html#e204 |
00:53 | <@McMartin> | Something like this. |
00:53 | <@ToxicFrog> | Alternately, and more generally, have activation/deactivation remove and create procedural rules of this form. |
00:53 | < Reltzik> | TF: I'm probably going that route. |
00:59 | < Reltzik> | *eyes the hat rule* That's more of a rule which THIS problem can affect. |
01:10 | <@McMartin> | Any rule of that form is in fact a "meta" rule, since it talks about what rules apply. |
01:10 | <@McMartin> | *all* such rules need to be processed *first* and need some kind of defined priority. |
01:11 | <@McMartin> | Because you can have "disregard this rule" overridden by "reinstate" overriden by a new disregard. |
01:12 | < Reltzik> | My model is that such "meta" rules will actually (temporarily) modify the rules they target. |
01:15 | < Reltzik> | That hat rule, for example, would explicitly remove the wearer from the scope of the can't-walk-through-doors rule. |
01:15 | <@McMartin> | Replacement is a much better model, because it's easier to reverse. |
01:24 | < Reltzik> | You mean, replace the rule entirely with the rule-accounting-for-the-modification? |
01:28 | <@McMartin> | Or break the rules up into bits. |
01:28 | <@McMartin> | So that you can just replace pieces of it |
01:31 | < Reltzik> | More like temporary modifications attached and dealt with every time the rule's invoked. |
01:32 | <@McMartin> | Mmm. You'll still have priority problems. |
01:32 | < Reltzik> | Specificly? |
01:32 | <@McMartin> | Well, take the pointy hat again |
01:32 | <@McMartin> | Say some other rule lets you put doors in arbitrary scope |
01:33 | <@McMartin> | One has to control, and it's going to basically be whichever one is evaluated last |
01:33 | < Reltzik> | Okay, so a rule conflict. |
01:34 | <@McMartin> | Well. It's only a conflict if there isn't a clearly-defined priority. |
01:35 | < Reltzik> | Right. |
01:36 | <@McMartin> | So you want one of those~ |
01:36 | | * Reltzik ponders giving the user able to determine which rule has priority in a conflict. |
01:38 | < Reltzik> | And if the user hasn't determined a priority, it bounces back to the user for clarification and/or precedent. |
01:38 | <@McMartin> | Feasible. |
01:38 | <@McMartin> | Though this still sounds more like you're making a GM aid, not a module. |
01:39 | <@McMartin> | If the module is being *run* the player shouldn't be able to say "dude, house rules" at will, right? |
01:40 | < Reltzik> | It IS a GM aid. PART of the aid will be loadable modules of rules corresponding to core and supplements. |
01:41 | < Reltzik> | ((Well, a gaming aid, usable with a GM aid, a char sheet generator, a game engine, a player aid, et cetera...)) |
01:49 | < Reltzik> | Central rules engine which all of those things could access. Even access concurrently. |
01:51 | | gnolam [lenin@Nightstar-10613.8.5.253.static.se.wasadata.net] has quit [Quit: Z?] |
03:37 | | GeekSoldier|bed is now known as GeekSoldier|work |
03:39 | | Reltzik [Reltzik@76.232.9.ns-3450] has quit [Quit: DEATH TO THE UNDEAD!] |
04:19 | | Attilla [~The.Attil@194.72.70.ns-11849] has quit [Ping Timeout] |
04:21 | | Attilla [~The.Attil@194.72.70.ns-11849] has joined #code |
04:43 | | NightRain [~NightRain@Nightstar-3946.worldnet.co.nz] has joined #code |
04:44 | < NightRain> | Um, I need large amounts of help? |
04:44 | < NightRain> | With a VB script |
04:45 | <@ToxicFrog> | Don't ask to ask. |
04:45 | <@ToxicFrog> | Just ask. |
04:45 | <@ToxicFrog> | That said, no guarantee is made that anyone can help~ |
04:45 | < NightRain> | Gotcha |
04:46 | < NightRain> | I need a script that joins someone to an ODBC in windows (connects to a SQL server), and uses AD to authenticate. |
04:46 | | Derakon [~Derakon@24.17.211.ns-11573] has joined #code |
04:46 | | mode/#code [+o Derakon] by ChanServ |
04:47 | < NightRain> | And work sprung this on me as I was leaving. |
04:48 | < NightRain> | For tomorrow, and I really don't want to piss payroll off >.< |
04:48 | <@ToxicFrog> | Oh joy. |
04:48 | <@ToxicFrog> | I could help with the ODBC...in Lua or Perl. |
04:48 | <@ToxicFrog> | I've never used AD at all, and I know nothing about either in VB. |
04:50 | < NightRain> | Needs to be VB sadly. |
04:51 | < NightRain> | As its going to be shoved in Altiris and pushed out to the entire company. |
04:51 | <@McMartin> | Hopefully not immediately, if it's a "do this overnight" kind of thing |
04:52 | | * McMartin has only worked directly with SQL, though, and won't be much help |
04:52 | | andra [~andra@125.163.91.ns-22797] has joined #Code |
04:53 | | andra [~andra@125.163.91.ns-22797] has left #Code [] |
04:54 | < Vornicus> | Personally I look at that and say "without rather strong knowledge of AD, ODBC, and VB, it'll take approximately as long to do as learning these three things" |
04:56 | < NightRain> | Given my recent number of failures? I'd rather not |
04:56 | < Vornicus> | I once spent three days trying to figure out how to talk to AD at all, and failed miserably. |
05:03 | | Raif [~corvusign@67.161.90.ns-4200] has joined #Code |
05:08 | < NightRain> | Ah well. |
05:08 | < NightRain> | Guess I'm getting in EARLY |
05:15 | < Serah> | I talk to AD all the time. But I'm guessing we're talking about a different AD. |
05:30 | < Vornicus> | Active Directory |
05:46 | | Thaqui [~Thaqui@Nightstar-123.jetstream.xtra.co.nz] has joined #code |
05:46 | | mode/#code [+o Thaqui] by ChanServ |
06:12 | | Kazriko [~kazrikna@Nightstar-26352.gdj-co.client.bresnan.net] has joined #code |
06:14 | | NSGuest-5412 is now known as EvilDarkLord |
06:52 | | Kazriko [~kazrikna@Nightstar-26352.gdj-co.client.bresnan.net] has quit [Quit: A quit message.] |
06:53 | | Derakon is now known as Derakon[AFK] |
07:05 | <@Reiver> | NR: They asked you to complete this overnight? |
07:20 | < NightRain> | pretty much |
07:20 | < NightRain> | Was either figure out the VB or stay there till gone 7. |
07:20 | < NightRain> | And I'm not doing an 11 hour day. |
07:22 | <@Reiver> | Hm |
07:22 | <@Reiver> | You have VBscript, full VB, or the comes-with-Office VB to play with, here? |
07:22 | < NightRain> | in theory |
07:23 | < NightRain> | in practise, no. PC issues. |
07:23 | <@Reiver> | I meant at work, NR. |
07:30 | < NightRain> | At work? no. |
07:30 | < NightRain> | We have "it runs VB code deployment software" |
07:31 | <@Reiver> | I'll assume full VB, then. |
07:45 | | Vornicus is now known as Vornicus-Latens |
08:28 | | AnnoDomini [AnnoDomini@83.21.82.ns-2778] has joined #Code |
08:28 | | mode/#code [+o AnnoDomini] by ChanServ |
08:39 | | You're now known as TheWatcher |
08:42 | | Raif [~corvusign@67.161.90.ns-4200] has quit [Ping Timeout] |
08:42 | | Derakon[AFK] [~Derakon@24.17.211.ns-11573] has quit [Ping Timeout] |
08:47 | | Forj [~Forj@Nightstar-11813.ue.woosh.co.nz] has joined #code |
08:47 | | mode/#code [+o Forj] by ChanServ |
09:08 | | Forj [~Forj@Nightstar-11813.ue.woosh.co.nz] has quit [Quit: Gone] |
10:07 | | Raif [~corvusign@67.161.90.ns-4200] has joined #Code |
10:29 | | Thaqui [~Thaqui@Nightstar-123.jetstream.xtra.co.nz] has left #code [Leaving] |
10:42 | | gnolam [lenin@Nightstar-10613.8.5.253.static.se.wasadata.net] has joined #Code |
10:42 | | mode/#code [+o gnolam] by ChanServ |
11:20 | | gnolam [lenin@Nightstar-10613.8.5.253.static.se.wasadata.net] has quit [Quit: Reboot] |
11:28 | | AnnoDomini [AnnoDomini@83.21.82.ns-2778] has quit [Ping Timeout] |
11:28 | | gnolam [lenin@Nightstar-10613.8.5.253.static.se.wasadata.net] has joined #Code |
11:28 | | mode/#code [+o gnolam] by ChanServ |
11:29 | <@Reiver> | Okay, I want to work something out but I'm not actually entirely certain whether I should be trying to solve a simultaneous equation or otherwise. |
11:31 | <@Reiver> | Basically, I've struck on the idea of using, in a game, a sqrt() model of funds-to-progress for research or otherwise - thus, if you spend $10 for 10 turns, you end up with 31 points in your research, wheras if you spend 100 points you'd only get 10 points in the same research. |
11:31 | <@Reiver> | Thus discouraging people from dumping vast one-time lumps at research or whatever, in favor of steady investment over time. |
11:32 | | AnnoDomini [AnnoDomini@83.21.30.ns-3753] has joined #Code |
11:32 | | mode/#code [+o AnnoDomini] by ChanServ |
11:32 | <@Reiver> | (There are some obvious issues with someone spending 10x the money getting only 3x the research rate, but I'll skip that for the moment) |
11:34 | <@Reiver> | What I'm now trying to figure out is how I work out just how much $ you need to invest to get X points over Y turns, in order to find the sweetspot for, say, 20 turns. |
12:27 | | GeekSoldier|work [~Rob@91.18.88.ns-5048] has quit [Ping Timeout] |
14:38 | | gnolam [lenin@Nightstar-10613.8.5.253.static.se.wasadata.net] has quit [Quit: Reboot] |
14:42 | | gnolam [lenin@Nightstar-10613.8.5.253.static.se.wasadata.net] has joined #Code |
14:42 | | mode/#code [+o gnolam] by ChanServ |
15:04 | < Vornicus-Latens> | Diminishing Marginal Returns! |
15:06 | <@AnnoDomini> | Researchers Choosing Academic Career To Avoid Real Work! |
15:07 | | Vornicus-Latens is now known as Vornicus |
16:32 | | Pi [~sysop@76.104.130.ns-21570] has quit [Ping Timeout] |
16:53 | <@AnnoDomini> | Hm. I have a text handling problem. Is there some simple way to insert a character at specified intervals? Like, every 100 lines? |
16:53 | <@AnnoDomini> | I don't want to do this by hand, of course. |
16:58 | <@AnnoDomini> | Alternatively, could youse guys point me to a text editor for Windows that can use regexps in its search/replace function, so I could search for something, and then replace that something with something that's based on what was found? |
16:59 | < EvilDarkLord> | Read a char at a time, maintain a counter appropriately? |
16:59 | <@AnnoDomini> | Emphasis on simple. |
16:59 | < EvilDarkLord> | This is simple. |
16:59 | < EvilDarkLord> | Unless your string processing functions are horrible, of course. |
17:00 | < Vornicus> | Anno: you can use python to iterate over lines in a file |
17:00 | | GeekSoldier|work [~Rob@91.18.96.ns-4729] has joined #code |
17:00 | < Vornicus> | or python's string.split() function to split an existing string on newlines. |
17:00 | < Vornicus> | And then step over it using a range. |
17:00 | <@AnnoDomini> | Hm. Python. This gives me an idea. |
17:01 | < EvilDarkLord> | Still not installing it? |
17:02 | <@ToxicFrog> | Awk will do this. |
17:02 | <@McMartin> | Or use readlines() on the file to presplit on newlines. |
17:03 | <@ToxicFrog> | BEGIN { counter=1; } (counter == 100) { counter=1; print "!" $0; next; } { counter = counter+1; } |
17:03 | <@ToxicFrog> | I think. |
17:04 | <@AnnoDomini> | Well, I was hoping that there was a pre-existing tool or something to do this. |
17:04 | < Vornicus> | You're a /programmer/ |
17:04 | <@ToxicFrog> | There is. |
17:04 | < Vornicus> | You /make/ the tools. |
17:04 | <@ToxicFrog> | It's called awk. |
17:05 | <@ToxicFrog> | Or, well. |
17:05 | <@ToxicFrog> | There's a pre-existing language for this. It's called awk, as is the program that executes it. |
17:06 | <@ToxicFrog> | If you don't want to use awk, pick a language with decent text processing tools and use that - python's been suggested, bash, perl, and lua also come to mind. |
17:06 | <@AnnoDomini> | Vornicus: The Daily WTF exists partly because of people who don't bother to check if anyone has thought of it before and make their own version of substr()~ |
17:07 | < Vornicus> | Well, yes. |
17:10 | <@ToxicFrog> | As far as regexes in windows text editors go - nedit has them, but requires X11. I haven't used any others enough to know about their regexes. |
17:11 | | You're now known as TheWatcher[afk] |
17:12 | <@AnnoDomini> | Notepad2 has regexps, but if it capable of using what was found as a basis for the replacement string, I have not figured out how to do that. |
17:13 | <@ToxicFrog> | Well. Again, this is what awk is designed for. |
17:14 | <@McMartin> | Emacs has regexes |
17:14 | <@ToxicFrog> | Yes, but emacs was built by aliens. |
17:15 | <@ToxicFrog> | Or people with keyboards with seven modifier keys, whatever. |
17:17 | <@McMartin> | This MBP has five~ |
17:17 | <@McMartin> | And I do just fine with two, really. |
17:17 | | * AnnoDomini mumbles that his problem wouldn't exist if writers just all went with the standard "Chapter #" notation. |
17:22 | | * McMartin can't read DWTF anymore |
17:22 | <@AnnoDomini> | Why? |
17:23 | <@McMartin> | The only way I can do it without wanting to exterminate 90% of the CS instructors on Earth is if I pretend that the commentariat are all spoofs. |
17:25 | <@McMartin> | Take, for example, the featured comments on http://thedailywtf.com/Articles/Pretty-Simple.aspx |
17:25 | <@McMartin> | Especially the second one. |
17:26 | <@AnnoDomini> | Mmyes? |
17:26 | <@McMartin> | Note also in passing that the quoted text sparking the outrage here is the only person in the entire thread that admits the problem is even POSSIBLE -- all other suggestions are "rewrite entire application" or "quit job immediately". |
17:27 | <@McMartin> | And for saying "the problem is stated is solvable, here's one line of code that does it", *he's* the idiot. |
17:28 | <@AnnoDomini> | This is the true face of the internet. |
17:28 | <@McMartin> | Of course, it will trash their performance. |
17:28 | <@McMartin> | Which you can then use to justify the rewrite, but~ |
17:28 | <@McMartin> | See, this is why we keep the little people in their place. |
17:29 | <@McMartin> | There are large swathes of the Internet that actually have people worth reading in it. |
17:31 | <@AnnoDomini> | ...! Crisis averted. Turns out the ACoK follows the 'chapter #' system. Funnily enough, AGoT does not, at least not in the Polish deadtree. |
17:46 | | Pi-2 [~sysop@67.183.88.ns-4261] has joined #code |
18:09 | <@MyCatVerbs> | McMartin: that's not entirely fair. The losers in question might just be entirely uneducated, rather than merely educated by losers. |
18:09 | <@MyCatVerbs> | McMartin: however, I don't really believe that either. To Hell with CS education. ^_^ |
18:09 | <@McMartin> | MCV: Well |
18:10 | <@McMartin> | To Hell with certain certification programs. |
18:10 | <@McMartin> | Proper CS education tends to lead one *away* from Golden Hammer approaches |
18:10 | <@McMartin> | On the other hand, as an Official Academic, my reaction to many of these is "removing this would be an optimization opportunity. We can do that later~" |
18:13 | <@MyCatVerbs> | McMartin: heh. Less "golden hammer" and more "sack of hammers". ^_^ |
18:14 | <@McMartin> | Heh |
18:14 | <@McMartin> | "Golden hammer" is one of the standard buzzwords for "only sees nails" |
18:14 | <@McMartin> | Originally a snide comment about what people who *think* they have a silver bullet *actually* have |
18:14 | <@MyCatVerbs> | I know, but "sack of hammers" is a funny mental image. ^_^ |
18:14 | <@McMartin> | Yes. |
18:14 | | * McMartin always wondered if a sack of hammers was dumber than an individual hammer or not. |
18:17 | <@MyCatVerbs> | I've always assumed it followed Pratchett's mob intelligence rule - the intelligence of the collective being equal to that of its dumbest member, shared equally between the entire collective. |
18:17 | <@McMartin> | Sensible. |
18:27 | | You're now known as TheWatcher |
18:38 | | GeekSoldier|work is now known as GeekSoldier |
20:00 | | GeekSoldier is now known as GeekSoldier|pub |
22:06 | | AnnoDomini [AnnoDomini@83.21.30.ns-3753] has quit [Quit: <>There is no phenotype</>] |
23:59 | | You're now known as TheWatcher[T-2] |
--- Log closed Fri Mar 07 00:00:44 2008 |