code logs -> 2009 -> Fri, 27 Nov 2009< code.20091126.log - code.20091128.log >
--- Log opened Fri Nov 27 00:00:49 2009
00:29 You're now known as TheWatcher[T-2]
00:32 You're now known as TheWatcher[zZzZ]
01:26 Vornicus-Latens is now known as Vornicus
01:43 * Vornicus has wave invites.
01:43 * Vornicus is uncertain what to do with wave yet anyway
01:52
< dmlandrum>
Wave requires other people you know in order to be useful.
02:34 * Orthia has wave!
02:50
< Rhamphoryncus>
Vornicus: I've got a pile too. Wave has no equivalent of channels or mailing lists, which is the main thing we want it to replace
03:08 Vornicus [vorn@ServerAdministrator.Nightstar.Net] has quit [[NS] Quit: Leaving]
03:11 Vornicus [vorn@ServerAdministrator.Nightstar.Net] has joined #code
03:11 mode/#code [+o Vornicus] by Reiver
03:27 Attilla [The.Attilla@FBC920.92E3D3.F76883.99588C] has quit [Connection reset by peer]
04:18
< Pinkhair>
I've been meaning to try wave
04:20
< Alek>
but have you yet tried particle?
04:25 Derakon [Derakon@Nightstar-90d553ba.ca.comcast.net] has joined #code
04:25 mode/#code [+o Derakon] by Reiver
04:28
<@Derakon>
Ah hah, Pygame can do direct pixel access. Excellent.
04:28
<@Derakon>
Now I just have to remind myself how to write raytracers.
05:11
<@Derakon>
...argh, I find myself wanting to reimplement POV-Ray.
05:11
<@Derakon>
This is not a good path to go down.
05:20
< Pinkhair>
hehehe
05:21
<@Vornicus>
heh. I found myself going "shit I could make Python spew preprocessed POV-Ray faster than POV-Ray itself can" but then I kinda got stuck because I couldn't figure out how to make both delayed and non-delayed writing.
05:23 * Derakon quickly adds another dimension to his Vector2D class from Jetblade.
05:23
<@jerith>
Operation Fox Assault needs playtesters again.
05:24
<@jerith>
svn://hodgestar.za.net/rinkhals/trunk/rinkhals <-- If anyone is interested.
05:47
<@Derakon>
Blargh. Cameras need so many variables. Image width. Image height. How big pixels are. Where the camera is. What it's aimed at. What direction is up.
05:48
<@Derakon>
And that's not even getting into things like depth of field or aperture length.
05:54 Derakon [Derakon@Nightstar-90d553ba.ca.comcast.net] has quit [[NS] Quit: Leaving]
06:31
< Rhamphoryncus>
bluh dependencies
06:35
<@Vornicus>
Generally you can reduce a camera to a matrix and a rectangle.
06:39
< Rhamphoryncus>
jerith: the move chicken controls are a pain
06:39
< Rhamphoryncus>
jerith: I expect to click chicken, click target, click chicken, click target, etc
06:40
< Rhamphoryncus>
jerith: instead I have to click select chicken, click chicken, click move chicken, click target, click select chicken, click chicken, click move chicken, click target, etc
06:40
<@jerith>
Rhamphoryncus: We're still working on making it more discoverable.
06:40
<@jerith>
You can move multiple chickens at once, though.
06:40
< Rhamphoryncus>
I did find out the right button works by accident
06:40
<@jerith>
And right-click... yeah.
06:42
< Rhamphoryncus>
wait, do they move on their own now? o.O
06:42
<@Kazriko>
Hrmph. Space Trader - Merchant Marine is utterly mediocre...
06:44
<@jerith>
They do. Up to one square.
06:44
< Rhamphoryncus>
Selecting multiple is shift-click. No reason that can't work even in move mode
06:44
<@jerith>
You also need to chop down tree to get wood to buy buildings.
06:44
<@jerith>
So noted, thanks.
06:45
< Rhamphoryncus>
Or drag a box over them
06:45
<@jerith>
Dragging boxes is somewhat problematic with the libraries.
06:46
< Rhamphoryncus>
k
06:46
<@jerith>
Also, pyggy is on Saturday. :-)
06:46
< Rhamphoryncus>
hung while moving some chickens
06:46
< Rhamphoryncus>
wazzat?
06:47
<@jerith>
I'm very interested in game balance issues as well.
06:47
<@jerith>
pyggy is like pyweek, only you get the interveing three months to work on the game.
06:47
< Rhamphoryncus>
Shall I ctrl-c to get a traceback?
06:47
<@jerith>
Please.
06:48
< Rhamphoryncus>
window poofed and sound stopped.. still hung
06:48
<@jerith>
firxen at gmail, or paste it into a wave. :-)
06:49
<@jerith>
And now I must go to work. Talk again later.
06:49 AnnoDomini [annodomini@Nightstar-d8d67390.adsl.tpnet.pl] has joined #code
06:49 mode/#code [+o AnnoDomini] by Reiver
06:49
<@jerith>
And thanks. :-)
06:53
< Rhamphoryncus>
Sent what little info I got
07:29 MyCatVerbs [mycatverbs@Nightstar-f43ca811.blueyonder.co.uk] has quit [Ping timeout: 121 seconds]
08:14 EvilDarkLord [jjlehto3@Nightstar-f1ccbb45.hut.fi] has quit [Ping timeout: 121 seconds]
08:16 EvilDarkLord [jjlehto3@Nightstar-f1ccbb45.hut.fi] has joined #code
08:24 Vornicus is now known as Vornicus-Latens
08:48 You're now known as TheWatcher
08:59 Rhamphoryncus [rhamph@Nightstar-a62bd960.abhsia.telus.net] has quit [Client exited]
09:07 gnolam [lenin@Nightstar-38637aa0.priv.bahnhof.se] has joined #code
10:19
< gnolam>
Only 24 grep matches for // HACKHACK now. The code is improving!
10:27
<@jerith>
Oops, forgot to check back in here.
10:43
< gnolam>
Also: no more ugly seams in my cubemap.
10:43
< gnolam>
Turns out it was a billboarding issue.
10:51 Tarinaky [Tarinaky@Nightstar-a3012735.adsl.virginmedia.net] has quit [Ping timeout: 121 seconds]
11:05 Tarinaky [Tarinaky@Nightstar-050afa1e.adsl.virginmedia.net] has joined #code
11:35 Attilla [The.Attilla@FBC920.92E3D3.F76883.99588C] has joined #code
11:35 mode/#code [+o Attilla] by Reiver
12:09
<@jerith>
07:23 <@jerith> Operation Fox Assault needs playtesters again.
12:09
<@jerith>
07:24 <@jerith> svn://hodgestar.za.net/rinkhals/trunk/rinkhals <-- If anyone is interested.
12:09
<@jerith>
</blatant appeal for help>
12:12
<@AnnoDomini>
Is there a normal link somewhere? :p
12:16
< gnolam>
... and I'm still reading that as Ringhals.
12:38 Attilla [The.Attilla@FBC920.92E3D3.F76883.99588C] has quit [Connection reset by peer]
12:38 Attilla_ [The.Attilla@FBC920.92E3D3.F76883.99588C] has joined #code
12:54
<@jerith>
AnnoDomini: There aren't any public builds, if that's what you're asking.
12:56
<@AnnoDomini>
Pity. I am a cat, I cannot use that.
12:57
<@jerith>
The Mac OS stuff is broken (thanks, Snow Leopard), the Windows build is painful and the Linux build is pretty much just a tarball of the code.
13:00 AbuDhabi [annodomini@Nightstar-e504a787.adsl.tpnet.pl] has joined #code
13:02 AnnoDomini [annodomini@Nightstar-d8d67390.adsl.tpnet.pl] has quit [Ping timeout: 121 seconds]
13:18 AnnoDomini [annodomini@Nightstar-e504a787.adsl.tpnet.pl] has joined #code
13:18 mode/#code [+o AnnoDomini] by Reiver
13:20 AbuDhabi [annodomini@Nightstar-e504a787.adsl.tpnet.pl] has quit [[NS] Quit: BRB.]
13:20 AnnoDomini [annodomini@Nightstar-e504a787.adsl.tpnet.pl] has quit [Client closed the connection]
13:20 AnnoDomini [annodomini@Nightstar-e504a787.adsl.tpnet.pl] has joined #code
13:20 mode/#code [+o AnnoDomini] by Reiver
13:21
<@AnnoDomini>
irssi has a tendency to continue to live even when its terminal is dead.
13:22
<@jerith>
irssi+screen. :-)
13:25
<@AnnoDomini>
Is screen for Windows? If so, is there a binary available?
13:27
< TheWatcher>
There's a version of screen installable through cygwin, but I know of no 'stand alone' windows binaries.
13:30
< gnolam>
Terminals, burn 'em all \ Slaves to silicon
13:32 * TheWatcher args at this sql
13:36
< SmithKurosaki>
Yay screen!
13:36
< gnolam>
TheWatcher: Oh?
13:37
< TheWatcher>
http://pastebin.starforge.co.uk/28 - given data like that, I'm trying to work out a query that will give me 4077 and 4111 but not 4040 (ie: I want the row that corresponds to the maximum attempt for each user)
13:40 * TheWatcher suspects this involves wranglign GROUP BY, which he's had little coalface experience with
13:40
<@AnnoDomini>
select * from tbWhatever where attempts=max(attempts); or something.
13:40
<@AnnoDomini>
I'm unsure of the syntax.
13:40
<@AnnoDomini>
Or whether aggregates are allowed to work like this.
13:40
< TheWatcher>
They aren't
13:41
<@AnnoDomini>
I suggest a shub-niggurath^W^W subselect.
13:42
<@AnnoDomini>
Are you required to do this with only one sql command?
13:42
< TheWatcher>
No, but I'd prefer to.
13:43
<@AnnoDomini>
Subselects are the way to go, I think, then.
13:44
<@AnnoDomini>
select * from tbWhatever where attempts=(select max(attempts) from tbWhatever); ?
14:22 Attilla_ is now known as Attilla
14:46 * TheWatcher makes a note to viciously murder the person responsible for developing Moodle's quiz module
14:51
< Namegduf>
You're using it from the staff side, right?
14:51
< TheWatcher>
I'm using it from the /database/ side
14:51
< Namegduf>
Oh.
14:51 * Namegduf pats.
14:52
< TheWatcher>
Assignments? Trivial. The table structure is vaguely questionable, but using it is easy. Quizzes are all over the fucking shop.
14:52
< Namegduf>
At the place I went to college at, they had it's My Courses page for students broken for most of the year.
14:52
< Namegduf>
I don't know if they ever fixed it.
14:53
< Namegduf>
It was complaining about an error in a hideous SQL query, which wasn't that hard to find, really, looking at it.
14:55
< Namegduf>
What're you trying to do with it?
14:56
< TheWatcher>
Integrate it with a student records system the department runs.
14:58
< TheWatcher>
There are rumours that, once I have done all this, the system will have become so complex it will become self-aware, and take over the world. This is a complete fabrication.
15:11 * AnnoDomini wonders where the hell does MS Access have the 'run query' button.
15:20
<@AnnoDomini>
All I can see is wizards and related crap. I already have the database-creating SQL code, and now want to use it.
15:20
<@AnnoDomini>
But I'm stumped at how.
15:26
< gnolam>
Yay, I can actually get the project to work on the System From Hell now.
15:26
< gnolam>
Sure, it runs at less than 1 FPS, but it actually runs.
15:33
<@AnnoDomini>
It's not too much of a bother to create it by hand (I think) but I'd like to know how to execute this god-damned query Power Designer gave me.
15:33
<@AnnoDomini>
*these, queries
15:33 * TheWatcher suggests using a Real Database >.>
15:35
<@AnnoDomini>
This is the only database I can find an ASP.NET tutorial for. I'd happily use a Sybase database, if I knew HOW.
15:40 * TheWatcher would just install the windows binary of mysql and the mysql odbc driver, and talk to it through that
15:40
< TheWatcher>
http://www.15seconds.com/issue/050210.htm and http://www.15seconds.com/issue/050407.htm for example
16:17
<@AnnoDomini>
I'll try using MS SQL Server first. I know it has a query command line, and any modifications shouldn't be too difficult.
16:32 MyCatSchemes [mycatverbs@Nightstar-3b2c2db2.bethere.co.uk] has joined #code
16:42
< MyCatSchemes>
Unit tests++, again.
16:50
< gnolam>
Search for the cause of a bug leading to the fix of an unrelated, much more serious bug++.
17:01 Rhamphoryncus [rhamph@Nightstar-a62bd960.abhsia.telus.net] has joined #code
17:16 You're now known as TheWatcher[afk]
17:41 Derakon [Derakon@Nightstar-90d553ba.ca.comcast.net] has joined #code
17:41 mode/#code [+o Derakon] by Reiver
17:41
<@Derakon>
The up vector for cameras is giving me trouble. >.<
17:41
<@Vornicus-Latens>
Tell me about it; I can probably help you.
17:42
<@Derakon>
That is, a camera has location, a point to aim at, and an up vector that determines how it rotates about its aim vector.
17:42
<@Derakon>
The first two are easy.
17:42
<@Derakon>
But I'm having trouble figuring out how to incorporate the third.
17:44
<@Vornicus-Latens>
The up vector is, usually, one of the basis vectors of the camera matrix... ah, here is what you need to do; your right vector is a normalized cross product of your up and point_at vectors. I think.
17:45
<@Derakon>
That just shifts the problem to figuring out how to specify/calculate the right vector.
17:46
<@Vornicus-Latens>
Then once you have the right vector, the /true/ up vector is the cross product of point_at and right
17:46
<@Vornicus-Latens>
This gives you the three basis vectors -- point_at (technically location - point_at), right, and true up.
17:48
< gnolam>
Derakon: do you need to include roll? If not, you can just cross the forward vector with (0, 1, 0) (assuming y^ is the up axis) and normalize the result to get the right vector.
17:49
< gnolam>
I'm already assuming that you have restrictions against pointing straight up or straight down; that transition is a pain in the ass unless you go quat anyway.
17:49
<@Derakon>
Heh, point.
17:50
<@Derakon>
That seems like it should work; in any event, it should let me get on to the actual raycasting.
17:50
<@Derakon>
Thanks.
17:57
<@Vornicus-Latens>
Yeah, this is correct; cross specified up with forward to get right, cross right with forward to get true up.
18:07
<@Derakon>
Right, now I just have to work out the math to generate the rays. Which I had my whiteboard with me, but it's at work.
18:09
<@Derakon>
This seems like it should work: http://paste.ubuntu.com/329581/
18:09
<@Derakon>
...well, that gets me the location of each pixel. I need to subtract the camera's location and normalize to get the ray.
18:23
<@Vornicus-Latens>
I once wrote a raytracer in Python but couldn't figure out how to actually write an image. So I instead wrote a thing that rendered the pixels in POV-Ray.
18:23
<@Derakon>
PyGame provides direct pixel access and can save images.
18:23
<@Derakon>
Alternatively, you can use the "text" image format that ImageMagick parses, and the 'convert' utility to turn that into something you can actually look at.
18:24
<@Derakon>
But that results in some rather beefy intermediary files.
18:24
<@Vornicus-Latens>
Der: PIL would actually probably work better.
18:25
<@Derakon>
Hm. Very likely!
18:25
<@Derakon>
But I already have PyGame installed.
18:25
<@Vornicus-Latens>
heh
18:25
<@Vornicus-Latens>
I actually used PIL to stitch together multi-layered Metroid Fusion maps.
18:29
<@Vornicus-Latens>
Which was pretty impressive but I still needed to fix some things - apparently in Fusion the half-speed background doesn't keep lock step so it moves around a bit.
18:32
<@Derakon>
Okay, a ray and a sphere can intersect at 0, 1, or 2 points. If the intersection is at 1 point, then that means that the projection of the sphere onto the ray has a length equal to the sphere's radius.
18:32
<@Derakon>
If the length is less than the radius, of course, we get 2 intersections; if more, we get 0.
18:34
<@Derakon>
Blargh. Visualizing this is hard. I should get some scratch paper.
18:43 Tarinaky [Tarinaky@Nightstar-050afa1e.adsl.virginmedia.net] has quit [Ping timeout: 121 seconds]
18:44 * Derakon successfully generates an entirely-black image. ?.?
18:48
<@Vornicus-Latens>
Woot
18:53
<@Derakon>
Well, the rays appear to be getting firedi n plausible directions. So I must just be mucking up the intersection test, which I copied from a website. ?.?
18:57 Tarinaky [Tarinaky@Nightstar-d26d6d9b.adsl.virginmedia.net] has joined #code
19:00 You're now known as TheWatcher
19:02
< TheWatcher>
Someone was Wrong on the Internet?!
19:04
<@jerith>
TheWatcher: Never! You must be mistaken.
19:06
< gnolam>
Derakon: Err... don't you just want regular ray-sphere intersection? Which in turn, is just a degenerate case of minimum distance?
19:07
< gnolam>
(If the minimum distance between the sphere's center and the ray is less than the sphere's radius, you have an intersection)
19:12
< gnolam>
Which reminds me to implement frustum culling.
19:13
< gnolam>
(Which is actually just minimum distance between point and plane in disguise. :))
19:31
<@Derakon>
Ha-HA! http://derakon.dyndns.org/~chriswei/temp2/out.png
19:32 * TheWatcher tries pressing the red button
19:33
<@Derakon>
Next thing to do is calculate surface normals and light, I guess.
19:33
<@Derakon>
This is 119 lines of Python, incidentally. Not counting the vector3d files.
19:34 MyCatSchemes [mycatverbs@Nightstar-3b2c2db2.bethere.co.uk] has quit [[NS] Quit: Leaving]
19:36
<@Derakon>
...oh, right. Moving the camera around is not going to change what a flat-shaded sphere is going to look like so long as the camera continues to look directly at the sphere and its distance to it does not change.
19:36 * Derakon successfully makes the sphere shrink, though!
19:37
<@Vornicus-Latens>
Heh
19:56
< gnolam>
Well, surface normals are easy with spheres. :)
20:08
< gnolam>
http://www.lysator.liu.se/~gnolam/temp/ocean_WIP_7.jpg
20:09
< gnolam>
Whitecaps, first test.
20:10
<@Vornicus-Latens>
Not bad; the gradient needs to be stronger at the tips though
20:25
< gnolam>
Thanks.
20:25
< gnolam>
Test 2: http://www.lysator.liu.se/~gnolam/temp/ocean_WIP_8.jpg
20:27
<@Vornicus-Latens>
Much better.
20:45
< gnolam>
Successful whitecaps call for a nightcap.
20:45 * gnolam pulls out the single malt.
20:47
< gnolam>
(Well, it's actually medicinal. I feel a cold coming on.)
20:54
<@Derakon>
Gnolam: yeah, surface normals are gonna be less easy for the fractal, though.
21:26
<@Vornicus-Latens>
try "essentially impossible"
21:26
<@Derakon>
I think you could fake it by calculating adjacent voxels to the impact location.
21:26
<@Vornicus-Latens>
I can pretty well guarantee that the fractal curve is differentiable nowhere.
21:31 You're now known as TheWatcher[afk]
21:34
< gnolam>
Derakon: that would work.
22:00
< gnolam>
Speaking of surface normals, I still have to fix the calculation of mine. :(
22:36
<@McMartin>
I think I have some code for that from Sable somewhere, or in SVAF, but I won't get a chance to locate it for another 30 hours or so.
22:43
<@AnnoDomini>
Half a day, numerous tutorials and one several crappy MS applications later, I have a Web Parts enabled web site that manages to obtain data from the Access database I so painstakingly implemented by hand.
22:44 You're now known as TheWatcher
22:48
<@AnnoDomini>
And finally, my Iroquis get a Conquistador. Now I can move about without fear of attrition killing everyone in my armies.
22:56
<@AnnoDomini>
Ooh. New monarch. This one is more awesome.
23:00
< gnolam>
Just like the flawless monarch butterfly from which he takes his name, the Monarch has many ways to sting?
23:03
<@AnnoDomini>
He's just as well versed in Diplomacy and Administration, but at the same time is more adept at War.
23:04
<@AnnoDomini>
Maybe now my troops will stop behaving like the native yokels they face are Roman Legionnaires.
23:06
< gnolam>
As the monarch butterfly spins its deadly web, so shall you set your fiendish trap?
23:07
<@AnnoDomini>
I hope my economy eventually becomes worth a crap. We have nearly 30% inflation.
23:08
<@AnnoDomini>
Arrrrrgh.
23:08
<@AnnoDomini>
9000 men versus 1500 men. The 9000 lose 500 and decide to leave with great haste.
23:12
<@Vornicus-Latens>
what's this game, Anno?
23:22
<@AnnoDomini>
Europa Universalis 2.
23:24
<@AnnoDomini>
The second battle of Seminole fares better.
23:51
< gnolam>
Mmm, the joy of not having access to modern formats.
23:52
< gnolam>
The collected textures, in PNG format: 850 kB.
23:52
< gnolam>
Actual size of the textures directory, due to the fact that I have to use BMPs: 22 MB.
23:58
<@Derakon>
Only distribute it in gzipped form.
23:58
<@Derakon>
Hard drive space is fortunately still generally pretty cheap.
--- Log closed Sat Nov 28 00:00:03 2009
code logs -> 2009 -> Fri, 27 Nov 2009< code.20091126.log - code.20091128.log >