--- Log opened Mon Jun 23 00:00:52 2014 |
00:08 | | Turaiel[Offline] is now known as Turaiel |
00:12 | | Orthia [orthianz@Nightstar-mvf.9c1.224.119.IP] has quit [Ping timeout: 121 seconds] |
00:13 | | Orthia [orthianz@Nightstar-mvf.9c1.224.119.IP] has joined #code |
00:13 | | mode/#code [+o Orthia] by ChanServ |
00:28 | | himi [fow035@Nightstar-v37cpe.internode.on.net] has quit [Ping timeout: 121 seconds] |
00:31 | | gnolam_ [lenin@Nightstar-lgrapr.tbcn.telia.com] has quit [[NS] Quit: Z?] |
00:58 | | Reiv [NSwebIRC@Nightstar-q8avec.kinect.net.nz] has quit [Ping timeout: 121 seconds] |
00:58 | | [R] [rstamer@genoce.org] has quit [The TLS connection was non-properly terminated.] |
01:00 | | Reiv [NSwebIRC@Nightstar-q8avec.kinect.net.nz] has joined #code |
01:00 | | mode/#code [+o Reiv] by ChanServ |
01:01 | | [R] [rstamer@Nightstar-d7h8ki.org] has joined #code |
01:16 | | Derakon[AFK] is now known as Derakon |
01:39 | <&McMartin> | Urk. |
01:39 | <&McMartin> | This isn't going to end well. |
01:40 | | * McMartin has been playing with full-screen scrolling on the C64, and you can't actually execute the necessary memcpy within VBLANK. |
01:40 | <&McMartin> | That means I'll need to double-buffer the text screen. |
01:41 | <&McMartin> | Which is a thing you can totally do, mind you |
01:51 | <@Reiv> | fullscreen scrolling? |
01:51 | | himi [fow035@Nightstar-q9amk4.ffp.csiro.au] has joined #code |
01:51 | | mode/#code [+o himi] by ChanServ |
01:52 | <&Derakon> | Reiv: like in, say, Super Mario Bros. |
01:52 | <@RchrdB> | McMartin, could you interlace it? |
01:52 | <@RchrdB> | Shift along half the rows on odd frames, the other half on even frames. |
01:53 | <&McMartin> | RchrdB: Well, no |
01:53 | <&Derakon> | Wouldn't that make the display all jaggy? |
01:53 | <&McMartin> | Basically, I have a 1K, 40x25, tile matrix. |
01:53 | <&McMartin> | And I can display it offset to the right by 0-7 pixels. |
01:54 | <&McMartin> | When I scroll left from 0, I need to copy the whole screen matrix one character down, create a new rightmost column, and set it back to 7. |
01:55 | <&McMartin> | That operation takes longer than VBLANK, which means half the screen judders to the right a full character for one frame every eight frames. |
01:55 | <@RchrdB> | Derakon, I think so! |
01:55 | <&McMartin> | Now, the trick is, I have six candidates for where screen memory can be |
01:56 | <&McMartin> | So I can create the scrolled screen on my own time, and then when the time comes to display it, I can just flip to a different candidate, and then copy that one back to the original to prepare for 8 frames from now. |
02:00 | <&McMartin> | (The NES also can't update its tile RAM that fast, but by default it has two screens worth of tile RAM and the panning hardware can combine them, so you just fill in on one end as you consume it off the other) |
02:02 | <&McMartin> | As for why jaggies and stutters are bad... |
02:02 | <&McMartin> | https://hkn.eecs.berkeley.edu/~mcmartin/zappy_bird_sans_bird.png |
02:02 | <&McMartin> | This really has to scroll both fast and smooth |
02:02 | <&McMartin> | Especially since I'll be using hardware hit detection. |
02:03 | | Ogredude_ is now known as Ogredude |
02:06 | <@Reiv> | McMartin: ... are you making C64 flappy bird |
02:07 | <@Azash> | Why not SNES? |
02:08 | <@RchrdB> | I think because McM has C64 nostalgia but not SNES nostalgia. |
02:09 | <@RchrdB> | I also believe that the SNES is a really complicated piece of hardware to use, with a -really- slow CPU (even for the day) and tons of hardware acceleration for all sorts of things that you'd have to set up by poking shakily-understood values into poorly-documented hardware registers. |
02:11 | | celticminstrel [celticminst@Nightstar-18vggg.dsl.bell.ca] has quit [Ping timeout: 121 seconds] |
02:13 | <&McMartin> | Reiv: No, I'm making a spaceship based tunnel racer |
02:13 | <&McMartin> | Zappy Bird was the joke working title, but the real working title is now "Coreflight". |
02:14 | <&McMartin> | Also, the C64 was the first machine I learned inside and out; I was writing machine code routines for it, assembled into decimal by hand with a reference card and pencil and paper, as a preteen |
02:14 | <&McMartin> | I know its assembly language cold, I can make it do things that it was never really designed to do, and emulation of the system is good enough that those tricks actually work in emulation as well as they do on actual hardware. |
02:15 | <@RchrdB> | Much of it cycle-accurate, right? |
02:15 | <&McMartin> | Screw cycle-accurate. Much of it is gate accurate. |
02:16 | <@Reiv> | That's fantastic. |
02:16 | <&McMartin> | (Cycle-accurate simulation of the CPU vs the progress of the electron gun in the CRT it's hooked up to is a basic level of accuracy you need to really run *any* of this generation of machines in emulation) |
02:17 | <&McMartin> | http://bumbershootsoft.wordpress.com/2014/05/04/cycle-exact-delays-on-the-6502/ |
02:17 | <&McMartin> | For example |
02:17 | <&McMartin> | This produced some very unintuitive effects in emulation |
02:18 | <&McMartin> | But it was tested on actual hardware and it in fact produces exactly the same effects in the same way. |
02:18 | <&McMartin> | So it's something strange the VIC-II chip did, not a shortcut VICE took. |
02:19 | <&McMartin> | Anyway, all tha tsaid |
02:19 | <&McMartin> | I know basically nothing of the SNES's hardware offerings, and it uses the 65816 chip, whose assembly language I don't know nearly as well and which I do not have as developed a toolchain for developing with. |
02:20 | <&McMartin> | The 65816 is just "real" enough that assemblers targeting it tend to be intended as compiler backends instead of actual development environments. |
02:20 | <&McMartin> | And if I'm going to do that level of messing around, the GBA is the obvious choice of target. =P |
02:22 | <@RchrdB> | Why the GBA? |
02:23 | <&McMartin> | It's a level of power roughly comparable to the SNES, but it's got a much more civilized hardware set |
02:23 | <&McMartin> | By which I largely mean "it is not utterly trivial, but it is straightforward, to set up GCC to target it" |
02:23 | <&McMartin> | It's just an ARM chip with a bunch of memory-mapped I/O. |
02:23 | <&McMartin> | There are insane things you can do with that, but you don't *have* to, and most people did not. |
02:24 | <&McMartin> | The ones that did are the ones that managed to make their GBA games have loading screens despite being, you know, cartridges. |
02:25 | <&Derakon> | Hooray for compressed data. |
02:25 | <&McMartin> | It's a bit more than that, actually. The GBA has a 16-bit bus to the cartridge ROM and a 32-bit bus to its RAM. ARM chips have two sets of RISC-style instructions, one optimized for 16-bit, and one for 32-bit. |
02:25 | <&Derakon> | Star Ocean on the SNES has some ridiculous compression scheme going on to fit all its graphics in, AIUI. |
02:26 | <&McMartin> | The 32-bit stuff is more instruction-to-operation-efficient, so if you need to compute things fast, you can compile those routines to the 32-bit ISA and copy it into RAM as part of setup. |
02:27 | <&McMartin> | ... I may be confusing the GBA with the DS here, now that I think of it. |
02:27 | | celticminstrel [celticminst@Nightstar-18vggg.dsl.bell.ca] has joined #code |
02:27 | | mode/#code [+o celticminstrel] by ChanServ |
02:27 | <&McMartin> | But their hardware is similar. |
02:28 | <@RchrdB> | The GBA was a 16MHz ARM7 with a Z80 coprocessor. |
02:28 | <&McMartin> | There's some extra stuff after ARM7 when setting up GCC, but I forget what it was |
02:28 | <&McMartin> | I beleive it meant "and there is no FPU" |
02:29 | <@RchrdB> | The Z80 was available for use by GBA games for offloading making weird sound effects onto, and it was also used to run old GB and GBC games on. |
02:29 | <&McMartin> | Aye |
02:30 | | himi [fow035@Nightstar-q9amk4.ffp.csiro.au] has quit [Ping timeout: 121 seconds] |
02:31 | <@RchrdB> | ARM cores without FPUs are pretty common. I believe that the DS had one but I'm not sure if the 3DS has one too. |
02:33 | <@RchrdB> | Yeup, think so. Interesting article about approximating sin() in fixed-point on the Nintendo DS: http://www.coranac.com/2009/07/sines/ |
02:33 | <&McMartin> | The DS did 3D rendering, which tends to be FP-heavy. |
02:33 | <&McMartin> | But I haven't looked at it closely |
02:34 | <@RchrdB> | Taylor series approximations turn out to be way faster than LUTs. =) |
02:34 | | Attilla [uid13723@Nightstar-ed0oqj.irccloud.com] has quit [[NS] Quit: Connection closed for inactivity] |
02:37 | <@RchrdB> | So wikipedia links to http://www.arm.com/products/processors/classic/arm9/arm946.php as one of its sources about the ARM9 in the original DS |
02:37 | <@RchrdB> | that article explains that the chip they were using had some fixed-point DSP features |
02:37 | <@RchrdB> | but it's a sold as a soft core and you get to choose whether or not you want the FPU when you send it off to your chip fab |
02:38 | <@RchrdB> | Aha! Of course homebrewers would know |
02:39 | <@RchrdB> | http://osdl.sourceforge.net/main/documentation/misc/nintendo-DS/homebrew-guide/H omebrewForDS.html says «Neither CPU of the DS has a Floating Point Unit (FPU), so all floating-point operations must be emulated» |
02:39 | | * McMartin nods |
02:39 | <&McMartin> | Yeah |
02:39 | <&McMartin> | It was the GBA homebrewers that I was using as reference before. |
02:39 | <&McMartin> | I didn't do anything beyond some basic graphical demos with it though. |
02:39 | <&McMartin> | I wonder if they survive. |
02:40 | <&McMartin> | It looks like they do. I wonder if they actually work. |
02:40 | | mode/#code [+o Ogredude] by ChanServ |
02:40 | | Nemu [NeophoxProd@Nightstar-kpuumf.gv.shawcable.net] has quit [Ping timeout: 121 seconds] |
02:41 | | mac [harlow@Nightstar-9hnfdm.il.comcast.net] has joined #code |
02:43 | <@RchrdB> | I'm skimming the stuff in that guide about rendering. |
02:44 | <@RchrdB> | It sound like the 2ds had a pair of 2d graphical accelerators almost identical to the GBA's, plus one 3d accelerator. |
02:44 | <@RchrdB> | I think that those 2D accelerators are all working in fixed-point. |
02:45 | <&McMartin> | Hum |
02:46 | | VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has quit [[NS] Quit: Program Shutting down] |
02:46 | <@RchrdB> | Oh the 3D one sounds quite nice, for a fixed-function pipeline. It has hardware T&L, texture mapping (but not blending), alpha blending and, star of the show... |
02:46 | | VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has joined #code |
02:46 | <@RchrdB> | ...according to that homebrew article, it has a hardcoded "toon shader". |
02:46 | <@RchrdB> | That might explain why most DS games have such *similar* cartoony appearances. |
02:47 | <@RchrdB> | so it has fixed-function cel shading, as opposed to the modern common thing of doing cel-shading in a programmable fragment shader |
02:47 | <&McMartin> | Interesting choice of tradeoff. |
02:48 | <@RchrdB> | That makes perfect sense to me, given that they want to save every Joule possible, and *most* DS games did want cel shading. |
02:48 | <@RchrdB> | Pick off the one fragment shader that every game studio would've written by hand and put it right into a fixed pipeline ;) |
02:48 | <&McMartin> | hrm |
02:48 | <&McMartin> | All GBA emulators I see available look dodgy, shitty, or both. I have no idea how to test these binaries. |
02:49 | <@RchrdB> | oh and importantly, the NDS's 3d accelerator wants all of its inputs in fixed-point formats, too. |
02:49 | <@RchrdB> | This is actually a thing that OpenGL ES does, too. |
02:50 | <@RchrdB> | + it only supports ~2k triangles on screen, but that's plenty for drawing pokémon. |
02:50 | <&McMartin> | There were some flightsims! |
02:50 | <&McMartin> | Or afterburner-y games. |
02:50 | <&McMartin> | Those were the ones I saw with loading screens, and I bet it was to get access to 32-bit instructions. |
02:51 | | * Derakon reads up a bit. |
02:51 | <&Derakon> | When you can't push a lot of polygons around, toon shaders are your friend. |
02:51 | <@RchrdB> | No no no no no no no. In my headcanon, there are no gameboy games other than pokémon and they dispensed with the ridiculous cartridge changing system and just soldered a pokémon ROM right in there |
02:51 | <&Derakon> | So I'm not surprised at all by that choice. |
02:52 | <@RchrdB> | Also in my headcanon, the Wii didn't have an optical drive, it had a copy of MarioKart burnt into a ROM and soldered on for quicker track loading |
02:52 | <@RchrdB> | ;-; |
02:52 | <&Derakon> | Your headcanon has extremely expensive videogames, RchrdB~ |
02:52 | <@RchrdB> | well kinda |
02:52 | <&Derakon> | I mean, that's basically the arcade approach to videogames. |
02:52 | <@RchrdB> | It's not like it's worth putting a game that isn't MarioKart into a Wii. |
02:52 | <@RchrdB> | Yes, but it's just that any game you put into a Wii⦠you could improve your life by taking that game out and putting MarioKart in instead. |
02:53 | <&McMartin> | s/MarioKart/Super Mario Galaxy/ |
02:53 | <@RchrdB> | It's already the optimal one, you don't need to keep looking. |
02:53 | <@RchrdB> | BURN THE HERETIC |
02:53 | | * Derakon eyes his Wii game collection, notes the total lack of any Mario Kart. |
02:53 | <@RchrdB> | ALL THE HERETICS |
02:53 | <&Derakon> | Really all you need is F-Zero GX, and that's a Gamecube game! |
02:55 | <@RchrdB> | McMartin, so uh yeah, I find the nintendo handheld hardware really cute; they didn't waste energy on an FPU, but instead have a really good GPU offload and do even the rendering in fixed-point. |
02:56 | <@RchrdB> | I think having hardware T&L even though it was a tiny handheld was a really neat bit; that used to be a feature only found in high-end GPUs at one point, but they put it in because it allowed them to shrink the CPUs more than they have to grow the GPU to afford it. |
02:57 | <&Derakon> | T&L? |
02:57 | <@RchrdB> | transform and lighting |
02:57 | <&Derakon> | Ah. |
02:58 | <@RchrdB> | It's the bit where you take every single vertex and transform it from the world coordinate system to the screen coordinate system. |
02:58 | <@RchrdB> | Once upon a time, before the original Call of Duty came out, this was a thing that people used to do on CPUs. |
02:58 | <&McMartin> | That sounds like a thing they did before *Quake* came out. |
02:59 | <@RchrdB> | Very no. Quake did software T&L. |
03:00 | <&McMartin> | I associate Quake with Glide, which was early OpenGL |
03:00 | <&McMartin> | Maybe Glide handled that part in software? |
03:01 | <&ToxicFrog> | Er? Glide was not OpenGL, it was 3dFX's own hardware accelerated 3d API |
03:01 | <&McMartin> | Hrm, so it wase. |
03:02 | <&McMartin> | I thought it was 3dfx's OpenGL driver, for some reason. |
03:02 | <@RchrdB> | Quake was released in 1996. The first 3d accel that did T&L was the GeForce 256, which came out late 1999, according to wikipedia. |
03:02 | <&ToxicFrog> | (and these days you can still play Glide games by replacing glide.dll with something that translates the calls into openGL) |
03:02 | <@RchrdB> | McMartin, I believed that the process there was that Glide was 3dfx's vendor-specific API and OpenGL was a vendor-neutral API patterned after it. |
03:03 | <@RchrdB> | Quake 2 came out in 1997 and Quake 3 came out in 1999. All of these games worked with software T&L. |
03:04 | <&McMartin> | OK then. |
03:05 | <&McMartin> | All the 3D graphics APIs I've used basically presented a "give transforms and lighting constants to this fixed pipeline API" |
03:05 | <@RchrdB> | I think that some of them did it that way so that the driver could do it on the CPU if it had to or the GPU if it could. |
03:05 | <&McMartin> | OpenGL doesn't actually admit to how it's happening until, basically, 2008. |
03:06 | <&McMartin> | (When vertex shaders become the only non-deprecated way to do this) |
03:06 | <@RchrdB> | you had to program against the supply-some-matrices-here algorithm in order to support hardware T&L anyway, so you may as well use that code path for software too |
03:06 | | * McMartin nods |
03:07 | <&McMartin> | The DS dates from 2004; that's late enough that I suspect hardware T&L was easier to do. |
03:20 | | VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has quit [[NS] Quit: Program Shutting down] |
04:06 | <~Vornicus> | metroid prime 3, and donkey kong country returns. |
04:14 | | Nemu [NeophoxProd@Nightstar-kpuumf.gv.shawcable.net] has joined #code |
04:17 | | * McMartin fiddles OK |
04:17 | <&McMartin> | This is absurd, but I think it's the way to go |
04:17 | | macdjord|away is now known as macdjord |
04:17 | <&McMartin> | I've got two sets of interrupts driving things; the raster interrupt, for handling scrolling and the splitscreen stably; and the clock interrupt, so that the game state can update in a timely matter. |
04:18 | <&McMartin> | Once the raster routine flips over to the other screen, it tells the "main program" that it has, basically, 50 milliseconds or so to update the sreen. |
04:18 | <&McMartin> | So the actual giant copies happen outside of interrupt handlers and won't mess with timing. |
04:19 | <~Vornicus> | OK/ |
04:19 | <&McMartin> | That was missing a carriage return after "fiddles" |
04:20 | <~Vornicus> | ah |
04:21 | <&McMartin> | But I am a bit concerned, because I appear to basically be writing condition variables for an 8-bit CPU. |
04:31 | | Kindamoody[zZz] is now known as Kindamoody |
04:32 | <@Reiv> | McMartin: That's... troubling? |
04:32 | <&McMartin> | Multithreading: a thing that is annoying at the best of times |
04:32 | <&McMartin> | And now I'm dealing with it while coding in assembler |
04:54 | | Turaiel is now known as Turaiel[Offline] |
05:02 | | Derakon is now known as Derakon[AFK] |
05:06 | <@Reiv> | That /is/ troubling. |
05:06 | <@Reiv> | At least you have two threads amirite |
05:06 | <&McMartin> | I kinda have three, depending on how I count. |
05:07 | <&McMartin> | I have one IRQ that goes off under various conditions I can set, and then there's the non-maskable interrupt that I can't really mess with, and then there is whatever's running when there isn't an interrupt being processed. |
05:07 | <&McMartin> | Given the nature of what I need raster IRQs for, I should probably have only those and make sure they're always more frequent than clock interrupts would be. |
05:08 | <&McMartin> | (A raster interrupt fires when your CRT's particle cannon hits a certain scanline. You can then do things like change display modes so as to have a splitscreen, or move a bunch of sprites from above the line to below the line to have more than the documented number of sprites active at once.) |
05:10 | <@Reiv> | Neat |
05:11 | <&McMartin> | Anyway, a back of the envelope calculation suggests that doing a full screen copy should take 8-16ms, which means I can just jam it in a once-per-frame raster interrupt while I do proof of concept, as long as I stick to PAL. That won't work if I want it to run properly on NTSC, though. |
05:16 | | Nemu_ [NeophoxProd@Nightstar-kpuumf.gv.shawcable.net] has joined #code |
05:18 | | Nemu [NeophoxProd@Nightstar-kpuumf.gv.shawcable.net] has quit [Ping timeout: 121 seconds] |
05:26 | | RchrdB [RichardB@Nightstar-c6u.vd5.170.83.IP] has quit [[NS] Quit: Gone.] |
05:33 | | RchrdB [RichardB@Nightstar-c6u.vd5.170.83.IP] has joined #code |
07:09 | | Nemu_ [NeophoxProd@Nightstar-kpuumf.gv.shawcable.net] has quit [Ping timeout: 121 seconds] |
07:35 | | himi [fow035@Nightstar-v37cpe.internode.on.net] has joined #code |
07:35 | | mode/#code [+o himi] by ChanServ |
07:43 | | Attilla [uid13723@Nightstar-ed0oqj.irccloud.com] has joined #code |
07:44 | | mac [harlow@Nightstar-9hnfdm.il.comcast.net] has quit [[NS] Quit: BED] |
07:49 | | Kindamoody is now known as Kindamoody|afk |
08:17 | | macdjord is now known as macdjord|slep |
09:03 | | JetpackWearingFireBreathingTRex [Z@Nightstar-484uip.cust.comxnet.dk] has joined #code |
09:03 | | mode/#code [+o JetpackWearingFireBreathingTRex] by ChanServ |
09:04 | | himi [fow035@Nightstar-v37cpe.internode.on.net] has quit [Operation timed out] |
09:10 | | AverageJoe [evil1@Nightstar-fb1kt4.ph.cox.net] has joined #code |
09:30 | | himi [fow035@Nightstar-v37cpe.internode.on.net] has joined #code |
09:30 | | mode/#code [+o himi] by ChanServ |
10:17 | | mode/#code [+o RchrdB] by ChanServ |
10:25 | | AverageJoe [evil1@Nightstar-fb1kt4.ph.cox.net] has quit [[NS] Quit: Leaving] |
10:54 | | Attilla [uid13723@Nightstar-ed0oqj.irccloud.com] has quit [[NS] Quit: Connection closed for inactivity] |
11:10 | | Syka_ [the@Nightstar-bn4.edi.216.180.IP] has joined #code |
11:11 | | Syka [the@Nightstar-b1fuls.vividwireless.net.au] has quit [Ping timeout: 121 seconds] |
11:21 | | VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has joined #code |
11:35 | | Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has quit [[NS] Quit: Leaving] |
13:57 | | Syka [the@Nightstar-d16r4u.vividwireless.net.au] has joined #code |
13:58 | | Syka_ [the@Nightstar-bn4.edi.216.180.IP] has quit [Ping timeout: 121 seconds] |
14:33 | <&ToxicFrog> | So, looking at Euclid 19 |
14:33 | <&ToxicFrog> | This appears to be isomorphic to trisecting the angle |
14:34 | <&ToxicFrog> | Since, if you can trisect a line segment, you can trivially trisect any angle |
14:35 | <&ToxicFrog> | And, if I remember high school geometry correctly, angle trisection using these techniques is impossible in the general case. |
14:40 | | macdjord|slep [macdjord@Nightstar-7rac1r.mc.videotron.ca] has quit [Ping timeout: 121 seconds] |
14:47 | <@ErikMesoy> | ToxicFrog: No, I had that same problem for a moment. |
14:48 | <@ErikMesoy> | Then I realized that trisecting the angle is actually isomorphic to trisecting the angle-curve, not a line. |
14:50 | <&ToxicFrog> | Oooooh damn. |
14:51 | | macdjord [macdjord@Nightstar-7rac1r.mc.videotron.ca] has joined #code |
14:51 | | mode/#code [+o macdjord] by ChanServ |
15:02 | | * TheWatcher ponders students |
15:02 | <@TheWatcher> | I've never managed to work out why some of them habitually do things like |
15:03 | <@TheWatcher> | int foo; |
15:03 | <@TheWatcher> | foo = some_function(bar); |
15:03 | <@TheWatcher> | Rather than just doing it all in one go. |
15:03 | <@ErikMesoy> | Uncertainty? |
15:04 | <@ErikMesoy> | It strikes me as similar to adding extra parenthesis about a multiplication when you're not sure of the order of operations in the expression. |
15:04 | < Syka> | defining all your vars at the top can be good |
15:04 | < Syka> | or it can be dumb |
15:04 | <@ErikMesoy> | They might want to be sure that foo is declared int first. But this is speculation. |
15:05 | < Syka> | also static typed langs :( |
15:05 | <@ErikMesoy> | (Since bad things happen if you try to assign first, declare second.) |
15:05 | <@TheWatcher> | Yeah, I suspect you're right - I've never managed to get a clear answer out of the ones that do it. |
15:05 | | * TheWatcher patpats Syka |
15:05 | < Syka> | if it walks like a duck, and quacks like a duck, it's a duck |
15:05 | < Syka> | you duckist |
15:06 | | * TheWatcher sets the duck on fire. |
15:06 | < Syka> | if it burns like a duck |
15:07 | <@ErikMesoy> | if it walks like a horse, and quacks like a horse, it might be two drunken students in a horse costume, and then calling the ride() method will return something unexpected :-P |
15:07 | <@TheWatcher> | ... |
15:12 | <@celticminstrel> | Trisecting the angle is the one you can do with origami, I think... |
15:19 | <&ToxicFrog> | celticminstrel: I believe so, yes. But you can't do it with only a straightedge and a compass. |
15:20 | | himi [fow035@Nightstar-v37cpe.internode.on.net] has quit [Ping timeout: 121 seconds] |
15:24 | <@TheWatcher> | Hm, interesting |
15:24 | <@TheWatcher> | Constant point of contention between Myst and I: "Compass" v "Pair of compasses" |
15:25 | <@TheWatcher> | I would have expected the Canadian version to be the latter, apparently not! |
15:33 | | himi [fow035@Nightstar-v37cpe.internode.on.net] has joined #code |
15:33 | | mode/#code [+o himi] by ChanServ |
15:48 | | himi [fow035@Nightstar-v37cpe.internode.on.net] has quit [Ping timeout: 121 seconds] |
16:01 | | himi [fow035@Nightstar-v37cpe.internode.on.net] has joined #code |
16:01 | | mode/#code [+o himi] by ChanServ |
16:08 | | himi [fow035@Nightstar-v37cpe.internode.on.net] has quit [Ping timeout: 121 seconds] |
16:09 | | Azash [ap@Nightstar-25v57p.net] has quit [Ping timeout: 121 seconds] |
16:21 | | himi [fow035@Nightstar-v37cpe.internode.on.net] has joined #code |
16:21 | | mode/#code [+o himi] by ChanServ |
16:24 | | gnolam [lenin@Nightstar-lgrapr.tbcn.telia.com] has joined #code |
16:24 | | mode/#code [+o gnolam] by ChanServ |
17:06 | | himi [fow035@Nightstar-v37cpe.internode.on.net] has quit [Ping timeout: 121 seconds] |
17:18 | | himi [fow035@Nightstar-v37cpe.internode.on.net] has joined #code |
17:18 | | mode/#code [+o himi] by ChanServ |
17:28 | | himi [fow035@Nightstar-v37cpe.internode.on.net] has quit [Ping timeout: 121 seconds] |
17:38 | | JetpackWearingFireBreathingTRex [Z@Nightstar-484uip.cust.comxnet.dk] has quit [Ping timeout: 121 seconds] |
17:41 | | himi [fow035@Nightstar-v37cpe.internode.on.net] has joined #code |
17:41 | | mode/#code [+o himi] by ChanServ |
17:52 | | himi [fow035@Nightstar-v37cpe.internode.on.net] has quit [Ping timeout: 121 seconds] |
17:55 | | Attilla [uid13723@Nightstar-a0t.9ff.184.192.IP] has joined #code |
18:01 | | JetpackWearingFireBreathingTRex [Z@Nightstar-ro94ms.balk.dk] has joined #code |
18:01 | | mode/#code [+o JetpackWearingFireBreathingTRex] by ChanServ |
18:05 | | himi [fow035@Nightstar-v37cpe.internode.on.net] has joined #code |
18:05 | | mode/#code [+o himi] by ChanServ |
18:06 | | JetpackWearingFireBreathingTRex [Z@Nightstar-ro94ms.balk.dk] has quit [Ping timeout: 121 seconds] |
18:07 | | JetpackWearingFireBreathingTRex [Z@Nightstar-ro94ms.balk.dk] has joined #code |
18:07 | | mode/#code [+o JetpackWearingFireBreathingTRex] by ChanServ |
18:11 | | JetpackWearingFireBreathingTRex [Z@Nightstar-ro94ms.balk.dk] has quit [Ping timeout: 121 seconds] |
18:15 | | himi [fow035@Nightstar-v37cpe.internode.on.net] has quit [Ping timeout: 121 seconds] |
18:18 | | Xires is now known as ^Xires |
18:28 | | himi [fow035@Nightstar-v37cpe.internode.on.net] has joined #code |
18:28 | | mode/#code [+o himi] by ChanServ |
19:03 | | Kindamoody|afk is now known as Kindamoody |
19:09 | <&jeroud> | A compass tells you where North is. A pair of compasses helps you draw a circle. |
19:12 | | * celticminstrel disagrees. |
19:13 | <&ToxicFrog> | TheWatcher: I am possibly not the best test for that, since my word choice is mostly canadian, but with some americanisms from my parents and britishisms from my time in the UK |
20:08 | <&ToxicFrog> | 183,000 affected tests! This may be a new record for me. |
20:09 | | Kindamoody is now known as Kindamoody[zZz] |
22:42 | | JetpackWearingFireBreathingTRex [Z@Nightstar-484uip.cust.comxnet.dk] has joined #code |
22:42 | | mode/#code [+o JetpackWearingFireBreathingTRex] by ChanServ |
23:10 | | Syka [the@Nightstar-d16r4u.vividwireless.net.au] has quit [Connection reset by peer] |
23:10 | | Syka [the@Nightstar-d16r4u.vividwireless.net.au] has joined #code |
23:17 | | Vornicus [Vorn@Nightstar-sn7kve.sd.cox.net] has joined #code |
23:17 | | mode/#code [+qo Vornicus Vornicus] by ChanServ |
23:23 | | * McMartin reads backscroll |
23:23 | <&McMartin> | "compass and straightedge" |
23:31 | <~Vornicus> | I've never heard "pair of compasses" either and if you mentioned it I'd look at you like you had two heads |
23:32 | <&McMartin> | Or, well, two devices for drawing circles. |
23:32 | <~Vornicus> | Just so |
23:32 | <&McMartin> | Dual-wielding compasses. |
23:34 | <@TheWatcher> | It's along the lines of "pair of trousers", "pair of scissors", etc |
23:34 | <@TheWatcher> | The 'compasses' itself is down to the fact that it forks, apparently |
23:34 | | * McMartin blinks |
23:35 | <&McMartin> | I am suddenly unsure we are talking about the same thing, because it doesn't fork any more than a pocketknife does. |
23:36 | <@TheWatcher> | http://www.dreamstime.com/royalty-free-stock-photos-pair-compasses-white-backgro und-image7321968 |
23:36 | <&McMartin> | OK, we are talking about the same thing |
23:36 | <&McMartin> | Wacky |
23:37 | <@TheWatcher> | My old maths teachers used to go absolutely apeshit if we referred to them as "a compass" |
23:37 | <&McMartin> | Well, clearly they need to defend against our sinister cultural imperialism. |
23:38 | <&McMartin> | Although, now that I think of it... |
23:38 | | Azash [ap@Nightstar-25v57p.net] has joined #code |
23:38 | | mode/#code [+o Azash] by ChanServ |
23:38 | <&McMartin> | It's much more common to just call it "compass", much as one would cut things with "scissors". |
23:39 | <~Vornicus> | you can also double the cube in origami |
23:40 | <~Vornicus> | basically, euclidean geometry gets you quadratic solve; origami gets you cubic solve. |
23:47 | <~Vornicus> | Also trisecting a line is quite simple. Make a reference line and triple it. |
23:47 | <&McMartin> | Heh |
23:47 | <&McMartin> | My solution for trisecting the segment was a lot more complicated than it needed to be, and proving it worked required heavy use of analytic geometry. |
23:48 | <&McMartin> | (I did nested triangles to repeatedly construct 1/sqrt(3) given 1, and thus constructed 1/3, and then translated it to the line segment, and then replicated it twice.) |
23:48 | <&McMartin> | There is a *much* easier way to use triangles to trisect the segment. |
23:49 | <&McMartin> | But it slips out of my memory because algebra is stickier. -_- |
23:49 | <&McMartin> | But it involved exploiting similar triangles rather than the actual values of sines. |
23:52 | <~Vornicus> | An equilateral triangle's center (incenter, circumcenter, orthocenter, uh... there's lots of others that are all in the same place for the equilateral triangle) is 1/3 of the way from a base to the opposite tip |
23:53 | <&McMartin> | Yeah, the proof I saw didn't exploit that fact either |
23:54 | <~Vornicus> | Yeah. The simple way is what i mentioned, which actually does exploit similar triangles. |
23:55 | <~Vornicus> | Given line AB, draw reference line BC; then CD and DE the same length as BC in the same direction. line AE is parallel with CF and DG, and F and G trisect the line |
23:56 | <&McMartin> | Where did F and G come from? |
23:56 | <~Vornicus> | F and G are on AB |
23:56 | <~Vornicus> | Line through C parallel to AE, intersects at F with AB |
23:57 | <&McMartin> | Oh, C is an arbitrary point not on AB |
23:57 | <~Vornicus> | Correct |
23:59 | <&McMartin> | Right, yes |
23:59 | <&McMartin> | That is the proof I saw. |
23:59 | <&ToxicFrog> | <Vornicus> An equilateral triangle's center (incenter, circumcenter, orthocenter, uh... there's lots of others that are all in the same place for the equilateral triangle) is 1/3 of the way from a base to the opposite tip |
--- Log closed Tue Jun 24 00:00:01 2014 |