--- Log opened Sat Jan 06 00:00:25 2007 |
00:00 | | Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code |
00:00 | | mode/#code [+o Chalcedon] by ChanServ |
00:28 | | takyoji_ [~bubbad@Nightstar-25280.dhcp.roch.mn.charter.com] has joined #code |
00:31 | < takyoji_> | I'm curious on everyones opinion on using directories for pages.. In example, if you view deviantART, every single page is index.(php or somethin) in a folder, thus there is never an exact URL to a document because its just like http://my.deviantart.com/devwatch/ never http://my.deviantart.com/devwatch.php |
00:32 | < takyoji_> | Think it would be smart to implement such a thing on a small business site or what? Or should I stick to using different filenames instead of different folders? |
00:33 | < takyoji_> | And why do I keep getting disconnected from MSN in Trillian every couple of minutes?? |
00:36 | <@Vornicus> | Putting each individual page in its own folder is, I find, a bit overkill. |
00:36 | < takyoji_> | Well, I suppose if you have very multipurpose pages, I suppose it'd be semi-reasonable |
00:37 | < takyoji_> | And for example, to store other files required by the page |
00:37 | < takyoji_> | As a different way of organization |
00:37 | < takyoji_> | Although the root would be pretty full of folders |
00:39 | <@Vornicus> | It starts to get bad when you have multiple things that use the same backing. |
00:39 | < takyoji_> | true |
00:49 | | Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code |
00:49 | | mode/#code [+o Chalcy] by ChanServ |
00:51 | | Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout] |
00:51 | | Chalcy is now known as Chalcedon |
01:13 | < takyoji_> | Otherwise, I guess mod_rewrite can be used instead, for making everything appear as a folder |
01:14 | <@Vornicus> | indeed. |
01:14 | <@Vornicus> | Ruby on Rails does some interesting things. |
01:15 | <@Vornicus> | Speaking of which, I am feeling unproductive today. |
01:15 | < takyoji_> | But for some reason I can't get an Apache rule to work in an htaccess document for making the URLs to be rewritten |
01:16 | < takyoji_> | RewriteRule ^([a-z]+)/([a-z\-]+)$ /$1/$2.php [L] |
01:30 | | Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout] |
02:12 | | Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code |
02:12 | | mode/#code [+o Chalcy] by ChanServ |
02:13 | | Chalcy is now known as Chalcedon |
02:23 | | takyoji_ [~bubbad@Nightstar-25280.dhcp.roch.mn.charter.com] has left #code [] |
03:00 | | Jan[Ecrire] is now known as Jan[bathipoo] |
03:02 | | Derakon [~Derakon@Nightstar-23641.sea2.cablespeed.com] has joined #code |
03:02 | < Derakon> | Evening, all. |
03:02 | | Mahal [~Mahal@Nightstar-12066.worldnet.co.nz] has quit [Ping Timeout] |
03:02 | < Derakon> | Anyone feel like helping me brush up on C++ inheritance? |
03:03 | | Mahal [~Mahal@Nightstar-12066.worldnet.co.nz] has joined #Code |
03:03 | | mode/#code [+o Mahal] by ChanServ |
03:03 | < Derakon> | I have a class Component which implements setParent(Component* foo). Then I have a class Module which inherits from Component. When I try to do module->setParent(otherModule), I get an error "no matching function for call to Module::setParent(Module*&)". |
03:04 | < Derakon> | Now as I understand it, all Modules are Components, though the reverse isn't true. So why can't I call setParent and pass in a Module*? |
03:04 | | * Jan[bathipoo] thinks on it, all sudded up. |
03:06 | < Derakon> | Oh, and these are all pointers, naturally. |
03:09 | < Jan[bathipoo]> | So, it's throwing an error because your passing a Module where a Component would normally go. So far as I understand it, inheritance works so that an object can take on another data type while retaining some of it's original functions and such. So, it would see the Module you were passing it as a Module, not a Component. |
03:10 | < Jan[bathipoo]> | Thus the error. |
03:10 | < Derakon> | But all Modules are Components... |
03:10 | < Derakon> | I'd expect an implicit cast or something, sure, but not an error. |
03:13 | < Jan[bathipoo]> | Actually, wouldn't all Components be Modules, if Module were inheriting from Component? |
03:14 | < Derakon> | No, they wouldn't be. |
03:14 | < Derakon> | And I figured it out; I'd improperly done the inheritance. ¬.¬ |
03:15 | <@ToxicFrog> | Jan[bathipoo]: no. |
03:15 | <@ToxicFrog> | Module inherits from Component. |
03:15 | <@ToxicFrog> | Think about it/ |
03:15 | <@ToxicFrog> | This means that all Modules are Components, but the converse is not neccesarily true. |
03:16 | < Derakon> | You are guaranteed that if a Component has something, then a Module has that thing. That's what inheritance means. |
03:16 | < Derakon> | That means that if you need to, you can treat a Module as a Component ("All Modules are Components"). But Modules have other extra things, so if you tried to treat a Component as a Module, you'd likely fail. |
03:17 | < Jan[bathipoo]> | Alright, I see. The thing that tripped me up was, trying to pass a pointer for a parameter that wasn't typed for it, even with inheritance. |
03:18 | < Derakon> | Yeah, that was me mucking up the actual implementation. |
03:18 | < Derakon> | I still had Modules inheriting from Sprites instead of from Components. ¬.¬ |
03:18 | < Jan[bathipoo]> | Oui. |
03:19 | | * Jan[bathipoo] returns to the bath then, the stench of failure just won't come out. |
03:19 | | * Derakon blinks. |
03:20 | < Derakon> | Well, enjoy your bath, then. |
03:20 | | * Jan[bathipoo] will. :D |
03:21 | < Derakon> | Man, I haven't done serious C++ work in ages. |
03:22 | | AnnoDomini [~farkoff@Nightstar-29738.neoplus.adsl.tpnet.pl] has quit [Quit: Some people find sanity a little confining.] |
03:24 | | Derakon is now known as Derakon[AFK] |
04:14 | | Jan[bathipoo] is now known as Jan[peachy] |
04:30 | | Derakon[AFK] is now known as Derakon |
04:44 | | Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout] |
04:44 | | Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code |
04:44 | | mode/#code [+o Chalcedon] by ChanServ |
04:47 | | Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code |
04:47 | | mode/#code [+o Chalcy] by ChanServ |
04:48 | | Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout] |
04:52 | | Stephenie [Safyra@Nightstar-6407.ok.ok.cox.net] has quit [Quit: ] |
05:33 | | Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code |
05:33 | | mode/#code [+o Chalcedon] by ChanServ |
05:34 | | Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout] |
05:36 | | Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code |
05:36 | | mode/#code [+o Chalcy] by ChanServ |
05:37 | | Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout] |
05:49 | | ChalcyGone [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code |
05:50 | | Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout] |
06:00 | < Derakon> | ...private fields of a class should be accessible by classes that inherit from that class, right? |
06:00 | <@ToxicFrog> | Umm. |
06:01 | <@ToxicFrog> | I'm a bit rusty on this, but I think "private" is "accessible only to this class" |
06:01 | <@ToxicFrog> | "protected", however, is "accessible to this class, subclasses, and any class declared |
06:01 | < Derakon> | But inheritors of that class *are* that class, effectively. |
06:01 | <@ToxicFrog> | 'friend'" |
06:01 | < Derakon> | I tried setting the inheritors as friends; didn't work. |
06:01 | <@ToxicFrog> | No, no. |
06:02 | <@ToxicFrog> | friendliness has no effect on private variables. |
06:02 | <@ToxicFrog> | It does on *protected* variables. |
06:02 | < Derakon> | Oh, right. |
06:02 | <@ToxicFrog> | But in that case, subclasses are implicitly friends; you don't have to set it explicitly. |
06:02 | < Derakon> | Right. Okay, that dealt with that problem; thanks. |
06:02 | < Derakon> | Random factoid that stuck in my mind from an interview two years ago: the default access level for class fields is protected. |
06:03 | <@ToxicFrog> | ISTR it being private. |
06:04 | <@ToxicFrog> | Unless you use struct{} instead of class{}, in which case it defaults to public. |
06:04 | | ChalcyGone [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout] |
06:05 | | Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code |
06:05 | | mode/#code [+o Chalcedon] by ChanServ |
06:06 | < Derakon> | Okay, maybe my interviewers were lying. |
06:06 | | * ToxicFrog fires up g++ to test it |
06:06 | <@ToxicFrog> | Alternately, it's possible that they were right at the time and one of the standards changes has changed it since then. |
06:06 | < Derakon> | I don't think C++ has changed much in the last two years. |
06:07 | <@ToxicFrog> | Or (since I remember private-default from more than 2 years ago) /I/ was right at the time and it's changed to protected since then. |
06:07 | <@ToxicFrog> | Or they were using a nonstandard compiler such as msdev. |
06:07 | <@ToxicFrog> | Etc, etc. |
06:07 | | * Derakon compiles his code successfully. Woot. |
06:08 | <@ToxicFrog> | $ g++ -Wall test.cpp |
06:08 | <@ToxicFrog> | test.cpp: In member function ?void TestSC::foo()?: |
06:08 | <@ToxicFrog> | test.cpp:4: error: ?int Test::def? is private |
06:08 | <@ToxicFrog> | test.cpp:15: error: within this context |
06:08 | < Derakon> | This is getting marginally insane. I have a base class Sprite, and Component inherits from Sprite, and Module and Hardpoint inherit from Component. |
06:08 | <@ToxicFrog> | ben@orias /tmp |
06:08 | <@ToxicFrog> | $ g++ --version |
06:08 | <@ToxicFrog> | g++ (GCC) 4.1.1 20060525 (Red Hat 4.1.1-1) |
06:08 | <@ToxicFrog> | So, in g++ 411, of last April, it defaults to private. |
06:08 | < Derakon> | Then I'm going to have Laser, Vulcan, Spread, Armor, etc. inheriting from Module. |
06:08 | < Derakon> | Interesting. |
06:09 | <@ToxicFrog> | ...ummm. |
06:09 | <@ToxicFrog> | It seems to me that "sprite" is a rendering construct. |
06:09 | <@ToxicFrog> | While "component", "module" and "hardpoint" are all world model constructs. |
06:09 | < Derakon> | Yah. |
06:10 | <@ToxicFrog> | That is to say, it seems that a component should have a sprite (or, in future incarnations, a model or somesuch), not be a sprite. |
06:10 | < Derakon> | Mmm...fair point. |
06:10 | <@ToxicFrog> | Tight coupling between interface and model means ;.; later on. |
06:10 | <@ToxicFrog> | ^-- this is the voice of bitter experience |
06:10 | < Derakon> | I started by grabbing code from my previous project, where by "Sprite" I meant "game object, complete with animations, Lua scripts, bounding polygons, etc.". |
06:11 | < Derakon> | But then I stripped it down to just display stuff, so the name's more appropriate, but the position in the design isn't. |
06:12 | < Derakon> | Anyway, a Component is basically an object in the ship's "scene graph". Typically they'll alternate between Modules and Hardpoints. |
06:13 | | * ToxicFrog nods. |
06:13 | | Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout] |
06:13 | <@ToxicFrog> | In principle, anyways, it should be able to replace the view with something completely different - eg, 3d models, or a curses interface, or tens of megabytes of debugging logs - without altering the underlying world model at all. |
06:14 | < Derakon> | Yeppers. |
06:14 | < Derakon> | I do eventually plan to move away from SDL to OpenGL for rendering. |
06:16 | <@ToxicFrog> | Pure OpenGL, or SDL-OpenGL for the crossplatformy win? |
06:16 | < Derakon> | Probably the latter. |
06:16 | <@ToxicFrog> | In either case, though, you'll benefit from a clean seperation between view and model. |
06:16 | < Derakon> | I develop on a Mac, so I may as well make my code work on Linux too. |
06:16 | < Derakon> | I'm doing that now, TF. |
06:17 | <@ToxicFrog> | (my experience with SDL has been that getting it work on Linux-OSX-windows is in fact trivial, although this may change when OGL enters the equation) |
06:17 | <@ToxicFrog> | (so you should be able to get not only Linux but Windows as well) |
06:18 | | * ToxicFrog arghs |
06:18 | < Derakon> | I know that Niobium, my previous project, required relatively little tweaking by McM to get it running in Linux. |
06:18 | <@ToxicFrog> | I head home tomorrow, I ge two days to work on spellcast3, and then classes resume. |
06:18 | < Derakon> | And most of the pain there was because I was stupid early on and tried using binary file formats. |
06:18 | <@ToxicFrog> | ;.; |
06:18 | | * Derakon pats. |
06:19 | <@ToxicFrog> | Binary file formats I have a love-hate relationship with. |
06:19 | <@ToxicFrog> | On the one hand, they're trivially easy to work with in C and C++. |
06:19 | <@ToxicFrog> | On the other hand, these days I'm working in Lua. |
06:19 | <@ToxicFrog> | (but I still have to work with binary file formats, because System Shock does) |
06:20 | < Derakon> | Well, I don't really see much point in binary these days, unless you're encoding gobs of data (or images). |
06:21 | <@ToxicFrog> | I don't see binary going away anytime soon for images/sounds/videos/etc. |
06:21 | <@ToxicFrog> | I am however thinking of things like the log texts, maps, and gamesys. |
06:23 | | * Derakon makes Sprite a field instead of a ancestor. Whee. |
06:25 | < Derakon> | My current source of malaise is trying to implement 2D scene graphs without resorting to transformation matrices, which I never really understood. |
06:26 | < Derakon> | I don't think I'll be able to get away with it. |
06:31 | | Derakon is now known as Derakon[AFK] |
06:31 | <@Vornicus> | Transformation matrices are easy. Bug me sometime and I'll explain. |
06:48 | | Reiver is now known as ReivOut |
07:49 | | Derakon[AFK] is now known as Derakon |
07:50 | | * Derakon pokes. |
07:51 | < Derakon> | I understand that transformation matrices are things you multiply by your position, rotation, etc. vectors to get new ones. I don't remember offhand how exactly they work because I was a bit dicey on the math when I learned about them. |
07:51 | < Derakon> | I'd imagine, though, that for 2D I'd multiply <x, y, theta> by some 3x3 matrix to get the new stuff, yes? |
07:51 | <@Vornicus> | Um |
07:51 | <@Vornicus> | no. |
07:52 | < Derakon> | Okeyden? |
07:52 | <@Vornicus> | See, all transformations - including rotation - are all matrices. |
07:52 | <@Vornicus> | ...oh, unless by <x,y,theta> you mean the position of an object with the direction it's facing. |
07:53 | < Derakon> | Yes, I do. |
07:53 | <@Vornicus> | okay. |
07:53 | < Derakon> | So basically, each object has its own local offset and angle from its parent. Think skeletons. |
07:53 | <@Vornicus> | Yeah. |
07:53 | <@Vornicus> | Right, I need to define some things here. |
07:53 | < Derakon> | So the parent should determine where it is and hand down a transformation matrix to the child. |
07:54 | <@Vornicus> | See, instead of a thing like that, you have /two/ vectors: <x, y, 1> and <sin(theta), cos(theta), 0> |
07:54 | < Derakon> | A translation vector and a rotation vector, hey? |
07:54 | <@Vornicus> | A location vector, and a direction vector. |
07:54 | < Derakon> | Er, right. |
07:55 | <@Vornicus> | We're thinking in projective space - the direction vector is essentially infinitely long. |
07:55 | <@Vornicus> | Then you multiply /each/ vector by the transformation matrix. |
07:55 | <@Vornicus> | You know how matrix multiplication works? |
07:55 | < Derakon> | Oh, yes. |
07:55 | < Derakon> | That at least I remember. :) |
07:56 | <@Vornicus> | Well, okay, here's some basic transformation matrices. |
07:56 | | * Derakon is reading Wikipedia... http://en.wikipedia.org/wiki/Transformation_matrix |
07:57 | <@Vornicus> | Okay head down to "Affine Projections" |
07:57 | <@Vornicus> | Affine Transformations, rather |
07:58 | < Derakon> | Okay, so example time. Say I have a root node at <5, 5> with no rotation applied. It has an arm at <+5, 0> relative to the root, at 90°. So the root node would hand [[1, 0, 5], [0, 1, 5], [0, 0, 1]] to the child, and the child would update it to [[1, 0, 10], [0, 1, 5], [0, 0, 1]] and then multiply it by [[0, -1, 0], [1, 0, 0], [0, 0, 1]]. |
07:58 | | * Vornicus sprains something |
07:58 | < Derakon> | Sorry. |
07:59 | <@Vornicus> | You're assuming more information than I have. |
07:59 | < Derakon> | Anyway, in general, I need to know where to draw the thing, and what angle to draw it at. |
08:00 | < Derakon> | Given a transformation matrix A, a position vector x, and a rotation angle theta... |
08:00 | < Derakon> | To get my draw location, I use Ax' (where x' is x augmented with a 1). |
08:00 | < Derakon> | Yes? |
08:00 | <@Vornicus> | Yes. |
08:00 | < Derakon> | Okay. And to get my draw angle, I use A * [cos, sin, 1]? |
08:01 | <@Vornicus> | cos, sin, 0 |
08:01 | < Derakon> | Er, right. |
08:01 | <@Vornicus> | yep |
08:01 | < Derakon> | And then to get the new transformation matrix to hand to my kids, I do [cos, sin, 0] * x' * A? |
08:02 | <@Vornicus> | I'm not sure on that bit. |
08:02 | < Derakon> | Hrm. |
08:02 | <@Vornicus> | I've never done the skeletal bit. |
08:03 | < Derakon> | "One of the main motivations for using matrices to represent linear transformations is that transformations can then be easily composed (combined) and inverted. |
08:03 | < Derakon> | Composition is accomplished by matrix multiplication." |
08:03 | < Derakon> | So it's at least something similar to what I just described. |
08:03 | <@Vornicus> | Yep. |
08:03 | < Derakon> | I think, though, that actually what I want to do is create transformation matrices out of x' and theta, and multiply *those* by A. |
08:03 | < Derakon> | Yeah, that sounds right. |
08:04 | <@Vornicus> | Actually you'll want to use the length and angle of your arm. |
08:05 | < Derakon> | Er, yes. I want to basically hand the endpoint and angle of the arm to the child. |
08:05 | <@Vornicus> | Right |
08:07 | < Derakon> | Do you remember which of the two operands is "this" in a C++ binary operator definition? |
08:07 | < Derakon> | E.g. "const foo operator*(const foo& alt)" |
08:07 | < Derakon> | Is it "this * alt" or "alt * this"? |
08:07 | <@Vornicus> | this * alt |
08:07 | < Derakon> | Danke. |
08:13 | | McMartin [~mcmartin@Nightstar-8565.dsl.pltn13.pacbell.net] has joined #code |
08:13 | | mode/#code [+o McMartin] by ChanServ |
08:13 | < Derakon> | You missed the fun, McM. Vorn was beating transformation matrices into my skull. |
08:14 | <@Vornicus> | I had to get the chisel. |
08:15 | | Jan[peachy] [~Cerulean@Nightstar-10302.columbus.res.rr.com] has quit [Quit: I think I'll juice some lineart from my turnips tomorrow then.] |
08:15 | <@McMartin> | They're handy. |
08:16 | <@McMartin> | I use them as a core data structure in Sable's modeling engine, actually. SVAF is likely to inherit that. |
08:16 | < Derakon> | I'm using them to handle the modular, mobile nature of ships in this game. |
08:16 | < Derakon> | Just in case someone decides they want to put the entire fuselage on a swivel joint. |
08:17 | <@Vornicus> | Transformation matrices are so basic and so commonly used that you should really get a library that does them. |
08:17 | <@McMartin> | I have one. |
08:17 | <@McMartin> | It's called "OpenGL." |
08:17 | < Derakon> | Heh. |
08:17 | <@Vornicus> | VL and SVL are C++ libs for vectors and matrices, and they come with OpenGL bindings. |
08:18 | <@Vornicus> | VL is waay too heavy for most things though, SVL is better. |
08:18 | < Derakon> | I'm rolling my own for now, to help remember how this all works. |
08:18 | < Derakon> | Likely when I move to using OpenGL for rendering, etc. I'll also start using it for transformations. |
08:22 | < Derakon> | Okay, so back to getting the draw angle. We'd said that we use A * [cos, sin, 0]. Is the number that results from that the angle desired, or some trig function thereof? |
08:22 | <@Vornicus> | It's a vector. |
08:23 | <@Vornicus> | Of the form <cos(θ), sin(θ), 0> * k |
08:23 | <@Vornicus> | er |
08:23 | <@Vornicus> | <cos(θ'), sin(θ'), 0> * k |
08:23 | < Derakon> | I take it that what I see as cap-Is with carets are in fact supposed to be thetas? |
08:23 | | * Derakon pokes at his client. |
08:23 | <@Vornicus> | Yeah. |
08:23 | < Derakon> | And what's k? |
08:23 | <@Vornicus> | Der's client, meet UTF-8 |
08:23 | <@Vornicus> | Some constant. |
08:24 | <@Vornicus> | If you're scaling or shearing or similar you're going to end up with a non-normalized homogenous vector. |
08:24 | <@Vornicus> | To normalize a homogenous vector <x, y, w>: |
08:25 | < Derakon> | No scaling or shearing involved here, thankfully. |
08:25 | <@Vornicus> | if w: return <x/w, y/w, 1> |
08:25 | <@Vornicus> | else: k = x**2 + y**2; return <x/k, y/k, 0> |
08:26 | <@Vornicus> | I shouldn't call it normalize. |
08:26 | <@Vornicus> | canonicalize. |
08:28 | <@Vornicus> | I find it interesting how the word "cromulent" has come to be used seriously. |
08:29 | | You're now known as TheWatcher[swim] |
08:33 | < Derakon> | Okay, bedtime. Night, all! |
08:33 | | Derakon is now known as Derakon[AFK] |
08:42 | | Pi [~sysop@Nightstar-6915.hsd1.or.comcast.net] has quit [Ping Timeout] |
08:48 | | Vornicus [~vorn@67.50.40.ns-3674] has quit [Quit: Leaving] |
08:50 | | Vornicus [~vorn@Admin.Nightstar.Net] has joined #code |
08:50 | | mode/#code [+o Vornicus] by ChanServ |
10:25 | | ReivOut is now known as Reiver |
10:33 | | MyCatSleeps [~mycatownz@Nightstar-379.dsl.in-addr.zen.co.uk] has quit [Ping Timeout] |
10:40 | | You're now known as TheWatcher |
12:46 | | AnnoDomini [~farkoff@Nightstar-29738.neoplus.adsl.tpnet.pl] has joined #Code |
13:17 | | You're now known as TheWatcher[afk] |
13:23 | | Vornicus is now known as Vornicus-Latens |
14:13 | | MyCatVerbs [~mycatownz@Nightstar-379.dsl.in-addr.zen.co.uk] has joined #code |
14:13 | | Reiver is now known as ReivZzz |
14:17 | | MyCatVerbs [~mycatownz@Nightstar-379.dsl.in-addr.zen.co.uk] has quit [Ping Timeout] |
14:25 | | Shemhazai [~-@87.72.36.ns-26407] has joined #Code |
14:26 | | Serah [~-@87.72.36.ns-26407] has quit [Ping Timeout] |
14:39 | | You're now known as TheWatcher |
15:07 | | ReivZzz is now known as ReivSLEP |
15:45 | < AnnoDomini> | Hmm. Is there an easy way to check whether two variables have the same sign? This is MathCad. |
15:49 | < AnnoDomini> | Perhaps something to do with absolute values... Hmm.. |
15:49 | <@ToxicFrog> | It doesn't have >=? |
15:49 | <@ToxicFrog> | Or < |
15:50 | <@ToxicFrog> | Anyways - you can test for negativity if (x < 0) or !(x >= 0) or (abs(x) != x) |
15:51 | <@ToxicFrog> | Then you just test to see if the two numbers both get the same result from isnegative() |
15:52 | < AnnoDomini> | Okay... |
16:12 | <@ToxicFrog> | Unless MatLab has a means by which you can test sign directly? |
16:13 | < AnnoDomini> | That what I was asking. |
16:13 | < AnnoDomini> | I don't know. |
16:17 | <@ToxicFrog> | Aah. |
16:18 | < AnnoDomini> | But well. I've dealt with the situation using logic. :p |
16:46 | | Shemhazai is now known as Serah |
16:54 | | AnnoDomini [~farkoff@Nightstar-29738.neoplus.adsl.tpnet.pl] has quit [Quit: BRB.] |
16:57 | | AnnoDomini [~farkoff@Nightstar-29738.neoplus.adsl.tpnet.pl] has joined #Code |
17:16 | | You're now known as TheWatcher[afk] |
17:24 | | AnnoDomini [~farkoff@Nightstar-29738.neoplus.adsl.tpnet.pl] has quit [Ping Timeout] |
17:29 | | AnnoDomini [~farkoff@Nightstar-29330.neoplus.adsl.tpnet.pl] has joined #Code |
18:37 | | You're now known as TheWatcher |
19:23 | | * ToxicFrog flails |
19:23 | <@ToxicFrog> | Does anyone here know anything about DPS? |
19:27 | <@Vornicus-Latens> | EAP? |
19:27 | <@ToxicFrog> | Display Postscript. |
19:27 | <@Vornicus-Latens> | ah. |
19:27 | <@Vornicus-Latens> | No. |
19:27 | <@ToxicFrog> | An interface specification/control/display language/library/specification using modified Postscript. |
19:27 | <@ToxicFrog> | Used by NeXT, mostly. |
19:28 | <@ToxicFrog> | A neat idea and would have vastly simplified my postscript-based IRC client since it understands things like the mouse. |
20:17 | | Derakon[AFK] is now known as Derakon |
20:17 | < Derakon> | I seem to be segfaulting when I call rotozoomSurface(). Odd. |
20:26 | < Derakon> | Er, yes. It generally helps to have a non-NULL image to try to rotozoom. |
21:27 | | Janus [~Cerulean@Nightstar-10302.columbus.res.rr.com] has joined #Code |
21:39 | | ReivSLEP is now known as Reiver |
21:40 | | EvilDarkLord is now known as Jo][n |
21:41 | | Serah is now known as Ev3 |
21:43 | | Jo][n is now known as Jo}{n |
23:33 | | Pi [~sysop@Nightstar-6915.hsd1.or.comcast.net] has joined #code |
23:33 | | mode/#code [+o Pi] by ChanServ |
--- Log closed Sun Jan 07 00:00:25 2007 |