code logs -> 2013 -> Tue, 26 Feb 2013< code.20130225.log - code.20130227.log >
--- Log opened Tue Feb 26 00:00:06 2013
00:05 Vornicus [vorn@ServerAdministrator.Nightstar.Net] has quit [[NS] Quit: Leaving]
01:17 VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code
01:26 Attilla [chatzilla@Nightstar-87646183.range86-143.btcentralplus.com] has quit [Ping timeout: 121 seconds]
01:52 Vornicus [vorn@ServerAdministrator.Nightstar.Net] has joined #code
01:52 mode/#code [+qo Vornicus Vornicus] by ChanServ
02:03 Kindamoody[zZz] is now known as Kindamoody
02:45
<@Rhamphoryncus>
Derakon: there's subtle differences involving subclasses, and I'm pretty sure other cases
03:00 syksleep is now known as Syk
03:35 VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has quit [[NS] Quit: Program Shutting down]
03:59 himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds]
04:11 himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code
04:11 mode/#code [+o himi] by ChanServ
04:24 celticminstrel [celticminst@Nightstar-e83b3651.cable.rogers.com] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!]
05:11 himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds]
05:24 himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code
05:24 mode/#code [+o himi] by ChanServ
06:19 Kindamoody is now known as Kindamoody|out
06:25 Derakon is now known as Derakon[AFK]
06:38 Syk [the@Nightstar-6c5269c8.iinet.net.au] has quit [Connection closed]
06:43 ErikMesoy|sleep is now known as ErikMesoy
06:43 d4de [olorin@687AAB.418D22.06F82B.4AC788] has quit [Ping timeout: 121 seconds]
06:43 d4de [olorin@687AAB.418D22.EDB4A5.D67519] has joined #code
07:06 You're now known as TheWatcher
07:11 Syka [the@Nightstar-17ec0bb9.iinet.net.au] has joined #code
07:12 himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds]
07:25 himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code
07:25 mode/#code [+o himi] by ChanServ
07:50 Alek [omegaboot@Nightstar-56dbba0f.in.comcast.net] has quit [Ping timeout: 121 seconds]
07:51 Alek [omegaboot@Nightstar-56dbba0f.in.comcast.net] has joined #code
07:51 mode/#code [+o Alek] by ChanServ
07:58 Syka [the@Nightstar-17ec0bb9.iinet.net.au] has quit [Ping timeout: 121 seconds]
08:06 Syka [the@Nightstar-17ec0bb9.iinet.net.au] has joined #code
08:12 You're now known as TheWatcher[afk]
08:16 Attilla [chatzilla@Nightstar-87646183.range86-143.btcentralplus.com] has joined #code
08:41
<~Vornicus>
hate taffy.
09:14 himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds]
09:28 himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code
09:28 mode/#code [+o himi] by ChanServ
10:21 RichyB [richardb@Nightstar-228a334c.plus.com] has joined #code
10:21 You're now known as TheWatcher
10:41 ShellNinja [abudhabi@Nightstar-19ac0f3b.adsl.inetia.pl] has quit [Ping timeout: 121 seconds]
10:49 ShellNinja [abudhabi@Nightstar-c3110575.adsl.inetia.pl] has joined #code
10:50 himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds]
10:56 * TheWatcher stabs sourceforge
10:56
<@TheWatcher>
why, why does it have that ridiculous 5 second download pause?
11:03 himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code
11:03 mode/#code [+o himi] by ChanServ
11:10
< Syka>
TheWatcher: so you look at ads
11:15
<@TheWatcher>
Is that what comes up in that big white space at the bottom of the page, then? Huh.
11:15
<@TheWatcher>
Did wonder.
11:19
<@Tarinaky>
Sourceforge... what we used before github/google code/etc...
11:19 Vornicus [vorn@ServerAdministrator.Nightstar.Net] has quit [[NS] Quit: Leaving]
11:21
<@TheWatcher>
Tarinaky: and people still use for binaries, shockingly.
11:22
<@Tarinaky>
Yeah. It is :p
11:22
<@Tarinaky>
Particularly as github did the whole "You can't have downloads outside your source/git"
11:23
<@TheWatcher>
(Which I think I must be like the only person in the world to agree with...)
11:24
<@Tarinaky>
(Don't expect Turkeys to vote for Christmas)
11:25 himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds]
11:38 himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code
11:38 mode/#code [+o himi] by ChanServ
11:50
< JustBob>
Some of us don't want to compile every time. :p
11:50
< JustBob>
Especially those of us who are interested in a program for what it can do, not how it's written. *mutter mutter fucking refprop*
11:53
<@TheWatcher>
Yeah, but that's not what github is for, they've been pretty clear about that all along. It's for collaborative development hosting, not user-facing hosting.
11:54
< JustBob>
There is that.
12:04
< RichyB>
http://i.imgur.com/IjDL5tF.jpg I don't understand what is happening in this picture.
12:10
<@TheWatcher>
Looks like part of this: https://twitter.com/kaspersky/status/306072537249484800
12:11
<@TheWatcher>
Anti-kapersky lab demo outside the mobile world conference
12:12
<@TheWatcher>
+s
12:13
<@TheWatcher>
s/conference/congress/ (need more tea, damnit)
12:30
< Syka>
TheWatcher: bahaha
12:31
< Syka>
according to that picture, women in IT aren't doing too badly
12:31
< Syka>
that's how you know it's probably bought out
12:31
< ShellNinja>
Yep.
12:32 * Syka just watches her personal opinion of kappy go down down down
12:32 * ShellNinja recalls how his Uni had a sex ratio of approx. 30:1.
12:32
< Syka>
there's also the 'hackers outside'
12:32
< Syka>
which uh
12:33
< ShellNinja>
Daystar! It burns!
12:33
< Syka>
and the sort of unified dress
12:33
< Syka>
which uhhh
12:33
< Syka>
yeah
12:33
< Syka>
this is so totally bought out
12:33
< Syka>
for example, I don'
12:33
< Syka>
t see a single obese neckbeard
12:33
<@TheWatcher>
ShellNinja: that good?
12:33
< Syka>
TheWatcher: 30:1 is pretty awful
12:33
< Syka>
that's like 3.5%
12:34
<@TheWatcher>
Ahahah
12:34
< ShellNinja>
TheWatcher: Yes. I believe we had a sort of program to encourage females.
12:34
< Syka>
man
12:34
<@TheWatcher>
When I was doing my UG degree there were 3 females in the entire UG school
12:34
< Syka>
i want to put 'there are too many females in this picture' on twitter
12:34
< Syka>
but afraid I'll be ragepwn'd by the twittersphere
12:35
< JustBob>
Man, it's a good thing I have 16 gigs of ram.
12:35
<@TheWatcher>
put another way: approximately a 200:1 ratio
12:35
< JustBob>
Because FireFox apparently wants to consume 1.8 gigs of it.
12:35
< JustBob>
After 24 hours.
12:36
< Syka>
https://twitter.com/hawkieowl/status/306382188188934144
12:36
< Syka>
fuck the police
12:36
<@TheWatcher>
(they're a bit better now, it's probably closer to 60:1 these days at a guess)
12:38
<@TheWatcher>
(But I note there's a very good reason that CS and Art do a joint graduation ball)
12:38
< Syka>
because it's 60:1 and 1:30 male:female in both?
12:38
< Syka>
(the more males in art works itself out)
12:39
<@TheWatcher>
Probably not that high on the art side, but that's the general idea.
12:41
<@Haeroe>
Ours has been evening out recently
12:41
<@Haeroe>
Would say around 25:1 male to female
12:41
< ShellNinja>
I hadn't noticed any particular disparity in my Uni's non-exact departments.
12:42
< JustBob>
Wait, what?
12:42
< JustBob>
Art has a 30:1 m:f ratio?
12:43
< ShellNinja>
More like the opposite?
12:43
< JustBob>
I'm used to seeing it as a 1:1 or 2:1 at best.
12:43
< JustBob>
female:male, that is.
12:43
< ShellNinja>
Yeah, me too.
12:43
< JustBob>
And yeah, just checked with my girlfriend, who has a BS in fine art. She says hers were almost all 1:1
12:44
< JustBob>
But she admits her courses weren't restricted to art-majors-only, so who knows?
12:44
< ShellNinja>
Similar with my sister's Japanology.
12:45
< JustBob>
...and for the record, I don't think that the compsci/EECS department here is that bad.
12:45
< JustBob>
10:1, 15:1.
12:46 * ShellNinja doesn't personally find it 'good' or 'bad'. Let anyone who qualifies get in and try to learn.
12:46
< Syka>
JustBob: i was making up numbers
12:47
< Syka>
for the sake of making a gay joke
12:47
< Syka>
>:| i'm an engineer, let me have my fun
12:48 * JustBob quietly hides his stack of engineering texts behind the shelf. "Hrm? Sure!"
12:48 * Haeroe points Syka towards the designated fun zone
12:48
< JustBob>
But speaking of engineering, I should really get back to reviewing for this thermo midterm. :p
12:53 Rhamphoryncus [rhamph@Nightstar-f8b1f87b.abhsia.telus.net] has quit [Operation timed out]
12:58 Rhamphoryncus [rhamph@Nightstar-f8b1f87b.abhsia.telus.net] has joined #code
12:58 mode/#code [+o Rhamphoryncus] by ChanServ
13:01
< ShellNinja>
http://www.youtube.com/watch?v=7v75QpvISUs
13:16 * pandemic gives Syka a full sized build your own trebuchet kit with 1000 kg bolder included.
13:17
<@pandemic>
something about engineers and fun :)
13:17 * pandemic notes he is one lab accedent away from being a super villen
13:17 * Haeroe notes pandemic is one lab accident away from killing humanity
13:17
< Syka>
yaaaay
13:19
< Syka>
https://thoughtstreams.io/hawkowl/kaspersky-labs-or-how-not-to-market-to-smart-p eopl/ i wrote an article about that astroturfing because i can
13:21
< JustBob>
Is this when I should be glad because I am prepared for zombies?
13:23
< JustBob>
Or would this be one of those virulent engineered smallpox sorta things where I'm fucked unless I'm in Level IV Biohazard gear for six months?
13:26
<@Namegduf>
Why not both?
13:27
< Syka>
crowd_carrying_child_then_dying_horribly.jpg
13:28
< JustBob>
Principle of the thing.
13:28
< JustBob>
On one hand, zombies.
13:28
< JustBob>
On the other, plaguedeath.
13:34
<@pandemic>
JustBob, both
13:34
<@pandemic>
virilents of small pox, can create zombies
13:34 * pandemic bfeg
13:34
< JustBob>
Whelp, looks like I need to make sure my immunizations are up to date.\
13:35
<@pandemic>
lol
13:35
< JustBob>
Now, where are those experimental military vaccines...
13:35 * pandemic burned them :)
13:36 thalass [thalass@Nightstar-23c59d3f.bigpond.net.au] has joined #code
13:36
< JustBob>
Ah, well. Looks like it's time to make sure I have plenty of ammo, then.
13:37
< JustBob>
And a machete. Because you can never go wrong with having 47 machetes.
13:37
<@pandemic>
XD
13:39
<@pandemic>
just be glad I only infect stupid people
13:39
<@pandemic>
that stated there are a shit ton of stupid people
13:55 thalass is now known as Thalass|omgwhee
13:59 himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds]
14:08 Kindamoody|out is now known as Kindamoody
14:09 RichyB [richardb@Nightstar-228a334c.plus.com] has quit [Ping timeout: 121 seconds]
14:12 himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code
14:12 mode/#code [+o himi] by ChanServ
14:14
< JustBob>
...it's a goddamned conspiracy.
14:14
< JustBob>
Number of USB cables I have: Approximately 52461234.
14:14
< JustBob>
Number of USB Micro-A cables I have when I need one: 0.
14:15
<@Haeroe>
Suggestion for product: A keychain with a set of cable converters
14:15
<@TheWatcher>
That's not a conspiracy, it's a fundamental universal law.
14:23
< JustBob>
There we go.
14:24
< JustBob>
Found one. In the box clearly labeled 'Misc. Cables'
14:24
< JustBob>
On the third search.
14:29
< JustBob>
Further annoying realization: You really needed USB B.
14:29
< JustBob>
And had 6234234 of those.
14:30
<@TheWatcher>
Wups
14:31
< JustBob>
Even more annoying: Calculator won't connect.
14:31
< JustBob>
Ah, there we go.
14:31
< JustBob>
...well, that was stupid. Remove battery. Replace. WORKS!
14:31
<@TheWatcher>
Turned it off an on again...
14:31
<@TheWatcher>
heh
14:32
<@TheWatcher>
(it's actually an Invader Zim quote, but yes)
14:32
<@TheWatcher>
Bah, mischan
14:35
< JustBob>
"If your calculator is not successfully detected, try uninstalling TI Connect, then install it again."
14:35
< JustBob>
Good advice there, internet.
14:35
< JustBob>
GOOD ADVICE.
14:35
< JustBob>
WHY DON'T YOU WRITE A WORKING PROGRAM IN THE FIRST PLACE?!
14:41 You're now known as TheWatcher[afk]
14:52
<@froztbyte>
the internet is not responsible for the bad vendor software
14:52 RichyB [richardb@Nightstar-228a334c.plus.com] has joined #code
14:52
<@froztbyte>
in fact, if internet was present at the vendor, it would be a lot better to start with
15:03
<&jerith>
Speaking of bad software: https://github.com/simplejson/simplejson/issues/39
15:04
<&jerith>
I had no idea speed was more important than correctness.
15:13
<@TheWatcher[afk]>
In the fast shinyness of the future of software tger mks only gnbulh
15:13
<@TheWatcher[afk]>
>.>
15:14
<@Haeroe>
TheWatcher[afk]: Hahah
15:15 celticminstrel [celticminst@Nightstar-e83b3651.cable.rogers.com] has joined #code
15:15 mode/#code [+o celticminstrel] by ChanServ
16:15 Kindamoody is now known as Kindamoody|afk
16:29 Thalass|omgwhee [thalass@Nightstar-23c59d3f.bigpond.net.au] has quit [Ping timeout: 121 seconds]
16:32 Syka is now known as syksleep
16:42 Kindamoody|afk is now known as Kindamoody
17:02 EvilDarkLord is now known as Maze
17:02 ErikMesoy is now known as Harrower
17:29 Rhamphoryncus [rhamph@Nightstar-f8b1f87b.abhsia.telus.net] has quit [Ping timeout: 121 seconds]
17:33 himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds]
17:43 Rhamphoryncus [rhamph@Nightstar-f8b1f87b.abhsia.telus.net] has joined #code
17:43 mode/#code [+o Rhamphoryncus] by ChanServ
17:45 Vornicus [vorn@ServerAdministrator.Nightstar.Net] has joined #code
17:45 mode/#code [+qo Vornicus Vornicus] by ChanServ
17:46 himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code
17:46 mode/#code [+o himi] by ChanServ
17:55 * ToxicFrog determines that his maps look weird because the heightmapper is looking at the ceilings, not the floors
18:01
<&ToxicFrog>
Check it: http://funkyhorror.ancilla.ca/toxicfrog/projects/shockmap2/maps/01.html
18:01
<&ToxicFrog>
Next: wall inference
18:01 Rhamphoryncus [rhamph@Nightstar-f8b1f87b.abhsia.telus.net] has quit [Operation timed out]
18:02 himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds]
18:05 Rhamphoryncus [rhamph@Nightstar-f8b1f87b.abhsia.telus.net] has joined #code
18:05 mode/#code [+o Rhamphoryncus] by ChanServ
18:05
< JustBob>
You know, that would be amusing.
18:06
< JustBob>
Writing a program to play SS1 in an optimized manner.
18:07 Rhamphoryncus [rhamph@Nightstar-f8b1f87b.abhsia.telus.net] has quit [Operation timed out]
18:09
<&ToxicFrog>
What, like TAEB for SS1?
18:09
<&ToxicFrog>
Or like an SS1 TAS?
18:10
< JustBob>
Like a TAEB, if google is giving me the right thing.
18:13 Rhamphoryncus [rhamph@Nightstar-f8b1f87b.abhsia.telus.net] has joined #code
18:13 mode/#code [+o Rhamphoryncus] by ChanServ
18:15 himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code
18:15 mode/#code [+o himi] by ChanServ
18:22 ShellNinja is now known as Reaver
18:23
<&ToxicFrog>
Hmm.
18:23
<&ToxicFrog>
It would be a lot harder than TAEB.
18:23
<&ToxicFrog>
Not least because SS1 is closed-source, realtime, and graphical, making extracting information from the game both more difficult and more time-sensitive than with nethack.
18:24
<&ToxicFrog>
Your typical FPS bot bypasses rendering entirely and gets information directly from the world model.
18:24
<&ToxicFrog>
(or indirectly through some kind of filtering/culling system that disallows things like seeing through walls)
18:26
<&ToxicFrog>
Meanwhile, TAEB gets it from the same interface the user does, but the text-based interface means that interpreting it is not a Hard Problem in image processing and the turn-based game means that it can spend as long as it wants analyzing each turn.
18:29
<&ToxicFrog>
Doing it TAS-style, with luck manipulation and user control of the bot's actions, would be much easier.
18:32
< JustBob>
Ah, I see.
18:33
< JustBob>
Just a random thought, really, as my brain cringes from the concept of lecture time and contents itself with distractions.
18:36
<&ToxicFrog>
The advantage with the TAS approach is that then the user can look at the frame and tell the bot "aim at these coordinates, fire two shots, then reload your weapon and step forward two meters"
18:37
< JustBob>
Yes, but at that point, you're, uh. Effectively playing the game.
18:37
< JustBob>
Instead of having a computer play it, I mean.
18:37
<&ToxicFrog>
So you can leave stuff like basic pathfinding entirely to the bot (probably by having it read the level file directly) and have it ask the user for input when it hits a situation it can't understand.
18:38
< JustBob>
Which makes me wonder how bots in games like CoD work.
18:38
<&ToxicFrog>
Yeah, modern TASing is a weird mix of manual play with savestates, bot play with pre-programmed user commands, autonomous bot play, and brute-force state space exploration with automatic verification.
18:38
<@celticminstrel>
What is TAS?
18:38
< JustBob>
Or Halo, or whatever the hell FPS you happen to want at the time.
18:38
<@Alek>
Time Assisted Speedrun
18:38
<&ToxicFrog>
Tool Assisted Speedrun.
18:38
< Harrower>
Tool Assisted?
18:38
<@Alek>
Tool I mean
18:38
<@Alek>
yes
18:38 * Alek flops
18:39
<&ToxicFrog>
Speedrunning with all human limits removed, basically. So you can use memory watchers, frame-perfect inputs, savestates, etc.
18:40
<&ToxicFrog>
JustBob: those bots get world and actor information directly from the engine, rather than having to interpret a screenshot. So they know that there is e.g. a target 80 meters away at such an angle, and that they're carrying a fully loaded pistol and a half-empty submachine gun (selected) and two frag grenades (offhand) and the stats of those weapons, and that the ledge immediately to the left is a safe drop but the one straight ahea
18:40
<&ToxicFrog>
d will result in falling damage, etc
18:40
<@celticminstrel>
Sounds entirely pointless. :P
18:41
<&ToxicFrog>
celticminstrel: not at all. It's just a different sort of challenge than normal speedrunning.
18:42
<@celticminstrel>
9_9
18:42
<&ToxicFrog>
A normal speedrun is about demonstrating mastery of the skills the game is designed to test for; a TAS is about demonstrating mastery of the game's internal workings, and is more a puzzle-solving exercise than a game-playing one.
18:43
<&ToxicFrog>
For extreme examples of this, see the TAS of King's Bounty that manipulates the random number generator such that the win condition spawns on the same square as the player.
18:44
<&ToxicFrog>
Or the TAS of Sonic Advance that breaks physics so hard that the camera goes insane, and you need to use a patched ROM with new camera control code in order to follow any of what's happening.
18:45
<@celticminstrel>
Yeah, no thanks.
18:46
<&ToxicFrog>
You also get "playaround" TASes where the goal is to show off rather than beat the game as fast as possible, like the Brain Age TAS that draws intricate pictures that the game still somehow accepts as correct.
18:46
<&ToxicFrog>
Such as a drawing of Samus that the game interprets as the number 24.
18:46 * celticminstrel has no idea what this means.
18:46
<@celticminstrel>
Oh.
18:46
<@celticminstrel>
Um what...
18:46
<@Alek>
wat
18:47
< Harrower>
http://www.youtube.com/watch?v=7yXTpnUCh5Q Pokemon Yellow TAS.
18:48
< Harrower>
It gives you a pretty good idea of just how fast and how broken things get.
18:48
< Harrower>
Less than a minute of game time.
18:49
<&ToxicFrog>
This is the Brain Age one I was referring to: http://www.youtube.com/watch?feature=player_embedded&v=bdpsr_UYxtY
18:49
< Harrower>
If you're wondering what on God's green earth is happening, it's basically this: start saving game, turn off game halfway through save, turn on again with partial savefile data in memory being misinterpreted, reorganize misinterpreted data in specific manner, misinterpreted data now says you're at the win point!
18:54
<@celticminstrel>
...
18:57
<&ToxicFrog>
There's a TAS for one of the Mario games, I forget which one, that manages to load arbitrary memory regions as level data, explores it until it finds the object representing the "final boss defeated" flag, and breaks it, thus winning the game.
18:58
<&ToxicFrog>
Some TASes are just "the game played as intended, just impossibly well", but it's always the glitched ones that I find most entertaining.
18:58
< Harrower>
Interestingly, the pokemon savefile trick is Turing-complete.
18:58
< Harrower>
(Aside from memory limits, of course.)
18:59
< Harrower>
You can reorganize "items" and "pokemon" (or rather, funny data in the memory sector where the game looks for items and pokemon) in such an order as to build internal code and programs, then tell the game to run those sectors rather than look for items and pokemon.
18:59
< Harrower>
Presto, you're programming in Pokemon.
19:01
<&ToxicFrog>
(that said, perfect non-glitched runs of games I run well can also be really interesting)
19:01
<&ToxicFrog>
s/run well/know well/
19:04
<@celticminstrel>
I think loading arbitrary regions as level data in the first Mario can be done using the warp zones - the "level -1" glitch, basically.
19:05
<&ToxicFrog>
Oh yeah, there's also the Concurrent Megaman TASes - where the same set of inputs is used to beat 2-3 games simultaneously.
19:06
<&ToxicFrog>
(one for MM 3-6, one for MMX 1-3, and one for SMB 1-3 and 2j)
19:20 Shiz [mark@42F7BC.C2C1CC.B64DF6.88F7A5] has quit [[NS] Quit: WeeChat 0.4.1-dev]
19:22 himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds]
19:30 Derakon [Derakon@Nightstar-a3b183ae.ca.comcast.net] has joined #code
19:30 mode/#code [+ao Derakon Derakon] by ChanServ
19:33 Derakon[AFK] [Derakon@Nightstar-a3b183ae.ca.comcast.net] has quit [Ping timeout: 121 seconds]
19:35 himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code
19:35 mode/#code [+o himi] by ChanServ
19:44 Kindamoody is now known as Kindamoody[zZz]
20:08
<&McMartin>
Harrower: The "run arbitrary code in Pokemon" thing came up a few weeks ago.
20:08
<&McMartin>
It's not *quite* arbitrary, but it's arbitrary enough that you can write a program that will let you write arbitrary code based on controller inputs, and then you have pwnt it.
20:14
< RichyB>
Best possible TAS run: write a loader in Pok?mon, then type a copy of Mario Bros into RAM, then win that. ;)
20:21
<@Haeroe>
Write a JVM in Pokemon
20:22
<@gnolam>
If there are Pokemon, shouldn't there be Peekmon as well?
20:25
< RichyB>
Haeroe: you've only got a Z80 to play with on a Gameboy.
20:39 himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds]
20:52 himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code
20:52 mode/#code [+o himi] by ChanServ
21:10 Harrower is now known as ErikMesoy
21:13 Maze is now known as EvilDarkLord
21:20
<&ToxicFrog>
Oh....dear.
21:20
<&ToxicFrog>
Adding a point for every object in the map has caused the size to swell from 150KB to 150MB.
21:24
<&ToxicFrog>
Huh.
21:24
<&ToxicFrog>
872 objects in the map file somehow turns into 1,302,530 objects when it renders.
21:24
<&ToxicFrog>
That might explain it.
21:25
<~Vornicus>
That's a little under 1500 rendered objects per file object.
21:25
<~Vornicus>
But it's not any nice relationship.
21:25
<&ToxicFrog>
Oh wait
21:25
<&ToxicFrog>
Ahahahahaha whoops
21:25
<&ToxicFrog>
It was accidentally re-emitting the entire object table for every interesting tile on the map
21:26
<~Vornicus>
...erp
21:26 * Vornicus imagines writing a jvm on an 8/16 bit system, quails at the very thought.
21:28
<~Vornicus>
though I guess once you have the various referencing and data thingies set up the rest is relatively easy
21:29 himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds]
21:31
<&McMartin>
Vornicus: The actual execution model is not significantly nastier than the Z-Machine, once Certain Allowances Are Made.
21:32
<&McMartin>
... also, gcc has several 16-bit backends.
21:32
<&McMartin>
It totally should be possible to compile icedtea's core for ARM/THUMB or the 65816.
21:33
<&McMartin>
(the "certain allowances" would be "Strings are in fact strings of system native characters, not UTF-8, because UTF-what?)
21:35
< RichyB>
All the JVMs that I know of use UTF-16, not UTF-8.
21:35
< RichyB>
I think that 'char' in Java is specified to be (at least?) 16-bits wide and String is specified to be freely interconvertible with char[].
21:38
< RichyB>
Still, it's just a stack machine.
21:38
<&ToxicFrog>
Something is wrong with my object table reader.
21:39
< RichyB>
Exorcism!
21:40
<&McMartin>
RichyB: That's Java.
21:40
<&McMartin>
At least as of 1.4 - the last time I was truly an expert - Constant Strings in code are strictly specified as UTF-8, because "Utf8" is the only kind of string constant listed.
21:40
<&McMartin>
Er
21:40
<&McMartin>
Constant strings in The JVM.
21:42
<&ToxicFrog>
Oh hey
21:42
<&ToxicFrog>
The specification says that object table entries are 27 bytes, but only provides information on the first 24
21:42 himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code
21:42 mode/#code [+o himi] by ChanServ
21:43
<&McMartin>
<3
21:43
<&McMartin>
Or perhaps, <=3
21:44
<&ToxicFrog>
I did not count bytes and just translated that into a vstruct definition, which meant it was reading 24-byte records.
21:44
<&ToxicFrog>
Suddenly everything makes a great deal more sense.
21:44
<&ToxicFrog>
...I can look at the map of Deck 1 with all weapon locations plotted and say what most of them are.
21:45
<&McMartin>
hee
21:49
<&ToxicFrog>
http://funkyhorror.ancilla.ca/toxicfrog/projects/shockmap2/maps/01.html
21:49
<&ToxicFrog>
That's with all objects plotted, not just weapons.
21:50
<&McMartin>
That is many objects
21:50
<&McMartin>
And man, pre-HL level design.
21:50
<&ToxicFrog>
(also, slope-based wall inference isn't working yet because it's a pain in the ass, so e.g. Deck R looks way more open than it really is)
21:50
<&McMartin>
What's that thing in the corner, the start room?
21:50
<&ToxicFrog>
Yeah :smith:
21:51
<&ToxicFrog>
In the lower left, around (10,59)?
21:51
<&ToxicFrog>
That's the blueroom; it's where the game keeps objects that need a location in the physical world but shouldn't be accessible to the player.
21:51
<&ToxicFrog>
I suspect that once I start differentiating objects by type I'll discover that most of it is the swarm of killer cyborgs SHODAN sends after you when you destroy the nodes.
21:52
<~Vornicus>
The actual start room is at 35,40
21:52
<~Vornicus>
acutally something seems wrong here, the coordinate indices seem to be changine at the middle of the tiles instead of the edges.
21:52 celticminstrel [celticminst@Nightstar-e83b3651.cable.rogers.com] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!]
21:53
<&ToxicFrog>
(every level has at least one blueroom, although level R's doesn't seem to be rendering properly for some reason. Objects that are just floating in the inky void of space are things like script triggers that don't have a physical object associated with them.
21:53
<&ToxicFrog>
Vornicus: also they're off by six. Goddamn defective alien javascript/<canvas>.
21:55
<&ToxicFrog>
...yeah, for some reason the x and y of a MouseEvent is relative to the upper left corner of the window, not the element that fired the event.
21:55
<&ToxicFrog>
Helpful.
21:55
< RichyB>
McMartin: really? How does that work with Strings being supposedly a pair of ints and a char[]?
21:55
< RichyB>
Er, UTF-8 encoding of constant strings.
21:56
<&McMartin>
Constant pool entries are not Strings.
21:56
< RichyB>
They're decoded into String objects at runtime?
21:57
<&McMartin>
If they are in fact String objects and not, say, a class name, or a method name, or a method signature.
21:59
<&McMartin>
CONSTANT_Utf8 constants are referred to by CONSTANT_Class, CONSTANT_Fieldref, CONSTANT_Methodref, CONSTANT_InterfaceMethodref, CONSTANT_String, and CONSTANT_NameAndType.
21:59
<&McMartin>
My guess is that when decoding the constant pool, CONSTANT_String creates and interns a UTF-16 version of its referenced string, but the others do not.
22:00
<&McMartin>
But my book here is the spec for Java 1.4, if not 1.3. That was, IIRC, also back when Java didn't support the Astral Plane.
22:01
<&McMartin>
By guess would be that any such conversion would happen at load time, though, not run-time.
22:02
<&McMartin>
(Classfile "data segments" are highly structured and all JVM operations refer to them by reference. There is no notion of a linearly-addressable unallocated heap space.)
22:04
<&McMartin>
The JVM constant pool spec is also one of the specs I've seen apologize to the reader in a footnote for boneheaded design decisions~
22:05
<&ToxicFrog>
McMartin: try it now.
22:05
<&ToxicFrog>
Er
22:05
<&ToxicFrog>
Vornicus: try it now.
22:06
<&ToxicFrog>
(player start should be (30,40) or (30,41)
22:08 ErikMesoy is now known as ErikMesoy|sleep
22:08
<~Vornicus>
TF: yay
22:08
<&ToxicFrog>
Now to distinguish object types by shape and colour!
22:09
<&ToxicFrog>
Then to make those buttons on the side actually do somethng
22:09
<&ToxicFrog>
Oh, and render doors and cameras in the same style as the SS1 minimap.
22:09
<&ToxicFrog>
...and fix slope-based wall inference which I am really not looking forward to.
22:11
<&ToxicFrog>
(it's not a hard problem, just a really tedious and ugly one)
22:15
<~Vornicus>
TF: what kinds of objects are in the blueroom?
22:16
<&ToxicFrog>
I don't know yet, but <ToxicFrog> I suspect that once I start differentiating objects by type I'll discover that most of it is the swarm of killer cyborgs SHODAN sends after you when you destroy the nodes.
22:18
<&ToxicFrog>
I am still amazed at how much space LGS managed to cram into those levels.
22:18
<~Vornicus>
it is quite impressive.
22:18
<~Vornicus>
what is it, 64 world units, at about 2m/wu?
22:19
< RichyB>
Fun fact: it takes my laptop about 10 seconds to allocate 3500000000 uint32_ts, and then 16 milliseconds to sum them.
22:19
<~Vornicus>
That's... wait, you can do that?
22:20
<~Vornicus>
on a laptop? that's 14 GB of memory.
22:20
< RichyB>
That's 3.5 * 10**9 ints, so 14GB of memory.
22:20
< RichyB>
Yes. RAM is cheap; 16GB only cost me either ?100 or ?200, I forget which. I think the former!
22:21
<&ToxicFrog>
64x64 world units, yes.
22:21
<&ToxicFrog>
Although most maps use much less than that (I believe Deck 7 is the only one that comes close to the map boundaries)
22:21
< RichyB>
Vornicus: I can't think of any reason to *not* put 16GB of RAM into a laptop; this makes doing things like running all of the VMs from http://modern.ie/ very easy. ?
22:21
<&ToxicFrog>
I note that the actual format on disk is size-agnostic, as long as the width and height are powers of two.
22:22
<&ToxicFrog>
32 height units, but the actual length of a height unit varies from deck to deck (theoretical values from 1wu to 1/32wu, actual values from 1/2wu to 1/8wu)
22:23
<&ToxicFrog>
Deck 1 has a diameter of about 94 meters.
22:24
<&ToxicFrog>
And it is packed incredibly tightly despite not supporting walls between tiles or room-over-room.
22:25
<&ToxicFrog>
(the former is accomplished by cunning use of slopes and height differences, the latter by double-height rooms with 3d models separating above and below)
22:25
<&McMartin>
I'm kind of surprised you can actually get 14GB of userspace without getting fragmented to hell and gone
22:26
<&McMartin>
Looking at the map makes me dizzy. -_-
22:26
<&ToxicFrog>
o.O
22:27
<&McMartin>
It's like staring at an optical illusion that doesn't quite work on you
22:28 Rhamphoryncus [rhamph@Nightstar-f8b1f87b.abhsia.telus.net] has quit [Ping timeout: 121 seconds]
22:34
< RichyB>
Well, that's embarrassing.
22:35
< RichyB>
I forgot to put a *1000 for milliseconds in, so I utterly misread the timing data. Filling a 14GB array out and summing it are close to equally expensive at 4s to allocate+fill and 2s to read+sum.
22:36
<~Vornicus>
herp
22:39
<&ToxicFrog>
My laptop locked solid in mid-code, wtf
22:40 Rhamphoryncus [rhamph@Nightstar-f8b1f87b.abhsia.telus.net] has joined #code
22:40 mode/#code [+o Rhamphoryncus] by ChanServ
22:43
<&ToxicFrog>
Refresh the map, and be amazed!
22:43
<&ToxicFrog>
Scenery objects are no longer displayed (some, like cameras, will go back in at some point), and the rest are colour-coded.
22:44
<&ToxicFrog>
Yellow is doors, red and pink are weapons and ammo, cyan is medical patches, blue is audio logs, implants and software upgrades, yellow-brown is switches (and switch-like objects like cyberjacks), grey is containers, and purple is enemies.
22:45
<@Haeroe>
Toxic!
22:45
<@Haeroe>
How did it go?
22:45
<&ToxicFrog>
The defence?
22:45
<@Haeroe>
Aye
22:45
<&ToxicFrog>
I rocked a million faces
22:45
<@Haeroe>
Brilliant
22:45
<@Haeroe>
Congrats man, you've finally done it :D
22:46 himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Connection closed]
22:47
<&ToxicFrog>
My presentation was 29 minutes (time limit is 30 minutes), then an hour and a half of questions.
22:47
<&ToxicFrog>
Only one question from the audience, but it was one the committee didn't expect me to be able to answer and I totally did.
22:48
<@Haeroe>
Nice
22:48 himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code
22:48 mode/#code [+o himi] by ChanServ
22:48
<@Haeroe>
How long to answer a question?
22:48
< RichyB>
About this long, though harder questions will take longer.
22:48
<&ToxicFrog>
The committee had (*counts*) 17 edits they wanted made to the thesis, all of them minor.
22:49
<&ToxicFrog>
Depends on the question, but, hrm, 3 committee members, about 6 questions each, 18 questions total, 90 minutes of questions, call it five minutes per question.
22:49
< RichyB>
What did the audience throw in?
22:50
<&ToxicFrog>
Also, this is apparently the first thesis my advisor has ever seen that didn't have any complaints from the committee on linguistic (spelling/grammar) grounds.
22:50
<@TheWatcher[afk]>
Ugh
22:50
<&ToxicFrog>
There were some anomalies in the performance graph for one of the case studies, and he wanted to know why.
22:50 You're now known as TheWatcher
22:50 Reaver is now known as ShellNinja
22:50 Rhamphoryncus [rhamph@Nightstar-f8b1f87b.abhsia.telus.net] has quit [Ping timeout: 121 seconds]
22:50
<@TheWatcher>
Some MSc thesis I've marked, ohgod >.<
22:51
<&ToxicFrog>
(I actually got complimented by the Chair on my writing, so \o/)
22:51
<@TheWatcher>
(\o/)
22:51
<~Vornicus>
\o/
22:52
< RichyB>
\o/
22:53
<@Haeroe>
ToxicFrog: Excellent work, then
22:53
<@Haeroe>
So.. what now?
22:54
<&ToxicFrog>
Now I go to work for Google and savour the fact that I'm working in Python and not C.
22:54
<@Haeroe>
Very bueno
22:57 Rhamphoryncus [rhamph@Nightstar-f8b1f87b.abhsia.telus.net] has joined #code
22:57 mode/#code [+o Rhamphoryncus] by ChanServ
22:57
< RichyB>
Do you really expect to spend your time at Google working in Python rather than Java?
22:58
<&ToxicFrog>
RichyB: given that I already know what team I'll be joining and they work exclusively in Python? Yes.
22:58
< RichyB>
I was kind of under the impression that most of their customer-facing apps were Java just for power efficiency.
22:58
< RichyB>
Makes sense.
22:58
< RichyB>
Are Google all just using CPython or do they use Cython or PyPy or whatever, yet?
22:58
<&ToxicFrog>
I won't be working on anything customer-facing. Internal tools.
22:59
< RichyB>
Also: huge-pages make a sizable difference to total run-time if you allocate a huge stripe of memory.
23:01
< RichyB>
200ms system time to malloc() 800MB of memory with 4096-byte pages, plus another 100ms user-time to fill it out.
23:02
< RichyB>
If I poke this thing to make it use 2MiB pages, it takes ~30ms to allocate 800MB of them and again 100ms user-time to fill them.
23:13
<&ToxicFrog>
RichyB: I don't offhand know what python implementation is standard at google. It was Unladen Swallow for a while, these days it might be something like PyPy.
23:14
<&ToxicFrog>
Google has been doing a lot of funding of PyPy development, to the tune of tens of thousands of dollars.
23:15
<&ToxicFrog>
(re customer facing stuff - there are four "blessed languages" at google, meaning languages in which you can write customer-facing stuff - JavaScript (for browser-side stuff), Python, Java, and C++. The general philosophy is to use Python by default and Java, C++, or JavaScript only where you must.)
23:16
<&ToxicFrog>
(the office I'll be working at actually does have a large proportion of Java programmers, mostly working on Android projects, but also has some teams working on internal Python-based stuff.)
23:16 Rhamphoryncus [rhamph@Nightstar-f8b1f87b.abhsia.telus.net] has quit [Ping timeout: 121 seconds]
23:24
< RichyB>
Fun!
23:39 Rhamphoryncus [rhamph@Nightstar-f8b1f87b.abhsia.telus.net] has joined #code
23:39 mode/#code [+o Rhamphoryncus] by ChanServ
23:42
<@Reiv>
C++ is the one there that stands out as suprising
23:42
<@Reiv>
But I guess you need optimisations sometimes.
23:51 himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds]
23:53
<~Vornicus>
C++ is kind of the standard one if you need actual machine code.
--- Log closed Wed Feb 27 00:00:21 2013
code logs -> 2013 -> Tue, 26 Feb 2013< code.20130225.log - code.20130227.log >

[ Latest log file ]