code logs -> 2008 -> Thu, 06 Mar 2008< code.20080305.log - code.20080307.log >
--- 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
code logs -> 2008 -> Thu, 06 Mar 2008< code.20080305.log - code.20080307.log >