--- 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 |