code logs -> 2011 -> Sun, 29 May 2011< code.20110528.log - code.20110530.log >
--- Log opened Sun May 29 00:00:02 2011
00:40 You're now known as TheWatcher[T-2]
00:42 You're now known as TheWatcher[zZzZ]
00:52
< kwsn>
Vornicus: you've never used expect ahve you :P
01:02
< RichardBarrell>
Vornicus-Latens: I was under the impression that SQL was pretty consistent in its semantics and that it was just the parsing that was insane because some nutter thought it'd be a good idea to make the query language look like English.
01:03
< RichardBarrell>
I mean it's pretty much, E. Codd and friends, relational algebra under the hood.
01:07
< froztbyte>
Vornicus-Latens: and what's terrible is that the lead devs in my company absolutely fucking swear by PHP, because of its syntactical structure :(
01:07
< froztbyte>
they'll write PHP and not Python purely because curly braces and semicolons
01:08 * kwsn facepalms
01:08
< froztbyte>
they're reasonably capable coders, but they're goddamned stubborn :(
01:08
< kwsn>
perl is my co-op's scripting lang of choice
01:09
< froztbyte>
although I've pushed pretty hard, and we've gotten to the point of "we'll just implement some layer where things can pass between different systems and then you write in whatever-the-fuck"
01:09
< froztbyte>
and it looks like we'll be using gearman as a jobserver+messaging system
01:10
< froztbyte>
wso so while not a perfect solution, it's a pretty decent step up
01:10
< froztbyte>
(as I don't know enough PHP to make any really good software with it, and don't really want to either)
01:10
< froztbyte>
nor do I *really* feel like learning perl
01:19
< RichardBarrell>
Does not the idea that someone can be totally incapable of coping with unusual syntax, but still a good programmer seem kind of dubious?
01:20
< froztbyte>
in general, yes
01:20
< RichardBarrell>
People who get hung up on something trivial like syntax are going to get orders of magnitude more fucked up by semantics, which actually matter.
01:20
< froztbyte>
these people are the unfortunate exception
01:22
< RichardBarrell>
I don't know them, but I will register mild surprise if you don't revise your estimate of their competence sharply downwards at some point in the future (say, after a deployment that turns into a raging clustercopulate.)
01:22
< froztbyte>
hehe
01:22
< froztbyte>
I've been working at neo for 2 years now
01:23
< froztbyte>
like I say, they're definitely the unfortunate exception
01:23
< froztbyte>
irunno how best to describe it really
01:24
< froztbyte>
you know those people who build up plenty of experience over some years, definitely do get shit done and working, even though it's not always the most pretty or sane thing?
01:24
< froztbyte>
not tdwtf-style insane or ugly, though
01:25
< RichardBarrell>
How regularly do you see XSS and XSRF bugs come out of their end of the world?
01:26
< froztbyte>
to date? none that I've found in production
01:27
< froztbyte>
unfortunately it's not my call, since they're above me
01:27
< froztbyte>
but roelf has, over the last few months, shown himself open to being reasoned with
01:27
< RichardBarrell>
Oh, fair enough.
01:28
< froztbyte>
so over time I might get to improve things a bit more :)
01:28
< RichardBarrell>
Weird as shit, though.
01:28
< froztbyte>
yeah
01:28
< froztbyte>
sometimes frustrating, too
01:28
< froztbyte>
in the meantime I just click along in my corner, building all the things I do in sane ways
01:29
< froztbyte>
and then whenever they do come across it, they see all the stuff in place (unlike half-assed examples you might find elsewhere) and then are Suitably Impressed
02:09 Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has joined #code
02:18
< McMartin>
RichardBarrell: Legendarily competent programmers have gotten violently bent out of shape by *brace style* for decades; syntactic hangups are kind of part of the landscape -_-
02:37 Attilla [Some.Dude@2D9A5E.A969A9.115770.24F3F1] has quit [Ping timeout: 121 seconds]
02:57 gnolam [lenin@9D46A2.F4E9D7.E4B4CF.2072AD] has quit [[NS] Quit: Z?]
03:06 cpux [chatzilla@Nightstar-c978de34.dyn.optonline.net] has quit [Ping timeout: 121 seconds]
03:08 shade_of_cpux [chatzilla@510B1D.8D602E.9FE2BE.9FAE21] has joined #code
03:08 shade_of_cpux is now known as cpux
03:57 RichardBarrell [mycatverbs@5A6A32.2B7F97.A529C0.949C1E] has quit [Ping timeout: 121 seconds]
04:20 Kindamoody is now known as Kindamoody[zZz]
05:14 Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has quit [Connection closed]
--- Log closed Sun May 29 05:22:35 2011
--- Log opened Sun May 29 05:22:39 2011
05:22 TheWatcher[zZzZ] [chris@Nightstar-b4529b0c.zen.co.uk] has joined #code
05:22 Irssi: #code: Total of 19 nicks [0 ops, 0 halfops, 0 voices, 19 normal]
05:23 Irssi: Join to #code was synced in 41 secs
05:54 kwsn is now known as kw\t-2
05:58 kw\t-2 is now known as kwsn
06:08 kwsn [kwsn@BAD19E.B5A83A.BEE0B6.388968] has quit [[NS] Quit: moo]
06:37 Stalker [Z@2C3C9C.B2A300.F245DE.859909] has quit [Ping timeout: 121 seconds]
06:41 Vornicus-Latens is now known as Vornicus
07:06 Stalker [Z@5E691D.FC7C16.9F8D82.E0499A] has joined #code
07:06 * Reiver steals Vornicus, applies shrimp.
07:12
< Vornicus>
ew shrimp :(
07:20
< Reiver>
!
07:20 * Reiver applies delicious candy?
07:21 AnnoDomini [annodomini@D553D1.9D4909.26B0F8.14B60A] has joined #code
07:23
< Vornicus>
yey
07:23
< Vornicus>
now why was I stolen?
07:25
< McMartin>
Oh hey, Scala's in the Fedora 15 repos
07:25 * McMartin ka-yoink
07:25 Stalker [Z@5E691D.FC7C16.9F8D82.E0499A] has quit [Ping timeout: 121 seconds]
07:27
< Reiver>
Vorn: I was pondering what further things I needed to inflict apon my Wild Shape program before I would be left to just wrangle the math myself.
07:27
< Vornicus>
Ah.
07:28
< Vornicus>
Well, what does it do already, and what do you need it to do.
07:29
< Reiver>
So far, it reads in a database.
07:31
< Reiver>
What I now need is a way to get entries out of the database (Though I think I've got that bit figured, but not in an iterative way), how to manipulate them, then how to output them at the other end.
07:32
< Reiver>
http://pastebin.starforge.co.uk/467 is what we have so far.
07:35
< Vornicus>
Okay. You will note that we have the database reader thing. So read in your databases.
07:35
< Reiver>
Indeed indeed
07:39
< Reiver>
hm, minor query: I do not have a key for base.csv, as it is only one line.
07:39
< Reiver>
Would it help standardise matters if I just gave it one anyway?
07:44
< Vornicus>
It would help.
07:44
< Reiver>
OK!
07:44
< Reiver>
Done.
07:48
< Vornicus>
All right. Now that that's done we can ask interesting questions.
07:49 Stalker [Z@Nightstar-3602cf5a.cust.comxnet.dk] has joined #code
07:49
< Reiver>
yus
07:50
< Vornicus>
SO what kinds of questions do you need to ask?
07:52
< Reiver>
I need, for example, to take the Baseline strength, add the Size strength to it, and then output the resulting value.
07:52
< Reiver>
Or toHit = BAB+critter_strength+size_strength (Or however we would be pulling out those values)
07:52
< Vornicus>
Right
07:52
< Vornicus>
So where do we get the BAB?
07:53
< Reiver>
The base.csv has a column of BAB and the value within.
07:56
< Reiver>
So that would be base_table(["Base"]["BAB"]) ?
07:57
< Vornicus>
Without the... shit my numbers don't work either, wtf
07:57
< Vornicus>
parentheses
07:57
< Reiver>
... what the hell are you doing there
07:57
< Reiver>
OK, we're starting to get a winner
07:58
< Vornicus>
My left control key and my numbers have stopped working.
07:58
< Reiver>
Laptop?
07:58
< Vornicus>
No, plain old keyboard.
07:58 * Reiver ponders. ct,bt,st may be more useful if we're using these tables a lot.
07:58
< Vornicus>
But this is rather inconvenient.
07:58
< Reiver>
Funktastic
07:58
< Reiver>
plug/unplug?
07:58
< Vornicus>
Don't shorten too much. base, critter, size
07:58
< Vornicus>
Just tried that.
07:59
< Reiver>
hm
07:59
< Reiver>
base["Base"]["foo"] may become somewhat clunky.
07:59
< Reiver>
I think I'll live, though
07:59
< Reiver>
And your keyboard has gone insane.
08:00
< Reiver>
I reccomend taking ito ut the back to have it shot.
08:00 * Reiver eyes the errant space, does the same to his ??
08:00
< Vornicus>
Yes it has. D:
08:00
< Vornicus>
I can't even frownyface.
08:01 * Reiver does it for you: >:(
08:01
< Reiver>
OK, so um
08:04 * Reiver attempts to figure out strength bonuses, hits a wee snag, haha
08:04
< Reiver>
First off, base["Base"]["STR"] is a raw value, everything else is a total modifier.
08:05
< Vornicus>
All right, we'll need a function that converts from number to bonus.
08:05
< Reiver>
Yeah.
08:05
< Reiver>
It also only ever needs to work on base.csv, mind.
08:05
< Reiver>
Though flexibility isn't bad, it doesn't need to be too insane.
08:06
< Reiver>
So, hn
08:06
< Vornicus>
def scoretobonus lparen score rparen: return lparen score minus ten rparen / two
08:06
< Vornicus>
actually use // instead of just /, // is always integer division.
08:06
< EvilDarkLord>
bonus = (number - 10) / 2 - isOdd(number)
08:06
< Reiver>
Python: Functions are name_second_bit as opposed to Javas camelCapsHere yes?
08:06
< EvilDarkLord>
Assuming division always rounds down.
08:07
< Reiver>
... oh, // is integer division? <3
08:07
< EvilDarkLord>
Wait, ignore me. If it rounds sanely (number - 10) / 2 should work.
08:07
< Vornicus>
yeah, underscores.
08:08
< Vornicus>
it rounds sanely.
08:08
< Reiver>
EDL: It wouldn't, alas
08:08
< Reiver>
Rounding sanely would generally round up, which is the wrong direction in this case.
08:08
< EvilDarkLord>
No, rounding sanely rounds down.
08:08
< Vornicus>
from underscoreunderscorefutureunderscoreunderscore import division changes / to give a float when necessary
08:10
< Reiver>
funkytastic.
08:10
< Vornicus>
I can't use my dash/underscore thing either, in case you couldn't tell.
08:11
< Reiver>
I may have noticed, yes
08:11
< Reiver>
I don't think I need that today, though, so that's cool.
08:12
< Reiver>
I am inclined to do something silly. I wonder if I should or not.
08:12
< EvilDarkLord>
Reiver: Specifically, rounding sanely rounds down so that when you round negative things the absolute value goes up.
08:13
< McMartin>
First experiments with the scala repl are pegging the CPU for over a minute on string assignments.
08:13
< Reiver>
EDL: Huh, that's pretty cool.
08:13
< EvilDarkLord>
But YMMV on sanity. :)
08:13
< Reiver>
We shall see when I compare its Int score~
08:13
< Reiver>
(Actually, maybe not - it's a 2, afterall.)
08:14
< Reiver>
Oh well, one day when I raise the base critter to INT 3 on sheer principle :p
08:14
< Reiver>
So, Vorn!
08:14
< McMartin>
Round to zero and round to negative infinity both have their place.
08:14
< Reiver>
Dearly beloved, we are gathered here today etc~
08:14
< McMartin>
As do the more exotic round to even.
08:14
< Reiver>
McM: ... thefuck
08:15
< Namegduf>
What is the use for round to even?
08:15 * Namegduf is curious
08:15
< McMartin>
Round to even is a way to reduce your noise in random data.
08:15
< Reiver>
Anyway: Now I can usefully import numbers. What format do I want to throw them around as?
08:15
< Namegduf>
Ah.
08:15
< Reiver>
Do I want to produce a fistful of different variables, one for each output stat?
08:15
< EvilDarkLord>
McMartin: Okay, but in this context the sane rounding, i.e. the one that is least :effort:, is round to negative infinity. :)
08:15
< McMartin>
Since rounding to neg-inf will introduce a bias, as will round to zero unless your mean is zero *and* you don't care about negative vs. positive comparisons.
08:15
< Reiver>
Do I want to produce a set of summarised input variables, such as strMod because it comes up a lot?
08:16
< McMartin>
Well, round to 0 is :effort:
08:16
< McMartin>
round to -INF is :eng101:
08:16
< McMartin>
round to even is either :science: or :byobdood:./
08:16
< Reiver>
... byobdood?
08:16
< EvilDarkLord>
buy your own beer dood I'm guessing.
08:16
< EvilDarkLord>
*bring
08:17
< McMartin>
One moment~
08:17
< EvilDarkLord>
Which suggests :science:
08:17
< EvilDarkLord>
But with drunk nerds.
08:17
< McMartin>
http://i.somethingawful.com/forumsystem/emoticons/emot-byodood.gif
08:18
< McMartin>
(see also: http://i.somethingawful.com/forumsystem/emoticons/emot-effort.gif and http://i.somethingawful.com/forumsystem/emoticons/emot-science.gif )
08:18
< McMartin>
It's worth noting that :effort: is "this is actually really easy, but I still can't be arsed"
08:18
< Vornicus>
Reiver: just so.
08:19
< McMartin>
Apparently it's :byodood: though, my mistake.
08:19
< Reiver>
Vorn: Do I want to bother for anything other than the raw stats?
08:19
< Vornicus>
What do you mean?
08:20
< Vornicus>
This lack of lctrl is really cramping my style.
08:21
< Reiver>
OK, I will create a fistful of variables for the output stats
08:23
< Reiver>
The bit that is throwing me - how do I cross-reference bits from one table against another?
08:23
< Reiver>
Eg, I need the Size from critter.csv so I can apply the modifier from size.csv
08:24
< Vornicus>
size[critters["size"]]["strmod"] for instance
08:24
< Reiver>
Aaaah
08:24
< EvilDarkLord>
What's your language?
08:24
< Reiver>
(Hey you got your braces back?)
08:24
< Reiver>
Python.
08:25
< Vornicus>
no I've had brackets
08:25
< Vornicus>
parens I can't write
08:25
< Reiver>
Oh, handy.
08:25
< Vornicus>
also i'm eating so i'm dropping punctuation don't mind me
08:26
< Reiver>
I'm constructing a WildShape generator for Pathfinder, so you can come up with half a dozen pregen critters and then output the relevant stats. This is mostly possible because the effects are highly formulatic: Instead of using a Grizzly Bears strength, you now go "You are Large. This grants you +4 strength." etc
08:26
< Reiver>
NP~
08:45
< Vornicus>
So I take it that your actual target here is, um.
08:45
< Vornicus>
To go through several critters and get stats on all of them?
08:55
< Reiver>
Right.
08:56
< Reiver>
Thus meaning that when I level up, I change base.csv and regenerate the file, and I can alter the critical stats of half a dozen creatures at once.
08:56
< Reiver>
Instead of manually going through to fiddle three toHits, three ACs, etc
08:57
< Vornicus>
Okay. For now, just get your stats for one figured out; then we'll deal with changing it so it handles all of them.
08:57
< Reiver>
OK
08:57
< Reiver>
Though I think it should behave there okay anyway
08:57
< Reiver>
(Well, other than creating the looping bit, but yeah)
08:57
< Reiver>
haha, that'll be fun
08:58
< Reiver>
... no, that's easy, I just shove it in the baseline
08:58
< Reiver>
secondaryPenalty
08:58
< Reiver>
-5 at present. When I get multiAttack, it's -2.
09:03
< Reiver>
Ditto for the save DC. Haha.
09:03 * Reiver goes back to doing stuffs.
09:03 Stalker [Z@Nightstar-3602cf5a.cust.comxnet.dk] has quit [Ping timeout: 121 seconds]
09:03 * Reiver again wishes he could be bothered to set up a one-to-many database table.
09:11
< Reiver>
Is there a way to do interger multiplication?
09:11
< Vornicus>
um
09:12
< Reiver>
AKA 3*0.5 = 1?
09:12
< Vornicus>
int lparen <operation> rparen
09:12
< Vornicus>
rounds donw, just like dandd does.
09:12
< Reiver>
int(etc * foo) then?
09:12
< Vornicus>
just so.
09:12
< Reiver>
woo
09:12
< Vornicus>
doesn't matter what the operation is.
09:14
< Reiver>
Note for the future: Something tells me I could have refactored critter[name] into something shorter, somehow.
09:15
< Reiver>
So uh constructing strings in Python
09:16
< Reiver>
"Foo: " + bar + " " + etc?
09:17
< Vornicus>
just so, or you can use string formatting stuff.
09:17
< Vornicus>
Which I can't describe to you because I don't have a percent key at the moment.
09:17
< Reiver>
Would that make a string faster and easier, or?~
09:17
< Reiver>
Use PC instead and I'll pretend to parse~
09:18
< Vornicus>
okay so imagine for a moment that you've got a person's name as ["John", "Smith"]. well actually it should be a tuple.
09:18
< Vornicus>
so parens instead of brackets
09:18
< Reiver>
Right
09:18
< Vornicus>
You can then write "PCs PCs" PC ["John", "Smith"] and it will give you "John Smith"
09:19
< Vornicus>
Actually let's make this a dictionary: {"first": "John", "last": "Smith"}
09:19
< Vornicus>
this way I can do cooler things
09:20
< Vornicus>
okay LP and RP are left and right paren
09:20
< Vornicus>
"PCLPfirstRPs PCLPlastRPs" gives John Smith; "PCLPlastRPs, PRLPfirstRPs" gives me "Smith, John"
09:21
< Vornicus>
er, PC not PR in that second one.
09:22
< Reiver>
Huh, cool.
09:22
< Vornicus>
both of those you do PC whatever data structure you've got
09:22
< Reiver>
Ableit perhaps not so excellent for very long strings.
09:22
< Vornicus>
It's a damn sight better than your usual add + shit + together stuff.
09:23
< Vornicus>
It also means that if you really feel like it you can store off your formatting strings as text files.
09:25
< Reiver>
Hunh.
09:25
< Reiver>
So, hm
09:25
< Reiver>
How do you put in text?
09:26
< Reiver>
Eg, foo + ": " + bar + " Damage: " + etc
09:27
< Vornicus>
so you have {"foo": something, "bar": something, "etc": something}
09:28
< Vornicus>
call that dictionary stuff
09:28
< Reiver>
Aha, OK.
09:28
< Reiver>
Anyhoo, I must depart for foods
09:28
< Vornicus>
"PCLPfooRPs: PCLPbarRPs Damage: PCLPetcRPs"
09:28 * Reiver will return! You'll probably be asleep though.
09:28
< Vornicus>
PC stuff
09:28
< Reiver>
Cunning
09:29
< Reiver>
Alright, seeyous
09:29
< Vornicus>
No I won't. I got up like three hours ago
09:29
< Reiver>
... oh.
09:29
< Reiver>
Haha.
09:29
< Reiver>
Right then!
09:29 * Reiver will be back after foodings the little lady who is hungry.
09:47 You're now known as TheWatcher
10:17 Kindamoody[zZz] is now known as Kindamoody
11:12
< Reiver>
Pizza: Eet is delicious
11:15
< Vornicus>
Truth
11:20
< jerith>
The elves tromped through my deforestation project to sell me booze. I wonder how long it'll be before they return with an army.
11:21
< AnnoDomini>
Is this DF2010 or 40d?
11:21
< jerith>
2010
11:23
< AnnoDomini>
I've never had treecutting diplomacy happen in that version.
11:23
< AnnoDomini>
It may be bugged.
11:23
< jerith>
:-)
11:24
< jerith>
I hit a cavern system four layers from the surface, so my fortress is currently very shallow.
11:25
< AnnoDomini>
Nice. I typically generate worlds with caverns close to the surface. And just one layer of them.
11:25
< AnnoDomini>
Then I take them over for my fortress.
11:52 Attilla [Some.Dude@Nightstar-febccc15.cable.virginmedia.com] has joined #code
12:02
< Reiver>
OK, this /is/ a little clumsy, but I don't think it's easily solved. Ach.
12:04 * Reiver thinks. He could make A Million And One Variables, which would simplify readability of each line, but be somewhat redundant otherwise.
12:09
< Vornicus>
what's the deal?
12:10
< Reiver>
Lines like, uh
12:10
< Reiver>
attack1 = critter[name]["attackName1"] + " " + (attackBonus + tohit_penalty(critter)) + ": " critter[name]["attackDie1"] + "+" + int((strMod + size[size]["StrMod"]) * critter[name][attackMod1])
12:11
< Reiver>
Theoretical output: Bite +7: 1d6+6
12:11
< Vornicus>
okay.
12:11
< Vornicus>
Gah, hate being unable to type
12:11 * Reiver is sowwy!
12:12
< Vornicus>
I guess first things first we should build a thing that actually creates the damag
12:12
< Reiver>
Possibly best
12:12
< Vornicus>
because if your damage bonus is zero or negative you won't want that + in there
12:13
< Reiver>
... Haha, that's a point I hadn't thought of yet ^.^
12:13
< Reiver>
(Or rather: I wasn't hunting for bugs till I got it writing)
12:14
< Vornicus>
As for the bonus, it's actually relatively simple to make something show up with the plus sign when it's positive
12:14
< Reiver>
hm
12:14
< Reiver>
Yus
12:14
< Vornicus>
to whit: PCLPbonusRP+i in your formatting string
12:15
< Vornicus>
i assumes the thing is an integer.
12:15
< Vornicus>
http://docs.python.org/library/stdtypes.html#string-formatting-operations
12:15
< Reiver>
It is an integer, yes
12:15
< Reiver>
That's a pretty funky thing. String formatting away!
12:16
< Vornicus>
It's a very useful tool.
12:18
< Vornicus>
python three gives you stronger abilities with its format thing but I don't know it yet so.
12:20
< Vornicus>
So what you'll want to do is construct a dictionary of the things you want and there it goes.
12:21
< Vornicus>
But for dice rolls you're going to want to build a function because that thing there won't be good when you have one d six + zero
12:22
< Vornicus>
because it will come out one d sixty which is very much not what you want.
12:25
< Reiver>
Yes, that would be a problem.
12:25
< Reiver>
OK then!
12:25
< Vornicus>
so you need to write a function that handles that situation
12:26
< Reiver>
Yers
12:26
< Reiver>
Two if statements, yes?
12:27 RichardBarrell [mycatverbs@Nightstar-183b66a7.bb.sky.com] has joined #code
12:28
< Vornicus>
One if statement
12:28
< Reiver>
... oh hey, 0 is a + anyway isn't it
12:28
< Reiver>
1d4+0 instead of "1d4"
12:28
< Vornicus>
it'll go something like def dierollLPquantity, size, bonusRP
12:28
< Vornicus>
:
12:29 * TheWatcher stabs headbones, notes that 'elsif' does not work in C
12:29 * Vornicus patpats tw
12:31
< Vornicus>
...oh look, it does give a + for zero
12:32
< Vornicus>
also the onscreen keyboard saves meeee
12:34 * TheWatcher crosses fingers, sees whether he actually managed to get his head around zlib, or whether he just thought he did...
12:37
< TheWatcher>
Holy shit, it actually wored
12:37
< TheWatcher>
worked, even
12:39 Reivles [orthia@Nightstar-d6c757d1.lightwire.co.nz] has joined #code
12:41
< Vornicus>
holy shit
12:42
< Reiver>
Hooray onscreen keyboards!
12:46
< Reiver>
so, damage_output - should I be passing it the values, or should it be digging them out itself?
12:46
< Vornicus>
pass it the values
12:47
< Vornicus>
Law of Demeter applies here
12:47
< Reiver>
I know not the law, but I was assuming as much anyway
12:47
< Vornicus>
http://en.wikipedia.org/wiki/Law_Of_Demeter
12:49
< Reiver>
So, to get my head around string formatting
12:49
< Reiver>
return "%die + %bonus" yes?
12:50
< Vornicus>
you have string % dictionary or string % tuple
12:50
< Reiver>
OK, I misunderstood it then
12:50
< Vornicus>
so in this case we have def format_roll(quantity, die, bonus):
12:51
< Reiver>
Quantity being other than d6?
12:51
< Reiver>
Er, die being other than
12:51
< Vornicus>
if I wanted to roll 3d6+4 i'd say format_roll(3,6,4)
12:51
< Vornicus>
for instance
12:53
< Vornicus>
but it goes like this
12:53
< Vornicus>
if bonus == 0: return "%id%i" % (quantity, die)
12:54
< Vornicus>
else: return "%id%i%+i" % (quantity, die, bonus)
12:55
< Reiver>
Ohhh, and it's telling you what the thing is
12:55
< Reiver>
OK
12:56
< Vornicus>
Yeah.
12:56
< Vornicus>
Or you could do this with a dictionary but in this case it's not worth your time.
12:58
< Reiver>
I admit, it was probably naughty of me to have recorded stuff as 2d6, then
12:58
< Vornicus>
Yes.
12:58
< Reiver>
But then, I was not ever expecting to have to alter those values without radically redoing stuff.
12:58
< Reiver>
As 1d8, 2d6 is essentially a fixed thing like "Large" or "Claw"
12:59
< Vornicus>
Reasonable, certainly. But it does mean it makes certain things problematic later...
12:59
< Vornicus>
but not wild shape per se
12:59
< Vornicus>
Enlarge Person.
12:59
< Reiver>
Yes and no
12:59
< Reiver>
Enlarge Person does not need 2,6 though
12:59
< Reiver>
Because it's not a terribly mathematical progression anyway.
12:59
< Vornicus>
Enlarge person would care about both in a certain sense. But that's not this problem.
13:00
< Reiver>
1d2 1d3 1d4 1d6 1d8 2d6 3d6 4d6 6d6 8d6 12d6
13:00
< Reiver>
The actual 1 and X are not important, they're just a chain of arbitary text bits.
13:00
< Reiver>
I mean if it went 1d2 1d3 1d4 1d5 I could see the point~
13:01
< Vornicus>
the other thing is that if it's not text composite you can actually tell the computer to roll it easily.
13:01
< Vornicus>
but anyway
13:03
< Reiver>
Heh, a valid point.
13:03
< Reiver>
I shall bear it in mind for the future, rather than something intended for mail merge and hardcopy printing~
13:05
< Vornicus>
Truth
13:07
< Vornicus>
but you get the idea.
13:07
< Vornicus>
you absolutely /will/ have to keep the bonus and the dice separate
--- Log closed Sun May 29 13:17:23 2011
--- Log opened Sun May 29 13:17:27 2011
13:17 TheWatcher [chris@Nightstar-b4529b0c.zen.co.uk] has joined #code
13:17 Irssi: #code: Total of 21 nicks [0 ops, 0 halfops, 0 voices, 21 normal]
13:18 Irssi: Join to #code was synced in 41 secs
13:42 Vornicus [vorn@Nightstar-66efdaa0.ct.comcast.net] has quit [[NS] Quit: ]
13:55 RichardBarrell [mycatverbs@Nightstar-183b66a7.bb.sky.com] has quit [Connection closed]
14:16 gnolam [lenin@9D46A2.F4E9D7.E4B4CF.2072AD] has joined #code
14:20 * TheWatcher kucklecracks, now has to get his resource file reader, virtual filesystem, resource managers, and console all talking nicely
14:31
< Reiver>
... well that teaches me things about my critter I never knew. Huh.
14:31
< Reiver>
Also makes Multiattack a little embarrasing.
14:31 * Reiver goes hunting to check this unexpected change.
14:33
< Reiver>
hm. No, it's consistent - but I'll need to update a few files all the same. Well, that's fine.
14:37 Reivles [orthia@Nightstar-d6c757d1.lightwire.co.nz] has quit [Ping timeout: 121 seconds]
15:38 Stalker [Z@3A600C.A966FF.5BF32D.8E7ABA] has joined #code
15:41 Kindamoody is now known as Kindamoody|out
15:45 Stalker [Z@3A600C.A966FF.5BF32D.8E7ABA] has quit [Ping timeout: 121 seconds]
16:04 Vorn [Vorn@1526F6.19ACA0.DD6698.DEAEA8] has joined #code
16:05 Vorn is now known as Vornicus
16:06
< Reiver>
Hrn, a puzzle: Are carrying capacities < 30 able to be calculated via Math? http://vorn.dyndns.org/theonewiki/CarryingCapacity
16:07
< Reiver>
Or am I shoving in a ruddy great table? I can handle the latter, but it'd be good to know. :p
16:08
< Vornicus>
Let me see if I can match it.
16:09
< AnnoDomini>
Hmm. Str*3.3 rounded up from .9 and down otherwise for 1-10...
16:10
< Vornicus>
10 * str / 3, actually, rounded down always, for 1-10.
16:10
< AnnoDomini>
Mhm.
16:11
< AnnoDomini>
From there, it looks exponential.
16:11
< Vornicus>
Well, okay, it's actually easier to look at max lift.
16:12
< AnnoDomini>
It'd probably be easier to do the table, because the formula here looks terrible to implement.
16:13
< Vornicus>
Ah, I have you now.
16:14
< Vornicus>
OKay, from 10 on up it is: math.round(2^(str/5.0)*5)*5
16:14
< Vornicus>
Well, okay, not /exactly/, that has rounding errors.
16:15
< Vornicus>
Let me see.
16:19
< Vornicus>
Okay. def carrying_capacity(strength): return math.round(2**((strength % 5) / 5.0) * 5) * 2**int(strength) * 5 if strength > 10 else strength * 10
16:21 * TheWatcher eyes his vfs code, sighs, begins the Massive Overhaul
16:22
< Vornicus>
that's not working either, what
16:23
< Reiver>
OK, table it is
16:23
< Reiver>
Thanks for trying, though~
16:23
< Reiver>
If Vorn The Math Guy can't figure it in twenty minutes, I'm thankful I didn't waste three hours doing the same ??
16:24
< Vornicus>
I just screwed some things up.
16:24
< Vornicus>
Actually your table needs only five entries: from 10 to 14.
16:27
< Vornicus>
math.round(2 ** (strength % 5) / 5.0) * 20) * 2 ** (int(strength / 5) - 2) * 5
16:28
< Vornicus>
Okay. def carrying_capacity(strength):return math.round(2**((strength % 5) / 5.0) * 5) * 2**int(strength) * 5 if strength > 10 else strength * 10
16:28
< Vornicus>
Dammit I was working on that, stop that.
16:30
< Vornicus>
I assume you'll want the size adjustments in there as well.
16:33 * Vornicus rolls that in.
16:39 Vornicus [Vorn@1526F6.19ACA0.DD6698.DEAEA8] has quit [[NS] Quit: Leaving]
16:40 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has joined #code
16:42
< Vornicus>
http://pastebin.starforge.co.uk/468
16:46
< Vornicus>
Then to get the light and medium load limits they're int(x / 3) and int(2 * x / 3)
16:47
< Reiver>
... good crikey
16:47
< Reiver>
That bit alone does it?
16:48
< Vornicus>
THat's all there is to it.
16:48
< Reiver>
Because every 5 points it doubles, yes?
16:48
< Reiver>
If I'm reading this right, which I do not gurantee~
16:48
< Vornicus>
Every five points it doubles.
16:48
< Reiver>
Aha, right
16:49
< Reiver>
Where do you put the CARRY_MULTIPLIERS, or is that left as a constant at the top of the file?
16:49
< Vornicus>
TOp of the file.
16:49
< Vornicus>
Or, as it's only used for that function, just above the function.
16:49
< Reiver>
Which is where all the functions go anyway, yes?
16:50
< Vornicus>
Heh.
16:50
< Vornicus>
Often it's constants then functions then non-function code.
16:50
< Vornicus>
SInce this constant is only used in one function, it may be more sensible to put this constant directly above the function it works in instead of above all the functions.
16:51
< Reiver>
Also is there a reason that Colossal has 12, 24 while the others are (Other than < medium) *1.5?
16:51
< Vornicus>
Because I screwed it up, it should be 16, 24. Good catch~
16:51
< Reiver>
Do you mean beneath def carrying_capacity, or merely right above def carrying_capacity? I am assuming the latter, but just making sure I'm not missing something.
16:52
< Vornicus>
Right above
16:52
< Reiver>
Cool beans.
16:52
< Reiver>
(You rock!)
16:52
< Reiver>
1,1.5 2,3 4,6 8,12 12,24 just seems the odd duck out
16:53 Stalker [Z@26ECB6.A4B64C.298B52.D80DA0] has joined #code
16:53 * Reiver has often wondered why.
16:54
< Reiver>
Though it's not as obvious until you have a handy ratio to stick in front like that~
16:54
< Vornicus>
It's not the odd duck out, it's actually 16,24. I typo'd.
16:57
< Reiver>
Oh, righto
16:57 * Reiver did not mean to be nitpicky, but just saw a discrepancy so poked at it
16:57
< Reiver>
And was too tired to spot it when I looked at the origional table to boot, heh
16:59
< Vornicus>
The original table is hard to read.
17:00
< Reiver>
It really is
17:00
< Reiver>
hrn, it throws a bug
17:00
< Reiver>
nominal = math.round(2 ** (strength % 5) / 5.0) * 20) * 2 ** (int(strength / 5) - 2) * 5 if strength > 10 else strength * 10
17:00
< Reiver>
er
17:00
< Reiver>
nominal = math.round(2 ** (strength % 5) / 5.0) * 20) * 2 ** (int(strength / 5) - 2) * 5 if strength > 10 else strength * 10
17:01
< Reiver>
Well I hope that's visible anyway, the 20) seems to be in question.
17:01
< Reiver>
(Looking at it, this is clear)
17:01
< Vornicus>
Because I blew the parens, dammit, come on vorn.
17:01
< Vornicus>
double up the parens befor the first time it says "strength"
17:02
< Reiver>
You're not using a keyboard proper, you've got an excuse~
17:02
< Vornicus>
so 2 ** (( strength...
17:02
< Reiver>
Right, I was wondering if it should be there
17:02
< Reiver>
But wasn't confident of my math-fu to assume >_>
17:05
< Reiver>
hooray
17:05
< Reiver>
Now I just have to... ohgod
17:05
< Vornicus>
ohgod?
17:05
< Reiver>
Write a schema for critter.csv
17:05
< Reiver>
This is not a problem, per se.
17:06
< Reiver>
Just an almighty headache of thirty bloody colums~
17:06
< Reiver>
Also, uh, I think I need to check - is the reader or key finders (eg critter["Swindlespitter"]["Attack3"]) going to care if they run into a null on returning?
17:07
< Reiver>
'cuz a lot of those rows are nulls; I was planning to do checking code once I got the thing actually workingish.
17:08
< Vornicus>
We'll have to deal with that at some point
17:08
< Reiver>
OK
17:09 * Reiver plans to have most such things happen before the Mail Merge, just to make life easier, but.
17:24
< Vornicus>
oh, btw: only do one critter's worth of Massive Amounts Of Crap
17:32
< Reiver>
Yeah, I realise that~
17:35
< Vornicus>
'cause after you've got one we'll rejigger it to take a single critter and do its crap to that and then wrap it in a loop that goes through every critter.
17:36 Kindamoody|out is now known as Kindamoody
17:38
< Reiver>
But of course. :)
17:38
< Reiver>
The key will be getting the schema done
17:38
< Reiver>
Which I think I will leave till tomorrow lest I collapse, so yeah
17:38
< Reiver>
ni~
17:42
< Vornicus>
ni
17:51 Vash [Vash@Nightstar-ce75f1f6.sd.cox.net] has joined #code
17:57 Reiver [orthianz@9C034E.E649EA.3194C7.8381A3] has quit [Client closed the connection]
17:57 Reiver [orthianz@9C034E.E649EA.3194C7.8381A3] has joined #code
17:58 Vash [Vash@Nightstar-ce75f1f6.sd.cox.net] has quit [[NS] Quit: ... and then Cthulhu WOKE! And scattered the dead bodies of humans all over the world! ...]
18:02 AnnoDomini is now known as Birds
18:07 EvilDarkLord is now known as Shield
18:28 * TheWatcher eyes this code, wonders what the everliving fuck he was doing
18:30 kwsn [kwsn@Nightstar-70d795cc.dyn.centurytel.net] has joined #code
18:32
< jerith>
TheWatcher: Writing bugs, apparently.
18:48 * kwsn would introduce a multitude of bugs to jerith's code base, but then again, it is jerith's codebase ;)
18:51
< jerith>
kwsn: That would give me a nonzero bug count...
18:52
< Vornicus>
jerith: ...what kind of freak of nature are you that you have no bugs.
18:52
< jerith>
Vornicus: I compile with --nobugs.
18:53
< Vornicus>
okay I literally just went XD
18:53
< jerith>
Pics.
18:54
< Vornicus>
It's too late, the moment's gone.
19:06
< kwsn>
the compiler i use at work won't even compile with /warnings/ xD
19:08 * gnolam ponders coordinate systems.
19:14 * kwsn ponders gnolam ponderinger coordinate systems.
19:22
< ToxicFrog>
kwsn: as in "it treats warnings as errors" or as in "it does not emit warnings even for things that it should"?
19:22
< kwsn>
former
19:23
< kwsn>
like "warning: implicit conversion from blah to blah" leads to "ERROR: COMPILE FAILED" even if it's the only error
19:23
< kwsn>
(or warning)
19:30
< ToxicFrog>
That does not strike me as unreasonable.
19:50 Vash [Vash@Nightstar-f03c5637.sd.cox.net] has joined #code
19:56 Stalker [Z@26ECB6.A4B64C.298B52.D80DA0] has quit [Connection reset by peer]
20:02
< Vornicus>
Yeah I gotta say. Treat Warnings As Errors is all right in my book.
20:05 * jerith has a tendency to make himself unpopular in new-to-him codebases by cleaning up all the warnings.
20:05 Vashicus [Vash@Nightstar-f03c5637.sd.cox.net] has joined #code
20:08 Vash [Vash@Nightstar-f03c5637.sd.cox.net] has quit [Ping timeout: 121 seconds]
20:28 Vashicus is now known as Vash
20:30 Vash [Vash@Nightstar-f03c5637.sd.cox.net] has quit [[NS] Quit: ... and then Cthulhu WOKE! And scattered the dead bodies of humans all over the world! ...]
20:40
< gnolam>
"Exercise 4-13. Write a function reverse(s) which reverses the string s by
20:40
< gnolam>
turning the mind inside out, converting madness into reality and opening the door to
20:40
< gnolam>
allow the Old Ones to creep forth once more from their sunken crypt beyond time."
20:43
< jerith>
gnolam: CTHOLBOL?
20:47
< gnolam>
:)
20:47
< gnolam>
But nah. It's the old http://www.bobhobbs.com/files/kr_lovecraft.html
20:48 Stalker [Z@26ECB6.A4B64C.298B52.D80DA0] has joined #code
21:14
< McMartin>
It is true that most Lovecraftian types are gigantic pussies when it comes to this stuff.
21:15
< McMartin>
I mean, converting madness into reality is kind of our whole job description, and mathematicians are even worse than we are, post-Hilbert.
21:15
< jerith>
Go read your Stross.
21:15
< McMartin>
Yes.
21:15
< McMartin>
That's what it takes to make it work.
21:15
< McMartin>
And notice how they reacted.
21:16
< McMartin>
To wit: "awesome. Now to bend it to our will."
21:16
< Alek>
oh. mai.
21:16
< Alek>
Vorn is HANDY to have around. O_O
21:16
< Vornicus>
What'd I do now
21:16
< jerith>
Alek: Why do you think we keep him around?
21:17
< McMartin>
I think the implication was that someone wrote reverse(s).
21:18
< Alek>
Vorn: what are your thoughts on mapping the sphere of visibility onto a "mercator" style projection, on the screen? a la Argus vision.
21:18
< Vornicus>
Fuck Mercator.
21:18
< Vornicus>
It has an area anomaly.
21:19
< Vornicus>
ANd by "area anomaly" I mean "it takes the smallest thing and makes it largest"
21:20
< Alek>
well, yes, I know.
21:20
< Alek>
how would YOU do it, though? if not by mercator?
21:21
< gnolam>
Vornicus: conclusion: Mercator was compensating for something.
21:21
< Vornicus>
Peters is the famous equal area one.
21:21
< Alek>
hrm.
21:21
< jerith>
Yes. The curvature of the earth...
21:22
< Alek>
gall-peters, right?
21:22
< gnolam>
(But more seriously, Mercator projection is more useful for navigation by compass)
21:22
< Vornicus>
Alek: just so.
21:22
< Alek>
hmmm. seems good to me.
21:22
< Alek>
just
21:22
< Vornicus>
But then you have serious problems of another variety: straight lines aren't any more.
21:22
< Alek>
I have all these ideas for games and stuff.
21:23
< Vornicus>
This is, in fact, The Most Serious Problem, when trying to do 3d rendering.
21:24
< Alek>
like a weapon configurable by components like multiple lines of fire, spread, split fire, special properties on the splits, etc.
21:24 * Vornicus gives Alek Mass Effect.
21:24 * Vornicus then gives Alek Gradius.
21:24
< Alek>
or Argus-vision - mapping the sphere of visibility onto a screen, so it's all visible but still in usable form.
21:25
< Alek>
Mass Effect and Gradius didn't do it nearly in as much detail as I envision.
21:25
< Vornicus>
Fisheye fucks with people really hard.
21:25
< McMartin>
Argus-vision: turn the cylinder into a rectangle.
21:25
< Alek>
also, fantasy variants of same. XD
21:25
< Alek>
Thousand Eyes spell. XD
21:25
< McMartin>
The canonical solution here is "minimap"
21:26
< Vornicus>
What McM said.
21:26
< Alek>
well, yes, but I wanted something more suited for FPSes.
21:26
< Vornicus>
Yeah, meet the minimap and motion detector.
21:26
< Alek>
where you can not only SEE everything in LOS, but target it as well - PROPERLY. whether it's level, below you, or above.
21:26
< McMartin>
... the canonical solution here is "minimap", I'd like you to meet Borderlands
21:27 * Vornicus gives Alek Borderlands, and Marathon.
21:27 gnolam is now known as Pravda
21:27
< McMartin>
You can target it as well because you can target as fast as you can turn your head.
21:27 * Alek should install that and give it a whirl, though. Borderlands that is.
21:27 Pravda is now known as gnolam
21:27
< Alek>
Marathon... I need to look up, too.
21:27
< McMartin>
If you're up for co-op give me a ring, I've got a dude who's done no DLC yet~
21:27
< Alek>
heh.
21:27 * Alek dunnos if he has any DLCs there.
21:30
< McMartin>
Just a warning, since it burned me twice:
21:30
< McMartin>
This is an RPG.
21:30
< McMartin>
If you're doing shit damage, it's not because the enemies are hard, it's because you're undergeared.
21:30 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has quit [Connection reset by peer]
21:31 Vornicus [vorn@ServerAdministrator.Nightstar.Net] has joined #code
21:31
< Vornicus>
Gneh.
21:32
< Alek>
as for the customizable weapon - I was thinking in terms of Final Fantasy 7-style weapons, only with each succeeding effect building on the previous ones - like a powerbooster, then a 3-way splitter, then different effects on each of the splits - and all dynamic, shiftable around. and applicable both to tech and to fantasy. and multiple/different weapons - a "pistol" with low chipslot count, a
21:32
< Alek>
"shotgun"/"rifle" with moderate count, depending on whether or not you had a spread chip, a high-count "portable assault weapon"... stuff like that. or wand, rod, staff. XD
21:32
< Vornicus>
Okay so, today apparently mIRC didn't want to play nice with the registration thing so I used xchat. Which apparently is spectacularly unstable!
21:32
< Alek>
huh. didn't know I typed so much. where did it cut?
21:32
< McMartin>
Which one are you using?
21:32
< Vornicus>
The silverex one.
21:32
< McMartin>
Right before "shotgun", but it filled itself in.
21:32
< McMartin>
Vorn: Huh. That's *supposed* to be the good one.
21:32
< Vornicus>
It pegged a processor and wouldn't let me switch tasks.
21:33
< Alek>
what do you mean it filled itself in?
21:33
< Vornicus>
Your client auto-wraps long lines.
21:33
< Alek>
oh sweet.
21:33
< Alek>
that's a new feature for mIRC.
21:33
< Vornicus>
But now mIRC is back to liking me again so I'm back on that.
21:33
< Alek>
I knew it pasted multiple lines if that was the input, but autowrapping I didn't know.
21:33
< Vornicus>
I'm not fucking around when I say it's the best there is: it's the only one that fucking /works/
21:34
< ToxicFrog>
FWIW, I have never had problems with SilvereX.
21:34
< Alek>
yeah, I paid for mIRC years ago. haven't regretted it since.
21:34
< ToxicFrog>
Although I haven't used it recently.
21:34
< ToxicFrog>
(meanwhile, mIRC only just now gets auto-splitting, a feature that has been standard in everything else for a decade)
21:35
< Alek>
pft.
21:36
< Alek>
to be fair, I last upgraded... last year?
21:36
< Alek>
MAYBE even the year before.
21:36
< Vornicus>
Also who the fuck decided that 7 point font was the right size for channel tab text.
21:36
< Alek>
(although that's doubtful)
21:36
< Alek>
so, it's been a feature for at least that long.
21:36
< Alek>
and as for the font, it works just fine for me.
21:37
< Alek>
although this IS a 19" with 1280x1020.
21:37
< Alek>
and I'm about 1.5' away. XD
21:38
< Vornicus>
I'm talking xchat's channel tabs.
21:38
< Vornicus>
mIRC uses the same exact size as the XP taskbar.
21:45
< ToxicFrog>
Vornicus: untick "small text in channel tabs".
21:47
< Vornicus>
I went looking for that kind of option and could not find it.
21:47 Vornotron [Vorn@Nightstar-ab390e07.wlfrct.sbcglobal.net] has joined #code
21:47 * Vornicus hunthunthunts.
21:48
< Vornicus>
Ah, found it finally.
21:48 Vornotron [Vorn@Nightstar-ab390e07.wlfrct.sbcglobal.net] has quit [[NS] Quit: Leaving]
21:48
< Vornicus>
it's just called "smaller text" and I missed it entirely.
21:51 Birds is now known as AnnoDomini
21:56
< Alek>
heh.
21:59
< gnolam>
Alek: I seem to remember you being Russian. You don't happen to know roughly when it switched from "elektronnaya vychislitel'naya mashina" to "komp'yuter"?
22:00 Stalker [Z@26ECB6.A4B64C.298B52.D80DA0] has quit [Client closed the connection]
22:00 Stalker [Z@26ECB6.A4B64C.298B52.D80DA0] has joined #code
22:02
< gnolam>
(I was taught the latter, but my wonderful phrase book from 1962 uses the former)
22:23 * TheWatcher reads a fair way up
22:24
< TheWatcher>
jerith: no, writing code that makes no sense, to say nothing of uncompilable.
22:26
< jerith>
TheWatcher: So bugs? :-P
22:27
< TheWatcher>
I only count something as a bug if it actually gets past compiling. If it never does that, it's me being a fucking moron ¬¬
22:57 AnnoDomini [annodomini@D553D1.9D4909.26B0F8.14B60A] has quit [[NS] Quit: Sleep.]
23:02
< kwsn>
spaghetti code?
23:05
< Vornicus>
I wonder why people don't ever say "ravioli code" or "lasagna code"
23:05
< Vornicus>
also I just figured out what level is playing in my head. A Converted Church in Venice, Italy.
23:06
< Vornicus>
Which was an evil, evil level.
23:11
< Vornicus>
(from Marathon Infinity: 1. go through a giant complex hitting switches while battling aliens. there's 30ish of them and you have to hit them all. And you can't tell which ones you've hit from outside. 2. run through the corridor you opened - with a bit of lava in the bottom so it hurts - and then descend into a cave complex. 3. fight more aliens until you reach the final switch, which raises
23:11
< Vornicus>
the lava level. 4. Now you have to survive the lava long enough to make it back to the top, where there's still /more/ aliens waiting for you just in front of the exit.)
23:13 Stalker [Z@26ECB6.A4B64C.298B52.D80DA0] has quit [[NS] Quit: If the world didn't suck, we'd all fall off.]
23:14
< Alek>
gnolam: noooooo... I left when I was not even 9. >_>
23:14
< Alek>
but my dad might know. I can ask once he gets back from vacation.
23:15
< Alek>
he wanted to be a programmer, but they wouldn't let him into Uni because he was a Christian. <_<
23:32 Stalker [Z@26ECB6.A4B64C.298B52.D80DA0] has joined #code
23:40
< gnolam>
Ah. Thanks anyway.
23:43
< gnolam>
Alek: http://www.lysator.liu.se/~gnolam/temp/ERPB0089_640.jpg <- did I mention how wonderful that phrase book is? :-)
23:46
< TheWatcher>
But does it contain a translation for "My hovercraft is full of eels"?
23:46
< gnolam>
Sadly, no.
23:47
< gnolam>
But if you ever feel the need to ask where you can see a beet-harvesting combine in action or how atomic energy can be used for peaceful ends, you're all set.
23:48
< Vornicus>
I'm trying to figure out what kind of person would ask that kind of question from a phrasebook and expect a positive response.
23:51
< gnolam>
The book was published by the Foreign Languages Publishing House in Moscow.
23:52
< gnolam>
The real question is what anyone asking that kind of a question would do when they got a response, since there aren't any /answers/ to the questions in the book. :)
--- Log closed Mon May 30 00:00:17 2011
code logs -> 2011 -> Sun, 29 May 2011< code.20110528.log - code.20110530.log >