code logs -> 2011 -> Sun, 08 May 2011< code.20110507.log - code.20110509.log >
--- Log opened Sun May 08 00:00:01 2011
--- Day changed Sun May 08 2011
00:00 You're now known as TheWatcher[T-2]
00:02 You're now known as TheWatcher[zZzZ]
00:08 Attilla_ [Some.Dude@Nightstar-febccc15.cable.virginmedia.com] has joined #code
00:09 Attilla [Some.Dude@2D9A5E.A969A9.115770.24F3F1] has quit [Ping timeout: 121 seconds]
00:56 gnolam [lenin@Nightstar-38637aa0.priv.bahnhof.se] has quit [[NS] Quit: Z?]
01:00 Kindamoody is now known as Kindamoody[zZz]
--- Log closed Sun May 08 01:20:09 2011
--- Log opened Sun May 08 01:20:14 2011
01:20 TheWatcher[zZzZ] [chris@Nightstar-b4529b0c.zen.co.uk] has joined #code
01:20 Irssi: #code: Total of 22 nicks [1 ops, 0 halfops, 0 voices, 21 normal]
01:20 Irssi: Join to #code was synced in 46 secs
01:51 Attilla_ is now known as Attilla
01:58
< McMartin>
JavaScript running a PDP-11 emulator running UNIX V6 with AJAX handling disk processes: http://pdp11.aiju.de
01:59
< ToxicFrog>
I'm not sure whether to be impressed, or horrified.
02:00
< McMartin>
It is a reminder that we live in The Future.
02:00
<@Namegduf>
Why must the future be written in JavaScript?
02:01
<@Namegduf>
WHY!?
02:01
< McMartin>
Given that the PDP-11's instruction set is the direct inspiration for the 65xx (NES, C64, Apple 2, etc.), and the Z-Machine emulates in JavaScript just fine, it's not too surprising
02:01
< McMartin>
Namegduf: Because the alternatives appear to be Flash and Silverlight. =(
02:02
< celticminstrel>
Isn't Flash sort of also run in JavaScript? <_<
02:03
<@Namegduf>
No.
02:04 celticminstrel is now known as celmin|Civ4
02:05 Attilla [Some.Dude@Nightstar-febccc15.cable.virginmedia.com] has quit [Ping timeout: 121 seconds]
02:08 * ToxicFrog eyes celtic
02:09
< McMartin>
Flash's ActionScript is part of the same language family as JavaScript, but it is not actually JavaScript.
02:10
< McMartin>
IIRC, both implement some of the relevant ECMA standards.
02:12
< celmin|Civ4>
Hence why I said "sort of". <_<
03:58 celmin|Civ4 is now known as celticminstrel
06:01
< Vornicus>
JS itself is really not that horrible.
06:02
<@Namegduf>
Oh yes it is.
06:02
< Vornicus>
--to the point where I created anonymous functions in it, the right way, the first time, having never read that it even /had/ that ability, without thinking about it.
06:02
<@Namegduf>
That doesn't make it "not horrible".
06:02
<@Namegduf>
It makes it intuitive in that particular way.
06:02
< Vornicus>
Straightforward, anyway.
06:03
<@Namegduf>
JS optional semicolons are handled by detecting a *syntax error* and going back and inserting them.
06:03
< Vornicus>
I mean okay, if i ruled the world there would be no such thing as a globals-by-default language.
06:04 * Reivles sits Vornicus atop a throne, gives him a crown.
06:04
< Vornicus>
:D
06:04 Stalker [Z@2C3C9C.B2A300.F245DE.859909] has quit [Ping timeout: 121 seconds]
06:06
<@Namegduf>
Also lack of typesafety and Python-esque "you can add bits to types that weren't originally there at runtime" to make static analysis much harder.
06:07
<@Namegduf>
Coupled with a lack of decent unit testing frameworks...
06:08
< celticminstrel>
[May 08@01:03:04am] Namegduf: JS optional semicolons are handled by detecting a *syntax error* and going back and inserting them.
06:08
< celticminstrel>
^ That's just a matter of a bad implementation though, isn't it? :/
06:08
<@Namegduf>
No, it isn't.
06:08
< celticminstrel>
How isn't it?
06:08
<@Namegduf>
That is how JavaScript optional semicolons work. There are no language rules to permit them to work otherwise.
06:08
<@Namegduf>
There are no rules for where semicolons will be inserted or not in the language spec.
06:09
< celticminstrel>
Can't rules for that be imagined by an implementor?
06:09
< celticminstrel>
^ -er
06:09
<@Namegduf>
Um, no, not if you want to run other people's JavaScript.
06:09
< celticminstrel>
Why's that?
06:10
<@Namegduf>
Because you're changing the way existing JavaScript will be executed?
06:10
<@Namegduf>
It would be a change in the accepted language, not the implementation.
06:10
< celticminstrel>
Why can't you just imagine rules that don't change the way it's executed?
06:11
<@Namegduf>
You can't.
06:11
< celticminstrel>
Why not?
06:11
< celticminstrel>
Why is "detecting a syntax error and going back and fixing it" the only way?
06:11
< celticminstrel>
Is it really the only way?
06:11
<@Namegduf>
Because the way it is currently executed is "semicolons are inserted only where their absence would create a syntax error">
06:12
<@Namegduf>
And any change to semicolon insertation behaviour would be a change to the language accepted.
06:12
<@Namegduf>
You could do it another way if you looked ahead however far it took to verify there was no syntax error, at the end of every line.
06:13
<@Namegduf>
But since my complaint was about the insertation behaviour, not the implementation... that wouldn't solve anything.
06:14
< celticminstrel>
Well, if the syntax error is detected at the beginning of the next line in the majority of cases, it's not that bad.
06:14 kwsn [kwsn@BAD19E.B5A83A.180240.E5184B] has joined #code
06:14
<@Namegduf>
Well, if you don't think that's a horrible way to design a language, that's fine.
06:14
<@Namegduf>
I disagree.
06:15
<@Namegduf>
It's just one of the more stupid things about the language.
06:15
< celticminstrel>
I still don't see why you can't write rules that are equivalent without requiring some way of detecting the syntax error.
06:15
<@Namegduf>
The rules *are what I am complaining about*.
06:16
< celticminstrel>
So why can't they be refactored?
06:16
<@Namegduf>
Because existing code relies on the rules.
06:16
< celticminstrel>
But if you have an alternate set of rules that are exactly equivalent, that won't be a problem.
06:16
<@Namegduf>
Changing the rules to equivalent rules does absolutely nothing, because they're still ugly and arbitrary and lead to nasty bugs.
06:17
<@Namegduf>
They also won't be any better because they'll be equivalent.
06:17
< celticminstrel>
Is it truly impossible to refactor them into a ruleset that's less ugly but still equivalent?
06:17
<@Namegduf>
Also you really need to stop saying "Why can't you" without demonstrating that you CAN.
06:17
<@Namegduf>
Yes, it is.
06:18
< celticminstrel>
Eh, fine.
06:18
<@Namegduf>
The "ugliness" comes from the arbitrary and bug-friendly nature of the rules, not their written formulation, and these things will remain equally true for anything equivalent to them.
06:19
<@Namegduf>
Why can't you replace C++ with a language with much simpler rules that is equivalent?
06:19
<@Namegduf>
You're not asking simple things.
06:19
< celticminstrel>
Some people actually did that. Sort of.
06:20
<@Namegduf>
Without breaking any existing code?
06:21
< celticminstrel>
Technically, yes, but only by including a switch to revert to the old rules, so it might not count.
06:21
< celticminstrel>
(An in-code switch.)
06:22
< celticminstrel>
Pretty sure it never caught on anywhere.
06:22
<@Namegduf>
That's a "technically, no"
06:22
<@Namegduf>
Because existing code will break until the switch is added.
06:22
< celticminstrel>
I don't remember the details; it might've defaulted to the old rules rather than the new, or had some method of detecting which were in use. Or maybe not.
06:23
<@Namegduf>
At any rate, doesn't sound equivalent.
06:24
< McMartin>
What you describe is a source-to-source compiler, and those are not terribly exciting, and it isn't changing the target language in any way.
06:24
< celticminstrel>
Yeah, pretty much like a source-to-source compiler.
06:24
< McMartin>
Yeah, that's not "fixing C++" any more than Gambit, a Scheme compiler that's source-to-source through C, "fixes C".
06:24
< celticminstrel>
Heh.
06:27
<@Namegduf>
My point is that while it's really hard to prove that a bunch of complex logic doesn't have a simpler form for some definition of simpler, "convert it to a simpler but equivalent form" is not really a feasible way to fix it being complex, let alone any flaws which are shared by anything equivalent.
06:36 UndeadAnno [annodomini@D553D1.9D4909.31D578.ED796F] has joined #code
06:49 celticminstrel [celticminst@1526F6.37AB0D.97233B.788A64] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!]
07:36 kwsn is now known as kw\t-2
07:38 kw\t-2 is now known as moo
07:38 moo [kwsn@BAD19E.B5A83A.180240.E5184B] has quit [[NS] Quit: moo]
07:56
< Reivles>
Hiyas
07:56
< Reivles>
Nein, I do not have a pastie
07:56
< Reivles>
Because I was trying to figure out how the things work so I could type them in~
07:56
< Vornicus>
Heh
07:57
< Reivles>
So, Pathfinder dispenses with the need to significantly look at the Monster Manual for Wildshape/Polymorph.
07:57
< Vornicus>
Okay.
07:58 Vash[Working] [Vash@DCDEB4.EE4823.60FBD5.24F5B1] has joined #code
07:59
< Reivles>
Instead, you take a base creatures stats in relation to Size, Movement, Natural Attacks and special rules, and apply them via set rules to yourself: Medium is +2str, +1 NA, Small is +2 Dex, for example, and gives you the natural weapons and things like "If the critter has it, you get up to Fly 30ft, Climb 30ft, Poison, Disease, Improved Grab", etc
07:59
< Vornicus>
Okay. I presume you have a table of what hte sizes do for you.
08:00
< Reivles>
Yes, I do.
08:00
< Vornicus>
Pastie that.
08:01
< Reivles>
http://pastebin.starforge.co.uk/461 has some of it
08:02
< Reivles>
What I will have is the Size Table, the Critter Table (AKA what attacks, special rules, etc does this thing have) and the Base Table (AKA my stats, so I know what I'm adding/subtracting to) as base data.
08:02
< Vornicus>
Okay.
08:02
< Reivles>
I intend to output data for AC, attacks, damage etc accordingly.
08:04
< Reivles>
AC and attacks and damage is trivial, of course - as a D&D player we've been doing it in our heads, nevermind in code - but to get to that point I'd rather like to be able to load shit in and start applying the third value in the fifth column of Size to the X of Y in Base, then stick in the foo of Critters.
08:05
< Vornicus>
All right, let's look at this here.
08:05
< Reivles>
Preferably, for instance, by calling critterDamage + baseStr + sizeStr, or acSize + acDex + acNat etc~
08:05
< Reivles>
Would be real, real nice.
08:06
< Vornicus>
So this first csv is a table; you wish to index the table via size and attribute.
08:06
< Reivles>
Right.
08:06
< Vornicus>
All right, let's see if I can figure out how I'd do this.
08:07
< Reivles>
I can easily enough rig csv tables for Critters and even a csv row for Base Stats, if it helps.
08:07
< Reivles>
(I haven't, because I wanted to know How I'd Do This before I wasted time getting carried away~)
08:07
< Reivles>
Of course, each table has its own set of attributes - size doesn't care about special attacks, for instance.
08:12 * Vornicus does some fiddling, finds his toys. Okay, this is a doable thing.
08:12
< Vornicus>
http://www.python.org/doc//current/library/csv.html let's start here.
08:13
< Vornicus>
Now, there's two things we want to do here: we want to get the data, and we want to figure out what piece of information is the "key"
08:13
< Vornicus>
And then we want to use these two things to build a dictionary of dictionaries.
08:14
< Vornicus>
So I'm going to use a DictReader and a given key string.
08:16
< Vornicus>
First off we'll open the csv using the csv DictReader class; this makes it so we can read off our dictionary one line at a time.
08:17
< Reivles>
O-Kay, that sounds good
08:17
< Reivles>
For size and critter, yes?
08:18
< Vornicus>
Yeah. Though for right now I'm just writing a function that all it does is dump a csv table.
08:19
< Vornicus>
It takes a filename and a string that is the key.
08:19
< Reivles>
Nice.
08:20
< Reivles>
erk BRB young lass returned, will be a few mins
08:20
< Reivles>
(Orthia says hi~)
08:20
< Vornicus>
reader = csv.DictReader(open(filename)) <-- so first all I'm going to do is make the reader via the filename.
08:20
< Vornicus>
(HI ORTHIA)
08:26 * Vornicus gets that to work. Bad news however: the data comes in as strings.
08:27
< Vornicus>
Still, not bad for 8 lines of code.
08:30 * Vornicus adds 2 more lines and gets it to turn things into the appropriate types as given in a schema dictionary.
08:48
< Vornicus>
There. 9 lines. Might want to generalize it some more, really, or hunt up how to do named tuples to make it somewhat different, but this will do everything we need.
08:49
< Vornicus>
named tuple is not what I want.
08:49
< Vornicus>
Actual Objects, really, is what I'd want, with slots & shit, but.
09:02
< Vornicus>
Anyway.
09:32 Kindamoody[zZz] is now known as Kindamoody
09:41 gnolam [lenin@9D46A2.F4E9D7.E4B4CF.2072AD] has joined #code
09:55
< Vornicus>
Looks like reivles isn't goingto be back before I go to bed. :(
09:59
< Reivles>
I return!
09:59
< Reivles>
The lass had a few complications.
09:59
< Vornicus>
Ah.
10:00
< Vornicus>
Well all right, let's talk about what we have to do here. I have my code written but I'm not going to show it to you because then it wouldn't be very teachy.
10:00
< Vornicus>
:P
10:01
< Reivles>
Bastard :D
10:02
< Vornicus>
All right so let's get this started. First off we're going to need a function. It'll take a filename and the name of the primary key... so when I call it on this data here I'd say csv_database_reader("size.csv", "size")
10:04
< Vornicus>
(er, with the case correct on the actual field name there)
10:05
< Vornicus>
So write the definition and we'll get going.
10:10 * Vornicus pokes at reiver
10:10 Attilla [Some.Dude@Nightstar-febccc15.cable.virginmedia.com] has joined #code
10:13
< Reivles>
hm
10:13 * Reivles is kind of trying to research the definition. >_>
10:14
< Alek>
aie complications?
10:14
< Alek>
?_?
10:14
< Vornicus>
Trying to figure out how to define a function?
10:14
< Reivles>
In python, yes
10:14
< Reivles>
You don't have all the handy static int void main() crap to use as a template~
10:14
< Vornicus>
def <function name>(<param 1>, <param 2>, <optional param> = <initial value>)
10:15
< Vornicus>
Oh, with a : on the end.
10:15
< Reivles>
Oh.
10:15
< Reivles>
csv_database_reader(fileName,keyName):
10:16
< Vornicus>
right, but there should be a def at the beginning.
10:16
< Reivles>
whoops, OK
10:16
< Reivles>
def csv_database_reader(fileName,keyName):
10:16
< Vornicus>
Just like that.
10:17
< Reivles>
Righto
10:17
< Vornicus>
Okay, now. in Python, things that happen "within" other things, instead of being surrounded by braces, are simply indented. The conventional indentation amount is 4 spaces per level.
10:18
< Reivles>
Yeah, I know the indentation trick
10:19
< Reivles>
Especially because when I hit enter on that line it tabbed in for me~
10:19
< Vornicus>
Heh
10:19
< Vornicus>
Okay, so next we want to do two things: 1. we want to create an empty dictionary in which we will put our database; 2. we want to open up our csv and prepare to walk through it.
10:20
< Vornicus>
Creating an empty dictionary is pretty simple; {} is an empty dictionary, just assign it to something.
10:22
< Reivles>
suggestions on names?
10:22
< Vornicus>
I called mine "db"
10:23
< Reivles>
oh, haha
10:23
< Reivles>
I see what you did there
10:23
< Reivles>
OK
10:24
< Vornicus>
whut?
10:24
< Vornicus>
okay, next we have to do a couple things.
10:24
< Reivles>
Right
10:24
< Vornicus>
We have to open the file and feed it to csv.DictReader, and assign that to something.
10:25
< Vornicus>
That's rather a few things, and I suspect you know how to call functions, so I just pasted that earlier.
10:27 * gnolam rages at the lack of a good open source bitmap graphics editor.
10:27
< Reivles>
righto
10:28
< Reivles>
(Orthia is wondering if you heard about her graduation on Thursday)
10:28
< Vornicus>
(I had!)
10:28 You're now known as TheWatcher
10:29 Vash[Working] is now known as Vash[Sleeping]
10:29
< Reivles>
(Jolly good~)
10:29
< Reivles>
So anyway, which file am I opening today
10:29
< Vornicus>
Okay, next we're going to iterate over the reader; it will produce dictionaries.
10:30
< Vornicus>
The file that the function tells you to open.
10:30
< Reivles>
Uh, OK
10:30
< Vornicus>
We're being generic here; first we're building a thing that turns a csv into a database. Next time (which is not today) we'll use this for specific things.
10:30
< Reivles>
OK
10:31
< Reivles>
fileName it is
10:31
< Reivles>
Iterating is for "row in reader:" ?
10:31
< Reivles>
er
10:31
< Reivles>
Iterating is "for row in reader:" ?
10:34
< Vornicus>
Just so.
10:34
< Reivles>
Right
10:34
< Vornicus>
And then indent appropriately.
10:34
< Reivles>
Now what do I do to each row~
10:34
< Vornicus>
1. extract the key from that row.
10:35
< Vornicus>
Reading a value from a dictionary is just like indexing an array.
10:36
< Vornicus>
I called what I got out of that "current_key"
10:38
< Vornicus>
2. add this row to the db, with the key you just extracted as the key.
10:39
< Vornicus>
Anyway, what've you got?
10:43
< Reivles>
http://pastebin.starforge.co.uk/462
10:44
< Vornicus>
We can assign to individual keys in a dictionary the same way you would assign to an array index in most other languages.
10:44
< Vornicus>
and we just want to stuff the whole row in there.
10:45 froztbyte [froztbyte@Nightstar-dc394964.za.net] has quit [Ping timeout: 121 seconds]
10:45 froztbyte [froztbyte@C06FE3.42F507.FF17E9.235A4E] has joined #code
10:45
< Reivles>
Oh. So, uh, db[0] = currentKey?
10:46
< Vornicus>
no.
10:46
< Vornicus>
db[currentKey] = row
10:47
< Reivles>
Oh, right.
10:47
< Reivles>
Yon Dolt. >.>
10:47
< Vornicus>
But anyway after that we're pretty well done. get out of the loop, return db, and the function is (for now) done.
10:48
< Vornicus>
Now. Before we do any testing, there's something wrong with your size table.
10:48
< Reivles>
for row in reader:
10:48
< Reivles>
currentKey = row[keyName]
10:48
< Reivles>
db[currentKey] = row
10:48
< Reivles>
That... doesn't look right
10:48
< Reivles>
row[keyName] ain't an integer.
10:49
< Vornicus>
You're right. But this is a dictionary.
10:49
< Vornicus>
A dictionary can have any kind of key it wants, so long as it's hashable.
10:49
< Vornicus>
Numbers, strings, booleans, None, tuples, frozensets...
10:49
< Vornicus>
All at once.
10:49
< Reivles>
... hunh.
10:50
< Reivles>
So that's correct? Funktastic.
10:50
< Reivles>
What is keyName doing? Things like AC etc?
10:50
< Vornicus>
keyName in this case, um
10:50
< Vornicus>
Okay first off what we're going to do is correct the table.
10:50
< Reivles>
OK
10:51
< Reivles>
Let's do that then~
10:51
< Vornicus>
The difficulty is in the top row. See if you can figure out what it is.
10:51
< Reivles>
Assuming the top row is the one I think you are referring to, you are referring to the table headers?
10:52
< Vornicus>
Yes.
10:52
< Reivles>
In that they are table headers?
10:52
< Reivles>
As opposed to Name,-X,-Y,+Z etc?
10:52
< Vornicus>
No, they're perfectly acceptable to be table headers
10:52
< Vornicus>
Indeed we're depending on that
10:52
< Reivles>
OK
10:52
< Reivles>
er
10:52
< Vornicus>
But there's something wrong with the headers themselves.
10:53
< Reivles>
Oh, hahaha
10:53
< Reivles>
That's the old copy with two 'Size'
10:53
< Reivles>
Meant to be Size,StrMod,DexMod,SizeMod,NA
10:54
< Vornicus>
There you go.
10:54
< Reivles>
Took me a moment because I already fixed that once~
10:54
< Vornicus>
Okay. Oh, do you have "import csv" in the top of the file with the function in it.
10:54
< Reivles>
yup
10:54
< Reivles>
It may need fixing though, given we have a fancypants import function now.
10:55
< Vornicus>
No, that will do nicely.
10:55
< Vornicus>
Okay. Save the file with the function in it, in the same folder as the csv.
10:55 Kindamoody is now known as KiMo|out
10:55
< Reivles>
aight
10:55
< Vornicus>
(I called them csvdb.py and size.csv)
10:55
< Vornicus>
Okay, now we're going to write a single line of testing goce.
10:56
< Vornicus>
code. "goce"? wtf?
10:56
< Reivles>
snrk
10:56
< Reivles>
go for it
10:56
< Vornicus>
size_table = csv_database_reader("size.csv", "Size")
10:56
< Vornicus>
print size_table["Tiny"]["DexMod"]
10:57
< Vornicus>
That goes into csvdb.py for now.
10:58
< Reivles>
This is a seperate file to the main one, or this is the main one?
10:58
< Vornicus>
csvdb.py will be separate, eventually; but for now it's the only thing we have written, so put the testing code in there.
10:59
< Vornicus>
(also, making sure: you have a return in your csv_database_reader code, correct?)
11:01
< Vornicus>
Anyway once you've written that, fire the script and see what you get.
11:03
< Reivles>
size_table = csv_database_reader("sizeMod.csv","Size")
11:03
< Reivles>
NameError: name 'csv_database_reader' is not defined
11:04
< Vornicus>
Are you still in the same file?
11:05
< Reivles>
yeah, sec
11:05
< Vornicus>
...and are you putting it at the bottom?
11:06
< Reivles>
... er, no~
11:07
< Reivles>
I forget Python sticks things in funny places.
11:07
< Reivles>
I'm a little too used to having a main()~
11:07
< Vornicus>
Heh.
11:07
< Reivles>
haha, cute.
11:07
< Reivles>
A dict of dicts!
11:08
< Vornicus>
That wasn't so hard, was it.
11:08
< Vornicus>
Now, you're actually going to have a bit of trouble with this as-is; the stuff's coming in as strings.
11:08
< Vornicus>
We'll deal with that some other time, the sun's up and I need sleep.
11:08
< Reivles>
Though they're not in order; I presume that is from the hashing sillyness?
11:09
< Reivles>
No worries, thank you!
11:09
< Reivles>
Anything I can poke at in your abscence?
11:09
< Vornicus>
That's from hashing silliness and frankly there's no need for order.
11:09
< Reivles>
Just checking.
11:09
< Reivles>
For example, rigging base.csv or critter.csv?
11:09
< Vornicus>
You'll want to make sure that the table is sensibly named and so forth, obviously.
11:10
< Reivles>
Righto
11:10
< Reivles>
And I do want a base.csv yes?
11:10
< Reivles>
Even if it's a row of headers and one line.
11:10
< Vornicus>
Uh.... possibly.
11:11
< Vornicus>
We'll look into that later. If you're guaranteed to only need one record for that table there's probably a different tack that will work more obviously.
11:12
< Reivles>
No worries
11:12
< Reivles>
Pretty sure it's only ever the one, but yeah.
11:12
< Reivles>
Ni!
11:13
< Vornicus>
Just make sure your shit's lined up in your critter.csv and work out the interactions that you need and we'll work on those later.
11:13
< Vornicus>
oh and.
11:14
< Vornicus>
You'll want to make sure that you can, um. rebuild things that are numbery without too much hassle. I say a situation where you would normally write "2d6" should be 2 columns. possibly 3 if there's also a bonus.
11:14 Vornicus is now known as Vornicus-Latens
11:28
< Reivles>
Duly noted. :)
11:48
<@Namegduf>
Is it terribly wrong of me to implement unit tests of a small C program (using flex and bison) by compiling separate binaries for a lexer and parser printing the tokens/tree respectively to stdout and using a shell script coupled with input and expected output files?
11:49
<@Namegduf>
It works nicely but I'm wondering if there's some... nicer solution I should know.
12:05 * TheWatcher eyes this VFs code, has the distinct impression that he may be making it far more complicated than it needs to be
12:06
< TheWatcher>
*VFS
13:02
< gnolam>
So it's a WTFVFS?
13:03
< UndeadAnno>
OMGWTFVFS.
13:09 Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has joined #code
14:24 UndeadAnno is now known as AnnoDomini
14:25 AnnoDomini is now known as UndeadAnno
15:12 * UndeadAnno ponders how to remove authorship signatures from a PDF file generated by OO.org.
15:17 AquaFox [NSwebIRC@Nightstar-6960068f.ip.windstream.net] has joined #code
15:18
< AquaFox>
guess this isnt an active channel...
15:20
< UndeadAnno>
It's plenty active.
15:20
< UndeadAnno>
Just not now.
15:20
< AquaFox>
ahhhh whens it usually active?
15:20
<@Namegduf>
And just not within 60 seconds of joining before you've said anything to reply to.
15:21
< ToxicFrog>
Evenings/nights EST are probably the most common times for activity, but the real answer is "when interesting things are being discussed".
15:21 AquaFox [NSwebIRC@Nightstar-6960068f.ip.windstream.net] has left #code [""]
15:21
< ToxicFrog>
...
15:23
<@Namegduf>
Yeah, someone who says "Guess it isn't active" within 60 seconds of joining isn't going to have the patience.
15:24
< ToxicFrog>
I have to say, it's not uncommon for someone to join a channel, say/ask something, and then quit in impatience when they don't get an immediate reply
15:24 Stalker [Z@3A600C.A966FF.5BF32D.8E7ABA] has joined #code
15:24
< ToxicFrog>
But I think this is the first time I've seen someone declare a channel dead as soon as they join, without even saying anything.
15:25
< Reivles>
That's a pretty cute trick, that.
15:28
< EvilDarkLord>
Maybe he's used to greeter bots.
15:30
< Reivles>
Or channels filled with a hundred users and text flooding the screen at several dozen lines per minute.
15:31
< Reivles>
Which is kind of funny, because Nightstarian channels seem to actively *avoid* such chatrates, and start to splinter into specialisations if they ever get that loud...
15:31
< EvilDarkLord>
Do we actually have enough people on the network that that could become a problem?
15:33
< Reivles>
Once or twice, we've had megachannels try to join up.
15:34
< Reivles>
Then generally leave, because we're not really that kinda folk.
15:34 KiMo|out is now known as Kindamoody
15:47 celticminstrel [celticminstre@Nightstar-f8b608eb.cable.rogers.com] has joined #code
16:56 Kindamoody is now known as Kindamoody|nap
17:55 Vornicus-Latens is now known as Vornicus
17:58
< Kazriko>
ToxicFrog, I've seen it frequently over on Aniverse. heh
17:59
< Kazriko>
The other annoying thing there is the people who join, type !list, then leave 30 seconds later. heh.
18:03 UndeadAnno is now known as Birds
18:03
< celticminstrel>
What?
18:03 EvilDarkLord is now known as Shield
18:13
< Kazriko>
celticminstrel, someone dropped in, 60 seconds later said the channel was dead. heh
18:28 Stalker [Z@3A600C.A966FF.5BF32D.8E7ABA] has quit [[NS] Quit: If the world didn't suck, we'd all fall off.]
18:32 Stalker [Z@3A600C.A966FF.5BF32D.8E7ABA] has joined #code
18:36 Vash[Sleeping] is now known as Vash[Out]
18:43
< celticminstrel>
I hate it when people expect an instant response to their arrival and assume it's dead if they don't get it.
18:43
< celticminstrel>
What does !list mean by the way?
18:45
< Tamber>
It's a bot command, other than that, I have no idea.
18:46
< Tamber>
Wild guess as to what would be expected from that command: a list of all the available commands.
18:48 * Tamber raises an eyebrow at the email just received.
18:50
< Tamber>
1. Why am I being used as the point of contact for this request, my name's only in the AUTHORS because I fixed one or two things, I have no idea how most of the codebase works. I've not looked. 2. How does one jump from "There is a filetype array here that tells the server what handler to use on a certain file" to "adding a new filetype to that array magically makes all clients understand that ...
18:50
< Tamber>
... they need to feed these certain files that they have received through man"?
18:56
< celticminstrel>
?
18:56
< ToxicFrog>
celticminstrel: in channels populated by f-serv and XDCC bots (typically, warez channels), !list is "send me a list of all of your available files"; it will result in all active bots in-channel telling you what they have for download.
18:56
< celticminstrel>
Ahh.
18:56
< Tamber>
Oh, I was close(!)
18:56
< Tamber>
:)
18:57
< Tamber>
celticminstrel, I've got a mail from some guy wanting to make a change to server software I've done a little work on, a "simple as adding a few lines to" type of change.
18:59
< Tamber>
What he /wants/ is impossible, he wants to make a change on the server that makes every gopher client ever magically understand that it needs to feed a certain type of file through a man-page parser.
19:03
< Tamber>
And, because I can just about hear everyone thinking it: Yes, gopher. It still exists.
19:03
< Tamber>
;)
19:04
< celticminstrel>
I've never really know what gopher is. <_<
19:04
< celticminstrel>
^known
19:04
< celticminstrel>
Except that it's a protocol of some sort.
19:06 * Tamber flails about trying to describe it, gives up. http://en.wikipedia.org/wiki/Gopher_%28protocol%29
19:06
< celticminstrel>
XD
19:09
< gnolam>
Tamber: heh, you /did/ manage to read my mind.
19:09 Kindamoody|nap is now known as Kindamoody
19:10
< Tamber>
:)
20:35 celticminstrel [celticminstre@Nightstar-f8b608eb.cable.rogers.com] has quit [Client closed the connection]
20:35 celticminstrel [celticminst@1526F6.37AB0D.97233B.788A64] has joined #code
20:40 Vash[Out] is now known as Vash[Decorating]
20:53 Stalker [Z@3A600C.A966FF.5BF32D.8E7ABA] has quit [Ping timeout: 121 seconds]
20:56 Attilla_ [Some.Dude@Nightstar-febccc15.cable.virginmedia.com] has joined #code
20:56 Attilla [Some.Dude@Nightstar-febccc15.cable.virginmedia.com] has quit [Ping timeout: 121 seconds]
20:57 Birds is now known as AnnoDomini
20:58 Shield is now known as EvilDarkLord
21:16 Syloqs-AFH [Syloq@NetworkAdministrator.Nightstar.Net] has quit [Connection closed]
21:27 Syloqs_AFH [Syloq@NetworkAdministrator.Nightstar.Net] has joined #code
21:28 Syloqs_AFH is now known as Syloqs-AFH
22:00 Stalker [Z@2C3C9C.B2A300.F245DE.859909] has joined #code
22:42 UndeadAbu [annodomini@D553D1.41311B.77F236.FFFE2E] has joined #code
22:43 Stalker [Z@2C3C9C.B2A300.F245DE.859909] has quit [Connection reset by peer]
22:43 Stalker [Z@2C3C9C.B2A300.F245DE.859909] has joined #code
22:45 AnnoDomini [annodomini@D553D1.9D4909.31D578.ED796F] has quit [Ping timeout: 121 seconds]
22:48 UndeadAbu [annodomini@D553D1.41311B.77F236.FFFE2E] has quit [[NS] Quit: leaving]
23:18 You're now known as TheWatcher[T-2]
23:25 You're now known as TheWatcher[zZzZ]
23:59 Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has quit [Connection closed]
--- Log closed Mon May 09 00:00:58 2011
code logs -> 2011 -> Sun, 08 May 2011< code.20110507.log - code.20110509.log >