--- Log opened Mon Mar 12 00:00:56 2007 |
00:01 | < ReivSLEP> | Irish coffee: How to be a drunken lout all night long |
00:05 | < MyCatVerbs> | No, that's just Irish. |
00:07 | | * Derakon wanders off for to cut his hair. |
00:07 | | Derakon is now known as Derakon[AFK] |
00:07 | < MyCatVerbs> | Good plan. |
00:21 | | Syloq [Syloq@NetAdmin.Nightstar.Net] has joined #code |
00:43 | | * Vornicus remembers another thing he wanted to do! |
00:43 | < ReivSLEP> | Breathe? |
00:43 | <@Vornicus> | no, no |
00:43 | < Derakon[AFK]> | Solve the halting problem? |
00:43 | | Derakon[AFK] is now known as Derakon |
00:44 | <@Vornicus> | Some time ago I noticed that when you texture spheres, you get funny sections at the poles where you cram lots and lots of texels into a tiny tiny space. |
00:45 | < Derakon> | That depends on your texture mapping algorithm. |
00:46 | <@Vornicus> | It depends on two things: 1. the way your texture is built, and 2. the way your uv map looks. |
00:46 | <@Vornicus> | If you use the usual cylindrical projection to make your texture, you will /always/ get this problem, because you have an /edge/ that collapses to a /point/ |
00:47 | < Derakon> | Yep. |
00:47 | <@Vornicus> | So you have to come up with another projection. |
00:48 | <@Vornicus> | Good qualities of a better projection include: 1. no edges that collapse to points, and 2. no curves for edges. |
00:49 | <@Vornicus> | Also, any projections that are infinite don't work. |
00:50 | < Derakon> | Y'know, Blender has a "spherical" projection mode. |
00:50 | < Derakon> | Also "flat" and "cube". |
00:50 | < Derakon> | ...or possibly it was "box". |
00:51 | <@Vornicus> | most projections that do "spherical" projections end up with an edge the collapses to a point. |
00:51 | < Derakon> | I don't know how the projection actually works; I was just throwing that out there. |
00:51 | < Derakon> | Oh and incidentally, I fixed my minor quadtree problem. |
00:52 | < Derakon> | Silly me forgot to initialize the size of the quadtree's region, so it was creating four child nodes each covering [<0, 0>, <0, 0>]. |
00:52 | <@Vornicus> | But, looking around, we find that there /is/ a projection that satisfies the criteria I stated. |
00:52 | <@Vornicus> | http://en.wikipedia.org/wiki/Dymaxion_projection |
00:52 | < Derakon> | Toroidal? |
00:52 | < MyCatVerbs> | Pornographic! |
00:52 | < MyCatVerbs> | Oooh, bad guess. |
00:52 | <@Vornicus> | Except that that's /really/ complicated. |
00:53 | < MyCatVerbs> | Project two textures onto a single object so that they have edges but no points? |
00:53 | < ReivSLEP> | The black spathi squadron. Hm. |
00:53 | < ReivSLEP> | Do you ever get to meet them?~ |
00:54 | <@Vornicus> | No. A pity, too |
00:54 | < Derakon> | They share certain similarities with The Ultimate Evil. |
00:54 | | ReivSLEP is now known as ReivClass |
00:54 | <@ToxicFrog> | Except they're scarier. |
00:55 | < ReivClass> | pft |
00:56 | <@Vornicus> | But it /does/ have a way in which we can generate a square texture that doesn't have edges that collapse to points. |
00:56 | <@ToxicFrog> | ...the Black Spathi Squadron does? |
00:56 | <@ToxicFrog> | Man, those guys can do anything. |
00:56 | <@Vornicus> | No. |
00:56 | <@Vornicus> | The Dymaxion does. |
00:56 | < Derakon> | Heh. |
00:57 | < MyCatVerbs> | They would normally collapse to points, but the Black Spathi Squadron frightens the living shit out of them, unto the point where they flip out into curves from sheer weight of trembling fear? |
01:01 | <@Vornicus> | http://vorn.dyndns.org/~vorn/sphere-texture.png |
01:10 | | Derakon is now known as Derakon[AFK] |
01:23 | < MyCatVerbs> | Vornicus: yaaaay! |
01:26 | | * Vornicus tries to transform an existing equirectangular map into this projection. |
01:28 | <@Vornicus> | http://visibleearth.nasa.gov/view_rec.php?id=2430 <--- specifically this one |
01:47 | | Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code |
01:47 | | mode/#code [+o Chalcy] by ChanServ |
01:47 | | Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout] |
01:48 | | Chalcy is now known as Chalcedon |
02:04 | < gnolam> | It's just a shame their BT trackers never worked. |
02:04 | < gnolam> | I'd like to toy around with the raw binary data. |
02:06 | | Chalcedon is now known as ChalcyOut |
02:37 | | gnolam [Lenin@Nightstar-13557.8.5.253.se.wasadata.net] has quit [Quit: Violently ill] |
02:41 | | Derakon[AFK] is now known as Derakon |
02:51 | < Derakon> | Okay, that's odd...the current version of the game now spends only 50% of its time calling _BlitNtoNPixelAlpha, and 32% calling _SDL_FillRect. The performance has also dropped to the point that two sprites means 38 FPS. ;.; |
02:52 | <@McMartin> | Are you VSyncing? |
02:53 | < Derakon> | Hang on...I'll post my main loop. |
02:54 | < Derakon> | I suppose the difference might be because I went from 800x600 to 1280x1024, so the FillRect that wipes the screen each frame takes longer~ |
02:54 | < Derakon> | http://pastie.caboo.se/46288 |
02:54 | <@Vornicus> | there is probably a very efficient screen-clearer. |
02:56 | <@Vornicus> | I mean, something like glClear |
02:56 | <@McMartin> | If you're double-buffered, I believe that flipping clears the old one. |
02:56 | <@McMartin> | But I'm not positive. |
02:57 | < Derakon> | Easy way to check. |
02:57 | < Derakon> | That'd be a no. |
02:57 | < Derakon> | Sure looks interesting, though. |
02:57 | <@Vornicus> | I imagine it is wacky. |
02:58 | <@McMartin> | Heh |
02:59 | < Derakon> | 66.235.5.124/~chriswei/temp2/whacked.png |
02:59 | < Derakon> | The white rectangle is the object that the ship is seeking. |
03:00 | <@Vornicus> | Wacky! |
03:04 | < Derakon> | What was that example program you were saying I should check out, McM/ |
03:04 | < Derakon> | ? |
03:07 | <@McMartin> | Lesson 6 on the Cone3d shooters. |
03:09 | < Derakon> | Which, despite the name, do not involve 3D graphics/ |
03:09 | < Derakon> | ? |
03:09 | < Derakon> | Okay, I need to shift more assertively, clearly. |
03:16 | < Derakon> | Okay, that made a big difference. |
03:16 | < Derakon> | SDL_DisplayFormatAlpha is my friend. |
03:19 | <@McMartin> | ... yes. Yes it is. |
03:20 | | ReivClass is now known as Reiver |
03:20 | <@McMartin> | That way you convert once, not once per sprite per frame. |
03:20 | < Derakon> | Right. |
03:20 | < Derakon> | I wrote this stuff...geeze, three years ago. |
03:20 | < Derakon> | And never really had cause to come back to it because I had more important things to be working on. |
03:22 | < Derakon> | I'll note that likely the other reason why the Cone3D demo is so smooth is that it's running in 640x480 fullscreen. |
03:22 | | * Vornicus fiddles with PIL, trying to figure out how to weight it properly to convert an equirectangular map to his custom projection. |
03:23 | | * Derakon ups it to six ships onscreen at a time, hits 38FPS. :\ |
03:24 | < Derakon> | Though hrm...12 ships is still at 38FPS. Odd. |
03:24 | | MyCatVerbs [~mycatownz@Nightstar-379.dsl.in-addr.zen.co.uk] has quit [Connection reset by peer] |
03:25 | <@Vornicus> | what's your refresh rate, and are you double buffering? |
03:25 | | MyCatVerbs [~mycatownz@Nightstar-379.dsl.in-addr.zen.co.uk] has joined #code |
03:25 | < Derakon> | I am double-buffering, and what do you mean by refresh rate? Of my monitor? |
03:25 | <@Vornicus> | yes. |
03:26 | < Derakon> | Hardware profiler doesn't say. It's a 23" iMac with a random 19" monitor on the side. |
03:26 | <@Vornicus> | hrm |
03:29 | | * Derakon eeks as he inadvertently attempts to fill at 260,000-square-pixel area with 128-pixel squares. |
03:29 | < Derakon> | I should put some limits on the maximum size of the quadtree. |
03:32 | < Derakon> | 52 sprites -> 22FPS. |
03:33 | < Derakon> | Or in fullscreen mode, 34FPS. |
03:34 | < Derakon> | I should note that these sprites are all 400x400. |
03:34 | <@Vornicus> | Those are pretty big sprites, you should be okay. |
03:48 | < Reiver> | ...On the UQM space ship |
03:48 | < Reiver> | What're the three little graph-bars at the bottom of the ship? |
03:49 | <@ToxicFrog> | ...three little graph-bars? |
03:49 | < Derakon> | That's your remaining cargo capacity. |
03:49 | < Reiver> | Beneath the crew number... aha. |
03:49 | < Derakon> | You get one per cargo pod. |
03:49 | <@ToxicFrog> | Indeed. |
03:50 | <@ToxicFrog> | (that's part of the UI, not the ship. Hence my confusion.) |
03:50 | < Reiver> | (Sorry.) |
03:52 | < Derakon> | Orz marines roxxor my boxxors. |
03:52 | | * Derakon annihilates the Behemoth Zenith fleet. |
03:52 | < Derakon> | 110 out of 197 points remaining, baby! |
03:53 | < Derakon> | Also, the Androsynth do a passably decent job against the computer-controlled Avatar. |
04:03 | | Syloq [Syloq@NetAdmin.Nightstar.Net] has quit [Ping Timeout] |
04:11 | | Syloq [Syloq@NetAdmin.Nightstar.Net] has joined #code |
04:19 | < Reiver> | ...hrm. |
04:19 | < Reiver> | How does one sell a starship once one has it? |
04:20 | <@McMartin> | Drop its crew to zero in the shipyard, and the option will change from a crew value to "SCRAP". |
04:20 | < Derakon> | Reduce crew to zero. |
04:20 | <@McMartin> | Note that if you don't have blueprints, you can't rebuild. |
04:20 | < Reiver> | If you scrap, you get full value back, or partial? |
04:21 | <@McMartin> | Full. |
04:21 | < Reiver> | Excelent. |
04:21 | <@McMartin> | But if it's a ship you don't get blueprints for (like most gift ships), you cannot rebuild it. |
04:21 | | * Reiver needs more engines and equipment a lot more than a spare cruiser at the moment~ |
04:21 | <@Vornicus> | There are, IIRC, eight ships you get blueprints for in the game, but one only temporarily. |
04:22 | <@McMartin> | Several only temporarily |
04:22 | | * Reiver doublechecks something: Some things happen in the world whether or not you're involved, according to time, yes? |
04:22 | <@McMartin> | Yes. |
04:22 | < Derakon> | The game has a time limit, for example. |
04:22 | < Reiver> | So if I want a Yehat fighter I need to get to them before they do the merge thingy. |
04:23 | <@Vornicus> | I don't remember how to get the Terminators before the endgame. |
04:23 | <@McMartin> | You're thinking of the Pkunk. |
04:23 | <@McMartin> | You can get Terminators before the Endgame. |
04:23 | < Reiver> | Oh right. |
04:23 | < Reiver> | Yeah, the lil' furies are handy though. |
04:24 | <@McMartin> | And they're worth 2000 RU each~ |
04:24 | < Reiver> | I take it you're not a fan then?~ |
04:24 | <@Vornicus> | the Fury, however, you need to get them before they do the merge thing - note that you can turn them back a couple times. |
04:24 | < Reiver> | Yeah |
04:24 | < Reiver> | Last time I played it, I met the PKunk exactly once. |
04:24 | < Reiver> | By the time I got back, they were all, uh, gone. |
04:24 | <@McMartin> | I'm a fan, but I rarely use my escort ships in combat until the endgame. |
04:25 | < Reiver> | Truth. (Neither.) |
04:25 | < Reiver> | (Though I'm told the Spathi ships are joy onna stick for some tasks.) |
04:25 | < Derakon> | Computer-controlled spathi vs. Marauder is annoying. >.< |
04:25 | <@Vornicus> | Fwiffo is my friend. |
04:25 | < Reiver> | Also, the phaser defense gun is what, 1 damage per shot right? |
04:25 | <@Vornicus> | Something like that |
04:25 | < Reiver> | But if you mount one the Ur-Quan won't launch fighters at you, which is Useful. |
04:26 | < Reiver> | ...Is there any point to having three? |
04:26 | <@Vornicus> | Better fire rate. |
04:26 | < Reiver> | Aha. |
04:27 | < Derakon> | I don't generally find them useful at all. ¬.¬ |
04:27 | < Reiver> | Meh. Never use it anyway - it's a "Plz don't launch fighters kthx" tool on the main starship. >.> |
04:27 | < Derakon> | Since your ship can get guided shots and sufficient maneuverability to kill fighters directly. |
04:27 | < Derakon> | Well, the guided shots don't seek fighters, but they make it easier to kill other things. |
04:28 | <@McMartin> | More PDS means More Damage Per Hit. |
04:28 | < Derakon> | My pre-endgame ship last time I won had two hellbore cannons, three guidance systems, and the rest for energy generation and fuel. |
04:28 | <@Vornicus> | Personally I don't use them - tracking systems, with forward and spread guns, are powerful enough to kill anything that comes close. |
04:28 | < Reiver> | I used to use precisely one. |
04:28 | < Derakon> | (Crew modules are pointless - that's what Chmmr Avatars are for) |
04:28 | < Reiver> | It stopped the dreadnaughts launching fighters. |
04:29 | < Reiver> | Which was useful because I got a better kill rate by shooting them directly~ |
04:29 | < Derakon> | Or, actually, the Spathi ships are more realistic crew holding areas. |
04:29 | < Reiver> | Der: You're making grand assumptions, though. |
04:29 | < Derakon> | Like? |
04:29 | < Reiver> | Most of this is pondering while I'm about to set off on my first interstellar voyage~ |
04:30 | <@McMartin> | The most important thing to have is maxed thrusters. |
04:30 | <@McMartin> | That will let you outrun anything in hyperspace. |
04:30 | <@Vornicus> | Max thrusters; if you can, also max turnjets. |
04:30 | < Derakon> | Then you want as many turning jets as you can reasonably fit, and lots of fuel. |
04:30 | < Reiver> | Sol doesn't have enough for the latter, Vorn. >.> |
04:30 | <@McMartin> | Also, I would like to suggest the Wolf constellation as a good place to start. |
04:30 | <@Vornicus> | If I don't do max turnjets I find myself catapulting through systems at top speed trying to slow the hell down. |
04:30 | < Derakon> | Sell the forward guns; if you get attacked in your first trip, you're doing it wrong. ¬.¬ |
04:33 | < Reiver> | ...What is that grey circle? |
04:33 | < Reiver> | In the starmap? |
04:33 | | * Reiver has not seen it before. |
04:33 | < Derakon> | Your range. |
04:33 | < Reiver> | ...Huh. Handy. |
04:33 | < Derakon> | Past that, you have no fuel. |
04:33 | < Reiver> | Hm. |
04:33 | < Derakon> | And note that landing on planets requires fuel, which varies by their gravities. |
04:33 | < Reiver> | What I've always wanted on the starmap or something was a way to keep a log of the stars. >.> |
04:34 | | * Reiver realises this. |
04:34 | < Derakon> | Heh. |
04:34 | < Derakon> | Head to the Wolf systems; one of them has some exotics. |
04:34 | | * Reiver fires up the Notepads instead. |
04:36 | < Reiver> | (Also, the one thing that really gets me? Corrosives vs Radioactives. I can never tell 'em apart. >.<) |
04:36 | < Derakon> | Radioactives are bright orange. *shrug* |
04:37 | < Derakon> | And corrosives are not worth picking up. ;p |
04:37 | < Reiver> | I know. |
04:37 | < Reiver> | But I mistake the orange and reds. |
04:37 | < Reiver> | And so go OMG *launch* then find that the stuff is worthless. :p |
04:37 | < Derakon> | Well, there's a limited color palette; eventually you'll learn to recognize 'em. |
04:38 | <@McMartin> | Also, the planet type is often a hint. |
04:38 | < Reiver> | I played this game for weeks and never got the hang of it. >.> |
04:38 | <@McMartin> | "Radioactive worlds" tend to better than, say, "Iodine Worlds". |
04:38 | <@McMartin> | Or Halide worlds. |
04:38 | <@McMartin> | Though Halide worlds often have some of both. |
04:38 | <@McMartin> | (Astatine yey0 |
04:38 | <@McMartin> | ) |
04:39 | <@Vornicus> | How To Tell Your UI Design Needs Work, Vol. 53: http://vorn.dyndns.org/~vorn/uplink-info-overload.png |
04:39 | <@Vornicus> | That's before I've done anything interesting. |
04:40 | < Derakon> | ...right, when the ship hits its maximum velocity, I don't want to *normalize* it. That's just stupid. |
04:42 | < Derakon> | Ahh. Much smoother. |
04:43 | <@Vornicus> | What are you doing instead? |
04:44 | < Derakon> | self.vx = self.vx / speed * self.maxSpeed |
04:44 | < Derakon> | Where speed = sqrt(self.vx**2 + self.vy**2) |
04:45 | | * Derakon sets up a formation of 100 ships, watches rounding errors in action. It takes surprisingly little time for symmetry to degrade. |
04:47 | | * Reiver pokes at it. |
04:47 | | * Reiver wonders if this isn't a job for pivot tables or something, but that takes far too much effort. |
04:49 | <@Vornicus> | Reiver: I used an outline thing for a while. |
04:50 | < Reiver> | And then gave up? |
04:50 | <@Vornicus> | Yeah, it was too much work, really |
04:50 | | * Reiver decides to just list which star systems he's stripped, and then any exceptions - life planets currently too dangerous, etc. |
04:52 | < Reiver> | ...When you install the voice packs, the background music is changed. 'kay. |
04:54 | < Reiver> | HAH |
04:54 | < Reiver> | You /can/ do it with a Spathi. |
04:54 | < Reiver> | You just can't be stupid at the start. |
04:54 | | * Reiver tries again. |
04:54 | <@Vornicus> | FOR SPATHIWA! |
04:57 | < Derakon> | Doing it with a Spathi sounds painful. All those claws. |
04:59 | <@McMartin> | Reiver: That was the 3domusic.zip, not voice.zip that changed the music. |
05:00 | | * Derakon eyes this post he just made: http://www.ambrosiasw.com/forums/index.php?s=&showtopic=110583&view=findpost&p=1 710190 |
05:00 | < Reiver> | Ohh. OK. |
05:00 | | * Reiver frowns. |
05:00 | < Derakon> | We're talking about what a limiting factor is, and if you can have more than one limiting factor when the available factors are not equal in proportion to their rate of consumption. |
05:00 | < Reiver> | Alpha Wolf and Beta Wolf have no exotics. |
05:01 | < Derakon> | I'm pretty certain that one of the Wolf systems' outer planets has neutronium. Seeing as I just mined the area yesterday. |
05:01 | < Reiver> | Indeed, Beta Wolf has basically nothin', if I've read the colours right. |
05:01 | < Reiver> | hrm. |
05:01 | < Derakon> | Colors aren't a guarantee; you have to scan the place to be certain. |
05:01 | < Reiver> | Nono. |
05:01 | < Reiver> | Colours of scanned. |
05:01 | < Derakon> | Ahh. |
05:01 | < Reiver> | If outer planet, must be Alpha then, 'cuz beta only has one rock. |
05:04 | | * Derakon shrugs. "Maybe there weren't any inner-system planets; I don't remember." |
05:05 | <@McMartin> | I seem to recall the planet number being IV. |
05:05 | < Reiver> | ...Planet IV has two super-dense worlds. |
05:05 | < Reiver> | But they have only metal on them. |
05:06 | | * McMartin fires up his copy |
05:06 | | * Reiver decides to do suicide runs to check if he hasn't missed anything. |
05:06 | | Forj [~Forj@Nightstar-869.bitstream.orcon.net.nz] has joined #code |
05:06 | <@McMartin> | I suspect I have confused Wolf with Lyrae for the Ruby worlds. |
05:06 | <@McMartin> | But you do end up hitting them all in the end. |
05:07 | <@McMartin> | ... yeah. Beta Lyrae 5. |
05:07 | <@McMartin> | Also Alpha Centauri III and VIII. |
05:07 | < Derakon> | The Centauris tend to be nasty places, though. |
05:07 | <@McMartin> | Yes. |
05:07 | <@Vornicus> | Alpha Centauri anyway. |
05:08 | < Reiver> | Wolf has lots of animals. |
05:08 | < Reiver> | But they're, uh, dangerous. |
05:09 | < Derakon> | You want them anyway, if you can manage it. |
05:09 | < Derakon> | Animal data = tech upgrades. |
05:09 | < Derakon> | Also, visit Delta Centauri VI. |
05:10 | <@Vornicus> | Animal data is the only way to make animals less dangerous. |
05:12 | < Reiver> | Well |
05:12 | < Reiver> | If I had seatbelts I would be safer. |
05:12 | < Reiver> | So I'm going to shoot some less incovinient planets full of life, /then/ open fire on the dangerous ones~ |
05:13 | | * Derakon finds a radioactive world with life, and it's not even all that dangerous! |
05:13 | < Derakon> | So yeah, definitely Delta Centauri for the win. |
05:16 | <@McMartin> | Pac-Man with guns! |
05:17 | | * Derakon lands on some astatine. |
05:22 | | * Reiver makes the assumption that the Iodine world is not in fact covered with tasty radioactives. Weeps. |
05:22 | <@Vornicus> | Iodine... usually corrosives, iirc. |
05:24 | | * Derakon heads off to Delta Tauri, hoping like hell he packed enough fuel to get back. |
05:24 | < Derakon> | Though I suppose, worst comes to worst, the Melnorme rescue me and I ditch some of my animal info. |
05:33 | < Derakon> | ...I think I cut that about as close as it is possible to be cut. |
05:34 | < Derakon> | Also, I did not need that much cargo space. :\ |
05:34 | < Derakon> | Hah! Zero fuel left and I'm in Sol system! |
05:34 | < Reiver> | pft |
05:35 | < Reiver> | Good effort. |
05:35 | | * Derakon goes from 1 RU to 11199RU. |
05:35 | < Reiver> | whee! |
05:36 | <@Vornicus> | Win! |
05:36 | | * Derakon spends it all on booze and diplomatic efforts with the Syreen. |
05:37 | <@Vornicus> | The Lobster And Hookers fund, ah? |
05:37 | < Derakon> | Shh. |
05:38 | <@McMartin> | You can build a Shofixti Scout out of 500kT of Ethanol. |
05:51 | < Reiver> | ... |
05:52 | < Reiver> | pffff |
05:52 | < Reiver> | Is this a comment on their general piloting prowess, McM? |
05:52 | < Derakon> | Have you flown a Scout before, Reiver? |
05:52 | <@McMartin> | No, it has more to do with the fungibility of all resources. |
05:52 | < Reiver> | Also, I am curious: Just how many ship patterns do you get hold of, anyway? |
05:52 | <@McMartin> | Ethanol is a common. |
05:52 | <@McMartin> | Commons are 1 RU per kT. |
05:52 | <@McMartin> | Scouts are 500 RU. |
05:53 | < Derakon> | Um...earthling, spathi, ZFP, utwig, supox, scout, fury (?), avatar... |
05:53 | < Reiver> | I know you get hold of the Orz, the Avatar (Late game though), the Penetrator, and I don't remember if you get hold of the fury or not. |
05:53 | <@McMartin> | Not Fury. |
05:53 | <@McMartin> | You can get the Torch patterns, too. |
05:53 | < Reiver> | Darn shame you can't store them at the starbase in a hangar, then. >.> |
05:53 | < Derakon> | Oh, and druuge, kinda. |
05:54 | < Derakon> | You don't get the patterns but you can buy the ships if you're an unethical slob. |
05:54 | < Reiver> | ...Torches are shiny. |
05:54 | < Derakon> | They're of marginally limited utility against your primary opponents, though. |
05:56 | < Reiver> | Good against Dreadnaughts. |
05:56 | < Reiver> | Less so against Kor-Ah, but then again I never did figure out what /was/ good against them. |
05:56 | < Reiver> | The long range + area burst is a pain in the butt to counter. >.> |
05:57 | < Derakon> | Keep their energy low so they can't FRIED you or spew tons of disks. |
05:57 | < Derakon> | So basically, anything with fairly high firing rates is good. |
05:57 | <@Vornicus> | Orz, Chmmr, Syreen, Supox, Yehat, Hunam, Thraddash, and Spathi, are the ships you get prints for, right? |
05:58 | < Reiver> | ...You only get some of those temporarily, though, yes? |
05:58 | <@Vornicus> | or, and ZFP. |
05:58 | <@Vornicus> | One of them is temporary. |
05:58 | < Reiver> | Spathi. |
05:58 | <@Vornicus> | and Utwig, too, is in that list. Man, it just keeps getting longer |
05:59 | < Reiver> | ...Utwig would point and laugh at a Kor-ah ship, wouldn't it? |
05:59 | < Derakon> | Yep. |
05:59 | < Derakon> | Regular, slow firing rate? Bring it on! |
05:59 | < Reiver> | Lots of damage in it too. |
05:59 | < Derakon> | Utwig hate fast-firing ships and the Androsynth. |
06:00 | < Derakon> | Oh, and planets. |
06:00 | <@Vornicus> | Everybody hates planets. Except Marines. |
06:00 | < Derakon> | Well, they just get in fighters' ways. |
06:01 | | * Reiver ponders. |
06:01 | < Reiver> | Darn shame you can't forcefully fill syreen ships full of people. |
06:01 | < Reiver> | They'd make a brilliant crew battery~ |
06:01 | < Derakon> | That would make their secondary ability rather pointless, though. |
06:01 | < Derakon> | You have Spathi for crew batteries. |
06:01 | < Reiver> | Eh. The syreen can carry even more than that. |
06:02 | < Derakon> | It can, yes, but it's not available until later. |
06:02 | < Derakon> | And it's not like you need *that* much crew. Right? |
06:02 | < Reiver> | Sure you do. |
06:03 | < Reiver> | I keep kamaki-ing planets. ¬¬ |
06:03 | < Derakon> | Save before getting into combat, then. |
06:03 | < Reiver> | Bah! |
06:03 | < Reiver> | Bah I say! |
06:10 | | * Derakon discovers that the Utwig will shield if you fly Arilou ships close to them. |
06:10 | | * Derakon annihilates Utwig with Kohr-Ah. |
06:11 | < Derakon> | And now, bedtime. Night, all. |
06:12 | < Reiver> | nini. |
06:12 | | Derakon is now known as Derakon[AFK] |
06:18 | | Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code |
06:18 | | mode/#code [+o Chalcy] by ChanServ |
06:20 | | ChalcyOut [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout] |
06:36 | | MahalWork is now known as Mahal |
07:22 | | Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Quit: ] |
07:56 | < Reiver> | I wish the lander had a reverse gear. ;_; |
07:56 | | GeekSoldier_ [Rob@Nightstar-3336.pools.arcor-ip.net] has joined #code |
07:57 | | SleepingSoldier [Rob@Nightstar-4339.pools.arcor-ip.net] has quit [Ping Timeout] |
08:14 | | Derakon[AFK] [~Derakon@Nightstar-12737.sea2.cablespeed.com] has quit [Connection reset by peer] |
08:18 | | MyCatVerbs is now known as MyCatDoesStuff |
08:34 | | Forj [~Forj@Nightstar-869.bitstream.orcon.net.nz] has quit [Quit: Gone] |
09:24 | | GeekSoldier_ [Rob@Nightstar-3336.pools.arcor-ip.net] has quit [Ping Timeout] |
09:26 | | GeekSoldier_ [Rob@Nightstar-3336.pools.arcor-ip.net] has joined #code |
09:30 | | * Reiver masters the art of the Spathi, places Fwiffo in charge of defending against the Ur-Quan. |
10:26 | | You're now known as TheWatcher[wr0k] |
10:58 | | gnolam [Lenin@Nightstar-13557.8.5.253.se.wasadata.net] has joined #Code |
11:25 | | GeekSoldier_ [Rob@Nightstar-3336.pools.arcor-ip.net] has quit [Ping Timeout] |
11:26 | | GeekSoldier_ [Rob@Nightstar-4182.pools.arcor-ip.net] has joined #code |
11:28 | | Thaqui [~Thaqui@Nightstar-16868.jetstream.xtra.co.nz] has left #code [Leaving] |
12:40 | | abzaoun [~abzaoun@Nightstar-7703.rivrw5.nsw.optusnet.com.au] has joined #Code |
14:10 | | Reiver is now known as ReivSLEP |
16:27 | | MyCatDoesStuff is now known as MyCatVerbs |
17:26 | | You're now known as TheWatcher |
18:09 | | GeekSoldier_ is now known as GeekSoldier |
18:58 | | Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code |
18:58 | | mode/#code [+o Chalcedon] by ChanServ |
19:11 | < MyCatVerbs> | Java is awesome, verily. |
19:11 | < MyCatVerbs> | Meh to the language, but the standard library is sheer unadulterated wh00t. |
19:12 | <@ToxicFrog> | Except that you can never find what you need, and half the library is workarounds for stuff missing from the language itself. |
19:13 | < MyCatVerbs> | W.R.T. point one, I have a book that'd shatter pavements or toes if I ever dropped it. And that's the abridged version, so it *is* findable, kinda. |
19:14 | < MyCatVerbs> | W.R.T. point two, yeah, but I've yet to ever see another language in which all or even a significant portion of the shortcomings worked-around-for were in the language itself. |
19:14 | < MyCatVerbs> | I think only Perl would come close, and even then only if you include the archives on CPAN. |
19:38 | | AnnoDomini [~farkoff@Nightstar-29390.neoplus.adsl.tpnet.pl] has quit [Ping Timeout] |
19:39 | <@jerith> | MyCatVerbs: The main problem I have with Java is its verbosity. |
19:40 | <@Vornicus> | Frankly, the Java library is unmitigated crap. |
19:41 | <@Vornicus> | I mean, yes, it has everything, but it does a lot of stuff wrong. |
19:41 | | AnnoDomini [~farkoff@Nightstar-28962.neoplus.adsl.tpnet.pl] has joined #Code |
19:42 | <@jerith> | And StringReader (or whatever) that has been deprecated for half the life of the language and hasn't yet been replaced. |
19:42 | <@jerith> | There's something you're *supposed* to use, but half the libraries don't support that. |
19:43 | <@Vornicus> | The lack of operator overloads is an incredible pain; I can't write proper numeric and numeric-like types. |
19:44 | | AnnoDomini [~farkoff@Nightstar-28962.neoplus.adsl.tpnet.pl] has quit [Ping Timeout] |
19:48 | <@jerith> | And comparing strings (which I do a lot) sucks. |
19:57 | | GeekSoldier [Rob@Nightstar-4182.pools.arcor-ip.net] has quit [Quit: Oops. My brain just hit a bad sector] |
20:01 | | * Vornicus ponders. |
20:02 | <@Vornicus> | Ruby does the whole "frozen" thing right; Python gets the whole "operator overload" thing right; Java gets... uh... what /does/ Java get right, anyway? |
20:03 | <@Vornicus> | Python also gets much of its library right. |
20:04 | <@jerith> | Java does Enterprisey. |
20:04 | <@Vornicus> | (but Ruby does basic algorithms and DRY better) |
20:04 | <@jerith> | And it's buzzword-compliant. |
20:04 | <@Vornicus> | I have never ever seen that word used in a positive fashion, jerith. |
20:05 | <@jerith> | Indeed. |
20:05 | <@jerith> | But Java still gets it right. |
20:05 | <@Vornicus> | I guess McM is going to have to show up and explain what the hell Java gets right. |
20:05 | <@jerith> | (Like saying Butch gets disembowelling right. True, but not fu if you're the victim.) |
20:06 | <@jerith> | The JVM is pretty cool, though. |
20:06 | <@jerith> | *fun |
20:06 | <@Vornicus> | Okay, yeah, the JVM is done right. |
20:07 | <@ToxicFrog> | Vornicus: 'frozen'? |
20:07 | <@ToxicFrog> | And I would say that Java gets automatic linking and dependency resolution very right. |
20:07 | <@ToxicFrog> | Pity that it's automatic linking and dependecy resolution for goddamn Java. |
20:07 | <@Vornicus> | TF: you know how, in Python, you have Lists and you have Tuples, and they're different things? |
20:08 | <@ToxicFrog> | Yes. |
20:08 | <@ToxicFrog> | (which has always struck me as a pointless distinction, but continue) |
20:08 | <@jerith> | TF: But that can be broken if you try hard enough. Ever tried to use JUnit linked to external libs? |
20:08 | <@Vornicus> | Well, in Ruby, the only distinction between what Python would call a List and what Python would call a Tuple, is a single flag, "Frozen" |
20:08 | <@Vornicus> | Which you can set, but not unset. |
20:08 | <@ToxicFrog> | Aah. |
20:08 | <@ToxicFrog> | Yes, that's why I think it's a pointless distinction. |
20:09 | <@ToxicFrog> | A la I6, immutability is a flag, not a seperate data type. |
20:09 | <@Vornicus> | But /every/ object has such a flag. |
20:09 | | * ToxicFrog idly implements this in Lua. |
20:09 | <@jerith> | AIUI, tuples are an efficiency hack of sorts. |
20:09 | <@ToxicFrog> | I love being able to do that ^.^ |
20:09 | <@Vornicus> | jerith: they are. |
20:10 | <@ToxicFrog> | It never gets old. |
20:10 | | * jerith grins. |
20:19 | <@ToxicFrog> | Possibly this is a side effect of having spent my first ten years or so of programming working in languages where this was not possible, but it's still cool. |
20:20 | | * jerith grins. |
20:32 | | Mahal is now known as MahalWork |
20:42 | | AnnoDomini [~farkoff@Nightstar-28864.neoplus.adsl.tpnet.pl] has joined #Code |
20:44 | | AnnoDomini [~farkoff@Nightstar-28864.neoplus.adsl.tpnet.pl] has quit [Killed (NickServ (GHOST command used by AbuDhabi))] |
20:44 | | AnnoDomini [~farkoff@Nightstar-28864.neoplus.adsl.tpnet.pl] has joined #Code |
20:46 | < MyCatVerbs> | AIUI = As I Use It? |
20:46 | <@McMartin> | Understand it, generally. |
20:46 | | * McMartin reads backscroll. |
20:47 | <@EvilDarkLord> | McMartin: Vornicus was saying you should explain what the hell Java gets right. |
20:47 | <@McMartin> | Yes |
20:47 | <@McMartin> | They covered most of it |
20:47 | < MyCatVerbs> | We should implement a LISP machine inside the JVM! =D |
20:47 | <@McMartin> | I'd say Java gets its library More Right, but that you're comparing it with C++ here. |
20:47 | <@McMartin> | It's been done. |
20:47 | <@McMartin> | Also, the JVM has a number of misfeatures in it. |
20:47 | <@ToxicFrog> | It's not hard to get your library More Right than C++. |
20:48 | <@Vornicus> | I'm hard pressed to name a library that is not More Right than C++'s |
20:48 | <@McMartin> | Including one where the JVM spec actually has a footnote saying "whoops, our bad" |
20:48 | <@jerith> | VB? |
20:48 | < MyCatVerbs> | McMartin: I mean a bytecode LISP compiler that targets the JVM, rather than a LISP interpreter written in Java. Has that been done, too? |
20:48 | <@McMartin> | Questionable! |
20:48 | <@McMartin> | (At jerith) |
20:48 | | * Vornicus wonders if any langauges other than Java have been fully implemented for the JVM |
20:48 | <@McMartin> | MCV: I don't know offhand of any full-bore modern Lisp compilers period. |
20:48 | < MyCatVerbs> | We all routed that correctly, dunwurry. |
20:49 | <@McMartin> | Vornicus: Well, there's Jython, though whether that counts as a full implementation or an insane cousin is questionable. |
20:49 | <@jerith> | JRuby? |
20:49 | <@Vornicus> | I was countin it as an insane cousin. |
20:49 | < MyCatVerbs> | Vornicus: Jython? I think there are a few. |
20:49 | <@Vornicus> | JRuby is just Ruby implemented in Java. |
20:50 | <@jerith> | Ah. |
20:50 | | * AnnoDomini grokked today what the strange definitions in a C file were for. Writing in bash. |
20:50 | <@McMartin> | Ah, there we go. |
20:50 | < AnnoDomini> | I find it uncanny how mIRC scripts and bash are alike. |
20:50 | <@McMartin> | Those libraries that fake templates in C by re-#defining a bunch of things and then repeatedly #including the same .c file. |
20:50 | <@McMartin> | those are worse than the C++ libraries. |
20:51 | <@Vornicus> | heh |
20:51 | <@McMartin> | Other than that, I got nothin' |
20:51 | <@ToxicFrog> | AnnoDomini: bash scripts are readable~ |
20:51 | <@jerith> | Erlang's string libraries are pretty sparse. |
20:51 | <@ToxicFrog> | Which reminds me. |
20:51 | < MyCatVerbs> | AnnoDomini: on reflection, I'm not. |
20:51 | <@ToxicFrog> | I need to finish writing xcbash. |
20:51 | <@jerith> | xcbash? |
20:51 | <@ToxicFrog> | jerith: XChat module that lets it use bash scripts as plugins. |
20:52 | < MyCatVerbs> | AnnoDomini: they're both entirely string-oriented procedural languages, which were written literally feature-by-feature. |
20:52 | < AnnoDomini> | ToxicFrog: Bah. MyCatVerbs: You're not what? |
20:52 | <@jerith> | Ah. |
20:52 | <@ToxicFrog> | To complement the C, C++, Ruby, Python, TCL, Perl, Lua, and Scheme support it already has. |
20:52 | <@EvilDarkLord> | Impressive. |
20:53 | <@jerith> | I found the Python XChat plugins to be uncomfortable. |
20:53 | <@ToxicFrog> | I must confess I am not actually sure why I'm doing this. |
20:53 | < MyCatVerbs> | AnnoDomini: their development models have been pretty similar. Shell programmer decides a particular problem could be more easily solved by extending the shell than doing something gnarly within it so he hacks something on to sh. |
20:53 | <@jerith> | I almost prefer irssi's perl. |
20:53 | <@ToxicFrog> | I've never used the python plugin API. |
20:53 | < AnnoDomini> | MyCatVerbs: Ah. |
20:53 | <@ToxicFrog> | I used the C one for a while, then used the C one to write a Lua one and used that instead. |
20:53 | <@jerith> | It feels like C. |
20:53 | < MyCatVerbs> | AnnoDomini: mIRC's developer decides some task would be much easier if he hacked support into mIRC for it than if he did it by hand... |
20:54 | <@ToxicFrog> | jerith: in that case, I suspect it was lazily generated from the C API. |
20:54 | <@ToxicFrog> | Which is the native one. |
20:54 | < MyCatVerbs> | AnnoDomini: so over time they'll both grow to resemble fucking enormous balls of mud. Ever heard the phrase, "accidentally Turing-complete?" =D |
20:54 | < AnnoDomini> | MyCatVerbs: Not until today. Sounds fun, though. Like an evolutionary thingy. With stuff. |
20:55 | < MyCatVerbs> | AnnoDomini: precisely that, arrr. |
20:55 | < MyCatVerbs> | Oh and, speaking of languages implemented on top of the JVM: R5RS compliance with Kawa! http://www.gnu.org/software/kawa/ |
20:56 | | * jerith likes how a lot of pathological languages prove themselves Turing-complete by implementing interpreters for other already-proven-TC pathological languages. |
20:57 | < MyCatVerbs> | jerith: it counts doubly when *both* languages were never deliberately meant to be esoteric *or* Turing-complete, and the interpreter was written by someone who was drunk at the time. |
20:58 | <@EvilDarkLord> | Is that speaking from personal experience, MCV? |
20:59 | | * AnnoDomini also thinks that he'll at some time in the future completely rewrite KarmaBot's dice-roller function... Along with a few other, earlier subscripts. And probably will copy it all to a clean instance of mIRC. |
21:00 | < MyCatVerbs> | EvilDarkLord: no, but I wanna try it anyway. |
21:02 | < MyCatVerbs> | Who else feels like getting tanked and implementing, uh, JCL in Sendmail.cf? |
21:04 | <@jerith> | I'm up for doing COBOL in TECO... |
21:09 | < MyCatVerbs> | Then we do TECO in JCL. |
21:09 | < MyCatVerbs> | Then we do Sendmail.cf in COBOL. |
21:09 | <@EvilDarkLord> | And then you implement Brainfuck in Sendmail.cf? |
21:09 | < MyCatVerbs> | EvilDarkLord: no, that would have the adverse effect of making Sendmail.cf *easier*. |
21:10 | <@EvilDarkLord> | Is Sendmail.cf one of those joke languages? |
21:11 | <@ToxicFrog> | Sendmail.cf is purported to be the Sendmail configuration file. |
21:11 | < MyCatVerbs> | No, it's the configuration file for the Sendmail MTA. |
21:11 | < MyCatVerbs> | It's a pretty bass ackwards pile of shite. It is, as far as I understand, Turing-complete, but not by design. |
21:12 | <@ToxicFrog> | However, rumour has it that the original spec was found scrawled on pages of human skin, sealed within a lead casket on the shores of R'lyeh. |
21:12 | | * EvilDarkLord eyes Vorn, since he seems to have a fair amount of these languages spawned by Great Old Ones. |
21:13 | <@Vornicus> | Hey, I only wrote Schlockian. |
21:13 | <@Vornicus> | ...which is a pretty damning thing to say, but at least i didn't write sendmail.cf |
21:14 | <@ToxicFrog> | I think I've written worse than Schlockian. |
21:14 | <@ToxicFrog> | But at least it's not sendmail.cf. |
21:15 | <@Vornicus> | have you seen Schlockian's flow control? |
21:15 | <@ToxicFrog> | Hell, Jenks probably thinks, as he goes to bed, "well, I wrote POD, which is the worst code that has ever been perpetrated within the walls of Bluecoat or, indeed, upon any Thoth-derived codebase ever - and they fired me for it - but at least it wasn't sendmail.cf!" |
21:15 | <@ToxicFrog> | I have not. |
21:15 | <@ToxicFrog> | How bad is it? |
21:17 | <@Vornicus> | Here's Euclid's Algorithm in Schlockian: a@t=a%b;b=a;a=t.b` |
21:18 | <@Vornicus> | and I'm not even going to /try/ writing the function prototype for that, I don't remember how it works and I never got it right in the first place. |
21:18 | <@ToxicFrog> | MY BRAIN |
21:18 | <@ToxicFrog> | Ok, yeah, that's worse. |
21:18 | <@ToxicFrog> | You win. |
21:18 | <@ToxicFrog> | Or lose, or something. |
21:19 | <@McMartin> | So, what, is the @` construct "fixpoint"? |
21:19 | <@Vornicus> | ` is "return", @ is "while", . is "end compound statement" |
21:19 | <@Vornicus> | ?? is "if", and @@ is "do" |
21:20 | <@ToxicFrog> | ... |
21:21 | <@Vornicus> | Truly it is blood on my hands. |
21:21 | <@Vornicus> | But it seemed like a good idea at the time. |
21:22 | <@ToxicFrog> | So many things go. |
21:22 | <@ToxicFrog> | *do. |
21:22 | <@ToxicFrog> | Like an IRC client written in postscript and sed-expressions. |
21:23 | <@jerith> | I *really* hope you didn't actuallt do that... |
21:23 | <@jerith> | s/llt/lly/ |
21:24 | <@ToxicFrog> | jerith: I got the basics working, but then ran into portability issues (it relied heavily on named pipes) and lost interest. |
21:25 | | * jerith explodes. |
21:26 | <@ToxicFrog> | It was the natural outgrowth of looking at the IRC script that comes with netcat and thinking "I wonder what would happen if I piped this through half a dozen regex transforms and then fed it to the postscript interpreter?" |
21:26 | <@McMartin> | Man, my ridiculous project seems sane in comparison. |
21:26 | <@McMartin> | (The Commodore 64 cross assembler in Python) |
21:27 | <@ToxicFrog> | McMartin: I never got to the stage of converting IRC traffic directly into postscript and then running it on the terp, as opposed to doing some translation inside postscript. |
21:27 | <@ToxicFrog> | But I was working on it. ?? |
21:28 | <@jerith> | Apparently I have not been adventurous enough. |
21:28 | <@ToxicFrog> | (there are many problems for which the solution is "generate postscript from it". I have since arrived at the conclusion that "I need an IRC client" is not one of them. But it was fun.) |
21:29 | <@jerith> | Aha! When I finally get my AVR programmer I shall construct a hardware IRCbot. |
21:29 | <@ToxicFrog> | AVR? |
21:29 | <@jerith> | Atmel AVR. |
21:29 | < MyCatVerbs> | Vornicus: you named a programming language after an amorph? |
21:29 | <@ToxicFrog> | Which is? |
21:29 | <@jerith> | 8-bit microcontroller. |
21:29 | < MyCatVerbs> | I thought Atmel AVRs were microcontrollers, not ha... ahh. |
21:29 | <@Vornicus> | MCV: yes |
21:30 | <@ToxicFrog> | (and, aha, this summer I *may* be doing work on automatic compilation of programs into FPGA configurations) |
21:30 | <@Vornicus> | Seeing as its install base is, ah |
21:30 | <@Vornicus> | the amorph itself. |
21:30 | | * MyCatVerbs makes a mental note to acquire and do the same thing with a Xilinx project board. =D |
21:30 | <@ToxicFrog> | (which will allow me to construct an Inherently Superior hardware IRCbot) |
21:30 | | * jerith grins. |
21:30 | <@ToxicFrog> | I have so much hate for Xilinx. |
21:30 | < gnolam> | MyCatVerbs: do not mention the Forbidden Name. |
21:30 | < MyCatVerbs> | Why, what sins did they commit? |
21:31 | <@jerith> | But try writing a TCP/DHCP/IRC stack in 8-bit assmebler. |
21:31 | < gnolam> | MyCatVerbs: Their Seemingly Stochastic Optimizer for one thing. |
21:31 | <@ToxicFrog> | jerith: in this case, we'd write it in something else, and the compiler would translate it into a logic gate layout. |
21:31 | <@ToxicFrog> | Which would then be mapped onto the FPGA. |
21:31 | | * jerith nods. |
21:32 | <@jerith> | That sounds like a fun project. |
21:32 | < MyCatVerbs> | gnolam: I am firmly convinced that HDL is in exactly the same place that software design was back in the sixties. |
21:32 | <@ToxicFrog> | This was the idea of my Digital Systems Design professor, who has been testing the procedure with small neural nets. |
21:32 | < MyCatVerbs> | gnolam: er, seventies. |
21:32 | <@ToxicFrog> | And getting ten-order-of-magnitude performance increases. |
21:32 | < MyCatVerbs> | gnolam: shit, primitive compilers with many bugs, horrible turn-around times, fucking awful programming languages. |
21:32 | <@jerith> | MyCatVerbs: Software design is in exact;y the same place now as it was back in the seventies. |
21:33 | < gnolam> | MyCatVerbs: I can't recall compilers back then arbitrarily and silently deciding to gut your code. |
21:33 | < MyCatVerbs> | ToxicFrog: holy fizzucks. What is "something else" planned to be? |
21:33 | <@ToxicFrog> | MyCatVerbs: not sure yet. Bear in mind that this was all conveyed over two lunchtime discussions when we ran into each other in the UC. |
21:33 | <@jerith> | ToxicFrog: Neural nets are inherently massivley parallel. |
21:33 | < gnolam> | "Oh, I don't think this is actually used anywhere, so I'll just remove it. Bye bye, critical piece of gating!" |
21:33 | <@ToxicFrog> | So we didn't get into the guts of the implementation. |
21:33 | < MyCatVerbs> | jerith: compare the ratio of programmers leaving school having been trained on J2SE to those being trained on COBOL now and then. We've advanced. |
21:34 | <@ToxicFrog> | MyCatVerbs: I don't really consider this an improvement, though. |
21:34 | <@ToxicFrog> | They're being trained to what the popular language is. |
21:34 | <@jerith> | MyCatVerbs: Java is the Cobol of the 21st century. |
21:34 | <@ToxicFrog> | Not what will actually make them good programmers. |
21:34 | < MyCatVerbs> | ToxicFrog: dude, if you implemented ML or Haskell or Erlang or *anything* declerative on an FPGA, I would actually buy you a pony. |
21:34 | <@ToxicFrog> | Sure, knowing Java makes you employable - until the favoured language changes. |
21:35 | <@McMartin> | To be fair, a mediocre programmer using Java is a much better programmer than a mediocre programmer using Cobol. |
21:35 | <@jerith> | I am of the opinion that you can't *make* good programmers. You can only uncover the good programmer that probably isn't already inside. |
21:35 | < MyCatVerbs> | Yes, all true. But it's three orders of magnitude less shit. |
21:35 | <@McMartin> | (Also, Java replaced Cobol and Pascal simultaneously, so some of this is blurring) |
21:35 | <@McMartin> | (Java's a great educational language, and will probably stay one even if the Corporate World moves on) |
21:35 | < MyCatVerbs> | McMartin: "Why Pascal is not my favourite programming language"++; |
21:36 | <@jerith> | McMartin: I disagree somewhat. |
21:36 | | * MyCatVerbs has a personal love of impassioned techie rants. |
21:36 | <@ToxicFrog> | On the whole, I think it's better to teach the high-level stuff that will help them learn new languages, and use those concepts in the languages they learn. |
21:36 | <@ToxicFrog> | Java, IMO, fails in this. |
21:36 | <@ToxicFrog> | Miserably. |
21:36 | <@jerith> | You either have to explain all of OO or handwave all the boilerplate away. |
21:36 | < MyCatVerbs> | ToxicFrog: you can teach peoples Haskell and Java simultaneously and show them how Haskell's constructs can be faked in Java. |
21:37 | <@ToxicFrog> | A possibility. |
21:37 | < MyCatVerbs> | jerith: but OO isn't actually all that much to learn with a decent teacher. |
21:37 | <@McMartin> | TF: Well, yes, I favor starting with LISP or Assembler, depending on which direction you're going. |
21:37 | <@McMartin> | But Java's a pretty good candidate for the slot in the middle. |
21:38 | <@jerith> | MyCatVerbs: public class MyApp { public static void Main() {System.stdout.println("Hello World!\n");}} |
21:38 | <@ToxicFrog> | Personally, I'm in favour of starting with SICP, and from there you can go in a bunch of directions, all of which will benefit from that. |
21:38 | <@McMartin> | Well, that's "starting with LISP". |
21:38 | <@ToxicFrog> | Yes. |
21:38 | <@McMartin> | I admit an ML or Haskell works fine, too. |
21:38 | | * jerith agrees with McMartin on that one. |
21:38 | <@McMartin> | And I concede that one could start at hardware and build up from there. |
21:38 | < MyCatVerbs> | jerith: I've seen the entire boilerplate for that burnt off in thirty minutes. |
21:38 | <@ToxicFrog> | The current trend, however, seems to be to start with Java - or C, which is even worse for teaching - and, err, stay there. |
21:39 | <@ToxicFrog> | With possibly brief forays into assembler or python. |
21:39 | <@McMartin> | OK, that's not true at good universities~ |
21:39 | <@jerith> | MyCatVerbs: Just about everyone I know who was taught Java as a first language uses voodoo programming. |
21:39 | <@McMartin> | (Stanford jumbles the order, but Stanford's undergrad CS is also about 20 places below Berkeley's) |
21:39 | < MyCatVerbs> | ToxicFrog: my university is, I believe, a good university. Here, they spend the first semester teaching C. They spend the second semester teaching Java and Haskell in parallel. |
21:40 | <@ToxicFrog> | McMartin: AFAICT, even the good ones - with some notable exceptions such as MIT and Berkely - start with Java or C. |
21:40 | < MyCatVerbs> | ToxicFrog: and Verilog too, at the same time. |
21:40 | <@ToxicFrog> | Even UG does, although we are actually in the process of changing that now. |
21:40 | <@ToxicFrog> | Thank god. |
21:40 | <@jerith> | My university is good at some tihngs, but horrible at CS. |
21:40 | <@McMartin> | A plus! |
21:40 | <@McMartin> | Stanford starts a Java, then moves to Lisp, then does Assembler, then you suffer at your professor's whim. |
21:40 | <@McMartin> | UMAA is OCaML, IIRC. |
21:41 | | * McMartin hasn't paid a lot of attention to other places. |
21:41 | <@ToxicFrog> | Here it's Java, then C and some python. |
21:41 | < MyCatVerbs> | ToxicFrog: we then spend the rest of the two/three years being taught in whatever we can get the problem done in. 99% of time, that will probably mean Java (particularly on group projects 'cuz it's what everybody else knows best) or Verilog ('cuz we do do some HDL). |
21:41 | <@jerith> | They start with Java and pretty much stay there except for brief forays into asm and C++. And Perl, if you choose to do the "operating systems" course. |
21:41 | < MyCatVerbs> | McMartin: whoa, shit, really? I thought OCaML wasn't allowed outside of France? =D |
21:41 | <@McMartin> | SML isn't allowed outside of New Jersey, so~ |
21:41 | < MyCatVerbs> | jerith: !? How does Perl come under "operating systems!?" |
21:41 | <@ToxicFrog> | Assembler is usually an elective depending on your area of focus; third and fourth year courses (those where you're actually writing code) require Java and C/++ knowledge, but other languages can generally be used by arrangements. |
21:42 | <@ToxicFrog> | Such as my use of Lua in Intelligent Systems. |
21:42 | <@jerith> | "Operating systems" apparently means "web programming in apache/mod_perl on a Linux box". |
21:42 | < MyCatVerbs> | ToxicFrog: I know some of the postgrads here are working in C++ because they've been given (crap) hand-me-down libraries to work to, written by the research fellows in C++. |
21:42 | <@ToxicFrog> | (someone else asked for Lisp and was denied, but this probably has something to do with the fact that he asked two-thirds of the way through the semester rather than at the start when he was told to) |
21:43 | | * ToxicFrog blinkblinks at jerith. |
21:43 | <@ToxicFrog> | Here, "operating systems" is "kernel-level programming" |
21:43 | <@ToxicFrog> | Including drivers, task switching, a bit of memory management... |
21:43 | < MyCatVerbs> | As it does in any other civilised place. |
21:43 | <@jerith> | ToxicFrog: That would make sense, yes. |
21:43 | <@McMartin> | Berkeley vacillated between "actual kernel-level hacking" and "building up a toy OS". |
21:43 | < MyCatVerbs> | I think fully nine tenths of my lecturers each have a copy of the dragon book in their shelves. |
21:43 | <@McMartin> | People seemed to learn a lot more from the latter. |
21:43 | <@jerith> | However, CS at UKZN is severely lacking in clue. |
21:44 | <@ToxicFrog> | McMartin: I'm not sure we have a "build a toy OS course" here. |
21:44 | < MyCatVerbs> | It's pretty much the only book which enjoys such status here, aside maybe from K&R and a few I might've missed. |
21:44 | <@ToxicFrog> | OTOH, the Operating Systems course I speak of was second year. |
21:44 | <@ToxicFrog> | So there may be a third or fourth year sequel where you build one from scratch. |
21:44 | <@McMartin> | Well, it wasn't entirely from scratch. |
21:45 | <@McMartin> | But you didn't deal with the mess of stuff that shows up when you try to do something For Real. |
21:45 | | * ToxicFrog nods |
21:45 | <@McMartin> | Which means you have time to actually cover the material, etc. |
21:46 | <@McMartin> | The BSD people tended to drown in edge cases. |
21:46 | <@ToxicFrog> | I should start selecting my courses for F07. |
21:46 | | * McMartin should get back to work~ |
21:46 | <@ToxicFrog> | So far the only one I have tagged is Embedded Systems. |
21:46 | <@ToxicFrog> | Which is the sequel to Digital Systems Design. |
21:46 | <@ToxicFrog> | Which is actually not CIS, but it's mad fun. |
21:46 | <@jerith> | I would *love* to spend a few semesters at a proper CS school. |
21:47 | <@ToxicFrog> | And has, I think, more "IT'S ALIIIIIIIIIIVE!" potential than most of the CIS courses. |
21:47 | <@jerith> | UKZN's engineering was pretty good (despite a couple of abysmal programming courses) but I'm picking up most of the CS theory by osmosis and blogs. |
21:47 | <@ToxicFrog> | Because, really, if maniacal laughter isn't socially acceptable when you've just written a CPU, what's the point? |
21:48 | <@jerith> | I wrote a CPU. Turns out the stupid "educational version" of our VHDL package wouldn't let me compile the whole thing together. |
21:48 | <@jerith> | Because I ran out of gates. |
21:49 | <@jerith> | (Plenty on the chip. Just not in the compiler unless you buy a commercial version.) |
21:49 | <@jerith> | And then I didn't have time to cut back before the project was due. :-/ |
21:51 | < MyCatVerbs> | ToxicFrog: ...what? There are people to whom the answer to that question is not immediately obvious? |
21:52 | <@ToxicFrog> | jerith: ew. |
21:52 | <@ToxicFrog> | We were limited only by the capabilities of the FPGA. |
21:53 | <@ToxicFrog> | And I think my CPU implementation used up 2% of the gates on it, so... |
21:54 | | * MyCatVerbs wants to try UTF-8 compatible regex in hardware. |
21:54 | < MyCatVerbs> | Betcha we could make Perl just fuckin' fly, hehehe. |
21:56 | | gnolam [Lenin@Nightstar-13557.8.5.253.se.wasadata.net] has quit [Quit: Bleh. :(] |
21:57 | | BlueTiger [~BlueTiger@Nightstar-567.natsoe.res.rr.com] has joined #Code |
22:03 | | BlueTiger [~BlueTiger@Nightstar-567.natsoe.res.rr.com] has quit [Quit: ] |
22:42 | | You're now known as TheWatcher[T-2] |
22:47 | | You're now known as TheWatcher[zZzZ] |
22:50 | | Syloq [Syloq@NetAdmin.Nightstar.Net] has quit [Connection reset by peer] |
22:59 | | ToxicFrog [~ToxicFrog@Admin.Nightstar.Net] has quit [Client exited] |
23:00 | | ToxicFrog [~ToxicFrog@Admin.Nightstar.Net] has joined #code |
23:00 | | mode/#code [+o ToxicFrog] by ChanServ |
23:04 | | Mischief [~Mischief@Nightstar-2775.ashbva.adelphia.net] has joined #code |
23:04 | < Mischief> | Members of CODE! I bring you things. |
23:04 | < Mischief> | http://www.deviantart.com/deviation/50730393/ |
23:07 | < MyCatVerbs> | Mischief: cute tatoos. |
23:07 | < Mischief> | MyCatVerbs: Thank you. |
23:09 | < MyCatVerbs> | A little visually cluttered. I think you'd have been better off shifting the camera angle (or the model) so that her stomach and hands would've been over a mostly-bare patch of turf, rather than mixed up in the bushes. |
23:10 | < Mischief> | I wasn't really going for looks, It was more like a... YES! I got it to work! |
23:10 | < Mischief> | After a week of studying and programming! |
23:12 | < Mischief> | Next step: I have to update my CG coding for Bloom, I've gotten it to work before. Where it's actually got some Gausion blur, but I only got the Ambient Lighting this time. I also need to fix the Anti-Aliasing, then fix the fade-distance... Change the Rain patterns, Clean up the area... |
23:15 | < MyCatVerbs> | Oh, shit. |
23:16 | < MyCatVerbs> | Sorry Mischief, I thought you were asking about the modelling and the composition, heh. ¬_¬ |
23:16 | < Mischief> | Heh... It's alright. I'm still trying to hardcode the engine. |
23:16 | < MyCatVerbs> | Gaussian blur? Looking for "Gausion Blur" algorithms on Google will lead you to dead ends. |
23:16 | < Mischief> | Especially since I'm doing it half-arsed. |
23:16 | < Mischief> | Sorry. :P |
23:16 | <@ToxicFrog> | Gaussian, yes. |
23:16 | <@ToxicFrog> | And hardcoding == bad! |
23:16 | < Mischief> | Indeed! |
23:17 | < Mischief> | MyCatVerbs: You could just searched Bloom Effect on google images. |
23:18 | < Mischief> | And by Half-arsed, I mean I'm still learning arrays in Visual C++.. |
23:18 | < Mischief> | Somehow... SOMEHOW, I've gotten this far. |
23:18 | <@ToxicFrog> | It never ceases to amaze me the number of people who pick up a totally unfamiliar, difficult to learn language and decide that their first project will be a fully-fledged 3d game engine. |
23:19 | < MyCatVerbs> | ToxicFrog: I admire their ambition. |
23:19 | < MyCatVerbs> | ToxicFrog: besides, even if they fuck it up, fucking up a project of that magnitude teaches you practical lessons you're not likely to learn elsewhere. :/ |
23:20 | <@ToxicFrog> | True. |
23:20 | <@ToxicFrog> | Although one has to be careful not to pick up habits that will have to be unlearned later. |
23:20 | < Mischief> | http://www.geocities.com/tsune_l/gl.jpg Example of Bloom in the Engine I'm using |
23:21 | <@McMartin> | I think it's more common for people to pick up a totally unfamiliar, difficult to learn language and decide that their first project will be a Generic Middleware Layer. |
23:21 | | Syloq [Syloq@NetAdmin.Nightstar.Net] has joined #code |
23:22 | < Mischief> | Actually... I know Visual C# already |
23:23 | < Mischief> | I'm moving backwards, really, back to C++ |
23:23 | <@ToxicFrog> | ...I'm not sure if that's really backwards. |
23:23 | <@ToxicFrog> | Sideways, maybe. |
23:23 | < Mischief> | What about diagonally? Tic-Tac-Toe, I win! |
23:24 | | * ToxicFrog pits Mischief against his tic-tac-toe playing bot |
23:24 | < MyCatVerbs> | C# is GC'd, managed, etc. |
23:24 | < MyCatVerbs> | C++ is raw, fuck-up central. |
23:24 | < Mischief> | I've learned to hate two words. |
23:24 | <@ToxicFrog> | MyCatVerbs: yes, which is why I hesistate to call it forwards. |
23:24 | < MyCatVerbs> | No, half-baked. That's a more accurate way of putting it. |
23:24 | <@ToxicFrog> | On the other hand, C++ actually runs on stuff. |
23:24 | < Mischief> | .... My two words that I HATE hearing... Syntax Error. |
23:24 | < MyCatVerbs> | Nahhh. |
23:25 | < MyCatVerbs> | Mischief: trust me, you'll get used to it eventually. |
23:25 | < Mischief> | Compiling SceneLighting.c...... SYNTAX ERROR on line 443 |
23:25 | | ReivSLEP is now known as Reiver |
23:25 | <@ToxicFrog> | Mischief: syntax errors aren't a big deal, especially if you have a decent compiler. |
23:25 | < MyCatVerbs> | Mischief: over time, you'll learn to understand those messages and what they *mean* instead of what they say. |
23:25 | <@ToxicFrog> | And the more experience you get, the fewer of them you'll make. |
23:25 | <@ToxicFrog> | Unless they're template-related. |
23:25 | < Mischief> | I've gotten three to date, but It took me an hour to fix. |
23:25 | <@ToxicFrog> | In which case you're pretty much fucked. |
23:25 | <@ToxicFrog> | ... |
23:26 | < Mischief> | Because I edit one variable, and I find that it leads to a whole TREE of codes and arrays that are BORKED. |
23:26 | < MyCatVerbs> | Mischief: it's a surprisingly portable skill, too. Once you've learned to grok gcc's syntax error reports, you'll find MSVC's or OCaML's or javac's or GHCs all make sense, wierdly enough. |
23:26 | < MyCatVerbs> | Even if they're *nothing* alike... I think it's a mindset thing. |
23:26 | < Mischief> | Idly, I use VC2005+ for Compiling |
23:26 | < MyCatVerbs> | Mischief: it sounds like you haven't properly understood the exact semantics of one of the variables or functions you're passing around... :/ |
23:27 | < Mischief> | No-no, Arrays cat, arrays. |
23:27 | <@Vornicus> | Usually when I start coding something, I will just bang it out, and then try to run it... and when it's done throwing syntax errors and failing tests, I'm pretty close to done. |
23:27 | < Mischief> | It was in the default programming, I had to modify it in torque's code to use the new CG code I was using. |
23:28 | < Mischief> | You can imagine my code as being a stickynote with a peice of gum and string attached which connects the engine to a whole nother' peice of hardware. |
23:29 | < MyCatVerbs> | ...we usually call those, "glue layers." |
23:29 | < MyCatVerbs> | Unix philosophy canon is that you're supposed to keep those as thin as humanly possible, if you can afford to. |
23:29 | < Mischief> | IT's my skillful, indirect way of saying, "I'm a script kiddy" |
23:30 | <@ToxicFrog> | ...no you aren't. |
23:31 | < MyCatVerbs> | No, you aren't. You're writing your own stuff, not reusing boxed up crap without understanding how any of it works. |
23:32 | <@ToxicFrog> | MyCatVerbs: WRT error reports: I find that even once I grok gcc's error messages - which has been the case for years - MSVC's remain completely incomprehensible. |
23:32 | <@ToxicFrog> | That compiler has asstastic output. |
23:34 | < MyCatVerbs> | ToxicFrog: really? But OCaML's are all translated from French and they make *perfect* sense. |
23:34 | <@ToxicFrog> | OCaML wasn't written by MS. |
23:34 | <@McMartin> | OCaML, all snark aside, is Really Quite Good. |
23:34 | <@ToxicFrog> | MSVC's error messages are as helpful as its documentation. |
23:34 | < MyCatVerbs> | Then again, there *are* the two magic letters of doom and shittiness tacked on to the front... "MS" *shudders* |
23:35 | <@McMartin> | A lot of the researchers here make their prototypes with it. |
23:35 | < MyCatVerbs> | ToxicFrog: when you say "its documentation" should I be thinking of the six paper tons of automatically-generated useless tripe on MSDN here? |
23:35 | <@McMartin> | Hey now, QBASIC was OK~ |
23:35 | <@ToxicFrog> | MyCatVerbs: yep. |
23:35 | < MyCatVerbs> | ToxicFrog: oh, daer. |
23:35 | < MyCatVerbs> | *dear (what the FUCK is wrong with me? ;-;) |
23:35 | <@ToxicFrog> | McMartin: for a BASIC. |
23:35 | | Janus [~Cerulean@Nightstar-10302.columbus.res.rr.com] has joined #Code |
23:35 | <@McMartin> | It was better than standard Pascal, too~ |
23:36 | < MyCatVerbs> | Mischief: "Why Pascal is not my favourite programming language"<--- that's not saying much. >> |
23:37 | <@McMartin> | MSVC++6 had the unfortunate quality of actually following the standard of its day. |
23:37 | <@McMartin> | MCV: Famous essay from Back In THe Day. |
23:37 | < Mischief> | Back, My apologies |
23:37 | <@McMartin> | It's worth noting that none of his objections applied to Borland's Turbo Pascal. |
23:37 | < Mischief> | I know some Assembly, none of Pascal though |
23:37 | <@McMartin> | Don't bother. |
23:38 | <@McMartin> | Also, "Assembly" is meaningless without an architecture attached. |
23:38 | <@McMartin> | I'll guess "x86 Assembly" in the absence of a qualifier. |
23:38 | <@ToxicFrog> | Don't bother. If you want something vaguely pascal-like, try OO Turing - or skip it entirely and pick up a decent HLL. |
23:38 | < Mischief> | heh |
23:39 | < Mischief> | I just understood about 5 days ago about Manifest Files. |
23:39 | < Mischief> | And all of the hell that occupanies them when compiling in MS software |
23:39 | <@ToxicFrog> | One aspect of a HLL is that it doesn't require manifest files~ |
23:39 | <@ToxicFrog> | For that matter, C and C++ don't. |
23:39 | < Mischief> | Yes, the y do |
23:39 | <@ToxicFrog> | MSVC does, but this is because MSVC is ass. |
23:40 | < Mischief> | Well, They do in that |
23:40 | <@ToxicFrog> | But this dependency is an artefact of the build system, not the language. |
23:40 | < MyCatVerbs> | Mischief: no good compilers do. |
23:40 | < Mischief> | I build it for windows. |
23:40 | < Mischief> | I don't exactly understand the meaning for a Manifest File, I just know how to build it. |
23:41 | <@ToxicFrog> | Mischief: there are, in fact, compilers that will generate windows binaries that are not MSVC. |
23:41 | < Mischief> | VS was free, though. |
23:41 | <@ToxicFrog> | ...and? |
23:41 | < Mischief> | ...Not that I really CARE. I am a pirate. |
23:41 | <@McMartin> | I don't believe I've ever touched a "Manifest" file. |
23:41 | <@ToxicFrog> | So's Dev-CPP+mingw. |
23:41 | < MyCatVerbs> | Mischief: so's Bloodshed DevC++. |
23:41 | <@McMartin> | Unless you mean Resource Files. |
23:41 | < Mischief> | I've never heard of it. |
23:42 | <@ToxicFrog> | Which gives you a VC-like IDE, and uses gcc for the build. |
23:42 | <@ToxicFrog> | Mischief: DevC++ is a C/++ IDE similar to Visual Studio. |
23:42 | < Mischief> | Is it for the windows i386 platform? |
23:42 | <@McMartin> | Yes. |
23:42 | < Mischief> | Interesting |
23:42 | < MyCatVerbs> | Mischief: that's a very good compiler to get for Windows. It's a decent IDE (written in Delphi, ironically) coupled with a pre-setup working port of gcc. |
23:42 | <@ToxicFrog> | Windows has no other platforms, so, yes. |
23:42 | < MyCatVerbs> | ToxicFrog: Alpha! ^^ |
23:42 | <@McMartin> | (Not true! It also has the x86_64 platform) |
23:42 | < Mischief> | Can it compile to xcode, makefile, i386, AND 86x? |
23:42 | < MyCatVerbs> | (sorry, they stopped selling it not) |
23:42 | <@ToxicFrog> | Mischief: you don't "compile to Makefile". |
23:43 | < MyCatVerbs> | Mischief: "compile to makefile?" |
23:43 | <@ToxicFrog> | Makefiles are part of the build system. |
23:43 | < Mischief> | Sorry. |
23:43 | < Mischief> | I know. Idiotic |
23:43 | <@ToxicFrog> | And DevC++ does in fact use them. |
23:43 | <@McMartin> | Though they are not, in fact, actual Makefiles. |
23:43 | < Mischief> | I'm watching T.V WE ALL SAW THAT |
23:43 | < MyCatVerbs> | Mischief: it includes Makefiles, yes, because they're sensible and mostly neccessary. |
23:43 | < MyCatVerbs> | Er, support for, I mean. |
23:43 | <@ToxicFrog> | Also, "86x"? |
23:43 | < Mischief> | x86, T.V |
23:43 | < Mischief> | It does things to my brain.. |
23:43 | <@ToxicFrog> | If you mean "x86", this is generally a synonym for "i386" |
23:44 | < Mischief> | There are other platforms though |
23:44 | <@McMartin> | gcc targets everything. |
23:44 | < Mischief> | Or I may mean 64.. I'm not even sure now. |
23:44 | < Mischief> | In any case, Windows, Mac, And Linux. The engine supports it |
23:44 | < Mischief> | It has the Xcode and Linux code included. |
23:44 | < MyCatVerbs> | Mischief: it compiles to target x86, yes. I believe it'll also let you set the -march flag to target higher CPUs (for example, to emit instructions specifically for SSE and 3dNow! which aren't supported by basic 386 chips). |
23:44 | <@ToxicFrog> | Mischief: if you're only interested in windows apps - and since you're using MSVC, I have to conclude that that is in fact the case - you only need to worry about x86 and AMD64. |
23:44 | <@ToxicFrog> | Both of which gcc will compile to without difficulty. |
23:45 | < MyCatVerbs> | GCC compiles to *everything*, seriously. |
23:45 | < Mischief> | Toxic, when I start producing REAL games, I'll be targetting all platforms.. |
23:45 | <@ToxicFrog> | It will also compile to everything else, but this also requires building binaries for an OS that runs on everything else. |
23:45 | <@McMartin> | In all seriousness, the only platforms that have compilers that aren't gcc are SPARC, x86, and IA64. |
23:45 | < Mischief> | ...SPARC isn't? |
23:46 | <@McMartin> | Sun has specialized compilers. |
23:46 | <@McMartin> | SPARC is supported by gcc too. |
23:46 | | * Mischief forgets what SPARC is, goes to google. |
23:46 | <@ToxicFrog> | Mischief: "there are compilers for SPARC other than gcc" |
23:46 | < MyCatVerbs> | Mischief: so you'll need to use cross-platform libraries for everything. For games, I would suggest SDL. Simple Directmedia Library. |
23:46 | <@ToxicFrog> | MyCatVerbs: he's using Torque. |
23:46 | < Mischief> | YES! |
23:46 | <@ToxicFrog> | He's not writing an engine from scratch. |
23:46 | <@ToxicFrog> | Torque is already cross-platform. |
23:46 | <@McMartin> | Indeed. |
23:46 | < Mischief> | But I am fixing and modifying a lot of code. |
23:47 | < MyCatVerbs> | Mischief: Scalable Processor ARChitecture. It's a line of chips that Sun puts in servers and used to use in high end workstations. |
23:47 | < Mischief> | I understand enough to know Torque's coding baffles me to an EXTREME level.. |
23:47 | <@McMartin> | Heh. If you want real fiery doom, check out UQM's core. |
23:47 | <@McMartin> | AKA "Even coredev isn't touching that with an 11-foot pole" |
23:47 | < Mischief> | As much as I doom, I prefer living with a brain not engulfed in fire. |
23:48 | < Mischief> | ...Hopefully, you aren't talking about The Ur-quan Masters. |
23:48 | <@ToxicFrog> | Mischief: http://www.bloodshed.net/devcpp.html -- the devC++ we were talking about earlier |
23:48 | <@ToxicFrog> | Yes, he is. |
23:48 | <@ToxicFrog> | McM is one of the UQM developers. |
23:48 | < Mischief> | fun game. |
23:48 | <@McMartin> | And one of the Long-Running Tasks is to turn the code into a Non-Screaming Horror. |
23:48 | <@McMartin> | The code we originally inherited actually predates the wide availability of ANSI C compilers. |
23:48 | < Mischief> | Heh. |
23:49 | < Mischief> | So it's pre-cursor tech? |
23:49 | <@ToxicFrog> | ISTR you mentioning something about cthonian threading, too. |
23:49 | | * ToxicFrog blinkblink |
23:49 | <@McMartin> | Well, that's the 3DO's fault. |
23:49 | <@ToxicFrog> | "cthreads - the cthonian threading library" |
23:49 | | * Mischief idly, loves anything precursor... Especially things like reanimating machines that have been idle for millions of years but are super advanced.. |
23:49 | <@McMartin> | The first entry in the commit log is 'initial import after Mega-Patch' was removing the conditaional compilation around every function definition that would warp it into K&R or ANSI mode depending on what the compiler demanded this week. |
23:50 | < Mischief> | .... |
23:50 | < Mischief> | ... I need new pants, hold on. |
23:50 | <@McMartin> | And yeah, there was threading horrors, but that was because the 3DO threading model was clearly (a) asynchronous, and (b) fire-and-forget, and pthreads is, by definition, neither. |
23:50 | <@McMartin> | So yeah, that was a lot of work. |
23:50 | <@McMartin> | But humanity did not understand multithreading in 1993, so I cut it a bit of slack. |
23:50 | <@ToxicFrog> | Remind me, what does asynchronous mean in this context? |
23:51 | < Mischief> | anti-synchronized? |
23:51 | <@McMartin> | You stop threads by telling the monitor to kill them immediately. |
23:51 | < Mischief> | Ouch.. |
23:51 | <@McMartin> | Yeah. I don't think we worked out that this was Never, Right, Ever until, like, 1997. |
23:51 | < Mischief> | Which reminds me of a coding error I made.. |
23:51 | <@ToxicFrog> | Ok, that's not my mental definition of (a)synchronous WRT threads. |
23:52 | <@McMartin> | (Many of the JVM's flaws are because its initial thread model was b0rked) |
23:52 | <@McMartin> | I may be using the wrong word. |
23:52 | < Mischief> | I looped a definition in the Bloom effect coding... And it kept raising the blurryness/brightness... And uh.. It went out of my monitor's definition... |
23:52 | < Mischief> | BWHAHAHA. The monitor had to shut off on my laptop. |
23:52 | <@McMartin> | But basically, the 3DO code only used KillThread(). |
23:52 | <@ToxicFrog> | I think of synchronous/asynchronous as applying to interthread communication. |
23:53 | <@McMartin> | Hum. Yes. |
23:53 | <@McMartin> | Let's go with "asynchronous kills" |
23:53 | <@ToxicFrog> | That works. |
23:53 | < Mischief> | .... Mcmartin.. Toxic Frog.... That wasn't fair... |
23:53 | < Mischief> | I reinvented the wheel... |
23:53 | <@McMartin> | There was an additional, particularly nasty problem, but it was SDL's fault. |
23:53 | <@ToxicFrog> | That reminds me. |
23:54 | < Mischief> | So to say.. The bloom effect is here in Torque's libraries on the site... ._.; |
23:54 | <@ToxicFrog> | Link me to Sable please? |
23:54 | <@McMartin> | In particular, SDL, unlike pthreads, doesn't allow fire-and-forget threads. |
23:54 | <@ToxicFrog> | Mischief: I was about to ask... |
23:54 | <@McMartin> | So we kept leaking thread IDs. |
23:54 | < Mischief> | Oh, do you guys know anything about uhm... Uhh... Dwarf Fortress is it? |
23:54 | <@McMartin> | http://www.stanford.edu/~mcmartin/sable/ |
23:54 | <@ToxicFrog> | Fun game, terrible interface, creator's either an asshole or delusional. |
23:54 | < MyCatVerbs> | McMartin: you couldn't, uh, program most of the thread functions to self-destruct after a while, could you? |
23:54 | < Mischief> | Toxic: You mean the game I mentioned? |
23:55 | <@ToxicFrog> | Mischief: yes. |
23:55 | <@McMartin> | MCV: They did. The problem was that, as the thread that spawned them wasn't reading the return values, the threads would stay zombie. |
23:55 | < MyCatVerbs> | Mischief: presumably, since he actually gets along well with McMartin. XD |
23:55 | <@ToxicFrog> | MyCatVerbs: that's not the problem. |
23:55 | <@ToxicFrog> | The problem is that after the thread exits, you have to look at the return value. |
23:55 | | * McMartin solved that basically by writing a thread manager. |
23:55 | <@ToxicFrog> | Or the thread parts stick around forever. |
23:55 | <@ToxicFrog> | The logical solution to this is - yes. |
23:55 | <@McMartin> | This also let us do thread-local storage, which we don't use much, but which might be lootable later. |
23:56 | < MyCatVerbs> | McMartin: oh, I see. Instinctive ugly hack would be to put in a quick loop to check for zombies and run it once every fiftieth frame or so. |
23:56 | <@McMartin> | Since SDL doesn't actually have thread-local storage. |
23:56 | <@ToxicFrog> | That might be gankeable for a C version of libsurtr. |
23:56 | < Mischief> | OH! That also reminds me on a theory I have. |
23:56 | <@ToxicFrog> | If I ever write one. |
23:56 | <@McMartin> | No SDL function for "is this thread a Zombie", just "block until this thread quits, or clean it up if it already has" |
23:56 | < Mischief> | May I get the opinions of you three? |
23:56 | < MyCatVerbs> | With a list of thread IDs being kept in a pool maintained by wrappers around all the thread spawning functions. |
23:56 | <@McMartin> | As I said, this was basically a "hole" in SDL. |
23:56 | < MyCatVerbs> | Mischief: no. Those two, yes. I'm clueless. |
23:56 | <@McMartin> | pthreads handles it cleanly, but we weren't using pthreads because Win32 (and AmigaOS, etc.) don't. |
23:57 | <@McMartin> | Fire away |
23:57 | < Mischief> | Oh, It's just a theory, Cat. I don't think it requires much coding know how, but it can help in the logical, not ethical part of it. |
23:57 | < MyCatVerbs> | McMartin: I presume you're using wrappers to build a thread manager by which you offer a common set of semantics across all the different platforms? |
23:57 | <@ToxicFrog> | MyCatVerbs: no, he's using SDL. |
23:58 | <@ToxicFrog> | As he said several times. |
23:58 | <@McMartin> | SDL includes a thread abstraction. |
23:58 | < MyCatVerbs> | ToxicFrog: ...I did not know that SDL included threading. Stupid me. |
23:58 | <@ToxicFrog> | Which, oddly, is a wrapper which offers a common set of semantics across all the different platforms. |
23:58 | < Mischief> | Do you know how in interiors, a game engine will shut out the world so the game only has to really compute sectors of the interiors so that it relieves strain on the processor to give the system optimization in FPS? while Windows only view certain parts of the outside world? |
23:58 | <@McMartin> | Mischief: The techspeak term you seek is the Coolest Techspeak Ever. |
23:58 | <@McMartin> | "View Frustum Culling" |
23:58 | <@ToxicFrog> | McMartin: not exactly. |
23:58 | < Mischief> | Kind've. |
23:58 | <@ToxicFrog> | Since you also have to cull on the walls of the building, etc. |
23:58 | < MyCatVerbs> | Mischief: VIS-ing calculations is the cheap, simple, inefficient way . |
23:59 | <@ToxicFrog> | Which is occlusion culling. |
23:59 | <@McMartin> | Oh, right, walls. |
23:59 | <@McMartin> | But that's not as much fun to say as View Frustum Culling. |
23:59 | <@ToxicFrog> | Yers. |
23:59 | < MyCatVerbs> | Mischief: occlusion culling is the harder, more efficient way. |
23:59 | <@ToxicFrog> | View Frustrum Culling is "don't render stuff that's not on screen" |
23:59 | < Mischief> | My theory, called Shard, is my coding system I am going to try and make that will allow me to create maps that are infinite. |
23:59 | <@ToxicFrog> | Occlusion Culling is "don't render stuff that the player can't see" |
23:59 | < Mischief> | They never end, no lag, and the system doesn't need to load except when you start it,. |
23:59 | <@McMartin> | Well, procedural terrain isn't new, of course. |
23:59 | <@ToxicFrog> | As for actual /algorithms/ for this, no idea, check cone3d. |
--- Log closed Tue Mar 13 00:00:05 2007 |