code logs -> 2009 -> Mon, 30 Mar 2009< code.20090329.log - code.20090331.log >
--- Log opened Mon Mar 30 00:00:37 2009
00:38 Attilla_ [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has quit [Ping Timeout]
00:44 Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has joined #code
00:44 mode/#code [+o Attilla] by ChanServ
00:51 TarinakyKai [~Tarinaky@Nightstar-16638.plus.com] has quit [Quit: Leaving]
01:02 Bob_Work [c6b3e33b@Nightstar-14595.mibbit.com] has joined #Code
01:05 Finerty is now known as Vornicus
01:15 Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has quit [Ping Timeout]
02:20 Reiv [~82d94c4d@Nightstar-29731.dsl.in-addr.zen.co.uk] has joined #Code
02:21 thalass [~thalass@Nightstar-24524.dyn.iinet.net.au] has joined #code
02:21 * thalass stabs linux
02:21
< thalass>
so there
02:22
< Bob_Work>
Probably deserved it.
02:24
< thalass>
it does. Maybe
02:49
< Bob_Work>
May I ask what transgression it has committed this time?
02:49 * ToxicFrog ponders code generation for the Tiny Machine.
02:49
< Bob_Work>
Tiny code?
02:49
<@ToxicFrog>
Quite.
02:50
<@ToxicFrog>
I'll need a stack; so, R6 gets dedicated for use as SP. I can use LDA 6,+1(6) to adjust it.
02:50
<@ToxicFrog>
Globals at the bottom of memory, stack above them and grows upwards.
02:51
< Reiv>
Tiny Machine being something as small as possible in memory?
02:51
<@ToxicFrog>
No, it's a specific architecture used for teaching compiler design.
02:51
< Reiv>
Oh. Okay.
02:51
<@ToxicFrog>
Eight registers, two address spaces, 17 instructions.
02:51 * Bob_Work thinks it sounds interesting
02:52
<@Vornicus>
I can't figure out how you'd do anything in 17 instructions.
02:52
<@ToxicFrog>
HALT
02:52
<@ToxicFrog>
IN OUT
02:53
<@ToxicFrog>
ADD SUB MUL DIV
02:53
<@ToxicFrog>
Those are the register-register instructions
02:53
<@ToxicFrog>
And the register-memory instructions are LD LDA LDC; ST; JLT JLE JGT JGE JEQ JNE.
02:53
<@ToxicFrog>
Which is plenty.
02:54
< Bob_Work>
Hmmm. So what you're saying is that you have 7 instructions too many for the compiler?
02:54
<@ToxicFrog>
...what?
02:55
< Reiv>
... no?
02:56
< Bob_Work>
The register memory instructions you mentioned only add up to 10. You said you have 17. I was trying to figure out where the extra 7 came from.
02:56
< Bob_Work>
but, nevermind, I'm obviously lost.
02:56
< Reiv>
HALT, IN OUT ADD SUB MUL DIV are the seven you're missing.
02:56
< Reiv>
He was listing them by type.
02:57
< Bob_Work>
ah.
02:57
<@ToxicFrog>
Anyways...callconv: arguments on stack; push arguments in direct order, then push IP+2, then jump. Callee uses stack-relative LDA and ST to access locals. Symbol table stores local locations as stack frame relative offsets and, god willing, I won't need to move SP except during calls.
02:57
<@ToxicFrog>
(if I do, I also store the offset from SP to the start of the stack frame)
02:58 * Bob_Work excuses himself back to his C++ Class and Structures homework.
02:58
<@ToxicFrog>
Register allocation...I have six free registers, and I don't think I'll ever need more than three. Code generation for subexpressions loads the arguments and stores the result into the first "free" register it finds, and locks the result; the parent unlocks it once it emits the code to ST (or ADD or whatever) the result.
02:59
<@ToxicFrog>
Enjoy, Bob.
02:59
< Bob_Work>
I'll try. Wish I knew more about what you were doing though.
03:00
<@ToxicFrog>
I can go into lots of detail when you're ess busy, if you like.
03:00
< Bob_Work>
Thanks
03:01
<@ToxicFrog>
(Shit. Return convention, almost forgot that. All return values are either int or void, so it just stores the return value if any in R5, pops IP into a temporary register, drops the stack frame and restores IP)
03:24 thalass [~thalass@Nightstar-24524.dyn.iinet.net.au] has quit [Client exited]
03:32 gnolam [lenin@Nightstar-1382.A163.priv.bahnhof.se] has quit [Quit: Z?]
03:40 Reiv [~82d94c4d@Nightstar-29731.dsl.in-addr.zen.co.uk] has quit [Quit: CGI:IRC (EOF)]
03:58 * Bob_Work smacks his head
04:07
<@ToxicFrog>
?
04:12
< Bob_Work>
Ever been looking at a problem, and then your brain woke up?
04:13
< Bob_Work>
Part 1 of this assignment had me create BankAccount.cpp file, with a BankAccount class.
04:14
< Bob_Work>
Part 2 said: 'Now create a Portfolio.cpp file, with a Portfolio class, and include two BankAccount objects.'
04:15
< Bob_Work>
Wasn't sure what the heck it meant, until I realized I'm creating a program with two classes in it, not just one.
04:22
<@ToxicFrog>
Aah. Yes.
04:47
< Bob_Work>
I completely understand the point of constructors....but they're still annoying. >.>
04:58 Derakon [~Derakon@Nightstar-5066.hsd1.ca.comcast.net] has joined #code
04:58 mode/#code [+o Derakon] by ChanServ
05:24 AnnoDomini [~farkoff@Nightstar-28151.neoplus.adsl.tpnet.pl] has joined #Code
05:24 mode/#code [+o AnnoDomini] by ChanServ
05:32
< Bob_Work>
The assignment DOES become a lot easier when I clean up the code I'm using from the last assignment.
05:39
<@Derakon>
One of the most important things to learn about programming is when to re-use work you've already done.
05:40 * Derakon ponders overall design.
05:40 * Bob_Work nods
05:41
<@Derakon>
I'm wondering if it's worth trying to have all that semantic structure in the map that I've been planning on all this time.
05:41 * Bob_Work shrugs.
05:42
<@Derakon>
Maybe I'd be better off trying to do some kind of dynamically-generated map where you're progressing down a main path, with occasional branches, and you just explore.
05:42
<@Derakon>
And sometimes the branches continue the game and sometimes they terminate with powerups; acquiring the powerups changes the dynamic map generation parameters.
05:43
< Bob_Work>
Go the Pac-Man route. Have them follow little white dots, unless they've been there before.
05:44
< Bob_Work>
bonus points if you use the pac-man map. :P
05:44 * Derakon facepalms.
05:44
<@Derakon>
Are you familiar with my project at all?
05:45
< Bob_Work>
Can't remember the name of it, but I remember its a flying ship game designed to drive me nuts.
05:45
<@Derakon>
Ah, no. This is a different project.
05:45
< Bob_Work>
Aaaaah. I apologize for my confusion.
05:45
<@Derakon>
http://derakon.dyndns.org/~chriswei/games/jbrl/maze/10.png
05:45
<@Derakon>
That's a procedurally-generated map.
05:46
< Bob_Work>
Ok.
05:47
<@Derakon>
The idea was to try to replicate a Metroid-style map, where you have barriers that you can't surpass until you get certain powerups (e.g. tall ledges requiring highjump boots).
05:47
<@AnnoDomini>
It is made of trees and mazes.
05:47
<@Derakon>
But my concern is that I won't be able to procedurally make interesting maps that adhere to that design philosophy.
05:47
<@Derakon>
So I'm wondering if I should maybe just make an outright roguelike platformer, where you always go forward.
05:48
<@Derakon>
Branchpoints would either dead-end fairly quickly, or else just decide to continue the map, since I'd be making the map on the fly.
05:48
<@Derakon>
If I were particularly clever, then I could try to force the map to loop back to a previous, untaken branchpoint.
05:49
< Bob_Work>
Both would result in drasticly different forms of game play, no?
05:50
<@Derakon>
In a way.
05:50 * Bob_Work hmmms.
05:50
<@Derakon>
Metroid-style maps show you a locked door, and then later give you the key, with the idea being that you then backtrack to the door to continue playing.
05:50
< Bob_Work>
Right.
05:50
<@Derakon>
What I'm proposing would be to make the map on the fly as the player goes forward, so everything they can see is always accessible.
05:50
<@Derakon>
No locked doors.
05:51
<@Derakon>
But as soon as they get a powerup, the map generation routines tweak themselves to take advantage of that powerup.
05:51
<@Derakon>
Basically, there's no built-in backtracking.
05:52
< Bob_Work>
I can only offer you my opinion, unfortunately.
05:52
<@Derakon>
Lay it on me.
05:53
< Bob_Work>
I love locked doors and hidden areas. Exploring and looking for keys, powerups, etc to get to the next level are my favorite things to do inside games.
05:54
< Bob_Work>
with all due respect, the "no locked doors" idea seems...boring.
05:54 * Derakon nods.
05:54
<@Vornicus>
Having the key show up before the lock is kind of silly, imo
05:54
< Bob_Work>
That's true too.
05:55
<@Derakon>
I agree, Vorn.
05:55
<@Derakon>
In this context, powerups wouldn't be serving as keys.
05:55
<@Derakon>
They'd be serving to step up the gameplay.
05:55
<@Derakon>
"Okay, you have the missile launcher now. That means I can throw more powerful enemies at you."
05:55
<@Derakon>
Much more roguelike, much less Metroid.
05:55
< Bob_Work>
So long as you're not throwing Grue's, it should be ok.
05:55
<@Vornicus>
hm, a decent point
05:56
<@Derakon>
Fundamentally, I just don't want to make a game whose primary conceit is implemented badly.
05:56
<@Derakon>
And I'm not certain I can implement procedurally-generated Metroid-style maps.
05:57
<@Derakon>
My nightmare scenario is where the player figures out how to break the sequence (bypass a "lock" without the required powerup) and then gets stuck.
05:57
<@Derakon>
Which is all too easy to do accidentally.
06:02 Rhamphoryncus [~rhamph@Nightstar-7184.ed.shawcable.net] has joined #code
06:03 Syloqs-AFH [Syloq@Admin.Nightstar.Net] has quit [Connection reset by peer]
06:05
< Bob_Work>
Good point.
06:13
<@Derakon>
Actually, I could go with a hybrid approach...
06:14
<@Derakon>
Dynamically generate a map segment where one section dead-ends in a lock and the other dead-ends in a barrier.
06:14
<@Derakon>
s/barrier/powerup.
06:14
<@Derakon>
If you manage to surpass the lock without the powerup, well, I haven't yet made anything past that point anyway, so now I can continue generating maps appropriate to your power level.
06:16 PinkFreud [~WhyNot@Admin.Nightstar.Net] has joined #code
06:17
< PinkFreud>
is there something similar to perl's tell() in C++?
06:17
<@Derakon>
What does tell() do?
06:17
< PinkFreud>
it gives one the current offset in a filehandle
06:18
<@Derakon>
I don't know much about C++ filehandles; sorry.
06:18
< PinkFreud>
how about C? :)
06:18
<@Derakon>
Even less.
06:18
< PinkFreud>
damn
06:19
< Bob_Work>
I've got a C++ book in front of me.
06:19
< Bob_Work>
Nothing about filehandles in it, sorry.
06:20
< PinkFreud>
bah
06:24 * Derakon makes an LJ post on his design considerations, for those in his gamedev filter. http://derakon.livejournal.com/328538.html
06:25
< Bob_Work>
PinkFreud: You're trying to find the size of a file, in C++, no?
06:26
<@Vornicus>
tell() tells you where in the file you are.
06:27
<@Derakon>
When you crash a Perl script with an open filehandle, it'll say e.g. "Can't call foo() on undefined value at bar.pl line 56, foo.txt line 87 character 50"
06:28
<@Derakon>
In other words, at the time of the crash, the filehandle was on line 87, character 50 of foo.txt.
06:28
<@Derakon>
Whether this has any bearing on your script crashing is variable. :)
06:29
<@Vornicus>
ftell(), in cstdio?
06:30
< PinkFreud>
Vornicus: hmmmm
06:32
<@Vornicus>
If tell() does something with lines, remember that C generally doesn't keep track of such things.
06:35
< PinkFreud>
nevermind, it looks like this code has it's own tell()
06:40
<@Derakon>
The last time I wrote a file reader in C++ I tracked my own file lines.
06:40
<@Derakon>
Simply by incrementing a counter every time I read a line in
06:52
< PinkFreud>
yeah, I'm not doing that, though :)
06:52
< PinkFreud>
just modifying existing code as I go
07:02 Derakon is now known as Derakon[AFK]
08:11 Vornicus [Vornicus@Admin.Nightstar.Net] has quit [Quit: ]
08:52 Tarinaky [~Tarinaky@Nightstar-16638.plus.com] has joined #code
09:05 somnolence [~somnolenc@203.160.1.ns-3171] has quit [Client exited]
10:02 gnolam [lenin@Nightstar-1382.A163.priv.bahnhof.se] has joined #Code
10:02 mode/#code [+o gnolam] by ChanServ
10:27
< Bob_Work>
Well, beating my code into submission with my C++ book hasn't helped. Time for a new tactic.
11:12 Rhamphoryncus [~rhamph@Nightstar-7184.ed.shawcable.net] has quit [Quit: Rhamphoryncus]
11:15
< Bob_Work>
BAH!
11:15
< Bob_Work>
I'm done. Later folks.
11:15 Bob_Work [c6b3e33b@Nightstar-14595.mibbit.com] has quit [Quit: http://www.mibbit.com ajax IRC Client]
11:24
<@gnolam>
BEEP DAMN YOU, BEEP!
11:24 Orthia [~Orthianz@Nightstar-23736.xdsl.xnet.co.nz] has joined #Code
12:08 Orthia [~Orthianz@Nightstar-23736.xdsl.xnet.co.nz] has quit [Ping Timeout]
12:17 Orthia [~Orthianz@Nightstar-21794.xdsl.xnet.co.nz] has joined #Code
13:08
<@gnolam>
Gah
13:08
<@gnolam>
My ears!
13:08
<@gnolam>
The dose rate alarm on that thing is /loud/.
13:46 * AnnoDomini needs some kind of application that will generate PostgreSQL or MySQL code from conceptual/physical models of a database.
13:46
<@AnnoDomini>
Something like Power Designer, but I remember that having only MS Access and Sybase stuff.
16:04 Syloq [Syloq@Admin.Nightstar.Net] has joined #code
16:05 Syloq is now known as Syloqs-AFH
16:11 Derakon[AFK] is now known as Derakon
16:15 KBot [AnnoDomini@Nightstar-29644.neoplus.adsl.tpnet.pl] has joined #Code
16:16 AnnoDomini [~farkoff@Nightstar-28151.neoplus.adsl.tpnet.pl] has quit [Ping Timeout]
16:16 KarmaBot [AnnoDomini@Nightstar-28151.neoplus.adsl.tpnet.pl] has quit [Ping Timeout]
16:18 KBot is now known as KarmaBot
16:22 AnnoDomini [~farkoff@Nightstar-29644.neoplus.adsl.tpnet.pl] has joined #Code
16:23 mode/#code [+o AnnoDomini] by ChanServ
16:27 GeekSoldier [~Rob@Nightstar-8573.midstate.ip.cablemo.net] has quit [Ping Timeout]
17:14 Syloqs-AFH [Syloq@Admin.Nightstar.Net] has quit [Ping Timeout]
17:37 Orthia [~Orthianz@Nightstar-21794.xdsl.xnet.co.nz] has quit [Connection reset by peer]
18:01 Orthia [~Orthianz@Nightstar-21794.xdsl.xnet.co.nz] has joined #Code
18:01 Orthia [~Orthianz@Nightstar-21794.xdsl.xnet.co.nz] has quit [Connection reset by peer]
18:01 Orthia [~Orthianz@Nightstar-21794.xdsl.xnet.co.nz] has joined #Code
18:02 Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has joined #code
18:02 mode/#code [+o Attilla] by ChanServ
18:12 * Derakon thwaps his forehead.
18:12
<@Derakon>
I just found a bug that was due to indenting.
18:13
<@Derakon>
I had a loop that had a "if this value is out of bounds: continue" bit...and then the actual work of the loop was at the same indentation level as the continue statement.
18:15
<@Derakon>
Once again, no more accidental holes in walls~
18:56
<@C_tiger>
python?
18:57
<@Derakon>
Yeah.
18:57
<@Derakon>
Though that kind of bug can happen even in languages with strictly-delimited blocks.
19:26 Orthia [~Orthianz@Nightstar-21794.xdsl.xnet.co.nz] has quit [Ping Timeout]
20:20 TarinakyKai [~Tarinaky@Nightstar-16638.plus.com] has joined #code
20:20 Tarinaky [~Tarinaky@Nightstar-16638.plus.com] has quit [Ping Timeout]
20:26
<@gnolam>
Note to self: check speaker volume /before/ testing looping of an alarm sample.
20:28
<@AnnoDomini>
Hmm. Power Designer does support Postgre, at least where generating a physical model is concerned...
20:29
<@AnnoDomini>
What's a "bijective relationship between entities"?
20:29
<@Derakon>
I believe http://en.wikipedia.org/wiki/Bijection will be of some use.
20:29
<@gnolam>
One-to-one relationship.
20:29
<@McMartin>
One-to-one and onto.
20:30
<@AnnoDomini>
Uh... why does this show up as a warning?
20:30
<@McMartin>
one-to-one alone is an "injection", onto is a "surjection".
20:31
<@Derakon>
Anno: at a guess, if you have a 1:1, onto relationship, there's no reason to use separate tables.
20:32
<@AnnoDomini>
There is a reason: Teacher requires 5 tables, and I can come up with 4.
20:34
<@Derakon>
So you're just making up a pointless 5th?
20:34
<@AnnoDomini>
Yup. :P
20:35 * Derakon facepalms.
20:35
<@AnnoDomini>
Come to think of it, I've just come up with a good fifth.
20:35
<@Derakon>
:)
20:38 Rhamphoryncus [~rhamph@Nightstar-7184.ed.shawcable.net] has joined #code
20:40
<@AnnoDomini>
Damn it. I forgot how this goes - if I want to link BOOKS many-to-one AUTHORS, do I put 'mandatory' on the many end or the one end?
20:40
<@AnnoDomini>
I know what I want - every book must have an author, but there doesn't have to be a book in the library for every author.
20:40
<@Derakon>
Every book must have an author.
20:40
<@Derakon>
Heh.
20:41
<@AnnoDomini>
So, where does mandatory go?
20:41
<@Derakon>
I'm not familiar with the "mandatory" keyword.
20:42
<@Derakon>
But it sounds like you're defining a foreign key constraint on books.
20:43 TarinakyKai [~Tarinaky@Nightstar-16638.plus.com] has quit [Client exited]
20:43
<@AnnoDomini>
As in "you can't leave this field without a foreign key value that's in the linked table". Or something.
20:45
<@Derakon>
Yeah. In MySQL you'd just say, when defining Books, "this table has a foreign key constraint on the 'id' column in the Authors table".
20:47
<@Derakon>
Refining the staircase tunnel type: http://derakon.dyndns.org/~chriswei/games/jbrl/mapgen26a.png
20:48
<@Derakon>
Tree branches are now colored based on their flavor. In this case, red is for 'room' types and yellow is for 'stair' types. I've biased the tunnel type selector to make testing easier.
20:50
<@AnnoDomini>
Okay, a different way of saying this should it be "BOOKS 0,n - 1,1 AUTHORS" or "BOOKS 0,n - 0,1 AUTHORS"?
20:50
<@AnnoDomini>
-be
20:50
<@AnnoDomini>
+be
20:50
<@AnnoDomini>
+,
20:50
<@AnnoDomini>
You get the idea?
20:51
<@Derakon>
No, because I don't know the syntax you're using.
20:51
<@Derakon>
But it sounds like the latter is saying "Any number of books may be related to none or one author", which isn't what you'd want.
20:52
<@AnnoDomini>
Okay.
21:09 gnolam [lenin@Nightstar-1382.A163.priv.bahnhof.se] has quit [Quit: Reboot]
21:12 gnolam [lenin@Nightstar-1382.A163.priv.bahnhof.se] has joined #Code
21:12 mode/#code [+o gnolam] by ChanServ
21:12 * Derakon ponders how to map sine waves onto his tree branches.
21:18
<@gnolam>
Fuck Steam. Fuck it in the EAR.
21:18 * gnolam stabs Valve Software with a rusty shiv again and again and again.
21:29
<@Derakon>
I have a line from point A to point B.
21:29
<@Derakon>
I want to make a sine wave that starts at A and travels to B.
21:29
<@AnnoDomini>
Wow.
21:29
<@Derakon>
Specifically, I want to find points along that sine wave.
21:30
<@Derakon>
Any ideas how to do this short of finding the points along a sine wave at the origin and then rotating them based on A->B?
21:31
<@gnolam>
That's pretty much how you'll have to do it.
21:32 * AnnoDomini would treat the line as the x axis, start at some frequency f and change it incrementally until sin(f*x) crosses both points.
21:32
<@gnolam>
If you want to generate the wave and then rotate it or generate the new base and draw a straight sine wave in it is up to you.
21:32
<@Derakon>
Ahh, well.
21:32
<@Derakon>
AnnoDomini: that creates a X-axis-aligned sine wave, which isn't what I want.
21:33
<@Derakon>
I want a sine wave aligned with A->B.
21:33
<@gnolam>
(I'd go the latter route. 'tis more general.)
21:35
<@Derakon>
I have to remember how to do transformations now. :\
21:41
<@Derakon>
So obviously first I subtract A from A and B so that the line starts at the origin.
21:41
<@Derakon>
Then I need to rotate B by negative the angle it makes with the X-axis...
21:42
<@Derakon>
Argh, transformation matrices. >.<
21:55
<@Derakon>
Sinewave tunnels: http://derakon.dyndns.org/~chriswei/games/jbrl/mapgen25b.png
21:57
<@Derakon>
I'm starting to get some nice variation in tunnel shapes here.
21:58
<@gnolam>
As long as you're in 2D, it's a piece of cake. And the cake isn't a lie. :)
22:23 AnnoDomini [~farkoff@Nightstar-29644.neoplus.adsl.tpnet.pl] has quit [Quit: Even in death, a wizard cannot be trusted.]
22:52 KarmaBot [AnnoDomini@Nightstar-29644.neoplus.adsl.tpnet.pl] has quit [Connection reset by peer]
22:53 KBot [AnnoDomini@Nightstar-29644.neoplus.adsl.tpnet.pl] has joined #Code
22:57 KBot [AnnoDomini@Nightstar-29644.neoplus.adsl.tpnet.pl] has quit [Ping Timeout]
23:00 KBot [AnnoDomini@Nightstar-29644.neoplus.adsl.tpnet.pl] has joined #Code
23:03 KBot [AnnoDomini@Nightstar-29644.neoplus.adsl.tpnet.pl] has quit [Ping Timeout]
23:06 KBot [AnnoDomini@Nightstar-29644.neoplus.adsl.tpnet.pl] has joined #Code
23:08 Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has quit [Ping Timeout]
23:09 Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has joined #code
23:09 mode/#code [+o Attilla] by ChanServ
23:10 KBot [AnnoDomini@Nightstar-29644.neoplus.adsl.tpnet.pl] has quit [Ping Timeout]
23:15 KBot [AnnoDomini@Nightstar-29644.neoplus.adsl.tpnet.pl] has joined #Code
23:18 KBot [AnnoDomini@Nightstar-29644.neoplus.adsl.tpnet.pl] has quit [Ping Timeout]
23:20 KBot [AnnoDomini@Nightstar-29644.neoplus.adsl.tpnet.pl] has joined #Code
23:22 Orthia [~Orthianz@Nightstar-14240.xdsl.xnet.co.nz] has joined #Code
23:24 KBot [AnnoDomini@Nightstar-29644.neoplus.adsl.tpnet.pl] has quit [Ping Timeout]
23:24 KBot [AnnoDomini@Nightstar-29644.neoplus.adsl.tpnet.pl] has joined #Code
23:27 KBot is now known as KarmaBot
23:33
<@gnolam>
Huh.
23:33
<@gnolam>
Looks like Chernobyl is gone for good.
23:33
<@gnolam>
Guess I'll have to switch to Koeberg.
23:39
<@Derakon>
As a site for a nuclear disaster?
23:44
<@gnolam>
As my preferred CPU server on Lysator.
23:44
<@gnolam>
They name them after (accident-prone) nuclear power plants.
--- Log closed Tue Mar 31 00:00:49 2009
code logs -> 2009 -> Mon, 30 Mar 2009< code.20090329.log - code.20090331.log >