--- Log opened Tue Feb 06 00:00:07 2007 |
00:08 | | MyCatVerbs [~mycatownz@Nightstar-379.dsl.in-addr.zen.co.uk] has joined #code |
00:22 | | Vornicus-Latens is now known as Vornicus |
00:58 | | MyCatVerbs is now known as MyCatSleeps |
01:16 | | Chalcedon is now known as ChalcyOut |
01:16 | | gnolam [Lenin@Nightstar-13557.8.5.253.se.wasadata.net] has quit [Quit: Sleep] |
01:26 | | Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code |
01:26 | | mode/#code [+o Chalcy] by ChanServ |
01:27 | | ChalcyOut [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout] |
02:22 | | Janus [~Cerulean@Nightstar-10302.columbus.res.rr.com] has joined #Code |
03:02 | | Chalcy is now known as Chalcedon |
03:03 | | MyCatSleeps [~mycatownz@Nightstar-379.dsl.in-addr.zen.co.uk] has quit [Connection reset by peer] |
03:03 | | MyCatSleeps [~mycatownz@Nightstar-379.dsl.in-addr.zen.co.uk] has joined #code |
03:05 | | Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code |
03:05 | | mode/#code [+o Chalcy] by ChanServ |
03:05 | | Janus [~Cerulean@Nightstar-10302.columbus.res.rr.com] has quit [Quit: .] |
03:06 | | Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Killed (NickServ (GHOST command used by Chalcy))] |
03:06 | | Chalcy is now known as Chalcedon |
03:11 | | * McMartin does some serious damage to the cthonic horror that is the pitiful excuse for an abstraction layer in UQM's graphics code. |
03:14 | <@ToxicFrog> | Wewt. |
03:15 | | * ToxicFrog rewrites his prototype-based OO framework in C, For Great Operator Overloads. |
03:15 | <@McMartin> | After confirming that VC6 lets you combine typedef with forward declarations. |
03:15 | <@McMartin> | (It does) |
03:19 | | * McMartin eyes gfxintern.h, weeps tears of bubbling pitch. |
03:23 | | Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code |
03:23 | | mode/#code [+o Chalcy] by ChanServ |
03:23 | | Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Killed (NickServ (GHOST command used by Chalcy))] |
03:23 | | Chalcy is now known as Chalcedon |
03:25 | <@ToxicFrog> | ben@orias ~/Source/svn/lua/oo |
03:25 | <@ToxicFrog> | $ lua |
03:25 | <@ToxicFrog> | Lua 5.1.1 Copyright (C) 1994-2006 Lua.org, PUC-Rio |
03:25 | <@ToxicFrog> | > Prototype = require "Prototype" |
03:25 | <@ToxicFrog> | function: 0x9973760 |
03:25 | <@ToxicFrog> | > print(Prototype) |
03:25 | <@ToxicFrog> | userdata: 0x9972134 |
03:25 | <@ToxicFrog> | > function Prototype:__tostring() return "Prototype: "..string.sub(tostring(getmetatable(self)), 8, -1) end |
03:25 | <@ToxicFrog> | > print(Prototype) |
03:25 | <@ToxicFrog> | Prototype: 0x9972140 |
03:25 | <@ToxicFrog> | > |
03:25 | <@ToxicFrog> | It works great, the one cardinal rule is that thou shalt not overload __index or __newindex |
03:26 | <@ToxicFrog> | Unless you really know what you're doing and have a reference to the metatable of the thing you're overloading them on handy. |
03:32 | <@ToxicFrog> | Hmm. I suppose "InstanceOf" isn't really the right word. |
03:38 | <@ToxicFrog> | McMartin: semantics question. |
03:38 | <@McMartin> | Fire away |
03:38 | <@ToxicFrog> | Should Object:CopyOf(Object) be true? |
03:38 | <@ToxicFrog> | I am leaning no. |
03:40 | <@McMartin> | Um. |
03:40 | <@McMartin> | CopyOf being like "InstanceOf"? |
03:41 | <@ToxicFrog> | Yes. Except since the line between classes and instances is so fuzzy as to be effectively nonexistent... |
03:41 | <@McMartin> | Yeah |
03:41 | <@McMartin> | I'd lean towards "yes", though. |
03:41 | <@McMartin> | An object is an instance of its own type, after all. |
03:42 | <@ToxicFrog> | I am leaning towards "false" or possibly "undefined", since (1) by strict reading of the question it's false and (2) it's nonsensical question anyways. |
03:42 | <@ToxicFrog> | Hmm. |
03:42 | <@McMartin> | Or is this Object specifically? |
03:42 | <@ToxicFrog> | This one specifically. |
03:42 | <@McMartin> | Hrm. |
03:42 | <@ToxicFrog> | That is to say, is Object a copy of Object. |
03:43 | <@McMartin> | All other objects in the universe are copies of Object, right? |
03:43 | <@ToxicFrog> | Not is [some random Object] a copy of Object. |
03:43 | <@ToxicFrog> | The latter is clearly true. |
03:43 | <@McMartin> | I meant more "are objects copies of themselves". |
03:43 | <@McMartin> | Because generally you want that to be true. |
03:43 | <@ToxicFrog> | Ok, why? |
03:43 | <@McMartin> | Because you're using this to determine assignment compatibility, right? |
03:43 | <@McMartin> | That is, I've got an object Sprite |
03:44 | <@ToxicFrog> | (hmm. It occurs to me that if the user overloads ==, my current implementation of CopyOf breaks. I must fix this.) |
03:44 | <@McMartin> | And I copy it and modify it to make MipMappedSprite. |
03:44 | <@McMartin> | I can use MMSs wherever I could use Sprites, yes? |
03:44 | <@ToxicFrog> | Unless you did something very drastic, yes. |
03:44 | <@McMartin> | So the test I'd be doing here to see if I can do drawing is to see if I'm a copy of Sprite. |
03:44 | <@ToxicFrog> | Right. |
03:45 | <@ToxicFrog> | But the thing is - |
03:45 | <@McMartin> | So Sprite had better pass that test. |
03:45 | <@ToxicFrog> | aSpecificSprite = Sprite:New("filename.png") |
03:45 | <@ToxicFrog> | aSpecificSprite:CopyOf(Sprite) -> true |
03:45 | <@ToxicFrog> | Sprite:CopyOf(Sprite) -> ??? |
03:45 | <@McMartin> | Um. |
03:45 | <@McMartin> | Right, level confusion. |
03:45 | <@McMartin> | No, Sprite:CopyOf(Class) -> true. |
03:46 | <@McMartin> | Classes aren't the objects they embody. |
03:46 | <@ToxicFrog> | Right. |
03:46 | <@ToxicFrog> | Which is what I was thinking when saying that foo:CopyOf(foo) -> false is what I was leaning towards. |
03:46 | <@McMartin> | However, if Classes are Objects, then "Object" is of type Class |
03:47 | <@ToxicFrog> | Yes. |
03:47 | <@McMartin> | And Classes are Objects, so Object:copyOf(Object) is true because AnyClass:copyOf(Object) is true. |
03:47 | <@ToxicFrog> | (actually Object is a CopyOf Prototype, which is an original type) |
03:47 | <@McMartin> | Hum. You're using a different ontology than Java, then~ |
03:47 | <@ToxicFrog> | The other thing is that CopyOf and New are actually extensions introduced in Object. |
03:47 | <@McMartin> | I'd have to actually pick your implementation apart to answer firmly. |
03:47 | <@ToxicFrog> | Prototype contains exactly one member, the Copy() method. |
03:48 | <@McMartin> | ... I have a better idea. |
03:48 | <@ToxicFrog> | Object extends it to support constructors, superclass tracking, etc. |
03:48 | <@ToxicFrog> | Oh? |
03:48 | <@McMartin> | When doing type testing, have a member in Object, "class" |
03:48 | <@McMartin> | Or "type" or whatever |
03:48 | <@McMartin> | Then have that be an Object. |
03:49 | <@ToxicFrog> | I already have that, and it's how CopyOf operates. |
03:49 | <@ToxicFrog> | The thing is - |
03:49 | <@ToxicFrog> | Sprite = Object:Copy() |
03:49 | <@ToxicFrog> | MMSprite = Sprite:Copy() |
03:49 | <@ToxicFrog> | MMSprite:CopyOf(Object) -> true |
03:49 | <@ToxicFrog> | MMSprite.type == Object -> false |
03:49 | <@McMartin> | Mmmr. |
03:49 | <@ToxicFrog> | because MMSprite.type is Sprite, not Object. |
03:49 | <@ToxicFrog> | CopyOf just follows that reference up the class chain until it either finds a match or hits the root. |
03:49 | <@McMartin> | You don't actually have assignment compatibility here. |
03:50 | <@ToxicFrog> | ? |
03:50 | <@McMartin> | MMS can remove things Sprite has, right? |
03:50 | <@ToxicFrog> | Yes. |
03:50 | <@McMartin> | In that case, I can think of no reason to actually ever use CopyOf. |
03:50 | <@ToxicFrog> | I could in fact change that, but then things start getting ugly. |
03:51 | <@McMartin> | Quite so. |
03:51 | <@McMartin> | I don't think CopyOf is even a particularly well-defined operation. |
03:51 | <@ToxicFrog> | Because then :Copy() has to create superclass information, and __index has to follow it up the chain to resolve functions. |
03:52 | <@ToxicFrog> | Which is, in fact, what my other, more traditional OO framework does. |
03:52 | <@ToxicFrog> | (which is 400 lines long, still unfinished, and contains several bugs. This one is 100 lines counting both Lua and C and has no bugs that I'm aware of.) |
03:53 | <@McMartin> | (Yeah. I'd have to study JavaScript Core some more, but I don't think instanceof-like operators make sense in a prototype system.) |
03:54 | <@ToxicFrog> | Hmm. I wonder if it would be possible to add this in a Lua-only extension, though. |
03:55 | <@ToxicFrog> | Let's see. Wrap Copy() to create superclass information. setmetatable(getmetatable(self), { __index = self.super }) |
03:55 | <@ToxicFrog> | And then delete all functions from self. |
03:55 | <@ToxicFrog> | Doable. |
03:55 | <@ToxicFrog> | Means mucking around in the table behind the object, but doable. |
03:56 | <@ToxicFrog> | This does not, of course, guarantee data member compatibility. |
03:57 | <@ToxicFrog> | Nor does it prevent someone from, say, shadowing the functions with a non-function type. |
03:58 | <@ToxicFrog> | Unless I overload __newindex as well... |
03:58 | <@ToxicFrog> | I think I will do this just for practice. |
03:59 | <@ToxicFrog> | Although I have no idea if I'll ever use it. |
03:59 | <@ToxicFrog> | It does seem kind of like mangling the prototype-based system to behave more like a traditional system (what's the proper term? class-instance system?) |
04:02 | <@McMartin> | (Not sure. I think of them as "C++", "Python", and "JavaScript", or, if I'm being academic, "Simula", "Smalltalk", and "Self".) |
04:03 | <@ToxicFrog> | (how do C++'s and Python's differ?) |
04:04 | <@McMartin> | (Python "method invocations" are dynamically resolved, so you can assign extra methods to instances and the like.) |
04:04 | <@ToxicFrog> | (aah) |
04:05 | <@McMartin> | (However, it's also got a concept of "type", unlike Self/JavaScript) |
04:06 | <@ToxicFrog> | And of course, the entire purpose of this exercise in porting PBOO to C... |
04:06 | <@ToxicFrog> | > function Object:__len() return 3 end |
04:07 | <@ToxicFrog> | > print(#Object) |
04:07 | <@ToxicFrog> | 3 |
04:07 | <@ToxicFrog> | ...was so that I could overload #, the lengthof operator. |
04:17 | < Vornicus> | ...wicked |
04:20 | <@ToxicFrog> | ? |
04:24 | | * McMartin puts a stake through gfxintrn.h's heart, buries it at a crossroads |
04:25 | <@McMartin> | http://sc2.svn.sourceforge.net/viewvc/sc2?view=rev&revision=2698 |
04:54 | <@McMartin> | Hee |
04:54 | <@McMartin> | 20:53 <@McMartin> ... yeah, so there's 102 types of the typedef FOO *PFOO variety. |
04:54 | <@McMartin> | 20:54 <@McMartin> I would not be overwhelmed with sorrow if they were all to suffer unfortunate "accidents", but that's a pretty severe change so I'd want all of coredev onboard such a change. |
04:54 | <@Reiver> | ... |
04:58 | <@McMartin> | A decent argument has be raised to not do so, however, so we shall see. |
04:58 | <@Reiver> | What would the arguement against slaughter be? |
04:58 | <@McMartin> | Oh. Ports to architectures that need to decorate pointer types. |
04:59 | <@McMartin> | Specifically, ones that distinguish "near" and "far" pointers. |
04:59 | <@Reiver> | ...Hm |
04:59 | <@Reiver> | The above makes this better how? |
04:59 | <@McMartin> | You change a couple header files instead of Every Single Source File. |
05:00 | < Vornicus> | What modern architectures do this? |
05:00 | <@McMartin> | None that we're aware of. |
05:00 | < Vornicus> | uh |
05:00 | < Vornicus> | okay. |
05:00 | <@McMartin> | But removing this would involve doing a major change to every source file to make the code compile on fewer platform styles. |
05:00 | <@McMartin> | That's a harder sell. |
05:01 | <@McMartin> | The 102 typedefs have been there for forever because the original code was for 286es, which did need far pointer markers. |
05:01 | <@McMartin> | And unlike the Deliberate Buffer Overruns, don't do harm on Real Architectures. |
05:02 | < Vornicus> | Deliberate Buffer Overruns? |
05:02 | <@McMartin> | This requires explanation, and I'll have to save it for a moment. |
05:02 | <@McMartin> | brb. |
05:07 | <@ToxicFrog> | Vornicus: rewriting my OO framework in another language so that I can overload __len is 'wicked'? |
05:07 | <@McMartin> | OK, so |
05:07 | <@McMartin> | There were several linked-list types in Star Control 2. |
05:08 | <@McMartin> | Instead of directly having a "next" pointer, they instead stored a byte offset that you added to the structure's pointer value to get the next element. |
05:09 | <@McMartin> | We eventually determined that the reason for this is because it's much faster to mix accesses between members of one element and its successors that way. |
05:09 | <@McMartin> | Because all pointer comparisons on a 286 have their address computed as BX + constant + small-power-of-two*IX/IY. |
05:09 | <@McMartin> | So using next pointers would keep trashing BX. |
05:11 | < Vornicus> | idunno |
05:12 | <@McMartin> | s/comparisons/specifications/ |
05:13 | <@McMartin> | There was also one place where it would read values out of a struct that ended with an array by indexing into that array with a negative value. |
05:13 | <@McMartin> | We saw no excuse for thus other than sheer wtfery. |
05:13 | <@Reiver> | ... |
05:14 | <@ToxicFrog> | ... |
05:14 | <@McMartin> | ... actually, I'm only fairly sure we killed that. That bit wasn't my department, and I only remember hearing a not-quite-coredev shrieking about it. |
05:14 | <@McMartin> | That guy eventually became coredev, though. |
05:15 | <@McMartin> | But yeah, regarding the 102 pointer-based typedefs, there's no reason not to leave them in. |
05:15 | <@Reiver> | But... why? |
05:15 | <@McMartin> | I mean, people have gone and compiled it on Amigas already. |
05:15 | <@McMartin> | There's no reason to believe someone might not try their luck on Actually Primitive systems too. |
05:16 | <@McMartin> | Reiver: I think it was because the Star wasn't part of the Planet array, so planets[-1] let you do things with the star. |
05:17 | <@Reiver> | ...Right. |
05:17 | <@Reiver> | That's... still messed up, though. |
05:17 | <@Reiver> | Like wow. |
05:17 | <@Reiver> | >.> |
05:17 | <@McMartin> | The original code was two guys under unbelievable time pressure, so yes~ |
05:17 | <@Reiver> | ...Ah. |
05:17 | <@Reiver> | A code full of hackjobs? |
05:18 | <@McMartin> | SC2 was shipped six months late because the devs weren't happy with it and went six months without pay to get the thing in the shape they wanted. |
05:19 | <@McMartin> | Also, the code we inherited had a Messy, Complicated Engine under the hood that's being statically linked in. |
05:19 | <@McMartin> | The major refactoring I just committed removed a few unnecessary layers of abstraction. |
05:21 | <@Reiver> | Wow. |
05:21 | <@Reiver> | six months with no pay? That's dedication~ |
05:21 | <@McMartin> | This involved adding things like the Planet Landing sequences and basically all the dialogue. |
05:22 | <@Reiver> | ...In other words making it actually interesting. |
05:22 | <@Reiver> | Hm. |
06:29 | | gnolam [Lenin@Nightstar-13557.8.5.253.se.wasadata.net] has joined #Code |
06:56 | | Mahal [~Mahal@Nightstar-4998.worldnet.co.nz] has quit [Ping Timeout] |
06:59 | | Mahal [~Mahal@Nightstar-4998.worldnet.co.nz] has joined #Code |
06:59 | | mode/#code [+o Mahal] by ChanServ |
08:43 | | AnnoDomini is now known as UndeadAnno |
09:01 | | Reiver is now known as ReivZzz |
09:03 | | Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Quit: DOOM!!!!] |
09:21 | | Mahal is now known as MahalBEDD |
10:20 | | You're now known as TheWatcher[wr0k] |
11:12 | | MyCatVerbs [~rb6822@Nightstar-14909.cs.bris.ac.uk] has joined #code |
11:55 | | ReivZzz is now known as ReivSLEP |
15:28 | | You're now known as TheWatcher |
16:00 | | Janus [~Cerulean@Nightstar-10302.columbus.res.rr.com] has joined #Code |
16:05 | | * ToxicFrog ponders how best to handle nested chunks |
16:06 | <@ToxicFrog> | I think a nested chunk is a chunk which, itself, contains chunks of the appropriate type. |
16:07 | < Vornicus> | in what, IFF? XML? |
16:07 | <@ToxicFrog> | What's IFF, XML can die in a fire, and the answer is "in memory" |
16:09 | <@ToxicFrog> | I think the solution is: NestedChunk is a subtype of Chunk; you can ask a NestedChunk for one of its subchunks and it will return a complete Chunk object (as opposed to, say, a raw data buffer) of the appropriate type. |
16:09 | < MyCatVerbs> | Just use S-expressions. Pretend it's LISP. |
16:11 | < Vornicus> | IFF is a hierarchical binary file metaformat. |
16:12 | < Vornicus> | Originally designed for compatibility with both Mac and PC. |
16:13 | < Vornicus> | RIFF is the same thing except little-endian. |
16:13 | <@ToxicFrog> | Aah. |
16:13 | < Vornicus> | AVI and WAV are RIFF formats; TIFF is an IFF format. |
16:13 | <@ToxicFrog> | See, file formats are completely irrelevant here, because the file format is already written. |
16:13 | <@ToxicFrog> | It's the in-memory representation that's at question. |
16:14 | < MyCatVerbs> | ToxicFrog: treeeeeeesssss! =D |
16:16 | < Vornicus> | (Blorb (an Interactive Fiction story file) and old-school Word and Excel files are also IFF; PNG, MIDI, and MOV are IFF-like) |
16:17 | <@ToxicFrog> | MCV, please to be reading the Unofficial System Shock Specifications, then come back when you have done so. |
16:18 | < Vornicus> | And I was asking more along the lines of, what are the constraints on chunks? |
16:19 | < Vornicus> | Is it XML like, where you can have blobs and more structure-chunks glommed together in a single chunk? Or does a nested chunk only contain chunks? |
16:23 | < MyCatVerbs> | ToxicFrog: I'm just winding you up. Ignore me for the moment. |
16:29 | <@ToxicFrog> | Vornicus: a nested chunk only contains chunks. |
16:29 | <@ToxicFrog> | A chunk contains either: |
16:29 | <@ToxicFrog> | - one data buffer |
16:30 | <@ToxicFrog> | - several data buffers of varying lengths, but the same type |
16:30 | <@ToxicFrog> | The latter is a nested chunk |
16:30 | < Vornicus> | Then your mentioned design is the correct one. |
16:30 | < Vornicus> | Nested chunks, they're all the same kind of chunk? |
16:32 | <@ToxicFrog> | Yes. The type information is stored in the TOC entry, and a nested chunk only has a single entry regardless of how many subchunks it has. |
16:32 | <@ToxicFrog> | Typically these are used for textures and log entries. |
16:32 | < Vornicus> | ok |
16:37 | < MyCatVerbs> | GNU CLISP's build process is kinda involved. |
16:38 | < MyCatVerbs> | Fascinating to watch, though. Gentoo users, eat your hearts out. Scrolling S-expressions are much prettier than scrolling gcc output. :) |
16:47 | < MyCatVerbs> | ...worth it. ^^ |
16:53 | | Vornicus is now known as Vornicus-Latens |
17:20 | | You're now known as TheWatcher[afk |
17:20 | | You're now known as TheWatcher[afk] |
17:32 | | UndeadAnno [~farkoff@Nightstar-29191.neoplus.adsl.tpnet.pl] has quit [Ping Timeout] |
17:37 | | AnnoDomini [~farkoff@Nightstar-29113.neoplus.adsl.tpnet.pl] has joined #Code |
17:40 | | Vornicus-Latens [~vorn@ServicesOp.Nightstar.Net] has quit [Operation timed out] |
17:41 | | Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code |
17:41 | | mode/#code [+o Chalcedon] by ChanServ |
17:41 | | Vornicus-Latens [~vorn@67.50.40.ns-3674] has joined #code |
17:44 | | Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code |
17:44 | | mode/#code [+o Chalcy] by ChanServ |
17:45 | | Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout] |
18:05 | | MahalBEDD is now known as Mahal |
18:06 | | Chalcy is now known as Chalcedon |
18:22 | | MyCatVerbs [~rb6822@Nightstar-14909.cs.bris.ac.uk] has quit [Quit: Swim, swim, hungry!] |
18:27 | | You're now known as TheWatcher |
18:42 | | Mahal is now known as MahalWORK |
19:19 | | EvilDarkLord [althalas@Nightstar-15301.a88-115-211-62.elisa-laajakaista.fi] has quit [Ping Timeout] |
19:30 | | EvilDarkLord [althalas@Nightstar-15301.a88-115-211-62.elisa-laajakaista.fi] has joined #code |
19:32 | | MyCatSleeps is now known as MyCatVerbs |
19:43 | | ReivSLEP is now known as ReivOut |
19:44 | | rock_boy [rock_boy@89.137.48.ns-12119] has joined #Code |
19:44 | | * rock_boy yelo please watch this:)..its coool : http://www.metacafe.com/watch/413213/incredible_people_magic_or_strenght/ bye bye. |
19:45 | | rock_boy [rock_boy@89.137.48.ns-12119] has quit [Client exited] |
20:23 | < Janus> | (In retrospect, modeling a character without a reference image wasn't a swell idea.) |
20:25 | < MyCatVerbs> | Janus: bwuh? |
20:28 | < Janus> | First I put the feet on the opposite legs, then the rear looks as though someone had sat on a basketball for a month, and now, the arms look as though donated by a sickly boy with leukemia. |
20:28 | <@ToxicFrog> | ... |
20:28 | < Janus> | It's not a pretty sight. |
20:30 | < MyCatVerbs> | Suggest you make it deliberately ugly in an arty fashion, then take photographs? =D |
20:32 | | Thaqui [~Thaqui@Nightstar-26359.jetstream.xtra.co.nz] has joined #code |
20:35 | < Janus> | I don't see why not~ |
20:35 | <@ToxicFrog> | Hmm. I hope putting the TOC at the start of the file doesn't break anything. |
20:35 | <@ToxicFrog> | Shouldn't do, but I don't have the source. |
20:36 | | Chalcedon is now known as ChalcyOut |
20:37 | < Janus> | http://img.photobucket.com/albums/v492/tai_ragnarok/Yikes.jpg [/eww] |
20:40 | < Janus> | Hopefully, the finished product would be heavily covered enough that it wouldn't make a difference. |
20:42 | < MyCatVerbs> | Janus: can't really see that. It's very dark grey on black. |
20:43 | | * Janus is was too lazy to add lights. |
20:43 | < Janus> | *will be |
20:43 | < MyCatVerbs> | ... |
20:43 | < MyCatVerbs> | Well no wonder you can't get the model to look right if you can't even feckin' *see* it =) |
20:47 | | Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code |
20:47 | | mode/#code [+o Chalcy] by ChanServ |
20:48 | | AnnoDomini is now known as UndeadAnno |
20:48 | | ChalcyOut [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout] |
21:02 | | Janus is now known as Jan[epiphany] |
21:10 | | EvilDarkLord [althalas@Nightstar-15301.a88-115-211-62.elisa-laajakaista.fi] has quit [Ping Timeout] |
21:16 | | You're now known as TheWatcher[T-2] |
21:20 | | EvilDarkLord [althalas@Nightstar-15301.a88-115-211-62.elisa-laajakaista.fi] has joined #code |
21:23 | | You're now known as TheWatcher[afk] |
21:33 | | ReivOut is now known as Reiver |
22:17 | | ChalcyGone [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code |
22:17 | | ChalcyGone is now known as Chalcedon |
22:18 | | Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout] |
22:42 | < MyCatVerbs> | Oooohyeah. On the list of stuff that totally has got to be done: cheesy anim? battle between programming languages. Crazy moves and everything. |
22:42 | <@Reiver> | ... |
22:43 | <@Reiver> | So what, Java floods people with documentation, C++ is really fast and chaotic, and Lisp's special attack is to trap people inside a swarm of brackets? |
22:43 | <@McMartin> | C++ keeps shooting itself in the foot. |
22:43 | <@Reiver> | Pythons secret weakness is having it's formatting messed up. |
22:43 | <@McMartin> | Nobody can understand Lua, it being a "crazy moon language" |
22:43 | <@Reiver> | With zomg special moves? |
22:43 | <@Reiver> | That no-one notices anyway? |
23:29 | | * Jan[epiphany] eats it up~ |
23:45 | | gnolam [Lenin@Nightstar-13557.8.5.253.se.wasadata.net] has quit [Quit: Sleep] |
23:55 | < MyCatVerbs> | Reiver: that kind of stuff, yes. |
23:55 | < MyCatVerbs> | Reiver: think of the C avatar teleporting away from the scene of battle by screaming "longjmp()!" |
23:56 | <@McMartin> | Inferior to the deadly Stack Cutting Technique. |
23:56 | <@Reiver> | Tsk. |
23:57 | < MyCatVerbs> | Right, which is then countered by a running propolice implementation. |
--- Log closed Wed Feb 07 00:00:07 2007 |