code logs -> 2009 -> Mon, 12 Jan 2009< code.20090111.log - code.20090113.log >
--- Log opened Mon Jan 12 00:00:01 2009
--- Day changed Mon Jan 12 2009
00:00
<@gnolam>
Heh.
00:00
<@McMartin>
Classy
00:00
<@Consul>
Indeed.
00:01
<@Consul>
My kind of place.
00:09 Attilla [~The.Attil@Nightstar-9469.cdif.cable.ntl.com] has quit [Quit: <Insert Humorous and/or serious exit message here>]
00:35
<@McMartin>
Oh, man
00:35
<@McMartin>
Today's Lesson Imparted Onto Today's Youth: Assembly Language is Machine-Specific.
00:35 * Derakon facepalms.
00:35
<@McMartin>
("No, you will not learn how to write assembler for Windows by using Ophis and developing NES or C64 programs."
00:36
<@Consul>
Heh
00:36
<@Consul>
Isn't Java Bytecode theoretically trying to be a "general" machine language?
00:36
<@McMartin>
Sure, and Z-Code did the same thing decades earlier.
00:37 You're now known as TheWatcher[T-2]
00:37
<@McMartin>
Neither, however, is really suitable for directly writing in.
00:37
<@Consul>
Oh, hey! I hadn't heard that name in years!
00:37
<@McMartin>
It's still widely targeted.
00:40 You're now known as TheWatcher[zZzZ]
00:55 C_tiger_remote [~cheng@Nightstar-3055.hsd1.ca.comcast.net] has joined #code
00:55 mode/#code [+o C_tiger_remote] by ChanServ
00:55 C_tiger_remote is now known as C_tiger
01:25 Chi [~omegaboot@Nightstar-23762.dsl.emhril.sbcglobal.net] has joined #code
01:26 Alek [~omegaboot@Nightstar-23762.dsl.emhril.sbcglobal.net] has quit [Killed (NickServ (GHOST command used by Chi))]
01:26 Chi is now known as Alek
01:40 Derakon is now known as Derakon[AFK]
02:27 ToxicFrog [~ToxicFrog@Admin.Nightstar.Net] has quit [Operation timed out]
02:41 * McMartin fiddles with porting Ophis to Python 3.0
02:44 ToxicFrog [~ToxicFrog@Admin.Nightstar.Net] has joined #code
02:44 mode/#code [+o ToxicFrog] by ChanServ
03:15 gnolam [lenin@Nightstar-1382.A163.priv.bahnhof.se] has quit [Quit: Z?]
03:20 Finerty is now known as Vornicus
04:09
<@McMartin>
Hum
04:09
<@McMartin>
Is there an MSYS-style version of patch(1) for Windows that does not require shitloads of support code?
04:21 Derakon[AFK] is now known as Derakon
04:28
<@McMartin>
Hm. That wasn't so bad after all.
04:28
<@McMartin>
I needed three code changes to Ophis.
04:29
<@Vornicus>
python 3 is not nearly as bad as everyone is fainting about
04:30
<@Vornicus>
But it changes enough things that it reliably breaks any library past a given size.
04:30
<@McMartin>
Well, among other things, print isn't a special form anymore. =P
04:30
<@Vornicus>
Quite.
04:30
<@McMartin>
Also, "file" no longer exists, and you have to use open or io.open.
04:31
<@McMartin>
That was two of the changes I needed that weren't automated by 2to3.py
04:31
<@McMartin>
The third was to change "out.write("".join(map(chr, a.output)))" to "out.write(bytearray(a.output))"
04:33
<@McMartin>
Unfortunately, the by-hand changes can't be backported to something that will work in 2.5
04:44
<@McMartin>
[python] BrenBarn says, "impoort ye librarye callede thus: regulare expressiounes"
04:44
<@McMartin>
[python] BrenBarn says, "GadzooksErrore! Attrybute not to be founde upon this objecte"
04:52 * ToxicFrog catches up on bb *
04:52
<@ToxicFrog>
Off-Road Velociraptor Safari?
04:53
<@ToxicFrog>
Incidentally, I'm tunneled through the university now. We'll see if that connection is any more reliable.
05:02
<@McMartin>
I could have sworn that I linked Off-Road Velociraptor Safari in here.
05:13 * ToxicFrog eyes the fuck out of ggmud
05:13
<@ToxicFrog>
I enter: ne
05:13
<@ToxicFrog>
It treats it as: n. e.
05:14
<@Derakon>
So how do you go northeast?
05:15
<@ToxicFrog>
"northeast"
05:15
<@ToxicFrog>
Aha. Found the problem. Speedwalk was on.
05:15
<@ToxicFrog>
God knows why it's on by default.
05:15
<@ToxicFrog>
Apparently it's meant to let you do something like "neeeennws"
05:16
<@Derakon>
Just hope there isn't a gorilla somewhere along the way~
05:21
<@Derakon>
"The original U7 ran at a blazing 5fps, which is the default; it goes as high as a ludicrous 10fps, which still feels kinda slow."
05:21
<@Derakon>
Man. And here I'm worried about dipping below 25~
05:23
<@ToxicFrog>
The relentless march of PROGRESS!
05:32
<@Derakon>
I have seven decent bullet patterns now.
05:33
<@Derakon>
Big spiral, homing stream, spiral with moving source, crossfire bullets, spiral that counter-rotates, spreads of semi-random homing bullets (with moving emitter), circle of shotguns.
05:40
<@jerith>
McMartin: Surely the file->open thing works fine?
05:41
<@McMartin>
jerith: 2to3.py did not appear to do it, however.
05:41
<@jerith>
No, changing file() to open() in the 2.5 code.
05:41
<@McMartin>
Oh. Yes, that works.
05:41
<@jerith>
(2to3 probably should do it, though.)
05:41
<@McMartin>
It's bytearray that doesn't.
05:42
<@jerith>
Yeah, it wouldn't.
05:42
<@jerith>
That looks like a.output is a list of integers. Is this the case?
05:43
<@McMartin>
Yup.
05:43
<@jerith>
Hmm.
05:43
<@McMartin>
Also, integers guaranteed to be in the 0x00-0xFF range.
05:43 * jerith considers that while he gets out of bed and makes breakfast.
05:45
<@McMartin>
(This is the line that actually write the assembled binary to the output file.)
05:48
<@jerith>
I can see how that could cause problems.
05:49
<@Derakon>
...why is the <accel> tag so expensive?
05:49
<@Derakon>
It's nailing my FPS at ~350 bullets.
05:51
<@Derakon>
...ahh. Because I'm re-evaluating the amount of acceleration to apply every frame.
05:59
<@Derakon>
...in fact, the entire implementation of the <accel> tag was very half-assed and buggy on my part. Wow. What was I thinking?
05:59
<@ToxicFrog>
Heh
06:00
<@jerith>
Derakon: Does past-Der write code as crappy as past-jerith does?
06:00
<@Derakon>
He can certainly do better than this.
06:01
<@jerith>
I've taken to trying to get stuff right the first time, so that bastard future-jerith doesn't grumble so much.
06:02 * jerith takes his dried frog pills.
06:02
<@Derakon>
Hrm. I like the concept of a waterfall of bullets, but in practice I'm having trouble keeping it from either having really good hiding spots (in the upper corners, natch) or else being too damned hard.
06:40 Derakon is now known as Derakon[AFK]
06:40 AnnoDomini [~farkoff@Nightstar-29637.neoplus.adsl.tpnet.pl] has joined #Code
06:40 mode/#code [+o AnnoDomini] by ChanServ
07:24 ASCII [~none@Nightstar-7066.dyn.optonline.net] has quit [Connection reset by peer]
07:30
<@McMartin>
... you know what is a bad feeling?
07:31
<@McMartin>
Having an idea for a program, and discovering that the best tool for the job is Commodore 64 BASIC.
07:39
<@Reiver>
... dear lord, why?
07:40
<@Reiver>
Is the program in fact intended to be running on a Commodore 64?
07:57 ASCII [~none@Nightstar-7066.dyn.optonline.net] has joined #code
07:59
<@McMartin>
Well, it's not too computationally intensive
07:59
<@McMartin>
And I really need decent box-drawing characters.
07:59
<@McMartin>
The final program target might end up being NES, actually
07:59
<@McMartin>
In which case it would go C64 BASIC -> C64 Assembler -> NES Assembler
07:59
<@McMartin>
And the last step only involves changing the I/O routines.
08:04
<@Reiver>
... Well, if you're after retro-coding, then sure, I guess C64 is the right choice. :P
08:06 * McMartin wants to autogenerate 2D mazes.
08:08
<@Vornicus>
the standard "grid with bunch of walls removed" kind?
08:08
<@McMartin>
More or less, though I want to do it with bonsai graftals.
08:09
<@Vornicus>
bonsai graftals.
08:09 * Vornicus looks up that term.
08:09
<@McMartin>
The tree-making algorithms that are randomish BFSes
08:09
<@McMartin>
And Bonsai because I'm constratining it to completely fill a tiny square. =P
08:09
<@Vornicus>
aha
08:12
<@McMartin>
That said, 256 bytes is enough to store a 32x16 maze, which is pretty much the largest that will comfortably fit on both the C64 and NES displays.
08:14
<@McMartin>
16x16 is easier to deal with, though, so I guess I'll start with that, then get the algo correct, then look into translating it.
08:22 crem [~moo@Nightstar-28703.adsl.mgts.by] has quit [Ping Timeout]
08:41 KBot [AnnoDomini@Nightstar-29692.neoplus.adsl.tpnet.pl] has joined #Code
08:42 AnnoDomini [~farkoff@Nightstar-29637.neoplus.adsl.tpnet.pl] has quit [Ping Timeout]
08:42 KarmaBot [AnnoDomini@Nightstar-29637.neoplus.adsl.tpnet.pl] has quit [Ping Timeout]
08:44 KBot is now known as KarmaBot
08:49 AnnoDomini [~farkoff@Nightstar-29692.neoplus.adsl.tpnet.pl] has joined #Code
08:49 mode/#code [+o AnnoDomini] by ChanServ
08:55 Attilla [~The.Attil@Nightstar-9469.cdif.cable.ntl.com] has joined #code
08:55 mode/#code [+o Attilla] by ChanServ
09:04 You're now known as TheWatcher
09:29 C_tiger [~cheng@Nightstar-3055.hsd1.ca.comcast.net] has quit [Operation timed out]
11:29 Vornicus [~vorn@Admin.Nightstar.Net] has quit [Quit: ]
12:01 C_tiger_remote [~cheng@Nightstar-5625.hsd1.ca.comcast.net] has joined #code
12:01 mode/#code [+o C_tiger_remote] by ChanServ
12:01 C_tiger_remote is now known as C_tiger
12:08 gnolam [lenin@Nightstar-1382.A163.priv.bahnhof.se] has joined #Code
12:08 mode/#code [+o gnolam] by ChanServ
16:47 crem [~moo@Nightstar-28703.adsl.mgts.by] has joined #code
17:59
<@ToxicFrog>
Hmm. My names are getting a bit messy.
17:59
<@ToxicFrog>
I need good names for:
17:59
<@ToxicFrog>
- a generic map
17:59
<@ToxicFrog>
- a collection of related maps
17:59
<@ToxicFrog>
- the set of all such collections
19:24 C_tiger [~cheng@Nightstar-5625.hsd1.ca.comcast.net] has quit [Operation timed out]
19:28 C_tiger_remote [~cheng@Nightstar-5625.hsd1.ca.comcast.net] has joined #code
19:28 mode/#code [+o C_tiger_remote] by ChanServ
19:32
<@AnnoDomini>
Hrm. Can anyone tell me how to calculate (and if it's worthwhile at all) standard deviation on a 1d100?
19:32
<@AnnoDomini>
Better yet, 3d100.
19:40 C_tiger_remote [~cheng@Nightstar-5625.hsd1.ca.comcast.net] has quit [Operation timed out]
19:43
<@McMartin>
StdDev is the square root of the expected variance
19:43
<@McMartin>
Look up Variance on wiki or whatnot and that should give you what you want.
19:55
<@AnnoDomini>
Uhuh. I'm looking it up, and I'm uncertain what Wikipedia is telling me.
20:00
<@McMartin>
Ask someone who had stat more recently than I did
20:00
<@McMartin>
God, that must have been 12 years ago now >_<
20:00 * AnnoDomini finds a plain language definition, tries to make an algorithm from that.
20:02
<@jerith>
stddev is (iirc) sqrt(sum([f_i**2]))
20:02
<@jerith>
Um, no.
20:02
<@jerith>
I screwed that up.
20:03
<@jerith>
The sum of (x-mean)**2 where x is each element of the sample.
20:03
<@AnnoDomini>
"The average of the square of the distance of each data point from the mean"
20:05
<@AnnoDomini>
The algorithm I built from that is telling me the variance of 3d100 is 2499.75 while the standard deviation is 49.9975.
20:06
<@jerith>
That doesn't seem right.
20:07
<@AnnoDomini>
Mm'kay. The mean for 3d100 would be 151.5, yesno?
20:09
<@jerith>
Why is this computation taking so bloody long to run!?
20:10
<@jerith>
Oh, a million numbers.
20:11
<@jerith>
That's the mean, assuming 1->100 rather than 0->99.
20:12
<@AnnoDomini>
Yes.
20:13
<@AnnoDomini>
Putting a guassian distribution generator to the task with that mean and standard deviation produces more or less 3d100.
20:13
<@AnnoDomini>
There are some values over 300.
20:13
<@AnnoDomini>
The last one, actually.
20:14
<@jerith>
Ah, I'm forgetting to divide by N for the variance.
20:15
<@jerith>
So yeah, just short of 50 seems right.
20:15
<@jerith>
And I was thinking in terms of d100 instead of 3d100.
20:15
<@jerith>
My bad.
20:20
<@AnnoDomini>
Yeah. So it's a pretty mild curve.
20:21
<@AnnoDomini>
Rolling 3d100 to get three stats (one per die) is not really what one wants to do. <_<
20:29
<@McMartin>
Yeah, so, bear in mind that 1d100 is not a Gaussian in the first place
20:29
<@McMartin>
It's *linear*
20:30
<@McMartin>
Make it, oh, 30d10 instead and you'll get much more bellier bell curves
20:31
<@AnnoDomini>
McMartin: No, no, it was actually 3d100. One d100 for each stat. I'm basing my calculations on that you want to have as high a sum of stats as possible.
20:31
<@McMartin>
Sure.
20:31
<@McMartin>
But if those are, say, Body/Soul/Mind
20:32
<@McMartin>
For any given stat, Body 1 is exactly as likely as Body 100...
20:32
<@AnnoDomini>
Not TriStat. It's a friend's WWII homebrew.
20:32
<@McMartin>
But it's also just as likely as Body 50.
20:32
<@AnnoDomini>
Mhm.
20:32
<@McMartin>
I'm just using their stats because they're handy and short.
20:32
<@AnnoDomini>
Right.
20:32
<@AnnoDomini>
I did a test roll... I got 15, 34, 16. ;_;
20:33
<@McMartin>
This kind of thing is why attributes have been based on point-buy in pretty much every RPG with stats since like 1993. =P
20:34
<@AnnoDomini>
WFRP/DH still rolls.
20:34
<@AnnoDomini>
I like them, in part, for this.
20:55 Reiver [~reaverta@Admin.Nightstar.Net] has quit [Ping Timeout]
21:02 Reiver [~reaverta@Admin.Nightstar.Net] has joined #Code
21:02 mode/#code [+o Reiver] by ChanServ
21:46 C_tiger_remote [~cheng@Nightstar-5625.hsd1.ca.comcast.net] has joined #code
21:46 mode/#code [+o C_tiger_remote] by ChanServ
21:47 C_tiger_remote is now known as C_tiger
22:03
<@ToxicFrog>
Snrk. Spam topic: "unleash your python on the girls today"
22:03
<@ToxicFrog>
I prefer lua, thanks~
22:05
<@gnolam>
:D
22:07 * AnnoDomini laughs.
22:28
<@Consul>
Give them the Full Monty, eh?
22:33
< ASCII>
Is anyone famiir with nvidia stereoscopic video drivers?
22:34
< ASCII>
*familiar
22:37 Vornicus [~vorn@Admin.Nightstar.Net] has joined #code
22:37 mode/#code [+o Vornicus] by ChanServ
22:38
<@gnolam>
AFAIK, that's programmer transparent.
22:38 * Vornicus wonders the context.
22:42
< ASCII>
vorn- me asking about nvidia stereo drivers
22:42
<@Vornicus>
aha
22:43
< ASCII>
the subject of producing a stereoscopic machinima came up, and I decided that this would be a better place to ask than there =P
22:46
< ASCII>
from what I can tell, the only output the stereo drivers have that is suitable for recording in a realtime enviroment(with fraps or the like) is anaglyph, which of course is pretty unsuitable.
22:47
<@Vornicus>
WHereas you want the red/blue kind?
22:47
< ASCII>
no, I don't
22:47
<@Vornicus>
then?
22:48
< ASCII>
The drivers can do the red/blue anaglyph in realtime
22:48
< ASCII>
but the result is eectively grayscae and useless for other viewers
22:48
<@Vornicus>
ah.
22:49 * Vornicus thought anaglyph was the side-by-side thing.
23:07
< ASCII>
so anyway, it looks like the ptions would either be to figure out a way to record the left/right frames and then sort out which was which, hoping no frames were dropped in recording
23:07
< ASCII>
or get it to output side by side frames
23:08 Attilla [~The.Attil@Nightstar-9469.cdif.cable.ntl.com] has quit [Quit: <Insert Humorous and/or serious exit message here>]
23:08
< ASCII>
or interlaced frames, but I'm not sure that the recording codec is suitable for non progressive video
23:16 Consul [~consul@Nightstar-4831.dsl.sfldmi.ameritech.net] has quit [Quit: Leaving]
23:26 Consul [~consul@Nightstar-4831.dsl.sfldmi.ameritech.net] has joined #code
23:26 mode/#code [+o Consul] by ChanServ
23:27 AnnoDomini [~farkoff@Nightstar-29692.neoplus.adsl.tpnet.pl] has quit [Quit: God created man, God created woman, but Samuel Colt made them equal.]
23:37
<@Consul>
Okay, I have a question that may or may not be deserving of great ridicule.
23:38
<@Consul>
Technically, there's no reason a compiler itself needs to execute as quickly as possible, right?
23:39
<@EvilDarkLord>
You mean tradeoffs between the time to compile and the quality of the compiled code?
23:39
<@Consul>
Well, I'm thinking more in terms of the language used to create the compiler.
23:40
<@Consul>
What matters is the final compiled code, not the language used for the compiler. That's what I'm getting at.
23:42
<@Consul>
At least, I'm asking if that posit is reasonable.
23:43
<@McMartin>
This is true for all way-ahead-of-time compilers, yes.
23:43
<@Consul>
So, okay for compilers, not so okay for interpreters. :-)
23:43
<@McMartin>
EDL points out that if you have the time to do it, it's possible to spend lots of time doing complex code analysis for optimization
23:43
<@Consul>
Which begs the question on why Perl 6 is getting written in Perl, but I'm no computer scientist. :-)
23:43
<@McMartin>
Which is true, but in practice you hit diminishing returns very fast.
23:44
<@McMartin>
Because lolLarryWall, basically
23:44
<@Consul>
Heh
23:44
<@McMartin>
That said, I thought the most advanced Perl 6 interpreter was currently written in Haskell.
23:44
<@Consul>
Oh?
23:44
<@McMartin>
Parrot or something like that?
23:44
<@Consul>
I'm so out of it, something must have changed.
23:44
<@McMartin>
Granted the last time I checked was like three or four years ago
23:45
<@Consul>
I only remember the initial announcements, proclaiming it would be written in Perl.
23:45
<@Consul>
Of course, I was still working at Agilent, six or so years ago.
23:45
<@Consul>
Or more.
23:45
<@McMartin>
From Wiki: "Pugs is an implementation of Perl 6 written in Haskell. It is currently the closest thing to a full implementation of Perl 6. It will be used for bootstrapping, providing a platform on which to write the Perl 6 compiler in Perl 6, and the test suite to validate it."
23:46
<@McMartin>
So the answer to our question appears to be "Yes".
23:46
<@McMartin>
That said, it says "compiler" there, not "interpreter".
23:46
<@Consul>
That seems a strange way to operate.
23:46
<@McMartin>
It's pretty common for compilers to be written in themselves, actually.
23:46
<@Consul>
But I reiterate, I am no computer scientist.
23:46
<@McMartin>
The only unusual bit here is that the bootstrapper isn't written in C.
23:47
<@Consul>
Okay, so it goes back to my question of "how did they write the first compiler?" The answer is, in assembly, and only enough to get the basics working.
23:47
<@McMartin>
Yeah, so, that part of it is not unusual, and I'll happily pull rank to assert it with authority if you want. ;-)
23:47
<@McMartin>
Yup.
23:47
<@McMartin>
And the first assembler was written in raw machine code
23:47
<@McMartin>
Well.
23:47
<@McMartin>
Was written in assembler on paper and then assembled by hand.
23:47
<@Consul>
Wow...
23:48
<@Consul>
When programmer were real men.
23:48
<@Consul>
+s
23:48
<@McMartin>
And got real bored.
23:48
<@Consul>
Or women.
23:48
<@Consul>
There were a few talented female programmers in the white beard days.
23:49
<@Consul>
Anyway, this is all leading to my previous statements about wanting to look into domain-specific languages as a possible career.
23:49
<@McMartin>
The first compilers were actually formula translators that dumped assembler you could use, and also what we would now call linkers.
23:49
<@Consul>
Or at least, programming software for high-level science and engineering.
23:50
<@McMartin>
For a lot of that you'll be competing with Matlab and R, but I bet there are a few out there still.
23:51
<@Consul>
Well, I do have a more immediate goal, and yes, it involves DSP.
23:51
<@Consul>
I was thinking about making something like Jesusonic for Linux.
23:51
<@Consul>
Only try to make it more elegant.
23:52
<@McMartin>
Compilers as a career are more or less a dead end, I note. Making little languages is a technique that makes you a better software engineer, but outside of config files you're unlikely to directly apply it.
23:54
<@Consul>
So if you could do something cross-disciplinary between computer science and engineering/physics, what might that be?
23:55
<@Consul>
You don't have to answer that. I'm being semi-rhetorical, anyway.
23:55
<@Consul>
But it gives an idea of what I'm aiming for.
--- Log closed Tue Jan 13 00:00:02 2009
code logs -> 2009 -> Mon, 12 Jan 2009< code.20090111.log - code.20090113.log >