code logs -> 2009 -> Sun, 04 Jan 2009< code.20090103.log - code.20090105.log >
--- Log opened Sun Jan 04 00:00:23 2009
00:07 Consul [~consul@Nightstar-2535.dsl.sfldmi.ameritech.net] has joined #code
00:07 mode/#code [+o Consul] by ChanServ
00:08
<@Consul>
Well, fsck is happy about both partitions.
00:09
<@Consul>
So, that brings me back to the question of why making a DVD from Youtube downloads (mp4) with Devede is suddenly locking up my computer, when before it worked fine.
00:10
<@ToxicFrog>
You're sure it's the entire system hanging, not just X?
00:10
<@Consul>
Not even the keyboard works.
00:10
<@Consul>
Num or caps lock won't turn on and off.
00:10
<@ToxicFrog>
Aah.
00:10
<@Consul>
ctrl+alt+backspace is no good.
00:10
<@ToxicFrog>
Nor is ctrl-alt-F1? Yeah, not cool.
00:11
<@Consul>
ctrl+alt+del is no good, either.
00:11
<@Consul>
I didn't try the F1 variant, but I have a feeling I can answer it already.
00:12
<@Consul>
It seems like the BBC is burning through a lot of Doctor Who's lately.
00:12
<@ToxicFrog>
What, are we on the 11th Doctor already?
00:12
<@Consul>
Yeah.
00:13
<@Consul>
But before the series was restarted, they'd last a lot longer than this.
00:13
<@Consul>
It's a very different culture at the Beeb, these days.
00:13
<@ToxicFrog>
Some longer than others, but in general, yes.
00:14 Vornicus [~vorn@Admin.Nightstar.Net] has quit [Ping Timeout]
00:16 * ToxicFrog writes some docs for his SDL binding
00:20 Vornicus [~vorn@Admin.Nightstar.Net] has joined #code
00:20 mode/#code [+o Vornicus] by ChanServ
00:21
<@Serah>
Return of the Vorn.
01:20 McM[SanDiego] is now known as McMartin
01:53 Reiver [~reaverta@Admin.Nightstar.Net] has quit [Quit: I ATENT'T DEAD]
02:04 Reiver [~reaverta@Admin.Nightstar.Net] has joined #Code
02:04 mode/#code [+o Reiver] by ChanServ
02:11 AnnoDomini [~farkoff@Nightstar-28974.neoplus.adsl.tpnet.pl] has quit [Quit: Sometimes you burn with the Art, and other times, the Art burns you.]
02:44 Vornicus [~vorn@Admin.Nightstar.Net] has quit [Quit: ]
03:19 * McMartin fiddles with ocamllex
03:24
<@McMartin>
... or, the problem could be in unrelated code managing the command line.
03:26 Serah [~Z@87.72.35.ns-26506] has quit [Connection reset by peer]
03:32 Serah [~Z@87.72.35.ns-26506] has joined #Code
03:32 mode/#code [+o Serah] by ChanServ
03:37 Derakon [~Derakon@Nightstar-4920.hsd1.ca.comcast.net] has joined #code
03:37 mode/#code [+o Derakon] by ChanServ
03:37 * Derakon successfully sets up a bullet flywheel.
03:39
<@Derakon>
Two spirals spewing out one bullet per frame, with bullets moving at 5 pixels per frame, gets me a steady-state at 158 bullets with no noticeable slowdown.
03:40 * Derakon doubles it, gets some slowdown. Drat.
03:41
<@Derakon>
Gonna have to be more efficient somehow...and I'm not even doing collision detection right now.
03:41
<@McMartin>
Heh
03:41
<@McMartin>
Hm. OK, I guess my real problem is that I'm using the wrong version of OCaml.
03:41
<@Derakon>
Collision detection will be a straightforward circle-point algo.
03:45
<@Derakon>
Okay, four emitters, firing bullets in spirals, while they themselves move in circles?
03:45
<@Derakon>
I can't dodge that.
03:56
<@McMartin>
Heh
03:56
<@McMartin>
*finally*
03:56
<@McMartin>
Though I think this still only works with the latest version of OCaml, but so it goes.
03:57 * McMartin manages to get an autogenerated lexer that properly tracks file/line/column on each token.
05:02
<@McMartin>
ocamlyacc, however, still can't integrate right with this.
05:20 * Derakon ponders the best way to handle BulletML in Python.
05:20
<@Derakon>
I wonder how efficient it would be to generate a set of anonymous functions that describe the behaviors specified in the document.
05:24
<@McMartin>
Why anonymous?
05:24
<@McMartin>
Why not named?
05:25
<@McMartin>
Heck, why not objects, so that they can have state if they need it
05:25
<@McMartin>
Though really, if it's got __call__, you don't care, right~
05:25
<@Derakon>
Heh.
05:25
<@Derakon>
Anyway, the thought was to avoid getting to deeply into a call stack in the interests of efficiency, but that sounds to me like premature optimization.
05:26
<@McMartin>
Lambdas won't cut it for parameterizations.
05:28
<@Derakon>
Hrm...how do I go about viewing the source on that applet...?
05:28
<@McMartin>
Take the jar and run it through a decompiler, most likely.
05:29
<@Derakon>
Oh, wait, there it is.
05:29
<@Derakon>
http://www.asahi-net.or.jp/~cs8k-cyu/bulletml/bulletml0_21.zip
05:32
<@Derakon>
Oh, goody, the source code was procedurally-generated.
05:33
<@McMartin>
Oy.
05:33
<@Derakon>
43k lines of code? No thanks.
05:33
<@McMartin>
Hum.
05:33
<@Derakon>
And the documentation is a bit brief.
05:33 * McMartin wonders if Python has a "procedurally generate a parser from relaxng &c"
05:33
<@Derakon>
I don't think parsing the ML will be especially hard.
05:33
<@Derakon>
Knowing what to do with the parsed objects is the trick.
05:34
<@McMartin>
Yeah
05:34
<@McMartin>
I don't suppose the source was made with RELAXNGCC
05:34
<@Derakon>
It's Java, so I assume gcc is out.
05:36 * Derakon resolves to just take one of the simpler documents (Psyvariar_X-A_boss_opening) and try to make something that looks similar.
05:36
<@McMartin>
RELAXNGCC is in fact Java.
05:37
<@McMartin>
The thing is that it would have the bits he wrote by hand in it
05:37
<@Derakon>
Ah.
05:37 * McMartin pokes at it himself
05:39
<@McMartin>
I suspect that stuff like BulletImpl.java that actually talks to the applet are the parts you'd be able to loot.
05:39
<@Derakon>
Well, I'm gonna fool about with getting ElementTree working for the nonce.
05:39
<@McMartin>
Let me know how it goes; I'd like to hear about its utility.
05:40
<@McMartin>
Aha.
05:40
<@Derakon>
Will do.
05:40
<@McMartin>
He used "Relaxer" for the procedurally generated stuff
05:40
<@McMartin>
In short, what you'd be using Elementtree for.
05:40
<@Derakon>
Fun times.
05:40
<@McMartin>
That's the XML parsing because Java's XML support is the reference standard.
05:40
<@McMartin>
Read: It sucks.
05:40 * Derakon snickers.
05:44 * McMartin rereads net.sf.blorple.ifiction.Parser's source code, swiftly re-convinces himself of this.
05:45
<@McMartin>
631 lines of actual XML-touching code, with some fairly sophisticated abstractions, and several thousand lines of data representation bullshit
05:45
<@McMartin>
Just to get some decent structures.
05:46
<@McMartin>
Yeah, that would have been much easier with something like Relaxer.
05:49
<@Derakon>
Blorple did its own XML management?
05:49
<@Derakon>
Or it used the Java standard implementation?
05:50
<@McMartin>
It used the Java standard implementation and then reified it as a set of basic structure objects.
05:50
<@McMartin>
So that Blorple *proper* doesn't have to give a shit about XML, just the Story class and its many-nested components.
05:53
<@McMartin>
Oh, man
05:54 * McMartin summons Steele, Gosling, and Stroustrup to beat the writer of BulletML for his sins against OO.
05:54
<@Derakon>
BulletML the markup, or the implementation?
05:55
<@McMartin>
ActionImpl.java is the one that has what you want
05:55
<@McMartin>
It is done with a chain of "if (x instanceof blah) { ... } else if (x instanceof blah) { ... } ..."
05:55
<@McMartin>
VIRTUAL FUNCTIONS: NOT JUST FOR BREAKFAST ANYMORE
05:56
<@Derakon>
Ew.
05:56
<@McMartin>
(To be fair, since those blah functions may have been autogenerated, he might not have been *able* to add stuff like that.)
05:57
<@Derakon>
This is 322 lines of basically uncommented Java with badly-chosen variable names.
05:58
<@McMartin>
Still probably easier to read than the raw bytecode~
05:58 * Derakon facepalms.
05:58
<@McMartin>
That's the closest thing to a spec I can see, though.
05:59
<@Derakon>
Yeah, thanks for tracking it down.
06:00
<@McMartin>
I'd go by the minimal reference first, and only go to the source when an action is wildly underspecified instead of merely underspecified.
06:00 * Derakon nods.
06:00
<@McMartin>
(See also: me and iFiction.)
06:01
<@McMartin>
(In which I used the babel tools for the fallback.)
06:01
<@Derakon>
Okay, I have ElementTree parsing the document and getting the right element tags out, at any rate. Now to try accessing labels/contents.
06:02
<@McMartin>
Already Better Than MiniDOM
06:03
<@Derakon>
Here's the tree-print code I threw together: http://paste.ubuntu.com/99428/
06:04
<@Derakon>
Not very interesting, but I figured you might be curious.
06:06
<@jerith>
Derakon: ElementTree's in the stdlib from 2.5 (as etree, iirc).
06:06
<@Derakon>
Ahh?
06:06
<@McMartin>
Well, that just means he just has to change the import statement.
06:07
<@jerith>
Yeah.
06:07
<@Derakon>
"import etree" doesn't work, anyway.
06:07
<@Derakon>
And I'm using 2.5.
06:07
<@McMartin>
It's deeper than that...
06:07
<@jerith>
What I do is try import the stdlib version and fall back to the external library if it's not there..
06:07
<@jerith>
-.
06:08
<@McMartin>
import xml.etree.ElementTree as ET
06:08
<@Derakon>
That works.
06:08
<@Derakon>
How did you figure that out?
06:08
<@McMartin>
I looked at http://docs.python.org/library/
06:08
<@Derakon>
Ah hah.
06:08
<@McMartin>
Alternate answer:
06:08
<@McMartin>
AVATAR
06:09
<@Derakon>
Dangit, Steve!
06:09 * McMartin checks his shirt
06:09
<@McMartin>
I'm definitely not Steve.
06:09
<@Derakon>
I'm safe from cannons, then?
06:09
<@jerith>
Then catch ImportError (or whatever) and look for elementtree.
06:09
<@McMartin>
Can anyone ever truly be safe from cannons?
06:09
<@McMartin>
(import cannon)
06:09 * Derakon facepalms.
06:10
<@jerith>
FLYING ARTILLERY! (import cannon; import antigravity)
06:11
<@McMartin>
"When will your reign of terror end, Death Cannon?"
06:11
<@McMartin>
"If anyone asks, he fell down some stairs. ...into a cannon."
06:12
<@Derakon>
Okay, lessee...I have a <bullet> tag which describes starting properties of a bullet (notably not including position...), an <action> tag that lets me change the properties of bullets, a <fire> tag to instantiate bullets, and a bunch of other things that are contained within those tags.
06:12
<@Derakon>
Actions can also exist independent of bullets, e.g. for a main loop to create initial bullets.
06:13
<@Derakon>
And everything can be named and referred to by name elsewhere in the document.
06:13
<@jerith>
You're firing bullets in XML?
06:13
<@Derakon>
BulletML.
06:14
<@Derakon>
XML for danmaku ("bullet hell" / "manic shooter") games.
06:14
<@jerith>
Hrm.
06:14
<@Derakon>
Basically a markup language for specifying the behaviors of particles.
06:14
<@jerith>
Can we fire bullets *into* XML instead?
06:14
<@Derakon>
I'm sure it's been done many times.
06:15
<@jerith>
Not by me.
06:15
<@Derakon>
Don't let me stop you, then.
06:15 * jerith resolves to take a printout of the SOAP spec next time he goes to the range.
06:15
<@Derakon>
Anyway, from what I can tell, a useful BulletML document must have either an action tag or a fire taga at the root level
06:16
<@Derakon>
Since otherwise nothing would happen.
06:16
<@jerith>
Shouldn't you need something else to do the firing?
06:16
<@Derakon>
Also, the position of the bullet emitters is not referred to anywhere in the document; that's assumed to be handled by the application.
06:17
<@Derakon>
Think of this as the code that gun turrets execute, Jerith.
06:18
<@Derakon>
E.g. "repeat 100 times: fire a bullet(angle 45 +- rand(5) degrees, speed .5 +- rand(1)); sleep(2)"
06:18
<@jerith>
Ah, right.
06:19
<@jerith>
So this is more ShootML than BulletML.
06:20
<@Derakon>
Um, sure?
06:21 * jerith was thinking of it a a description of a bullet rather than the description of the bullet and the fire control for said bullet.
06:21
<@jerith>
*as
06:21 * Derakon nods.
06:21 * Derakon tries to figure out the right way to handle this whole thing.
06:22
<@jerith>
On first thought, I'd split it into bullets and guns.
06:23
<@Derakon>
Python supports currying, right?
06:23
<@jerith>
Bullets describe things like damage, explosions, proximity fuses, etc.
06:23
<@jerith>
Derakon: Sort of. You have to return a closure from a function, it doesn't happen automagically.
06:24
<@jerith>
Guns describe things like magazine capacity, rate of fire, etc.
06:24
<@Derakon>
What I'm thinking is that I'd have e.g. an action() function which accepts as inputs all the valid contents of an <action> tag, as well as an object to operate on (a bullet, or null in which case it'd return new bullets or sommat).
06:24
<@McMartin>
jerith: BulletML is specifically designed to be a spec language for agents in Bullet Hell games.
06:24
<@Derakon>
So when I parse an <action> tag I invoke action() will all but one of the arguments, and take the resulting function and stick it into a list of functions that I'll need.
06:24
<@jerith>
McMartin: Ah, I lack context then.
06:24
<@McMartin>
Derakon: Python is Weird about closures.
06:25
<@McMartin>
You will want to return objects that do the python equivalent of overriding operator().
06:25
<@Derakon>
So e.g. a simple <bullet> tag might just provide the angle and speed of the bullet; I call bullet(angle, speed), get a function back, and use that function when updating generated bullets.
06:25
<@McMartin>
Because "closures" are not permitted to have writable state.
06:25
<@Derakon>
I don't think I follow.
06:25
<@McMartin>
So, if this were Scheme
06:26
<@McMartin>
You'd return a lambda expression that referred to some values that were passed to the lambda's generator as parameters.
06:26
<@McMartin>
This sort of works in Python, if and only if those things are read-only
06:26
<@McMartin>
Because otherwise there's a lack of clarity about whether you were writing to something in a higher scope or creating a new variable that shadows it, so Python just bans it outright.
06:27
<@McMartin>
The preferred solution is to return an object with fields, thus clarifying what gets written where.
06:27
<@Derakon>
Couldn't just enforce pass-by-value or something, huh?
06:27 * jerith packs up to go to the office for the day.
06:27
<@McMartin>
Derakon: This has nothing to do with passing, and more to do with "what does the name 'x' mean"
06:27
<@Derakon>
Okay, so when I parse a <bullet> tag, I'd create a new BulletFunc object, set its fields (e.g. angle, speed), and Bullet instances would contain BulletFuncs, which are called during Bullet.update?
06:28
<@McMartin>
Ideally, during Bullet.__call__, I'd think
06:28
<@McMartin>
You want these to act like functions, right?
06:28
<@Derakon>
That is, Bullet.update would call BulletFunc.updateBullet or something.
06:28
<@Derakon>
That would be ideal.
06:28
<@Derakon>
I'm not familiar with __call__.
06:28
<@McMartin>
Let me test this in a REPL to make sure I get it right
06:28
<@Derakon>
Ahh. __call__ overloads operator().
06:29
<@McMartin>
Yeah.
06:29
<@Derakon>
Handy, tha t.
06:29
<@McMartin>
But it may act oddly with __init__.
06:29
<@Derakon>
s/tha t/that/
06:29
<@Derakon>
http://www.daniweb.com/forums/thread39004.html
06:29
<@Derakon>
That implies that Python is smart about the context of the call.
06:29
<@McMartin>
It is on *reads*.
06:29
<@Derakon>
I.e. if you're using the class name, it calls __init__; if you're using an instance, it calls __call__.
06:29
<@McMartin>
Oh
06:29
<@McMartin>
Yeah
06:30
<@McMartin>
>>> class A:
06:30
<@McMartin>
... def __init__(self, x): self.x = x
06:30
<@McMartin>
... def __call__(self, y): return self.x + y
06:30
<@McMartin>
...
06:30
<@McMartin>
>>> a = A(2)
06:30
<@McMartin>
>>> a(3)
06:30
<@McMartin>
5
06:30
<@McMartin>
(Too short to pastebin)
06:30 * Derakon nods.
06:30
<@Derakon>
Okay, that seems workable.
06:30
<@McMartin>
If something *isn't* paramaterized, like, say, vanish tags, then those probably can be simple functions.
06:30
<@jerith>
Back in a few minutes.
06:30
<@Derakon>
Right.
06:30
<@McMartin>
They can't be lambdas, I don't think, because lambdas are restricted to a single expression, and it can't be a statement.
06:31
<@McMartin>
And besides, you *have* a name for it: "vanish".
06:32
<@Derakon>
Hm. I'll need an internal field on Actions to indicate that they're "done" so I know to move to the next thing or to force-repeat them.
06:32
<@Derakon>
...agh, this does not interact well with an external main loop.
06:33 Vornicus [~vorn@Admin.Nightstar.Net] has joined #code
06:33 mode/#code [+o Vornicus] by ChanServ
06:33
<@Derakon>
Every time there's a <wait> tag I'll need to basically set an interrupt in the middle of the function.
06:33
<@McMartin>
Have agents have a countdown of "frames to next action"?
06:33
<@McMartin>
With the wait action tracking to "set this value to something that isn't 1"?
06:33
<@Derakon>
An action could be <wait>2</wait><fire>foo</fire><wait>2</wait><fire>bar</fire>
06:34
<@McMartin>
"action" is really a program, it sounds like.
06:34
<@Derakon>
Pretty much, yeah.
06:34
<@McMartin>
What we've been talking about is not for actions, then.
06:34
<@McMartin>
it's for their components: wait, fire, accel, vanish, &c.
06:35
<@Derakon>
I guess <wait> actually means "invoke update/draw cycle once"?
06:35
<@McMartin>
That wasn't how I was imagining the architecture, but you're the architect~
06:35
<@McMartin>
(I sort of flipped the priority there)
06:35 Vornotron [~vorn@Admin.Nightstar.Net] has joined #code
06:35 * Derakon tries removing the <wait> tag from one of the files in the sample implementation, gets code that does actually still draw things.
06:36
<@McMartin>
You can't let individual agents dictate global actions like draw!
06:36
<@Derakon>
I'm trying to figure out how to reconcile this behavior with a simple main loop...I'm not certain it works.
06:36
<@Derakon>
Yeah.
06:36 Vornicus [~vorn@Admin.Nightstar.Net] has quit [Ping Timeout]
06:36
<@Derakon>
This feels like a situation that calls for threads.
06:37
<@McMartin>
The simple main loop tells each agent "It's been a tick. Do your thing." Agents do action processing, probably by waiting for their trigger and if it hits zero, invoking their next sub-action.
06:37
< Vornotron>
why are we using XML for a tick pattern.
06:37
<@McMartin>
If that action was "wait", their trigger is delayed.
06:37
<@McMartin>
Vornotron: We are not. We're using it because it already exists and people use it.
06:37
<@McMartin>
It's for specifying scripted firing pattern AIs for bullet hells.
06:37
<@Derakon>
I'm basically trying to make a Python implementation.
06:37
< Vornotron>
Oh.
06:38
<@McMartin>
Anyway, this is synchronized enough that I don't think threads are strictly necessary.
06:38
<@Derakon>
McM: my issue is how to track where in the action processing an agent is.
06:38
<@McMartin>
Give agents state.
06:38
<@Derakon>
So say an action's code says "fire a bullet, wait a bit, fire a different bullet, wait a bit."
06:38
<@Derakon>
I call the action, it fires the first bullet, hits the first wait statement, returns.
06:38 Vornotron [~vorn@Admin.Nightstar.Net] has quit [Connection reset by peer]
06:39
<@Derakon>
I call it again, it needs to say "Okay, I'm partway into the first wait; I'm not done yet; return."
06:39
<@Derakon>
I call it again, it needs to say "Okay, I'm done with the first wait, now where was I? Okay, fire second bullet, time to wait, so return."
06:39
<@McMartin>
... what about this do you think is tricky?
06:39 Vornicus [~vorn@Admin.Nightstar.Net] has joined #code
06:39 mode/#code [+o Vornicus] by ChanServ
06:39
<@McMartin>
I mean, you've essentally specified an algorithm right there.
06:40
<@McMartin>
The only thing missing is the variable names.
06:40
<@Derakon>
Tracking where in the algo I am.
06:40
<@McMartin>
Right.
06:40
<@McMartin>
So
06:40
<@Derakon>
Do I split out everything between wait statements into separate functions or something?
06:40
<@McMartin>
Our agent has some list: [fire(foo), wait(2), fire(bar), wait(2)]
06:40
<@McMartin>
We have an integer that says where in that list we are.
06:40
<@McMartin>
We have some other integer that says how many times we have to be woken up before we resume processing.
06:40
<@Derakon>
And a dict or something that contains state for each position in the list.
06:41
<@McMartin>
No, because these are callables, right?
06:41
<@Derakon>
Okay, that should work.
06:41
<@McMartin>
The state is living there in "fire(foo)"
06:41
<@Derakon>
Ahh, right.
06:41
<@Derakon>
It's the "break the action code into segments" bit that I was missing, really.
06:41
<@McMartin>
Aha
06:42
<@McMartin>
So yeah, main loop then becomes "wake up each agent once; draw."
06:42
<@Derakon>
Right.
06:42
<@McMartin>
For added fun, the player can be an agent too, but his update involves checking the input state.
06:42
<@McMartin>
(This is effectively what Sable does)
06:42
<@Derakon>
Okay, I need to write this all down since it's getting a bit late.
06:43
<@Derakon>
I've already basically written the player code, so I don't feel the need to muck with it ATM.
07:06 * jerith is back.
07:08 * Derakon sings Vim's praises for search&replace.
07:08
<@Derakon>
Makes changing < to &lt; and > to &gt; much easier.
07:08
<@Derakon>
Anyway, made a big LJ post to my gamedev filter.
07:20
<@Vornicus>
...okay, bulletml?
07:21
<@Vornicus>
/fucking awesome/
07:21
<@Derakon>
Heh.
07:21 * Vornicus is watching the demos, and they are incredible.
07:30
<@Derakon>
To be fair, those are just implementations in BulletML of patterns taken from various games.
07:30
<@Vornicus>
yes.
07:30
<@Vornicus>
But some of these I did not expect you to be able to do.
07:31
<@Vornicus>
Now that I haveseen that they are possible, I agree that bulletml is the way to go.
07:31
<@Vornicus>
(The backburst one is my favorite)
07:34
<@jerith>
Der: Where do I find this post?
07:36
<@Derakon>
http://derakon.livejournal.com/306123.html?#cutid1
07:36
<@Derakon>
I don't think I have you friended, though.
07:36
<@Vornicus>
jerith!
07:37
<@Derakon>
Okay, you should be good to go.
07:39
<@jerith>
Cool, thanks.
07:40 * Derakon determines that in the example implementation, the speed and direction on the <bullet> tag are overridden by the speed and direction in the <fire> tag.
07:40
<@Derakon>
Okay, bedtime. T-2, all.
07:43 Derakon is now known as Derakon[AFK]
08:40 KBot [AnnoDomini@Nightstar-84.neoplus.adsl.tpnet.pl] has joined #Code
08:41 KarmaBot [AnnoDomini@Nightstar-28974.neoplus.adsl.tpnet.pl] has quit [Ping Timeout]
08:43 KBot is now known as KarmaBot
10:37 AnnoDomini [~farkoff@Nightstar-84.neoplus.adsl.tpnet.pl] has joined #Code
10:37 mode/#code [+o AnnoDomini] by ChanServ
10:47 Vornicus [~vorn@Admin.Nightstar.Net] has quit [Quit: ]
14:32 gnolaptop [~lenin@Nightstar-1449.dialup.nmt.net] has joined #Code
15:01 gnolaptop [~lenin@Nightstar-1449.dialup.nmt.net] has quit [Ping Timeout]
15:02 gnolaptop [~lenin@Nightstar-1449.dialup.nmt.net] has joined #Code
15:55 gnolaptop [~lenin@Nightstar-1449.dialup.nmt.net] has quit [Ping Timeout]
15:56 C_tiger_remote is now known as C_tiger
15:57 gnolaptop [~lenin@Nightstar-1449.dialup.nmt.net] has joined #Code
16:00 gnolaptop [~lenin@Nightstar-1449.dialup.nmt.net] has quit [Ping Timeout]
16:03 gnolaptop [~lenin@Nightstar-1583.dialup.nmt.net] has joined #Code
16:08 gnolaptop [~lenin@Nightstar-1583.dialup.nmt.net] has quit [Ping Timeout]
16:14 gnolaptop [~lenin@Nightstar-1844.dialup.nmt.net] has joined #Code
16:18 Attilla [~The.Attil@Nightstar-9469.cdif.cable.ntl.com] has joined #code
16:18 mode/#code [+o Attilla] by ChanServ
16:28 Attilla [~The.Attil@Nightstar-9469.cdif.cable.ntl.com] has quit [Ping Timeout]
16:38 Derakon[AFK] is now known as Derakon
16:58 gnolaptop [~lenin@Nightstar-1844.dialup.nmt.net] has quit [Ping Timeout]
17:31 gnolaptop [~lenin@91.149.34.ns-11340] has joined #Code
17:39 gnolaptop [~lenin@91.149.34.ns-11340] has quit [Ping Timeout]
17:47 gnolaptop [~lenin@91.149.34.ns-11340] has joined #Code
18:00 gnolaptop [~lenin@91.149.34.ns-11340] has quit [Ping Timeout]
18:02 gnolaptop [~lenin@91.149.34.ns-11340] has joined #Code
18:03 gnolaptop [~lenin@91.149.34.ns-11340] has quit [Quit: So far, I'm not liking 2009 one bit.]
19:09 gnolam [lenin@Nightstar-1382.A163.priv.bahnhof.se] has joined #Code
19:09 mode/#code [+o gnolam] by ChanServ
20:57 Vornicus [~vorn@Admin.Nightstar.Net] has joined #code
20:57 mode/#code [+o Vornicus] by ChanServ
21:06 Vornicus is now known as Finerty
21:13 Attilla [~The.Attil@Nightstar-9469.cdif.cable.ntl.com] has joined #code
21:13 mode/#code [+o Attilla] by ChanServ
21:14
<@Consul>
Should I be ashamed to admit I'm enjoying these MIT lectures on differential equations on YouTube?
21:14
<@Finerty>
where?
21:14
<@Consul>
Youtube
21:14
<@Consul>
User MIT
21:14
<@Finerty>
Sweet.
21:14
<@Consul>
They have a playlist for all 32 lectures, ~50 mins each.
21:15
<@Consul>
Creative Commons license, so they can probably be downloaded as a torrent somewhere.
21:16
<@Consul>
http://ocw.mit.edu/OcwWeb/Mathematics/18-03Spring-2006/CourseHome/index.htm
21:16 Finerty is now known as Vornicus
21:16 Vornicus is now known as Finerty
21:16
< simontwo>
Consul, enjoying? yes!
21:17
<@Consul>
They did two things right. 1) The professor is actually a good speaker who can keep you engaged. 2) The videography and sound are well-done and interesting.
21:17
< simontwo>
Consul, I'm currently viewing the ones in Linear Algebra because my own book suddenly got a lot harder when skipping two weeks of lectures.
21:17
<@Consul>
Oh, and 3) they didn't cut out any footage when something quirky happens.
21:18
< simontwo>
Consul, okay. the one on Linear Algebra is constantly asking the audience rhetorical questions (i.e. I don't think he cares what they answer, but still he waits for them to say something before continuing).
21:18
<@Consul>
http://ocw.mit.edu/OcwWeb/Mathematics/18-03Spring-2006/VideoLectures/index.htm -- Video downloads, though no torrent file I can see.
21:18
<@Consul>
simontwo: Oh, well, I've only been watching the diff-eq ones. I finished linear algebra, with an A I might add. :-)
21:18
<@Consul>
I'm starting diff-eq in a week, and I thought I'd get a head-start.
21:19
< simontwo>
Consul, sounds sensible.
21:20
<@Consul>
Eh, guess I'll just keep watching them on Youtube. I was hoping for a torrent.
21:20
< simontwo>
I have a mandatory course after this one called "web programming".
21:24
<@Derakon>
Hmm...all these objects are starting to get a bit hairy.
21:37
<@Derakon>
ElementTree's documentation is a bit lacking in documentation telling me how to get the type of a tag out.
21:38
<@Derakon>
E.g. I want to go from <action label="foo"> to 'action'.
21:38
<@Derakon>
The docs appear to be geared towards writing XML documents, not reading them.
21:46 Attilla_ [~The.Attil@Nightstar-9469.cdif.cable.ntl.com] has joined #code
21:47 Attilla [~The.Attil@Nightstar-9469.cdif.cable.ntl.com] has quit [Ping Timeout]
21:48 Attilla_ is now known as Attilla
22:02
<@Derakon>
Ha HA!
22:03
<@Derakon>
Simple BulletML file: PARSED.
22:03
<@Consul>
Derakon: Sweet!
22:03
<@Consul>
I have no idea what that is, but it deserves some congratulations, I'm sure. ;-)
22:04
<@Derakon>
Heh. Check out http://www.asahi-net.or.jp/~cs8k-cyu/bulletml/bulletml_applet_e.html
22:04
<@Derakon>
In short, I'm now handling the Psyvariar_X-A "boss opening" file on that page.
22:04
<@Consul>
Oh, cool! The OpenJDK plugin is working!
22:05
<@Derakon>
...well, okay, the <wait> tag isn't being obeyed. I should fix that.
22:05
<@Consul>
Hey, that's pretty neat...
22:06
<@Finerty>
BulletML: a markup language for describing firing sequences for entities in shooters.
22:06
<@Consul>
Finerty: Thanks...
22:07
<@Derakon>
Okay, I have a bunch of different classes, I want to give each instance of a class a unique ID (regardless of the class type).
22:08
<@Derakon>
I created a variable globalId at the top of the script, so I could set self.id in every init function.
22:08
<@Derakon>
But it won't let me refer to globalId. Says "UnboundLocalError: local variable 'globalId' referenced before assignment"
22:09
<@Derakon>
Ahh. 'global' keyword is my friend.
22:10
<@Finerty>
Yes indeed.
22:10
<@Finerty>
Though I was under the impression that objects got ids from the vm.
22:11
<@Derakon>
Ahh?
22:11
<@Derakon>
Well, it's probably some hexadecimal crud. I know what Action #0 is on each invocation.
22:11
<@Finerty>
Yeah, let me see if I can find that information - object i is the power of is.
22:11
<@Finerty>
object id, rather
22:11
<@Derakon>
That sentence still makes no sense.
22:12
<@Derakon>
"object id is the power of is"?
22:12
<@Finerty>
"is" uses object identity
22:12
<@Finerty>
(the is operator)
22:12
<@Derakon>
Ahh.
22:12 MyCatVerbs [~mycatverb@Nightstar-13709.lurkingfox.co.uk] has quit [Ping Timeout]
22:23
<@Derakon>
There. Wait and repeat now function properly.
22:44 * Derakon creates submunitions.
22:46
<@Derakon>
(Thereby verifying that bullets do run actions contained within them)
23:02 AnnoDomini [~farkoff@Nightstar-84.neoplus.adsl.tpnet.pl] has quit [Quit: There is strength not only in *knowing* the self, but *knowing* how to bring it forth in others.]
23:55
<@McMartin>
w00t
--- Log closed Mon Jan 05 00:00:35 2009
code logs -> 2009 -> Sun, 04 Jan 2009< code.20090103.log - code.20090105.log >