code logs -> 2006 -> Fri, 06 Oct 2006< code.20061005.log - code.20061007.log >
--- Log opened Fri Oct 06 00:00:51 2006
00:06 Chalcedon is now known as ChalcyUni
00:24 ThaquiSleep is now known as Thaqui
00:28 ReivZzz is now known as Reiver
00:54 Janus [~Cerulean@Nightstar-10302.columbus.res.rr.com] has joined #code
01:18 mode/#code [+oo Thaqui ToxicFrog|Lab] by Reiver
01:18 mode/#code [+vvv Ev3 EvilDarkLord himi-heading-home] by Reiver
01:19
< Reiver>
Hi Janus
01:19
< Reiver>
Who are you? :)
01:19
< Janus>
Hi'ya Reiver--
01:20 * Janus is Janus, or so his that's what his mommy says.
01:21
< Reiver>
Uh-huh.
01:22
< Reiver>
You a TSCer, or a NS_bar'er that migrated?
01:23
< Janus>
I immigrated once I discovered #TSC was full of Tech Support folks that didn't ask for cash up front.
01:24
< Reiver>
Pf.
01:24 * Janus suspects his tab is somewhere in the thousands by now.
01:24
< Reiver>
Figures. :p
01:26
< Janus>
hmm..?
01:32
<@ToxicFrog>
Janus: weren't you originally from ns_bar WRT:programming help?
01:32 Reiver is now known as ReivWork
01:33
< Janus>
Yep~ I needed help with... RPGmaker 2k3~
01:42
< Janus>
That system compiler was far too hard to learn, so I'm glad I moved down to something more my speed.
01:42
<@McMartin>
What were you usin gbefore?
01:44
< Janus>
RPGmaker. It's pretty powerful once you master it, but it's not for the weak.
01:45
<@ToxicFrog>
Having used it, I would actually have to contend that it sucks pretty hard no matter how well you know how to use it.
01:45
< Janus>
The only thing I can think of that could beat it, would be a PowerPoint Presentation.
01:45
<@ToxicFrog>
If you want to do anything interesting, you either have to fight it every step of the way, or throw it out and replace it with something that doesn't suck.
01:46
<@McMartin>
Wait, then I'm confused. What are you using now then?
01:46
< Janus>
C++.
01:46
<@McMartin>
Or are RPGmaker and RPGmaker 2003 entirely different things?
01:46
<@McMartin>
Ah.
01:47 * McMartin has, incidentally, started looking at TADS 3.
01:47
<@McMartin>
I, uh, think I'll stick with Inform 7.
01:47
<@McMartin>
TADS 3 is Java to I7's Scheme.
01:48 * Janus notes that nobody can see him wink over the phone, nor the internet.
01:52
< Janus>
I never did understand the appeal behind Java, though I've never actually seen what it looked like code-wise.
01:53
<@ToxicFrog>
The appeal is mainly that exactly the same Java code will work everywhere (for a value of everywhere that means "everywhere supported by the JVM") with no recompile.
01:53
<@ToxicFrog>
In theory.
01:53
< Janus>
But Java applications themselves are just so... in your face.
01:55
<@McMartin>
The part that I'm referring to here is that 80% of your average major C application is actually already in the Java standard libraries.
01:56
<@McMartin>
You can tell when someone's just walked into Java coding from C because they start bitching about how they can't implement their B-Trees without having pointers.
01:57 Janus [~Cerulean@Nightstar-10302.columbus.res.rr.com] has quit [Ping Timeout]
01:58
<@ToxicFrog>
But they have references!
01:59
<@McMartin>
They, uh, also have a pre-implemented version of red-black trees in java.util.TreeMap.
01:59
<@McMartin>
"I learned C first" people also have an unfortunate tendency to not be able to distinguish between arrays and pointers, and think that pointers are necessary to do arrays.
02:00
<@McMartin>
I've reached the conclusion that if you're instructing people into the full inner mysteries of programming, one should learn assembler before learning C.
02:00
<@ToxicFrog>
While not necessary to do arrays, they are really handy for some things.
02:00
<@McMartin>
If you've got direct access to memory, yes.
02:01 Janus [~Cerulean@Nightstar-10302.columbus.res.rr.com] has joined #code
02:01 Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code
02:01 mode/#code [+o Chalcy] by ChanServ
02:01 * ToxicFrog went Java, C++, C, ASM with a brief excursion into Turing concurrent with C++ and C.
02:01
<@McMartin>
Though within an array or structure you can usually use cursors.
02:01 Chalcy is now known as Chalcedon
02:01
<@ToxicFrog>
I am thinking of things like structure deserialization.
02:01 * McMartin went, um, several dialects of BASIC, ASM, Prolog, LISP, C, C++, Scheme, Java, C++, MATLAB, C++.
02:02
<@ToxicFrog>
fread(buf, sizeof(foo), 1, fin)
02:02 ChalcyUni [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout]
02:02
<@ToxicFrog>
foo * thingy = (foo *)buf;
02:02
<@ToxicFrog>
That wasn't a complete summary.
02:02
<@McMartin>
I'm pretty sure you can do that without pointers.
02:02 * McMartin mainly wanted to bitch about C++ appearing there three times~
02:02 * Janus went powerpoint, rpgmaker, python, ruby, and C++.
02:03
<@McMartin>
Mmmm.
02:03
<@McMartin>
Silly question.
02:03
< ReivWork>
C, C++, VBA, Java.
02:03
<@McMartin>
Why won't Python + Pygame do for what you're working on?
02:03
<@ToxicFrog>
Complete would be more like, LOGO, BASIC, Pascal, Net3d, Java, C++, Turing, C, Python, Lua, with stuff like awk and bash being ongoing background noise.
02:03
< ReivWork>
Brief excursions into Python and SQL, but not very far. >.>
02:03
<@McMartin>
Yeah. I've got a lot of background noise in mine, too
02:03
<@ToxicFrog>
Oh, and postscript.
02:03
<@McMartin>
But I can't remember when I learned ML, for instance.
02:03
<@McMartin>
...Or Perl
02:03
<@ToxicFrog>
...and perl.
02:04
<@ToxicFrog>
Is it just me, or have we both passed the point where we can no longer easily remember all the languages we're familiar with?
02:04
<@McMartin>
Not just you
02:04
<@McMartin>
My attitude these days is mainly "I can dig it."
02:05 * ToxicFrog nods.
02:05
<@ToxicFrog>
I should finish LuaSDL someday.
02:06
< Janus>
What's the best language to learn..?
02:06
<@ToxicFrog>
Wrong question.
02:07
< Janus>
--or if there is such a thing.
02:08
<@McMartin>
What's your goal?
02:09
<@McMartin>
If it's "I'd like to get the computer to do what I want", Python or Ruby is good to have for that
02:09
<@McMartin>
Because it lets you demand 2+2 and get 4 instantly, and is flexible enough to let that be much more complicated things.
02:09
<@McMartin>
(example: A game I was playing required me to crack a cipher at one point, so I fired up a Python instance to do the cracking for me)
02:10
< Janus>
My goal..? I suppose it would be to make a game. I'm guessing C++ is pretty versitile to that end, if only for it's popularity.
02:10
<@McMartin>
If you want to deal as close to the metal as you can get, C or C++ will manage this while still letting it work on more than one kind of machine.
02:11
<@McMartin>
If you want to expand your mind, then looking at a LISP dialect and an ML dialect will grant you esoteric wisdom.
02:11
<@McMartin>
Python has some libraries called "Pygame" that let you make windows and draw sprites and rectangles and stuff
02:11
<@McMartin>
And dealing with memory and the like is much easier in Python than it is in C++.
02:12
<@ToxicFrog>
Yes.
02:12
<@McMartin>
I'd suggest -- especially if you're a novice programmer -- to try to do this in Python, linking in pygame and friends as needed.
02:12
<@ToxicFrog>
I seem to recall having this conversation once before.
02:12
<@McMartin>
I believe for final distribution, Windows has a utility called FREEZE that will let you turn a set of scripts into a bundled .exe.
02:12
< Janus>
I've tried Python and Pygame once; can't say I cared for it though...
02:13
<@McMartin>
Pygame wraps SDL, which is probably what you'll end up needing to use to do graphics and sound anyway.
02:13
<@McMartin>
... oh yeah. I should have asked this earlier. 2D or 3D?
02:14
< Janus>
2D. The resources are easier to come by that way.
02:14
<@McMartin>
(Java, incidentally, resembles C++ inside its methods, but goes about defining classes and methods in a very different way)
02:14 * McMartin nods.
02:14
<@ToxicFrog>
Enough I7 for one night, I must work on LuaSDL.
02:14
<@McMartin>
SDL is definitely the way to go, then.
02:15
<@McMartin>
Either directly, in C++, or through other libraries, like Pygame.
02:15
<@McMartin>
I wonder if the old SDL tutorials I learned from are still online.
02:15
<@McMartin>
One moment
02:15
<@ToxicFrog>
...although I can no longer remember what I needed luaSDL for.
02:15
<@McMartin>
http://cone3d.gamedev.net/cgi-bin/index.pl?page=tutorials/gfxsdl/index
02:16
<@ToxicFrog>
It wasn't spellcast, I've been planning to write the next version using Glade.
02:16
<@ToxicFrog>
If I can get the goddamn thing to play nice with network events.
02:16
<@McMartin>
Heh
02:16
<@ToxicFrog>
Maybe it was just for the general purpose of being awesome.
02:16
< Janus>
SDL is indeed awesome. However, the only sections I know in and out are the imaging and input components of it. I'll get into the whole Thread and Sound thing when those come around.
02:16 * McMartin nods
02:16
<@McMartin>
Try to avoid threads if at all possible.
02:16
<@McMartin>
I say this as a man who has spent months doing bitter battle against them.
02:16
<@McMartin>
(for UQM)
02:17
<@ToxicFrog>
(my main problem is that once I call the main GTK loop, it goes in there forever and never comes back. This is a problem when I need to react stuff coming in over the network. The alternative is to pump one event at a time and poll the network in the meantime, which is ugly.)
02:17
<@McMartin>
Also, if you've got imaging and input under control, those tutorials probably won't help much.
02:17
<@McMartin>
Unless you still need usable Sprite classes and such.
02:17
<@ToxicFrog>
(what I want is some SDL-style event loop where I can get all my events in one queue, dispatch GUI events to GTK and network events to the world model and GTK as needed.)
02:17
<@McMartin>
(Indeed)
02:18
<@McMartin>
(My GTK fu is insufficient there)
02:18
<@ToxicFrog>
And I like threads! UQM is more abuse of threads than any inherent problem with them, from what I've heard.
02:18
<@McMartin>
Well, it's more "the 3DO doesn't use the SDL thread model, and while you could model it with pthreads, maybe, we need it to run on more than just that"
02:19
<@McMartin>
Also, using threads means no MacOS 9 support, if you care about such things.
02:19
<@ToxicFrog>
My opinions on OS9 are well known at this point~!
02:19
<@McMartin>
Janus: What's your C++ skill level?
02:20
<@ToxicFrog>
And isn't the SDL thread model basically the same as pthreads'?
02:20
<@McMartin>
It's a subset of it.
02:20
<@ToxicFrog>
Right.
02:20
<@McMartin>
In particular, no fire-and-forget threads, which were the only kind the 3DO had.
02:20
<@ToxicFrog>
There are no fundamental conceptual differences, is what I mean.
02:20
<@ToxicFrog>
Aah.
02:20
< Janus>
Uh... I have no idea how to rate them...
02:20
<@McMartin>
Also, the 3DO only had asynchronous thread kills, which are, uh, deprecated in this day and age.
02:21
<@ToxicFrog>
...what is an asynchronous thread kill?
02:21
<@McMartin>
Janus: Well, like, do you use the OO bits? Can you deal with STL?
02:21
<@ToxicFrog>
I've never heard the term and am unsure how to interpret it.
02:21
<@ToxicFrog>
Like pthread_cancel, only it happens now?
02:21
<@McMartin>
TF: Yes. With no resource cleanup or mutex unlocking.
02:21
<@McMartin>
It is a Bad Thing Indeed.
02:21
<@ToxicFrog>
...
02:22
<@McMartin>
Java used to have them as primitives, but then decided "You know what? Nobody should get to do this."
02:22
<@McMartin>
I'm sure pthreads has it in its depths somewhere.
02:22
<@McMartin>
The Java API docs have a whole page dedicated solely to "No, seriously. Never ever ever use Thread.stop()."
02:23
<@ToxicFrog>
I'm not sure it does, actually.
02:23
< Janus>
Object Oriented, yes, and STL... is a very savage native that doesn't want to remember my many ramblings. Though, I've made a linked list to get around that. Beyond the vector aspect of STL, there's not much I could get from it.
02:23
<@ToxicFrog>
There's pthread_cancel, which kills the thread at its next valid cancellation point.
02:23
<@ToxicFrog>
There's pthread_kill, but that's the same as kill, it just ensures that the thread that enters the signal handler is the one you aimed it at.
02:24
<@McMartin>
Mmm. That sounds suspiciously like pthread_cancel is an asynchronous kill too unless pthreads cleans up open files and locks and such held by a thread.
02:25
<@McMartin>
locks I could see, but files is tricky.
02:25
<@ToxicFrog>
This is kind of in the hands of the programmer.
02:25
<@ToxicFrog>
If you pthread_cancel a thread, it:
02:25
<@ToxicFrog>
- blocks until the thread becomes cancellable;
02:26
<@ToxicFrog>
- calls any registered cancellation cleanup handlers in the context of that thread;
02:26
<@ToxicFrog>
- terminates the thread.
02:26
<@ToxicFrog>
So if the programmer set up their cleanup functions properly, it's a clean kill.
02:27
<@ToxicFrog>
If they didn't, yes, you end up with open files lying around unless they use pthread_setcancelstate such that it's only cancellable when it's safe to do so.
02:28
<@ToxicFrog>
Also I really need to finish the new version of libsurtr.
02:29
<@ToxicFrog>
This is hampered slightly by still not really being sure how signals should work.
02:29
<@ToxicFrog>
To that end, McM, I wish to pick your brains~
02:35
<@McMartin>
Mmm?
02:35
<@ToxicFrog>
So. ITC.
02:35
<@ToxicFrog>
We have synchronous message passing (send-recieve-reply) and asynchronous (signal).
02:35
<@McMartin>
(Does libsurtr get pwnt by libvalk?)
02:37
<@ToxicFrog>
(I believe it actually burns the nine worlds with fire at the end of the final battle)
02:38
<@McMartin>
(Only eight worlds now)
02:38
<@McMartin>
In any event.
02:38
<@McMartin>
What is the problem with Signals?
02:39
<@ToxicFrog>
Mainly, I'm running into a conflict between the way my inspiration works (signals can send uint32s only; Receive(), if any signals have been sent since last time, returns the bitwise and of all such signals) and the fact that I can do much more with Lua.
02:40
<@ToxicFrog>
I'm just not sure how /much/ more.
02:40
<@ToxicFrog>
The top end of the scale would be "anything you pass to Send() you can pass to Signal(), and it will be pulled into Cspace and held there until recieved"
02:40
<@ToxicFrog>
This is, however, vastly more complicated than SRR, since it can't use the sender's stack as a buffer.
02:41
<@McMartin>
Yeah.
02:41
<@ToxicFrog>
...although it could give each thread a second stack that it can shuffle between using lua_xmove().
02:41
<@ToxicFrog>
Hmm.
02:41
<@ToxicFrog>
I wonder if that could work.
02:42
<@ToxicFrog>
It would slightly increase the memory footprint of each thread but make things much, much simpler. And possibly faster, although I'm not sure on that point.
02:43
<@McMartin>
Test and see, if it's not too hard to implement?
02:44
<@ToxicFrog>
No, it's not.
02:44
<@ToxicFrog>
I have to finish the rest of the framework first, though.
02:44
<@ToxicFrog>
Since I'm rewriting most of it from line zero to incorporate various epiphanae I've had since writing the first version.
02:59 himi-heading-home is now known as himi
03:00
<+himi>
um
03:01
<+himi>
Why not give threads seperate signal stacks?
03:01
<@ToxicFrog>
That's what I just decided to try, Himi.
03:02
<+himi>
. . . . yeah, I just thinkoed what you'd said
03:02
<+himi>
It shouldn't be a large overhead, as long as you don't instantiate much until signals are actually used
03:03
<@ToxicFrog>
I won't be.
03:03
<@ToxicFrog>
If I can swing it, it won't even be a seperate VM, just a seperate stack in the same VM.
03:04
<@McMartin>
Dinner time; back later
03:06 Janus [~Cerulean@Nightstar-10302.columbus.res.rr.com] has quit [Quit: ~]
03:24 GeoTube [~Someone@Nightstar-2676.cable.ubr01.dund.blueyonder.co.uk] has quit [Killed (NickServ (GHOST command used by COL_GeoTube))]
03:24 COL_GeoTube [~Someone@Nightstar-2676.cable.ubr01.dund.blueyonder.co.uk] has joined #Code
03:31
<@Chalcedon>
TF, can an op de-op another op?
03:31
<@Chalcedon>
(ordinary channel op this is)
03:31
<@ToxicFrog>
Yes.
03:32
<@Chalcedon>
ok, so... why would chanserv keep re-opping them?
03:32
<@Chalcedon>
I'm not requesting anything, I just don't understand something I've observed.
03:33
<@Chalcedon>
and Mahal and Reiver are at work.
03:33
<+himi>
Possibly another op has a sick sense of humour
03:34
<@Chalcedon>
I don't think so.
03:34
<+himi>
. . . . . . . . . . . you don't think another op in a channel you're in has a sick sense of humour?
03:34
<@Chalcedon>
not in this case
03:35 * Chalcedon is currently trying to comprehend ramifications
03:35
<+himi>
I think it's possible to tell chanserv to forcibly op anyone on the aop list, but I've never seen it used
03:38
<@Chalcedon>
that could be it.
04:08 You're now known as TheWatcher
05:11 Syloq [Syloq@Admin.Nightstar.Net] has joined #code
05:33 ReivWork is now known as Reiver
05:36 You're now known as TheWatcher[zZzZ]
05:49 Syloq [Syloq@Admin.Nightstar.Net] has quit [Connection reset by peer]
06:56 MahalEarning is now known as Mahal
08:13 Chalcedon is now known as ChalcyCookies
08:47 ChalcyCookies is now known as Chalcedon
09:21 Mahal is now known as MahalZzz
09:32 Chalcedon is now known as ChalcyZzz
09:46 You're now known as TheWatcher[wr0k]
10:07 himi is now known as himi-heading-home
10:47 Thaqui [~Thaqui@Nightstar-8486.adsl.xtra.co.nz] has quit [Ping Timeout]
11:06 Thaqui [~Thaqui@Nightstar-8486.adsl.xtra.co.nz] has joined #code
11:22 COL_GeoTube is now known as GeoTube
11:47 ChalcyZzz [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout]
12:11 EvilDarkLord [althalas@Nightstar-17046.a80-186-184-83.elisa-laajakaista.fi] has quit [Ping Timeout]
12:25 EvilDarkLord [althalas@Nightstar-17046.a80-186-184-83.elisa-laajakaista.fi] has joined #code
12:50 Reiver is now known as ReivZzz
16:20 You're now known as TheWatcher
16:36 Syloq [Syloq@Admin.Nightstar.Net] has joined #code
17:18 You're now known as TheWatcher[afk]
18:40 mangor [~jack@Nightstar-10581.dip.t-dialin.net] has joined #Code
18:51 mangor [~jack@Nightstar-10581.dip.t-dialin.net] has left #Code [Konversation terminated!]
19:04 You're now known as TheWatcher
19:14 Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code
19:15 mode/#code [+o Chalcy] by ChanServ
19:15 Chalcy is now known as Chalcedon
19:59 Syloq [Syloq@Admin.Nightstar.Net] has quit [Connection reset by peer]
20:22 Janus [~Cerulean@Nightstar-10302.columbus.res.rr.com] has joined #code
20:38
<@ToxicFrog>
augh
20:38
<@ToxicFrog>
die, scintilla, die
20:39
<@TheWatcher>
What's up?
20:40 MahalZzz is now known as Mahal
20:40
<@ToxicFrog>
My increasingly frustrating quest to give Scintilla a lexing mechanism that does not suck ass continues.
20:42
<@ToxicFrog>
I am currently trying to figure out how to distinguish between different languages in the same lexer.
20:42
<@ToxicFrog>
Specifically, if this works, I'll have lots of different languages all using lexer.regex as their lexer.
20:42
<@ToxicFrog>
And it looks in, say, regex.lua.* for the Lua patterns, and regex.c.* for the C patterns, etc.
20:43
<@ToxicFrog>
The problem is that I cannot seem to determine any way for it to determine what language it's actually looking at at runtime.
20:43
<@Mahal>
Ah.
20:44
<@ToxicFrog>
For added whatthefuckery, the version I build myself does not answer to keyboard input, only mouse.
20:44
<@TheWatcher>
...
20:44
<@TheWatcher>
O.o
20:45
<@ToxicFrog>
I mean, clearly there's some way of distinguishing, because Java and C++ both use lexer.cpp, but recognize only the appropriate keywords for each language.
20:45
<@ToxicFrog>
I just can't determine /how/.
20:45
<@TheWatcher>
I think I'll stick to emacs ¬¬
20:45
<@ToxicFrog>
I am perpetually one very short step away from saying screw it and going back to NEdit, myself.
20:46
<@ToxicFrog>
The problem is that /apart/ from the criminally braindead lexing architecture, SciTE kicks a whole lot of ass.
20:46
<@TheWatcher>
Yes, and it's a Challenge.
20:46
<@ToxicFrog>
Frankly, this is one challenge I'd rather just skip.
20:46
<@ToxicFrog>
I have many more that are far more interesting.
20:47
<@ToxicFrog>
SDL bindings for Lua, preemptive threads in Lua, a new version of Spellcast and Spellcast-Server...
20:47
<@ToxicFrog>
However, I want to be able to use SciTE with new languages.
20:49
<@ToxicFrog>
Hmm. Ok, it seems to use keywords.(filepattern).
20:50
<@ToxicFrog>
so what I need to do is, I think, something like this...
20:50
<@ToxicFrog>
file.patterns.lua=*.lua
20:50
<@ToxicFrog>
lexer.$(file.patterns.lua)=regex
20:51
<@ToxicFrog>
keywords.$(file.patterns.lua)=lua
20:51
<@ToxicFrog>
regex.lua.0.name=comment
20:51
<@ToxicFrog>
regex.lua.0.regex=--.*
20:51
<@ToxicFrog>
regex.lua.0.style=$(style.comment)
20:51
<@ToxicFrog>
regex.lua.1.name=keyword
20:51
<@ToxicFrog>
[...]
20:52
<@ToxicFrog>
And then the lexer looks at keywords[0][0] to determine what language it's operating on.
20:52 * ToxicFrog makes a noise like several baby rabbits being choked to death.
20:54 * ToxicFrog also curses C for not having hash tables, and curses Scintilla - again - for not exposing the lexer API to Lua
21:05
<@ToxicFrog>
...however, Lua does have hashtables, and Scintilla is already linked to Lua. So I can store the processed data structures in a lua_State and recall them at will.
21:05
<@ToxicFrog>
Go me.
21:15 Chalcedon is now known as ChalcyTidying
21:59
<@McMartin>
....ahahahahahaaaaaaa
21:59
<@McMartin>
Ways to find code invariants:
22:00
<@McMartin>
It's traditional to search for things like "always" and "never"
22:00
<@McMartin>
It turns out that searching your codebase for "the guy who wrote this" and "in case some idiot" are highly effective, too!
22:03
<@ToxicFrog>
"code invariants"?
22:05
<@McMartin>
"argument 2 to function foo is always > 0", etc.
22:05
<@McMartin>
Statements about code that are universally true, or must be universally true for the code to be correct.
22:06
<@McMartin>
The new searches are, for instance:
22:06
<@McMartin>
/* The guy who wrote this has never heard of endianness */
22:06
<@McMartin>
/* In case some idiot tries to write -1 blocks to disk */
22:07
<@McMartin>
etc.
22:07
<@McMartin>
More traditional versions are, like, /* never returns NULL. */
22:08 Mahal is now known as MahalTidying
22:09
<@ToxicFrog>
Aah.
22:10
<@McMartin>
Searching for swear words also works.
22:10
<@ToxicFrog>
Hee.
22:16 ReivZzz is now known as Reiver
22:29 You're now known as TheWatcher[afk]
22:49 EvilDarkLord is now known as EvilSLEPLord
22:59 You're now known as TheWatcher
23:12 Janus [~Cerulean@Nightstar-10302.columbus.res.rr.com] has quit [Quit: 6%]
23:13 You're now known as TheWatcher[T-2]
23:19 You're now known as TheWatcher[zZzZ]
23:26 Reiver is now known as ReivSTUFF
23:45 ChalcyTidying [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Quit: departing for Mahal's]
23:53 MahalTidying is now known as Mahal
--- Log closed Sat Oct 07 00:00:51 2006
code logs -> 2006 -> Fri, 06 Oct 2006< code.20061005.log - code.20061007.log >