code logs -> 2009 -> Wed, 14 Jan 2009< code.20090113.log - code.20090115.log >
--- Log opened Wed Jan 14 00:00:07 2009
--- Day changed Wed Jan 14 2009
00:00 AnnoDomini [~farkoff@Nightstar-29721.neoplus.adsl.tpnet.pl] has quit [Ping Timeout]
00:49 You're now known as TheWatcher[T-2]
00:51 Derakon[AFK] is now known as Derakon
00:53 You're now known as TheWatcher[zZzZ]
01:39 Vornicus [~vorn@Admin.Nightstar.Net] has quit [Connection reset by peer]
02:14 Vornicus [~vorn@Admin.Nightstar.Net] has joined #code
02:14 mode/#code [+o Vornicus] by ChanServ
02:23 * Derakon adds the current iteration in the <repeat> tag as an available keyword, implements one of the pattern ideas he had while at work.
02:23
<@Derakon>
It's...too hard. :\
02:24
<@McMartin>
Heh
02:25
<@Derakon>
Or rather, it's either impossible or easy, depending on if you've positioned yourself properly before it starts.
02:26
<+simontwo>
are labeled breaks bad style in Java, I wonder?
02:29
<@McMartin>
They're one of the Good Gotos, so I don't mind 'em.
02:30 crem_ [~moo@Nightstar-28703.adsl.mgts.by] has joined #code
02:31 crem [~moo@Nightstar-28703.adsl.mgts.by] has quit [Ping Timeout]
02:34
<@Derakon>
What d'y'all think of giving the player the ability to pull bullets towards him?
02:35
<@McMartin>
Is there a reason he'd want that?
02:35
<@McMartin>
I can think of an aesthetic reason, I suppose...
02:35
<@Derakon>
To pull them out of alignment so he can dodge around?
02:35
<@McMartin>
If you do, I'd suggest a modification to the Bomb mechanic, too.
02:35
<@McMartin>
Making it a violent deflection instead of an annihilation.
02:35 * Derakon nods.
02:35
<@McMartin>
(Then it can be a fully pacifist shooter hero!)
02:36
<@Derakon>
Hee.
02:36
<@Derakon>
There's still the megabomb, mind.
02:36
<@McMartin>
I thought the megabomb was you getting your ass kicked~
02:36
<@Derakon>
Yes.
02:36
<@Derakon>
But how would it manifest if explosions are out?
02:36
<@McMartin>
I didn't say the *game* was pacifist.
02:36
<@McMartin>
Just that the hero would be.
02:36
<@Derakon>
Ahh, righto.
02:36
<@McMartin>
He's not now, because bomb.
02:37
<@Derakon>
So, pacifist hero in a ship that explodes violently if it gets dinged too many times.
02:37
<@Derakon>
Ooh, say -- using the "draw bullets in" could get you more bombs, maybe.
02:38
<@Derakon>
So the better you are at dodging bullets that really want to hit you, the more times you can survive actually getting hit~
02:39
<@Derakon>
I'm thinking strength of the gravity well decays with the square of distance; the degree to which you deflect bullets adds to a charge meter, which when full, gives you an additional "bomb".
02:39
<@Derakon>
Only problem with this is that it adds another distance calculation for every bomb onscreen as long as the player holds down the deflect button.
02:44
<+simontwo>
Derakon, are you making a first-person shooter?
02:44
<@Derakon>
Ah, no. http://derakon.dyndns.org/~chriswei/temp/bulletmlanim1.gif
02:46 GeekSoldier [~Rob@Nightstar-8573.midstate.ip.cablemo.net] has quit [Quit: Praise "BOB"!]
02:53
<@McMartin>
Bullet Purgatory!
02:53
<@McMartin>
(Excuse for Bombs #2: Reactive, Ablative Armor)
02:54 * Derakon snerks.
02:54
<@Derakon>
Peizoelectric cells on the ship's skin that create a large electromagnetic shockwave on impact!
02:55
<@Derakon>
Is there a faster way to combine radial vectors than converting them to Cartesian coordinates first?
02:56
<@Derakon>
Er. Polar, not radial.
02:56
<@McMartin>
Adding Polar is hard. Multiplying Polar is easy.
02:56
<@McMartin>
You might be able to get *fewer* trig ops in, though. Let's see here...
02:57
<@McMartin>
Especially since IIRC you want radial at the end too, right?
02:57
<@Derakon>
Yeah.
02:57
<@Derakon>
Bullets track speed and direction.
02:57
<@Derakon>
Not vx, vy.
02:57 GeekSoldier [~Rob@Nightstar-8573.midstate.ip.cablemo.net] has joined #code
02:57 mode/#code [+o GeekSoldier] by ChanServ
02:58
<@Derakon>
I can use one atan2 to get the direction from the bullet to the player, and the distance gives me the speed addition. The trick is figuring out how that modifies the bullet's existing direction and speed.
02:58
<@Vornicus>
Adding polar: use the law of cosines.
02:59
<@Vornicus>
well, that gets you the magnitude anyway
03:01
<@Derakon>
Imagine that 't' is a theta. Then I have r1t1 and r2t2, which i Cartesian are (r1cos(t1), r1sin(t1)), (r2cos(t2), r2sin(t2)), adding for (r1cos(t1)+r2cos(t2), r1sin(t1)+r2sin(t2)). Right?
03:01
<@Derakon>
Just, y'know, making certain I haven't descended into raving lunacy.
03:03 * Derakon ponders maybe leaving speed alone and just deflecting direction.
03:04
<@McMartin>
You have indeed not descended into raving lunacy
03:04
<@McMartin>
Also, making them rotate is probably easier.
03:04
<@McMartin>
I'd only modify speed for violent deflection, and I'd make the speed something absurd like 30 px/sec to make sure it goes away fast.
03:04
<@Derakon>
Right.
03:04
<@Derakon>
...WTF, Pygame doesn't support the "'" key?
03:04
<@Derakon>
http://www.pygame.org/docs/ref/key.html
03:05
<@Derakon>
That was going to be my deflector key!
03:05
<@Derakon>
Or maybe it's hiding under K_QUOTEDBL
03:08
<@McMartin>
That's probably unshifted 2 on French kbds
03:09
<@McMartin>
K_QUOTE doesn't work?
03:09
<@Vornicus>
I had a thing floating around that would list off events from Pygame.
03:10
<@Derakon>
McM: ahh, it does...to the extent that it now tries to run my deflector code and crashes. Danke.
03:13
<@Derakon>
Okay, this is unrelated to the whole deflector business, but I appear to have broken my parametering code. Any ideas? http://paste.ubuntu.com/104658/
03:14
<@Derakon>
Nevermind, found it.
03:14
<@Derakon>
Python shouldn't let you iterate over a dictionary if you don't know what you're doing. ¬.¬
03:14
<@Vornicus>
Heh
03:15
<@ToxicFrog>
Pfft
03:15
<@Derakon>
(Line 9 of that paste should have been "for key, value in self.evaledParams.items():")
03:15
<@Vornicus>
Yeah, dictionaries iterate over keys, not items
03:15
<@Vornicus>
and in python 2 use iteritems instead of items unless you're planning to do violence.
03:15
<@Derakon>
Does violence include writing to the dict, like in line 11?
03:16
<@Derakon>
Or just removing elements?
03:16
<@Vornicus>
...actually i don't know
03:16 * McMartin always plans for violence!
03:18
<@Derakon>
In any event, these dictionaries are pretty small.
03:19
<@Derakon>
If you have more than 5 items in them, you're doing something really complicated.
03:20 ToxicFrog [~ToxicFrog@Admin.Nightstar.Net] has quit [Operation timed out]
03:22
<@Derakon>
Two notes: one, '<' and '>' have different meanings, and two, an attractor turns into a deflector if you don't limit the amount of change in direction allowed.
03:23 ToxicFrog [~ToxicFrog@67.212.7.ns-3924] has joined #code
03:23 mode/#code [+o ToxicFrog] by ChanServ
03:23
<@McMartin>
Heh
03:25
<@Derakon>
NameError: global name 'dullet' is not defined.
03:25 * Derakon sighs.
03:46
<+simontwo>
heh
03:49
<@Derakon>
I think I'd better affect both speed and direction on bullets.
03:50
<@Derakon>
Otherwise you get free charging off of slow-moving bullets.
04:07
<@Derakon>
Does atan2 break down when the x term is near-zero?
04:08
<@Vornicus>
It probably does it in a numerically stable way.
04:08
<@Derakon>
Well, I'm getting weird behavior: http://paste.ubuntu.com/104679/
04:08
<@Derakon>
Judging from my logs, I'm getting reasonable Cartesian vectors.
04:09
<@Vornicus>
O.o
04:09
<@Derakon>
But when I convert to polar...
04:09
<@Vornicus>
That number there is pi/4;
04:09
<@Vornicus>
you shouldn't be getting that at all.
04:10
<@Derakon>
print math.atan2(-.017+10, 0)
04:10
<@Derakon>
1.57079632679
04:11
<@Derakon>
>>> print math.atan2(-0.0173010380623+10.0,1.05934805694e-18+6.12303176911e-16)
04:11
<@Derakon>
1.57079632679
04:12
<@Derakon>
...OH!
04:12
<@Derakon>
Duh!
04:12
<@Derakon>
Dumbass!
04:12
<@Derakon>
ax+by?
04:19 * Derakon gets himself into a lot of trouble with his new deflector.
04:24
<@McMartin>
Oog
04:24
<@McMartin>
Although it does let you skip most of the traffic, I cannot recommend leaving work at 8 PM.
04:26 * Vornicus used to work til 7. WHich was nice because it meant getting up at 9:30 instead of 7:30, but a pain because it meant it was usually dark.
04:27
<@McMartin>
We occasionally have to coordinate with teams in India.
04:27
<@McMartin>
Our engineer hours are... not standard.
04:38 C_tiger_remote [~cheng@Nightstar-5625.hsd1.ca.comcast.net] has quit [Ping Timeout]
05:14
<@Derakon>
...okay, two things.
05:15
<@Derakon>
The change in parametering logic has broken the doomcircle pattern, whose circles are no longer of fixed diameter.
05:15
<@Derakon>
And the deflector totally changes how players can approach the doomcircle.
05:24
<+simontwo>
I've got an object-oriented design I'd like some feedback on
05:26
<+simontwo>
say I've got an interface Piece (as in chess piece) and an AbstractPiece. AbstractPiece gives a standard implementation of the methods color(), location(), type(), moveTo() and validSquares().
05:27
<+simontwo>
so concrete chess pieces extend the AbstractPiece and implement the Piece interface, and all they have to do is supply a function canMoveTo() (which the AbstractPiece#validSquares() function uses.)
05:27
<+simontwo>
this is all really smart
05:27
<+simontwo>
but I thought of doing it one up
05:28
<+simontwo>
since I'd like to add the feature of being able to scale the board size and have the pieces' logic extend to that (i.e. the rook, bishop and queen should be able to move arbitrarily far)
05:29
<+simontwo>
(sorry, this is a huge build-up to my actual question)
05:29
<+simontwo>
(I'll get to it now)
05:30
<+simontwo>
I thought of adding an optional internal interface to concrete pieces that extend AbstractPiece so all they have to define is an int[][] suggesting which directions they go in
05:30
<@ToxicFrog>
How is this an improvement on validSquares()?
05:31
<+simontwo>
e.g. for the rook, an int[][] { {1,0,Square.MAX_FILE}, {-1,0,Square.MAX_FILE}, {0,1,Square.MAX_RANK}, {0,-1,Square.MAX_RANK} }
05:31
<+simontwo>
ToxicFrog, it's not an improvement. validSquares() simply uses canMoveTo(). what my improvement involves is being able to move canMoveTo() into the AbstractPiece as well.
05:31
<@ToxicFrog>
Hmm.
05:31
<+simontwo>
ToxicFrog, some pieces would have to overwrite this functionality by simply overwriting this canMoveTo() function
05:32
<@ToxicFrog>
Aah
05:32
<@ToxicFrog>
Ok
05:32
<@Derakon>
I don't think codifying the queen/bishop/rook movement patterns in AbstractPiece is really a significant improvement given the complexity you're adding.
05:32
<+simontwo>
because they don't really operate in terms of moving arbitrarily long in one directions (pawn, e.g.)
05:32
<@Derakon>
It's expected that each piece type would include its own movement rules.
05:32
<+simontwo>
yup
05:32
<+simontwo>
and instead of expressing their movement rules in terms of the canMoveTo() method, I want to express it in terms of an array
05:33
<+simontwo>
now
05:33
<@ToxicFrog>
Yeah, actually. If you want this kind of thing, it would probably make more sense to have something like:
05:33
<@ToxicFrog>
AbstractPiece -> LinearMovement Piece
05:33
<@jerith>
Perhaps add some utility methods that let you easily specify straight lines to the end of the board.
05:33
<@ToxicFrog>
LinearMovementPiece -> (Queen, Rook, Bishop)
05:33
<+simontwo>
ToxicFrog, that makes really good sense.
05:34
<+simontwo>
but I still have a java-specific question related to the 'protected' keyword.
05:35 * jerith always uses protected in preference to private.
05:35
<@ToxicFrog>
Don't ask to ask; just ask
05:36
<+simontwo>
I made AbstractPiece#canMoveTo() depend on a call to directions() which returns the int[][]. I initially made this a private method, and I thought in my Queen, Rook, Bishop I would be able to @Override it and return a different final static int[][] specific to the piece type.
05:36
<@jerith>
No, private isn't visible to subclasses.
05:36
<+simontwo>
I thought that this ought to be a protected method, since its child classes should be able to access/overwrite it, but Eclipse made an error on that.
05:37
<@jerith>
Protected is, but isn't visible outside.
05:38
<@ToxicFrog>
What jerith said.
05:38
<@ToxicFrog>
private: this class only
05:38
<@ToxicFrog>
protected: this class, its subclasses and friends
05:38
<@ToxicFrog>
package: all classes in the enclosing package
05:38
<@ToxicFrog>
public: everything
05:38
<+simontwo>
right.
05:38
<+simontwo>
I forgot the correct combination of @Override and protected.
05:39 * simontwo should probably extend this kind of functionality into a LinearMovementPiece because suddenly this piece isn't so abstract any more. :)
05:39 * jerith hatehateHATEs private stuff unless there's a *really* good reason for it.
05:41
<+simontwo>
jerith, I think there's at least one place where I should use protected instead of private, now when I think about it. (instead, I've used getters internally)
05:41
<@jerith>
I've had to reimplement the world too many times because the two-line method I want to override is private.
05:42
<@jerith>
Then again, I'm a strong believer in Python's "consenting adults" visibility model.
05:42
<@Derakon>
As in, everything's public?
05:43
<@jerith>
Yes.
05:43
<@Derakon>
That's not really what I'd call a "model".
05:43
<@jerith>
And you document your stable interfaces as such.
05:43
<@jerith>
But let people use your internals at their own risk.
05:45
<@jerith>
However, I need to get out of bed now.
05:45 * Derakon facepalms.
05:46
<@jerith>
Derakon: In every language I've used with private methods, I've had to jump through hoops and reimplement stuff because the bit I wanted to replace was private.
05:47
<@Derakon>
Aren't there tricks you can use to turn "private" into "public"?
05:47
<@Derakon>
Or is that just for protected?
05:47
<+simontwo>
Derakon, only trick I know is by declaring a public getter.
05:49 * Derakon mutters, has trouble coming up with a graphic for the deflector.
05:50
<@jerith>
Derakon: private stuff can't be accessed in subclasses.
05:51
<@jerith>
So there's no way short of modifying the original code.
05:51
<@Derakon>
Mm. I must've been misremembering then.
06:03
<+simontwo>
is it not possible to have an abstract static property?
06:04
<+simontwo>
i.e. require subclasses to redefine some class property.
06:07
<+simontwo>
what I thought about doing is, in my LinearMovementPiece (thanks for the name, by the way), to declare a protected abstract int[][] directions(); but I thought perhaps it's possible without this kind of a getter. but apparently static properties can't also be abstract. can properties even be abstract in general?
06:08 * simontwo RTFMs.
06:08 * simontwo likes that the topic mentions that monologues are permitted. :-)
06:33 Derakon is now known as Derakon[AFK]
06:40
<@jerith>
simontwo: If we prohibited them, this place would be a lot quieter. ;-)\
06:45 C_tiger_remote [~cheng@Nightstar-5625.hsd1.ca.comcast.net] has joined #code
06:45 mode/#code [+o C_tiger_remote] by ChanServ
06:45 C_tiger_remote is now known as C_tiger
06:46 gnolam [~lenin@Nightstar-1310.dialup.nmt.net] has joined #Code
06:47 gnolam is now known as NSGuest-1065
06:48 NSGuest-1065 is now known as gnolam
07:08 gnolam [~lenin@Nightstar-1310.dialup.nmt.net] has quit [Ping Timeout]
07:46 Reiv [ReivTop@Nightstar-21340.ipnet.xnet.co.nz] has joined #Code
07:58 gnolam [~lenin@Nightstar-1296.dialup.nmt.net] has joined #Code
08:08 gnolam [~lenin@Nightstar-1296.dialup.nmt.net] has quit [Ping Timeout]
08:13 gnolam [~lenin@Nightstar-1613.dialup.nmt.net] has joined #Code
08:14 gnolam is now known as NSGuest-1068
08:16 simontwo [~simon@78.129.201.ns-20686] has quit [Ping Timeout]
08:16 NSGuest-1068 is now known as gnolam
08:31 Attilla [~The.Attil@Nightstar-9469.cdif.cable.ntl.com] has joined #code
08:31 mode/#code [+o Attilla] by ChanServ
08:38 gnolam [~lenin@Nightstar-1613.dialup.nmt.net] has quit [Ping Timeout]
08:42 KarmaBot [AnnoDomini@Nightstar-29721.neoplus.adsl.tpnet.pl] has quit [Ping Timeout]
08:55 KBot [AnnoDomini@Nightstar-29179.neoplus.adsl.tpnet.pl] has joined #Code
08:56 AnnoDomini [~farkoff@Nightstar-29179.neoplus.adsl.tpnet.pl] has joined #Code
08:56 mode/#code [+o AnnoDomini] by ChanServ
08:58 KBot is now known as KarmaBot
09:06 You're now known as TheWatcher
09:29 Attilla [~The.Attil@Nightstar-9469.cdif.cable.ntl.com] has quit [Ping Timeout]
09:30 Attilla [~The.Attil@Nightstar-9469.cdif.cable.ntl.com] has joined #code
09:31 mode/#code [+o Attilla] by ChanServ
09:48 simontwo [~simon@78.129.201.ns-20686] has joined #code
09:58 ToxicFrog [~ToxicFrog@67.212.7.ns-3924] has quit [Operation timed out]
09:59 ToxicFrog [~ToxicFrog@Admin.Nightstar.Net] has joined #code
09:59 mode/#code [+o ToxicFrog] by ChanServ
10:24 Reiv [ReivTop@Nightstar-21340.ipnet.xnet.co.nz] has left #Code []
11:06 Sy [Syloq@ServicesAdmin.Nightstar.Net] has quit [Connection reset by peer]
12:27 Reiver [~reaverta@Admin.Nightstar.Net] has quit [Ping Timeout]
12:29 Vornicus [~vorn@Admin.Nightstar.Net] has quit [Quit: ]
12:49 Reiver [~reaverta@Admin.Nightstar.Net] has joined #Code
12:49 mode/#code [+o Reiver] by ChanServ
12:51 Attilla [~The.Attil@Nightstar-9469.cdif.cable.ntl.com] has quit [Ping Timeout]
12:51 Attilla [~The.Attil@Nightstar-9469.cdif.cable.ntl.com] has joined #code
12:51 mode/#code [+o Attilla] by ChanServ
14:14 * TheWatcher vaguely eyes the phpbb3 code
14:15
<@TheWatcher>
... why the fuck are they going through this long, pointless, convoluted hashing process for passwords, when it uses bloody md5s anyway?!
14:17
<@TheWatcher>
Oh, wait, this is the phpbb developers, so they're far more likley to go and attempt to make something redundantly 'secure' while leaving gaping holes in places they are tired of working on.
14:18
<@EvilDarkLord>
Are md5s that bad these days?
14:18
<@TheWatcher>
How do you mean? Computatonally expensive? Not really
14:19
<@EvilDarkLord>
Er. Reversable, is that the word?
14:19
<@TheWatcher>
md5s are not, and never have been, reversable except in very specific, very contrived situations
14:19
<@TheWatcher>
they are cryptographically secure for virtually all applications.
14:21
<@TheWatcher>
The phpBB3 guys appear to think that that isn't secure enough, though - they calculate the md5 of a password, then pass that into md5 again with the password appended, and repeat this several times.
14:23
<@TheWatcher>
Quite what they expect to achieve here, I'm not sure. Maybe they think that applying md5 multiple times makes it harder to crack. Except, since they are appending the plain text password to the hash and then hashing all that, /if/ anyone could crack md5s all they'd need to do was crack it the once to work out the password.
14:24
<@TheWatcher>
And since there's probably a bunch of other places where a determined hacker could get in, arsing around with the password hashing is like covering your car in car-thief warning stickers while leaving your doors unlocked.
14:24
< simontwo>
TheWatcher, it's like being worried that your little padlock isn't gonna sustain a hard blow, so you add ten small padlocks of the same brand on top of each other.
14:25
< simontwo>
it's called "Security Through Silliness"
14:26
<@EvilDarkLord>
Wait, isn't this more like having one padlock and then supergluing nine more onto it?
14:26
<@TheWatcher>
Pretty much
14:27
<@EvilDarkLord>
Maybe they want to tell people they have several layers of security.
14:28
< simontwo>
EvilDarkLord, haha.
14:28
<@TheWatcher>
Maybe. And if someone who doesn't understand the code and what it's doing, they'd probably trust that, too
14:29
< simontwo>
or they simply hope that hackers will pity them and leave their software alone.
14:29
< simontwo>
(which isn't going to happen)
14:37 Alek [~omegaboot@Nightstar-23762.dsl.emhril.sbcglobal.net] has quit [Quit: reboot]
15:05
<@TheWatcher>
(as an addendum to the above, there are situations where md5s can be partially reversed, but only by essentially using dictionaries. And while you can craft two strings with the same md5, working out what the string is to generate the md5 is nontrivial - basically, for a forum with the history phpbb has, md5 should be more than enough for the passwords)
15:22
< simontwo>
CRC cards only depict responsibilities, not neat tricks made using inheritance, right?
15:23
< simontwo>
I'm doing some CRC cards and find it more useful to write down the interfaces for the sets of classes that follow the interface rigoriously (i.e. don't add anything publicly themselves)
15:30
< simontwo>
when I do FooInterface foo = new ConcreteFoo(); in Java, is that called typecasting or something more accurate?
15:31
< simontwo>
I think typecasting is only when you actually convert the type of an object, whereas here I just limit myself to referring to the object through whatever its FooInterface defines.
15:45
< simontwo>
ah, implicit type conversion.
15:58
<@ToxicFrog>
CRC? Cyclic Redundancy Check?
16:00
<@ToxicFrog>
And typecasting is generally /explicit/ type conversion - the actual data doesn't change, but the way it's interpreted/interacted with does.
16:01
< simontwo>
ToxicFrog, sorry, CRC means Class-Responsibility-Collaboration cards in this context. :-P
16:01
< simontwo>
ToxicFrog, small post-its that list the relationships and responsibilities of each entity class.
16:02
<@ToxicFrog>
Aah.
16:02
<@ToxicFrog>
I've used those, but no longer remember how to use them properly~
16:02
< simontwo>
they seem pretty straight-forward. (I'm going over a bunch of seemingly useful stuff since I'm nearing the end of my course)
16:03
< simontwo>
I think they become more useful if the number of classes grow beyond what I've got.
16:30 gnolam [lenin@Nightstar-1382.A163.priv.bahnhof.se] has joined #Code
16:30 mode/#code [+o gnolam] by ChanServ
17:03
< simontwo>
does mentioning interfaces usually fit into a class diagram, or are they restricted to classes alone?
17:38
<@Serah>
Where's Vorn?
18:26 Sy [Syloq@Nightstar-10536.hsd1.or.comcast.net] has joined #code
18:42
<@jerith>
Evening, folks.
19:50 Attilla [~The.Attil@Nightstar-9469.cdif.cable.ntl.com] has quit [Connection reset by peer]
19:51 Attilla [~The.Attil@Nightstar-9469.cdif.cable.ntl.com] has joined #code
20:20
<@McMartin>
TW: Appending to an MD5 and re-MD5ing sounds like salting, which if done right can be a defense against dictionary attacks.
20:24 Vornicus [~vorn@Admin.Nightstar.Net] has joined #code
20:24 mode/#code [+o Vornicus] by ChanServ
21:04 gnolam [lenin@Nightstar-1382.A163.priv.bahnhof.se] has quit [Ping Timeout]
21:26 gnolam [lenin@Nightstar-1382.A163.priv.bahnhof.se] has joined #Code
21:26 mode/#code [+o gnolam] by ChanServ
22:51 AnnoDomini [~farkoff@Nightstar-29179.neoplus.adsl.tpnet.pl] has quit [Quit: Oh hai. In teh beginnin Ceiling Cat maded the skiez An da Urfs, but he did not eated it.]
23:06
<@McMartin>
Derakon[AFK]: For the record, your bullethell runs full speed inside a Linux VM too.
23:15 Attilla [~The.Attil@Nightstar-9469.cdif.cable.ntl.com] has quit [Ping Timeout]
23:20 Attilla [~The.Attil@Nightstar-9469.cdif.cable.ntl.com] has joined #code
23:20 mode/#code [+o Attilla] by ChanServ
--- Log closed Thu Jan 15 00:00:27 2009
code logs -> 2009 -> Wed, 14 Jan 2009< code.20090113.log - code.20090115.log >