code logs -> 2014 -> Mon, 23 Jun 2014< code.20140622.log - code.20140624.log >
--- 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
code logs -> 2014 -> Mon, 23 Jun 2014< code.20140622.log - code.20140624.log >

[ Latest log file ]