--- Log opened Sat Feb 25 00:00:42 2012 |
00:13 | < Stalker> | Any of you know how to make VLC automaticly start in "minimal interface"? |
00:18 | | You're now known as TheWatcher[T-2] |
00:20 | | You're now known as TheWatcher[zZzZ] |
00:20 | < Stalker> | Think I found it. |
00:46 | | ToxicFrog [ToxicFrog@ServerAdministrator.Nightstar.Net] has quit [Operation timed out] |
00:51 | | Derakon[AFK] is now known as Derakon |
00:51 | <&Derakon> | Vorn: so you want a dependency chain. |
00:52 | <&Derakon> | That sounds like it requires recursion to me. |
00:57 | < RichyB> | Prolog! You should apply Prolog to your problem. |
00:57 | < RichyB> | Then you are not thinking, "Oh no, I have problem." |
00:58 | < RichyB> | After applying Prolog, you are thinking "have(me, problem?):- No." |
00:58 | < RichyB> | ugh messed up the syntax on that slightly but you get the idea |
00:59 | < RichyB> | :- possesses(me, X), problem(X)? No. |
00:59 | | maoranma [maoranma@D5CC77.617194.D31872.BA8A50] has joined #code |
01:00 | | RichyB [MyCatVerbs@Nightstar-3b2c2db2.bethere.co.uk] has quit [[NS] Quit: sawing logs] |
01:02 | | ToxicFrog [ToxicFrog@ServerAdministrator.Nightstar.Net] has joined #code |
01:02 | | mode/#code [+o ToxicFrog] by ChanServ |
01:07 | | Attilla [Obsolete@FBC920.8C10FA.E7FDC7.D69C73] has quit [Client closed the connection] |
01:08 | | Attilla [Obsolete@Nightstar-1a32815a.as43234.net] has joined #code |
01:24 | | Kindamoody[zZz] is now known as Kindamoody |
01:42 | <~Vornicus> | Der: yeah, you're right, which sucks. I was vaguely hoping that I could, um, at least get it to do one level though |
01:45 | <&Derakon> | One level beyond just "select inputs from recipes where output = target item", you mean? |
01:49 | <~Vornicus> | Right. I mean, adding up the, um |
01:52 | | Vash [Vash@Nightstar-cdeba41f.wlfrct.sbcglobal.net] has joined #code |
01:52 | | mode/#code [+o Vash] by ChanServ |
01:54 | <~Vornicus> | THe actual challenge I was looking at was "to build a 1-star item I need these materials. To build a 2-star item i need these other materials... and the 1-star item" and what I want is the materials I need, total, to build the 2-star item assuming I don't already have the 1-star item. |
01:55 | <~Vornicus> | But as you've pointed out I've forgotten that recursion doesn't work! |
01:57 | <&Derakon> | Unfortunate, isn't it? |
02:00 | <~Vornicus> | Yes. Dammitall. |
02:00 | | Vash [Vash@Nightstar-cdeba41f.wlfrct.sbcglobal.net] has quit [[NS] Quit: I lovecraft Vorn!] |
02:00 | | Vash [Vash@Nightstar-cdeba41f.wlfrct.sbcglobal.net] has joined #code |
02:00 | | mode/#code [+o Vash] by ChanServ |
02:08 | | iosleep is now known as iospace |
02:08 | | Derakon is now known as Derakon[AFK] |
02:29 | | Eri [Eri@Nightstar-3e5deec3.gv.shawcable.net] has quit [Ping timeout: 121 seconds] |
02:42 | | Eri [Eri@Nightstar-3e5deec3.gv.shawcable.net] has joined #code |
03:04 | | gnolam [lenin@Nightstar-202a5047.priv.bahnhof.se] has quit [Ping timeout: 121 seconds] |
03:04 | | gnolam [lenin@9D46A2.F4E9D7.E4B4CF.2072AD] has joined #code |
03:23 | | Attilla [Obsolete@Nightstar-1a32815a.as43234.net] has quit [Ping timeout: 121 seconds] |
03:47 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds] |
04:01 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
04:01 | | mode/#code [+o himi] by ChanServ |
05:11 | | ShellNinja [abudhabi@Nightstar-c9072dad.adsl.inetia.pl] has quit [Operation timed out] |
05:15 | | ShellNinja [abudhabi@Nightstar-c9072dad.adsl.inetia.pl] has joined #code |
06:08 | <~Vornicus> | Gnarg. Okay, instrumenting. |
06:09 | | Stalker [Z@2C3C9C.B2A300.F245DE.859909] has quit [Ping timeout: 121 seconds] |
06:21 | | eckse [eckse@Nightstar-086443b9.dsl.sentex.ca] has quit [Client closed the connection] |
06:22 | | cpux [cpux@Nightstar-c5874a39.dyn.optonline.net] has quit [[NS] Quit: Well, most things get better when I kick them!] |
06:22 | | cpux [cpux@Nightstar-c5874a39.dyn.optonline.net] has joined #code |
07:00 | | Syloqs-AFH [Syloq@NetworkAdministrator.Nightstar.Net] has quit [Client closed the connection] |
07:01 | | Stalker [Z@Nightstar-3602cf5a.cust.comxnet.dk] has joined #code |
07:02 | <~Vornicus> | Yay, i think that's all the instruments I want. |
07:48 | | Kindamoody is now known as Kindamoody|afk |
08:01 | | celticminstrel [celticminst@Nightstar-5d22ab1d.cable.rogers.com] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!] |
08:09 | | Stalker [Z@Nightstar-3602cf5a.cust.comxnet.dk] has quit [Ping timeout: 121 seconds] |
08:43 | | thalass [thalass@Nightstar-07b2245e.bigpond.net.au] has quit [Ping timeout: 121 seconds] |
09:18 | | Derakon[AFK] [Derakon@Nightstar-a3b183ae.ca.comcast.net] has quit [Ping timeout: 121 seconds] |
09:21 | | thalass [thalass@Nightstar-07b2245e.bigpond.net.au] has joined #code |
09:23 | < Tarinaky> | So he managed to figure out how to commit the renamed methods. |
09:23 | < Tarinaky> | Yay! Somebody else commited something |
09:23 | < Tarinaky> | Boo! They've committed... nothing else besides. |
09:23 | < Tarinaky> | I'm going to be rather cross on Monday all things considered. |
09:52 | | * jerith tries to get his curve smoothing thing right. |
09:54 | | * Tarinaky pokes the room - am I doing something wrong that nobody else seems to be committing code? |
09:55 | <@jerith> | Tarinaky: Do they know they're supposed to? |
09:55 | <@jerith> | Have you divided up the work? |
09:56 | < Tarinaky> | I told them what to do. And I've emailed them several times asking if there's any problems. |
09:56 | < Tarinaky> | At the meetings I ask if there're problems and they seem okay. They're just... not actually doing anything. |
09:56 | <@jerith> | Then it sounds like you're just stuck with a lazy team. |
09:56 | <@jerith> | Have you asked them where their code is? |
09:56 | < Tarinaky> | One of them managed to upload a commit to change the style of methods. |
09:56 | < Tarinaky> | Which I've stuck with, since, you know... I want them to contribute. |
09:57 | < Tarinaky> | I have not. I've told them to commit it to the git repo though. |
09:57 | <@jerith> | Ask them where it is. |
09:57 | <@jerith> | They'll either come up with excuses or say "actually, I haven't committed it yet". |
09:57 | <@jerith> | Or something. |
09:57 | < Tarinaky> | Okay. I'll try that on monday. |
09:58 | < Tarinaky> | (Next meeting on Monday, if I can get everyone to show up at the same time) |
09:58 | <@jerith> | If the latter, explain how collaboration works. |
09:58 | <@jerith> | Yeah, sounds like you have a bad group. |
09:58 | < Tarinaky> | I'm not sure I know how to explain how collaboration works. |
09:58 | <@jerith> | "I do my bit, you do your bit, we all put our bits over here so they cen be seen and used together." |
09:59 | <@jerith> | *can |
09:59 | < Tarinaky> | TBH I was always told that a bad/lazy group is because the leader's doing something wrong. |
09:59 | < Tarinaky> | So I kindof feel like I'm fucking up somewhere. |
09:59 | < thalass> | too few threats of violence? |
09:59 | <@jerith> | Are you the leader? |
09:59 | <@jerith> | If so, are you self-appointed? |
09:59 | < Tarinaky> | Nobody has officially appointed or voted on it. |
09:59 | < Tarinaky> | But I've organised the meetings and well... done everything so far. |
10:00 | < Tarinaky> | I guess self-appointed leader is accurate. |
10:00 | <@jerith> | Bad leadership can break a working team. Good leadership can't always fix a broken team. |
10:01 | < Tarinaky> | When they turn up they've always got their heads down and it can be really hard to get them to say anything. |
10:01 | <@jerith> | How well do you know them? |
10:01 | < Tarinaky> | Usually it's just blank agreement with whatever I've said... |
10:01 | < Tarinaky> | Not at all. |
10:01 | < thalass> | do they know each other? |
10:01 | < Tarinaky> | I got put with them because we all failed to turn up to the tutorial to decide groups. |
10:02 | <@jerith> | Ah. |
10:02 | < thalass> | Maybe some socialising is in order? counterstrike session? booze? |
10:02 | < thalass> | ah. that sounds bad. |
10:02 | <@jerith> | Ballmer Peak! |
10:02 | < Tarinaky> | One of them is being chased up by the department for attendance but I think the kick up his arse has worked. |
10:02 | < Tarinaky> | So I dunno if he's just so far behind he's struggling. |
10:03 | <@jerith> | Is this a project you could complete on your own? |
10:03 | < Tarinaky> | The other is the one who made the commit for coding style and nothing else. |
10:03 | < Tarinaky> | jerith: Yes. I just don't particularly want to. |
10:03 | <@jerith> | Keep on doing your thing. Keep badgering them for their contributions. Document how much (or little) they're doing. |
10:04 | <@jerith> | (Commit history is good for this.) |
10:04 | < Tarinaky> | I'm not sure how to document how much/little people are doing. |
10:04 | < Tarinaky> | I mean, attendance at meetings is easy. |
10:04 | <@jerith> | Are you supposed to be using git, or is that your own thing? |
10:04 | < Tarinaky> | Own thing. |
10:04 | < Tarinaky> | Everyone else is swapping memory sticks. |
10:05 | <@jerith> | email history can be a good record as well. |
10:05 | < Tarinaky> | The really high-tech solution is drop box. |
10:05 | <@jerith> | Maybe a group hacking session. |
10:05 | <@jerith> | Do they not teach VCS? |
10:05 | < Tarinaky> | They do, in the second year. |
10:05 | | * jerith is unsurprised, but sad. |
10:05 | < Tarinaky> | It's mandatory for the 2e projects. |
10:05 | < Tarinaky> | This year they're still struggling to get some people to stop using static :p |
10:06 | < Tarinaky> | Admittedly they still struggle with that next year too~ |
10:06 | < Tarinaky> | But the second year group project normally involves those people being beaten with pillow cases of soap. |
10:06 | <@jerith> | That's like... I don't know. Only teaching people about safety nets after a year of high-wire instruction. |
10:06 | <@jerith> | Your VCS is as important as your editor, and should be taught upfront. |
10:06 | < Tarinaky> | If the high-wire was 3ft off the ground I'd agree with you. |
10:07 | <@jerith> | The analogy is poor. |
10:07 | < Tarinaky> | People learn about VCS after they start programming. |
10:07 | | You're now known as TheWatcher |
10:07 | <@jerith> | Sure, but that's not mandatory. |
10:07 | < Tarinaky> | I'm not sure it's necissarily a bad thing to do it in that order. |
10:08 | <@jerith> | I think it is. |
10:08 | < Tarinaky> | I mean, we're taught how to invoke javac on the command line before we're introduced to Eclipse. |
10:08 | <@jerith> | It gives you freedom to experiment. |
10:08 | <@jerith> | Different issue. |
10:08 | <@jerith> | VCS is more of a safety net than a convenience. |
10:10 | | * Tarinaky shrugs. |
10:11 | < Tarinaky> | Anyway. So on Monday I ask them what they've done and where it is. |
10:12 | < Tarinaky> | What else/ |
10:15 | | * jerith shrugs. |
10:16 | <@jerith> | It's been years since I've worked with a group that wasn't disciplined and self-motivated. |
10:17 | | * TheWatcher eyes, readsup |
10:19 | <@TheWatcher> | Tarinaky: aside from Jerith's suggestions, and your plan, I'd suggest talking to your group tutor. Or your year tutor. He probably won't do anything, but the fact that you have informed him that your group isn't pulling its weight can be useful when it comes to marking |
10:19 | <@jerith> | Good point. |
10:20 | <@jerith> | He may also have useful advice. |
10:20 | <@TheWatcher> | (I should also note that I've had to deal with - and indeed, currently am dealing with - MSc students who've never used a vcs) |
10:20 | <@jerith> | As far as I'm aware, nobody at my university was ever taught about VCS. |
10:21 | <@jerith> | I discovered it on my own halfway through my degree when I started looking at open source projects. |
10:21 | <@TheWatcher> | *nod* they require the second year software engineering group to use it, but without properly teaching it at all |
10:22 | < Tarinaky> | In fairness, they don't properly teach a lot of stuff on the course. It's kindof expected that we'll lrn to read a man page/api documentation. |
10:22 | <@TheWatcher> | Yeah, see, that's what set you apart from a normal undergrad these days ¬¬ |
10:23 | <@jerith> | Tarinaky: They're aupposed to teach you the gundamentals and how to acquire the additional detail. |
10:23 | < Tarinaky> | Particularly for the second year project where they expect us to self-teach ourselves android development. |
10:23 | <@TheWatcher> | "It's not handed to us on a silver platter by nubile virgins?! WHAAA THIS JAAAOOORRRRBBS TOO HAAAAAAARRRRRD!"~ |
10:23 | <@TheWatcher> | (I may be a little bitter ¬¬) |
10:23 | <@jerith> | Self-teaching tools and languages and environments is a good idea. |
10:24 | < Tarinaky> | Maths and Physics it's a lot easier to get through just on the lecture material and past papers. |
10:24 | <@jerith> | That's what makes engineering different. |
10:24 | <@jerith> | (Software engineering even more so.) |
10:24 | <@jerith> | You're very seldom doing things that have already been done, because they've already been done. |
10:26 | <@TheWatcher> | jerith: I agree entirely, but it requires a base level of experience and initiative, and the desire to do it. The UG intake these days is seriously broken, thanks to the mess that is secondary and college education, and the focus on marks being the be-all and end-all of the enterprise. |
10:26 | <@jerith> | If you can't solve a problem you've never seen before with tools you've only vaguely heard about, you're going to find yourself out of your depth very quickly. |
10:27 | < Tarinaky> | At this point I'd be prepared to spoon feed the group if they'd ask for help, lol. |
10:27 | <@jerith> | TheWatcher: So you slowly transition them from what they're used to to what they need to know. |
10:27 | <@TheWatcher> | We try |
10:27 | <@jerith> | That's what university's about. |
10:28 | <@jerith> | But you *must* teach them the fundamentals, and teach them hard. |
10:28 | <@TheWatcher> | They now have a couple of remedial courses in the first year, unfortunately said courses are... lacking, thanks to the... inflexibility of the staff teaching them. |
10:28 | <@TheWatcher> | Thankfully, they won't be around much longer. |
10:29 | < Tarinaky> | Inflexibility in terms of hours or... |
10:30 | <@TheWatcher> | Utter conviction that Their Way Is The Only Way To Teach It |
10:30 | < Tarinaky> | Ahah. |
10:30 | <@TheWatcher> | Despite widespread complaints from studens and staff |
10:31 | < Tarinaky> | "My lectures are a masterpiece, merticulously planned... Though the students always tell me that I'm hard to understand. And I can't think why (he can't think why)" |
10:33 | <@TheWatcher> | More or less. He also turned his moodle course into a labyrinthian abomination that nobody can find anything in, and then wonders why people don't do the stuff he's put in there. |
10:34 | < Tarinaky> | Ouch |
10:34 | < Tarinaky> | That does sound really bad. |
10:34 | <@TheWatcher> | And He (differen he) has decided that he'll buck the trend and put none of his materials online |
10:34 | <@TheWatcher> | Because You Don't Need It If You Attend Lectures! |
10:34 | < Tarinaky> | >.< |
10:35 | < Tarinaky> | You wonder if these people were ever UG :) |
10:36 | <@jerith> | It's very rare to be both competent and in academia in this industry. |
10:37 | <@TheWatcher> | Tarinaky: Around the time of the PDP-10, yes. |
10:37 | < Tarinaky> | TheWatcher: They still had lectures back then though. |
10:39 | < thalass> | They had nothing but lectures. No vodcast or streaming video from the dorm room or anything like that. Everything shall be as it was in the 1950s! |
10:40 | < Tarinaky> | And presumably they had the experience of either having to catch up on a missed lecture by copying a friend's notes and cross referencing hearsay with the recommended reading... |
10:40 | <@TheWatcher> | And they had to walk to the lecture theaters each day, up hill both ways, in the snow. |
10:40 | | * thalass laughs |
10:40 | < Tarinaky> | Or experienced a wish that the lecturer had left the scrawl on the black board either more legibly or for a few seconds longer. |
10:42 | <@TheWatcher> | It amuses me that several members of staff refuse to be recorded in lactures. They never give a good reason why, if at all - I vaguely suspect they think it steals their soul or something. |
10:42 | < Tarinaky> | Smartboards are an abomonation unto reality and should be replaced with normal white boards or blackboards though. |
10:42 | <@TheWatcher> | *lectures |
10:43 | < Tarinaky> | As you have to kind of... maneuver around so you can see what you're writing.. and then inevitably it's not calibrated... or sometimes it just does whatever it likes on a lark... |
10:44 | < Tarinaky> | And then when you look at it you can see the pixels so it does your eyes in. |
10:45 | < Tarinaky> | And it doesn't update drawing quick enough which is really disorienting. |
10:45 | < Tarinaky> | But then I hate writing on normal white boards due to being a leftie. |
10:46 | < Tarinaky> | And that was a bit of a rant >.> |
10:46 | < thalass> | They have smartboards in my daughters kindy classroom. She's 4. >.< |
10:46 | < Tarinaky> | I think it's because they don't need cleaning. |
10:46 | < thalass> | Hell, they have a powerpoint presentation with the kids names on it, and that's how they sign in to class in the morning. |
10:47 | < thalass> | touching the balloons. |
10:47 | < Tarinaky> | And they look really good in terms of "LOOK! WE HAVE MONEY TO WASTE ON HITECH VISUAL AIDS!" |
10:47 | | * jerith tries to decide whether he should implement a Point class or just use complex numbers. |
10:47 | < Tarinaky> | But I wouldn't be surprised if they cost less than a real whiteboard these days. |
10:50 | <@TheWatcher> | Tarinaky: where are you these days, anyway? |
10:50 | < Tarinaky> | Aberystwyth. |
10:51 | | froztbyte [froztbyte@Nightstar-dc394964.za.net] has quit [Ping timeout: 121 seconds] |
10:51 | < thalass> | Which planet is that on? *runs* |
10:51 | | froztbyte [froztbyte@Nightstar-dc394964.za.net] has joined #code |
10:58 | <@TheWatcher> | Tarinaky: but yes, anyway - keep logs of what you've done, and record what you've asked your teammates to produce that they haven't. Quiz them about WTF Mates, and talk to your tutor. And expect to have to do all the work :/ |
10:59 | < Tarinaky> | thalass: It's where the the Irish Sea meets the Middle of Nowhere, Wales. |
10:59 | <@jerith> | (And really, given their behaviour so far, I'd be surprised if any work they did was actually useful.) |
10:59 | <@TheWatcher> | (indeed) |
11:00 | < thalass> | I had a feeling it might be wales. Yuckydah! |
11:00 | <@TheWatcher> | Tarinaky: Nowhere but pronounceable, Wales |
11:00 | <@jerith> | (This is one of those fields where it's fairly easy for a team member to have negative productivity.) |
11:01 | < Tarinaky> | Aberystwyth's pronounceable. |
11:01 | <@TheWatcher> | At least it doesn't require a run-up and a pint of phlem in your throat~ |
11:03 | < Tarinaky> | "Mayor of Doncaster Peter Davies said: "It's clearly in the interests of Doncaster to be in Scotland: we'll get free prescriptions, free tuition for students and free care for the elderly. " |
11:03 | < Tarinaky> | -- On it emerging that Doncaster belongs to Scotland. |
11:03 | <@TheWatcher> | ... |
11:03 | <@TheWatcher> | pft |
11:04 | <@TheWatcher> | Leeetle bit south for Scotland, methinks. |
11:04 | < thalass> | ... |
11:04 | < thalass> | Some ancient treaty agreement or something? |
11:04 | < Tarinaky> | Yeah. |
11:05 | < thalass> | The kind of thing where it was ok to shoot irishmen with a longbow on sunday? |
11:05 | <@TheWatcher> | YEah |
11:05 | <@TheWatcher> | Treaty of Turham, in 1136 |
11:05 | < Tarinaky> | Except that it was never legal to shoot an irishman with a longbow on sunday. |
11:05 | <@TheWatcher> | *Durham |
11:05 | < Tarinaky> | And even if it was it would be repealed, implicitly, by modern law taking precedence over it. |
11:06 | <@TheWatcher> | More's the pity~ |
11:06 | <@TheWatcher> | (yes, I am joking, damnit ¬¬) |
11:07 | < Tarinaky> | Too late, check under your car before you start it. |
11:07 | <@TheWatcher> | Ah, ahead of the game, there: no car :P |
11:07 | < thalass> | hah |
11:08 | < thalass> | (it could have been welshmen, actually) |
11:08 | < Tarinaky> | It's entirely fictitious. |
11:08 | < Tarinaky> | Apocryphal. |
11:08 | < thalass> | Dang. I like those crazy old laws |
11:08 | < Tarinaky> | Versions of the story exist for more or less every combination of social/ethnic group and weapon. |
11:10 | | * gnolam flails at his quaternions. |
11:16 | < Tarinaky> | In 100 years time they'll claim it's "still technically legal" to shoot Sikhs with a shotgun outside Stourbridge on a sunday as long as you do so while stood on only one leg while walking a dog. |
11:17 | < thalass> | hahaha |
11:18 | < Tarinaky> | Or you can machinegun down a clown as long as the number of rounds is the product of two different pairs of prime factors. |
11:20 | <@TheWatcher> | It's always legal to shoot clowns. |
11:21 | <@TheWatcher> | *shudder* |
11:21 | < Tarinaky> | Don't be silly. Batman will stop you. |
11:23 | < Tarinaky> | Right, I'm gonna go restock the freezer. |
11:51 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds] |
11:58 | | Attilla [Obsolete@Nightstar-1a32815a.as43234.net] has joined #code |
12:03 | <@jerith> | So. Who wants to write some mediawiki code? |
12:03 | < Tarinaky> | The same set of people who want to write code for my group project :p |
12:04 | < thalass> | Don't look at me. Noob. And on my 17th hour awake. |
12:04 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
12:04 | | mode/#code [+o himi] by ChanServ |
12:05 | | maoranma [maoranma@D5CC77.617194.D31872.BA8A50] has quit [Ping timeout: 121 seconds] |
12:05 | <&McMartin> | YOU BEAT: QUATERNION MAN |
12:05 | <&McMartin> | YOU GOT: GIMBAL UNLOCKER |
12:05 | < Tarinaky> | I had a fun discussion last night about whether you could think of a function as being an instance of some Function class. |
12:06 | <&McMartin> | Python and JavaScript both actually do this. |
12:06 | <@jerith> | Tarinaky: They're implemented that way... |
12:06 | <&McMartin> | To say nothing of boost::function in C++ |
12:06 | <@jerith> | Yeah, what McM said. |
12:06 | < Tarinaky> | The actual context was C++. But OOP is all abstraction so it doesn't/shouldn't matter about the language so much as your mode of thinking. |
12:07 | <&McMartin> | Protip: This is a dangerous one, halfway between OO that isn't horrible batshittery and, well, just using higher-order functions like a civilized human being >_> |
12:07 | <&McMartin> | C++ calls classes that overload operator() "functors", which drives me up the fucking wall because that word means something else goddamnit |
12:07 | <&McMartin> | About five something elses, but really |
12:08 | < Tarinaky> | Just because you can think of something in a cetain way doesn't mean it actually works that way :p |
12:08 | <&McMartin> | Well |
12:08 | <&McMartin> | A C++ class with (a) some fields in it and (b) an operator() overload is actually equivalent semantically and unnervingly close in terms of binary layout to a LISP or JavaScript closure. |
12:09 | < Tarinaky> | I thought C++ used 'functor' to refer to pointers to functions? |
12:09 | <&McMartin> | No, that's a "function pointer" |
12:09 | < Tarinaky> | It's just the main use of overloading operator() is to do stuff you'd otherwise be doing by pointer-to-function. |
12:09 | <&McMartin> | Nope |
12:09 | <&McMartin> | pointer-to-function doesn't have state. |
12:09 | <&McMartin> | pointer-to-bound-method can have state, I think, but I think you then have to re-connect it in. |
12:10 | <&McMartin> | A function pointer and a closure are not the same thing. |
12:10 | | * jerith reinvented OO in Pascal by shoving function pointers in records. |
12:10 | <@jerith> | Not long after that I discovered Turbo Pascal's OO features, which were actually less elegant than mine, despite the clunky syntax. |
12:10 | <&McMartin> | class A { int m = 0; public: int operator() (void) { return m++; } } |
12:11 | <@jerith> | Then I moved on to real languages. |
12:11 | <&McMartin> | You can't do this with C-style function pointers directly. |
12:11 | <&McMartin> | jerith: Well, TP did eventually become Delphi, which is at least semi-respectable even today. |
12:11 | < Tarinaky> | No. But I'm pretty sure that there's some C-style way of achieving the same goal with a function pointer. |
12:11 | <&McMartin> | Tarinaky: Yes, by also passing a pointer to m on every call. |
12:11 | <@jerith> | Delphi was pretty cool for a while, but the lack of GC made it a pain. |
12:12 | <&McMartin> | That means it's no longer a function pointer. =P |
12:12 | < Tarinaky> | I was mostly thinking of things like dictionaries of functions though. |
12:12 | <&McMartin> | That's enough for a vtable |
12:12 | <&McMartin> | But that's only half the equation. |
12:12 | <&McMartin> | The, well, function pointer half. |
12:12 | <&McMartin> | The other half is the execution environment |
12:13 | <&McMartin> | You need to lock the "this" pointer into the function to provide and encapsualte the data that's worked on. |
12:13 | <&McMartin> | In OO, you do this directly. |
12:13 | <&McMartin> | In LISP or JavaScript, you do it by making them variables in the defining context ("lexical scoping"). |
12:13 | <&McMartin> | Lexical scoping is the older technique, by decades. |
12:14 | <&McMartin> | (define (make-counter) (let ((x 0)) (lambda () (begin (set! x (+ x 1)) x))) |
12:14 | < Tarinaky> | Most of that went over my head tbh. |
12:14 | < Tarinaky> | :( |
12:15 | <&McMartin> | Basically, in C++, when you return from a function, the local variables go away |
12:15 | <&McMartin> | In Lisp or JS, they only go away if you d |
12:15 | <&McMartin> | if you didn't define any functions inside that one. |
12:16 | < Tarinaky> | Ah. |
12:16 | <&McMartin> | If you *did*, the locals in block that defined the function are basically the fields of the callable object that the function so defined is. |
12:16 | <&McMartin> | The Scheme (a LISP dialect) code I quoted up there is equivalent to the C++. |
12:17 | <&McMartin> | My JS isn't facile enough to come up with the equivalent there and have it be right off the top of my head, but I think it is... |
12:17 | <&McMartin> | function make-counter() { var x; return function () { var y = x; x = x + 1; return y; }; } |
12:17 | <&McMartin> | make-counter here replaces the (implicitly defined) A::A() in the C++. |
12:19 | <&McMartin> | JavaScript doesn't have in-language data hiding, but you can use this trick with variables to enforce variable privacy anyway. It's a standard technique. |
12:19 | < Tarinaky> | Oh yeah. I had a brain fart a few days ago. What's the Java equiv of const? |
12:20 | <&McMartin> | It doesn't truly have one. |
12:20 | <&McMartin> | "final", however, is very close. |
12:20 | < Tarinaky> | As in const int = SOMETHING; or public const String foo() { return somePrivateString; } |
12:20 | <&McMartin> | final will cover the former |
12:21 | <&McMartin> | There is no concept of the latter in Java; if you want to ensure that a field can't be modified through its reference, you may not permit the reference to escape, or the object must itself be immutable. |
12:21 | <&McMartin> | As it happens, String is immutable, so you're covered there. |
12:21 | < Tarinaky> | Oh, I didn't know that. I'd settled for returning a copy. |
12:22 | < Tarinaky> | Unfortunately this made the C++ programmer inside me cry. |
12:22 | <&McMartin> | C++ has lots and lots of spurious copies too, it just does them in different places. |
12:22 | <&McMartin> | (primarily, function returns. =P) |
12:22 | < Tarinaky> | Although I probably did the copy wrong. |
12:23 | < Tarinaky> | new Something(something) makes a copy of something right? Same as in C++ |
12:24 | <&McMartin> | It's not guaranteed to |
12:24 | <&McMartin> | It usually will. |
12:24 | <&McMartin> | It does, like C++, always create a new object. |
12:24 | | * Tarinaky goes make a patch reflecting that String is immutable before he forgets. |
12:24 | <&McMartin> | (nonvirtual constructors continue to make me sad) |
12:25 | <&McMartin> | One main difference I think is that in C++, new Something(something_vaguely_equivalent) tends to be a conversion operator, and in Java it tends to be a wrapper/decorator. |
12:25 | <&McMartin> | You can wrap collections to make them immutable, I think, though I don't recall the class name. |
12:27 | <@jerith> | I think there's a package containing immutable wrapper classes. |
12:28 | <&McMartin> | Also of note: since strings are immutable in Java, doing something like... |
12:28 | <&McMartin> | String s = "blah"; for (i = ...) { s = s + " blah"; } |
12:29 | | * TheWatcher readsup |
12:29 | < Tarinaky> | Creates a new string each time. |
12:29 | <@TheWatcher> | jerith: what're you writing? |
12:29 | | * Tarinaky nods. |
12:29 | <&McMartin> | is extremely inefficient. When building up strings either use a StringBuffer (if you want to build it up with string operations) or a PrintWriter wrapping a StringWriter (if you want to have stuff like System.out.println, but going to a string instead of the screen) |
12:30 | <&McMartin> | I think there's a non-threadsafe, faster version of StringBuffer now, too (StringBuilder?) |
12:30 | <@jerith> | TheWatcher: github.com/jerith/depixel |
12:30 | < Tarinaky> | Yeah. I think we covered using StringBuffer in the last semester. |
12:30 | < Tarinaky> | It's just easy to forget stuff like that. |
12:30 | < Tarinaky> | I've gotta split though, I'm late for something. |
12:30 | < Tarinaky> | Later. |
12:31 | <@TheWatcher> | I meant regarding "12:03:24 <@jerith> So. Who wants to write some mediawiki code?" |
12:31 | <@jerith> | Ah. |
12:31 | <@jerith> | TheWatcher: github.com/praekelt/vumi-wikipedia |
12:31 | | * TheWatcher has been toiling away in there a fair bit, one way or another, this week |
12:32 | <@jerith> | I need an API that will render to text or minimal HTML. |
12:33 | <@jerith> | preilly (Wikimedia's lead (and often only) mobile dev) says he can do it, but he's quite busy. |
12:40 | <@jerith> | TheWatcher: How much of your work in there is suitable for pushing upstream? |
12:42 | <@TheWatcher> | First thing that springs to mind is to modify includes/api/ApiParse.php to add an extra 'textonly' option, and invoke html2text to convert p_result -> getText() to plain text, but that feels pretty kludgy |
12:42 | <@jerith> | That's what I'm currently doing on the outside. |
12:42 | <@jerith> | The problem is that there's a lot of stuff that isn't suitable for inclusion in plain text. |
12:43 | | Kindamoody|afk is now known as Kindamoody |
12:43 | <@jerith> | Image captions, [edit] links, etc. |
12:43 | <@TheWatcher> | Also, probably not much - generally things like adding extra permissions stuff, filtering of recent changes per group |
12:43 | <@TheWatcher> | Ah, yeah, point |
12:44 | | Rhamphoryncus [rhamph@Nightstar-5697f7e2.abhsia.telus.net] has quit [Client exited] |
12:44 | <@TheWatcher> | I've also added a few bits and pieces so that user links get a group list popup added. Mostly just things to make life easier in work, rather than likely to be genuinely useful to anyone else |
12:45 | <@jerith> | I'm currently filtering those out based on CSS class and looking for oddness in the little snippets I'm returning over SMS/USSD, which isn't very thorough. |
12:45 | | * TheWatcher nod |
12:45 | <@TheWatcher> | I guess it'd mean actually fiddling with the parser to make it cleaner. And..yeah, no, not touching >.> |
12:46 | <@jerith> | (My HTML stripping is explicitly a short-term hack. This stuff really belongs in the mediawiki code, where all the relevant semantic data is available.) |
13:04 | | * TheWatcher gives up eyeing the parser code |
13:04 | <@TheWatcher> | Yeah, not trying anything in there, that stuff is nasty >.> |
13:14 | | * thalass prods around in the guts of a lua game, succeeds in changing the keyboard keys, but understands little else. |
13:54 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds] |
14:06 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
14:07 | | mode/#code [+o himi] by ChanServ |
14:22 | | thalass is now known as Thalasleep |
14:34 | | Attilla [Obsolete@Nightstar-1a32815a.as43234.net] has quit [Ping timeout: 121 seconds] |
14:35 | | WiFlyer [NSflashIRC@48DFF2.D7721A.E7F270.7B384E] has joined #code |
14:35 | | WiFlyer [NSflashIRC@48DFF2.D7721A.E7F270.7B384E] has left #code [] |
14:37 | | Attilla [Obsolete@Nightstar-db712228.as43234.net] has joined #code |
14:44 | | WiFlyer [NSflashIRC@48DFF2.D7721A.E7F270.7B384E] has joined #code |
14:44 | | WiFlyer [NSflashIRC@48DFF2.D7721A.E7F270.7B384E] has left #code [] |
15:06 | <~Vornicus> | How on earth has js survived this long without even string formatting in the standard library |
15:08 | | Syloqs_AFH [Syloq@NetworkAdministrator.Nightstar.Net] has joined #code |
15:08 | | mode/#code [+o Syloqs_AFH] by ChanServ |
15:09 | | Syloqs_AFH is now known as Syloqs-AFH |
15:10 | <@TheWatcher> | Vorn: because madness. |
15:37 | | Kindamoody is now known as Kindamoody|out |
15:54 | | AnnoDomini [annodomini@A08927.B4421D.B81A91.464BAB] has joined #code |
15:54 | | mode/#code [+o AnnoDomini] by ChanServ |
16:06 | < Tarinaky> | Ahah! Life! |
16:06 | < Tarinaky> | One of them says he'll sit down and get some stuff done today. |
16:26 | | RichyB [MyCatVerbs@Nightstar-86656b6c.cable.virginmedia.com] has joined #code |
16:32 | | Reiver [orthianz@3CF3A5.E1CD01.C6689C.33956A] has quit [Ping timeout: 121 seconds] |
16:32 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds] |
16:33 | | Reiver [orthianz@3CF3A5.E1CD01.C6689C.33956A] has joined #code |
16:45 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
16:45 | | mode/#code [+o himi] by ChanServ |
16:48 | | celticminstrel [celticminst@Nightstar-5d22ab1d.cable.rogers.com] has joined #code |
16:54 | < Tarinaky> | I', having a little bit of trouble understanding Perlin Noise. |
16:54 | < Tarinaky> | Specifically where the array of noise that you're sampling comes from. |
16:57 | < RichyB> | Tarinaky, just to check, you're learning using Ken Perlin's own materials, right? http://www.noisemachine.com/talk1/ |
16:58 | < RichyB> | He pretty much writes this out better than anyone else manages. |
16:58 | < Tarinaky> | The site didn't load right for me. |
16:58 | < Tarinaky> | I just get this really thin column down the rhs. |
16:58 | < RichyB> | ...? What browser are you using? |
16:58 | < Tarinaky> | Chromium |
16:59 | < RichyB> | Weird. So am I. |
16:59 | < Tarinaky> | Ah, one of the slides loads okay. |
16:59 | < RichyB> | http://www.noisemachine.com/talk1/2.html <- link directly to slide 2 in case that helps. |
16:59 | < RichyB> | (slide 1 is just the cover anyway) |
17:00 | < Tarinaky> | I wasn't talking about slide 1. |
17:03 | | AnnoDomini [annodomini@A08927.B4421D.B81A91.464BAB] has quit [Ping timeout: 121 seconds] |
17:05 | < RichyB> | I could mirror the slides for you if you're still having trouble getting them to load. Don't know that that'll help any without knowing why you're having issues though. :/ |
17:06 | <~Vornicus> | Tarinaky: the array of noice vectors? |
17:07 | < Tarinaky> | Yes... maybe... |
17:07 | < Tarinaky> | >.< |
17:07 | <~Vornicus> | You have an indexable N-dimensional array that acts like a random number generator - which is to say you pass in a coordinate and it gives you a "random" number |
17:08 | <~Vornicus> | You then have an array of N-dimensional vectors; each one should be a unit vector, and you should have as many such vectors as you have possible outputs to the RNG |
17:09 | < Tarinaky> | These are seperate things? |
17:09 | <~Vornicus> | Yes |
17:09 | < Tarinaky> | Okay. |
17:09 | < Tarinaky> | That might be where my confusion comes from. |
17:09 | <~Vornicus> | THen to get the noise vectors you index into your N-dimensional random generator |
17:09 | <~Vornicus> | And then take the output of that and index into the array of vectors. |
17:12 | < Tarinaky> | Okay, so I have a gradiant and a number... then what? |
17:15 | <~Vornicus> | The vector gives you a gradient, you interpolate the gradients, and you're done. |
17:15 | < Tarinaky> | What's the array of numbers for? |
17:16 | < Tarinaky> | And how does one interpolate gradients? What does that even mean? |
17:16 | <~Vornicus> | The array of numbers tells you what vector to use at each point |
17:16 | < Tarinaky> | Oooh. |
17:16 | <~Vornicus> | The vector tells you the gradient; you use interpolation (with an easing function in there somewhere) to determine the noise value at a particular point. |
17:17 | <~Vornicus> | The array of numbers is actually not an array but a function that acts like an indexable infinite array of random numbers. |
17:17 | < Tarinaky> | Why is called an array and not a function? |
17:18 | < Tarinaky> | f(x): R^2 -> N >.> |
17:18 | < Tarinaky> | *f(x,y) |
17:18 | < Tarinaky> | I herped a derp a little |
17:20 | <~Vornicus> | Because the function has to be final |
17:20 | <~Vornicus> | er, const. WHichever name floats your boat |
17:22 | < Tarinaky> | Anyway~ What does it mean to interpolate between two gradients as opposed to two points. |
17:22 | < Tarinaky> | I'm having difficulty visualising that. |
17:22 | <~Vornicus> | That's answered in the slides; there's an equation that gets used |
17:24 | <~Vornicus> | But I think your best bet is to imagine it as "we're building a smooth surface that has slopes at the index points as given from the vectors" |
17:25 | < Tarinaky> | So after interpolating you integrate? |
17:25 | <~Vornicus> | No. |
17:26 | <~Vornicus> | THe surface is the result of the interpolation |
17:26 | <~Vornicus> | It's complicated enough that I can't describe it while also making a SUnday DInner scale lunch. |
17:26 | < Tarinaky> | Sorry. |
17:26 | < Tarinaky> | I'll go pester someone else on monday, lol. |
17:27 | <~Vornicus> | I would also have to read the paper again myself because I don't remember a lot about the order of things after you've got your vector field. |
17:28 | <~Vornicus> | Ah, here we are |
17:28 | < Tarinaky> | Oh! |
17:29 | < Tarinaky> | I think I get it. |
17:29 | <~Vornicus> | http://www.noisemachine.com/talk1/15.html We find the value of the gradient for all the surrounding points |
17:29 | <~Vornicus> | THis is done using dot product against the vector for each of the surrounding grid points - the dot product gives you the gradient |
17:29 | <~Vornicus> | THen you interpolate those using an easing function |
17:30 | < Tarinaky> | According to this it's the cross product against the difference in position. |
17:33 | <~Vornicus> | "this"? I see dot product/inner product |
17:35 | < Tarinaky> | G.(P-Q) |
17:35 | < Tarinaky> | http://www.noisemachine.com/talk1/15.html |
17:40 | < Tarinaky> | http://webstaff.itn.liu.se/~stegu/TNM022-2005/perlinnoiselinks/perlin-noise-math -faq.html#algorithm << This is quite good |
17:40 | | Kindamoody|out is now known as Kindamoody |
17:42 | | AnnoDomini [annodomini@A08927.B4421D.B81A91.464BAB] has joined #code |
17:42 | | mode/#code [+o AnnoDomini] by ChanServ |
17:49 | | Attilla [Obsolete@Nightstar-db712228.as43234.net] has quit [Ping timeout: 121 seconds] |
17:50 | | Attilla [Obsolete@Nightstar-db712228.as43234.net] has joined #code |
17:53 | <~Vornicus> | yeah, that's dot |
17:54 | | Stalker [Z@Nightstar-5aa18eaf.balk.dk] has joined #code |
17:54 | < Tarinaky> | Yes. But P-Q is the difference in position between P and Q. |
17:55 | < Tarinaky> | - is not dot >.> |
17:55 | <~Vornicus> | Yes, but you said cross earlier. You dot. |
17:55 | <~Vornicus> | Not cross. |
17:55 | < Tarinaky> | When did I say cross? |
17:55 | < Tarinaky> | Oh. |
17:55 | < Tarinaky> | Apparently at 17:30 |
17:55 | < Tarinaky> | Lol. |
17:56 | | * Vornicus patpats tarinaky |
17:56 | | * Tarinaky feels silly. |
17:59 | < Tarinaky> | I think I 'get' it now. |
17:59 | < Tarinaky> | I'm going to have to hash out some code when I get chance so I can be sure. |
18:02 | < Tarinaky> | Vornicus: Where are the neighbours supposed to be? |
18:02 | < Tarinaky> | Just the nearest whole numbers? |
18:04 | < Tarinaky> | Or rather, the nearest point with a mapping in the gradient function? |
18:06 | <~Vornicus> | The nearest integer x/y/z |
18:07 | <~Vornicus> | There's alternatives of course; I've see one, iirc called simplex, that only counts things in a sphere around each point, and chooses the points so the spheres in question don't cross lines into other sections |
18:08 | < Tarinaky> | Wait, what's the thing you vary to increase the frequency? |
18:08 | <~Vornicus> | TO change the frequency you change how your x/y/z maps to the "world" |
18:09 | < Tarinaky> | And... I'm not sure I see how this is repeating. |
18:09 | < Tarinaky> | Or is that just because the PRNG will repeat? |
18:13 | <~Vornicus> | if you see it repeating, that means your prng isn't r enough |
18:13 | < Tarinaky> | I know, but the talk about frequencies is because the noise repeats. |
18:14 | < Tarinaky> | Or is supposed to repeat... |
18:14 | < Tarinaky> | Otherwise it wouldn't have a frequency... |
18:14 | <~Vornicus> | You have two things here |
18:15 | <~Vornicus> | You have the frequency which is the size of the details; it's the distance between integer coordinates on your plane |
18:15 | <~Vornicus> | You also have the frequency which is the size of the full repeat length of your plane |
18:15 | <~Vornicus> | WHich should be Rather Large if you're doing it right |
18:16 | < Tarinaky> | So I only, really, need 4 gradiants? |
18:16 | <~Vornicus> | What |
18:16 | <~Vornicus> | No |
18:16 | <~Vornicus> | Each point in your 2d plane is based on 4 gradients |
18:16 | < Tarinaky> | But if the 4 gradient's positions are supposed to be far apart. |
18:17 | <~Vornicus> | But those four gradients are chosen based on where you are - each integer grid point has a gradient that has been chosen by your indexable prng |
18:18 | < Tarinaky> | I mean you only need 4 integer grid points... |
18:19 | < Tarinaky> | Or am I missing something here? |
18:21 | <~Vornicus> | Locally you only need 4 integer grid points |
18:21 | <~Vornicus> | But you need a different four points when you move into another square |
18:21 | < Tarinaky> | What does Locally mean though? |
18:21 | < Tarinaky> | How big did you mean by Rather Big? |
18:22 | <~Vornicus> | Like if I'm at (2.3, 3.5) I need (2,3) (3,3) (2,4) and (3,4) |
18:22 | <~Vornicus> | And by Rather Big you should be picking a prng that gives a large period |
18:22 | < Tarinaky> | Right, but what does a unit actually correspond with here? |
18:22 | <~Vornicus> | A unit corresponds to how big you want your details to be |
18:22 | < Tarinaky> | Oh I see. |
18:22 | < Tarinaky> | So that -can- be as small as I can calculate. |
18:23 | < Tarinaky> | So when perlin noise talks about frequency it means the distance between integer coordinates. |
18:24 | < Tarinaky> | What do I do about when x,y are integers? |
18:24 | < Tarinaky> | Or do I just do nothing? |
18:24 | <~Vornicus> | Scale it |
18:24 | <~Vornicus> | Oh that |
18:25 | <~Vornicus> | Well, you're getting "0" off it because your "other" locations aren't weighing in at all (they have 0 weight at other integer points) and because dot product of anything against 0 is 0 |
18:25 | | * Tarinaky nods. |
18:26 | < Tarinaky> | So for a heightmap there'd be a locally flat region every unit length. |
18:27 | <~Vornicus> | No, it'd be locally the same height |
18:27 | <~Vornicus> | As the other integer points |
18:27 | < Tarinaky> | Yes. |
18:28 | < Tarinaky> | That's what I mean. |
18:28 | < Tarinaky> | This seems detrimental. |
18:29 | <~Vornicus> | This is why usually you have several noise functions going off at once. |
18:29 | < Tarinaky> | Won't their integer points occur at the same points as well? |
18:29 | < Tarinaky> | Since they're multiples of 2. |
18:30 | < Tarinaky> | Not multiples |
18:30 | < Tarinaky> | Powers |
18:30 | <~Vornicus> | No, you scale it differently |
18:31 | <~Vornicus> | IOdeally you'd pick something incommensurable - an irrational scaling - but you can just pick something with a ridiculously high lcm |
18:31 | < Tarinaky> | lcm? |
18:32 | <~Vornicus> | least common multiple |
18:32 | <~Vornicus> | I mean take for instance two noise functions with scales, Idunno, 100 and 37, they'll only ever match points every 3,700 pixels |
18:33 | < Tarinaky> | Where does this idea of Octaves come from then? |
18:34 | <~Vornicus> | i don't know, where? |
18:34 | | eckse [eckse@Nightstar-83937dde.dsl.sentex.ca] has joined #code |
18:34 | | mode/#code [+o eckse] by ChanServ |
18:34 | < Tarinaky> | Umm... The slides. |
18:34 | <~Vornicus> | gnah,uld have to look more |
18:36 | | Attilla [Obsolete@Nightstar-db712228.as43234.net] has quit [Ping timeout: 121 seconds] |
18:37 | < Tarinaky> | noise(p) + 1/2 noise(2p) + 1/4 noise(4p) |
18:37 | | rstamer is now known as Anna |
18:38 | | eckse_ [eckse@Nightstar-7e7c04f4.dsl.sentex.ca] has joined #code |
18:38 | | Attilla [Obsolete@Nightstar-db712228.as43234.net] has joined #code |
18:39 | <~Vornicus> | Okay, so |
18:39 | <~Vornicus> | Your p is rweally really really big |
18:39 | <~Vornicus> | Like, 2^16 big |
18:39 | < Tarinaky> | Yes. |
18:40 | < Tarinaky> | This does not matter. |
18:40 | < Tarinaky> | Wait... no... |
18:40 | < Tarinaky> | Don't you mean the frequency is really big? |
18:40 | < Tarinaky> | P is just the position... |
18:41 | | eckse [eckse@Nightstar-83937dde.dsl.sentex.ca] has quit [Ping timeout: 121 seconds] |
18:41 | <~Vornicus> | the wavelength is really big |
18:41 | < Tarinaky> | Yes. |
18:42 | <~Vornicus> | Then you have a wavelength half that size, and another, and another, and another |
18:42 | < Tarinaky> | Yes. |
18:42 | < Tarinaky> | Octaves. |
18:42 | <~Vornicus> | But the wavelength is so big that your actual apparent 0 points are so far apart as to not matter |
18:43 | < Tarinaky> | Doesn't that mean that on the... can't remember the word... |
18:43 | < Tarinaky> | 0th Octave there's only 4 gradient points used? |
18:44 | < Tarinaky> | Because otherwise there's be 0 points in the 0th octave. |
18:46 | <@AnnoDomini> | Hey, guys, how feasible is coding up a mapping utility to run a game of Dungeons and Dragons in a five-dimensional hypercube? |
18:46 | <@Tamber> | o.0 |
18:47 | <@AnnoDomini> | I figure it could be okay if you make a Room class or something and define where the exits go. |
18:48 | < Tarinaky> | The challenge is visualising it in a sensible way. |
18:48 | <@AnnoDomini> | Just need a way to tell one room from another. A number in the room would work well enough. |
18:48 | < Tarinaky> | If you have a sequence of rooms linked by north, south, east, west, up, down, future, past, top and bottom |
18:49 | <@AnnoDomini> | Assuming that it's impossible to interact with two+ rooms simultaneously, through the use of portals or something, it's not necessary to show more than one room at a time. |
18:49 | | Kindamoody is now known as Kindamoody[zZz] |
18:49 | < Tarinaky> | I'm just not sure what a doorway topwards would look like. Where you'd place it in a 2D map. |
18:50 | <@AnnoDomini> | A lever! |
18:50 | <@AnnoDomini> | Which teleports you. |
18:50 | < Tarinaky> | That's not n-dimensional. |
18:51 | <~Vornicus> | Tarinaky: what are you talking about |
18:51 | < Tarinaky> | That's just teleporting across a 2d grid. |
18:51 | < Tarinaky> | Vornicus: Anno's problem? |
18:51 | <~Vornicus> | In all octaves you only look at one square of the infinite array of random vectors for any given point |
18:51 | < Tarinaky> | Vornicus: Yes. But the zero value points occur at the corners of those squares. |
18:52 | <~Vornicus> | RIght, but that's okay. |
18:52 | | Attilla [Obsolete@Nightstar-db712228.as43234.net] has quit [Ping timeout: 121 seconds] |
18:52 | < Tarinaky> | Why is it okay? |
18:52 | | Attilla [Obsolete@Nightstar-db712228.as43234.net] has joined #code |
18:52 | < Tarinaky> | Because you choose the wavelength of the 0th octave such that a square is unfeasibly large? |
18:52 | < Tarinaky> | Or for some other reason? |
18:53 | <~Vornicus> | That. |
18:53 | <~Vornicus> | Well, not unfeasibly large. But large enough that people won't notice. In the slides he uses a largest size of about 16 px for everything except the clouds, and that's big enough to not tell that this is happening |
18:54 | < Tarinaky> | Ah. |
18:54 | < Tarinaky> | I'm surprised that it's difficult to spot. |
18:55 | | EvilDarkLord is now known as Aeron |
18:56 | < Tarinaky> | I should head on out to my Vampire game. |
18:56 | < Tarinaky> | Thanks for being patient with me, as ever. |
18:57 | | Attilla [Obsolete@Nightstar-db712228.as43234.net] has quit [Ping timeout: 121 seconds] |
18:57 | < Tarinaky> | Some days I worry I take your patient explanations for granted >.< |
18:58 | < froztbyte> | Tarinaky: if there were no-one willing to share knowledge, where would we be? :) |
18:58 | < Tarinaky> | Actually... A roguelike where you can move forwards and backwards through time would be... amusing. |
18:59 | < Tarinaky> | Unfortunately I think the concept has been overdone. |
18:59 | < froztbyte> | Vorn's patience now will, I would bet, shape how you would in turn teach someone else in the future |
18:59 | < froztbyte> | and so the cycle of learning continues :) |
18:59 | < Tarinaky> | froztbyte: You missed me threatening my fellow freshers with violence didn't you? |
19:00 | | eckse_ is now known as eckse |
19:00 | < froztbyte> | Tarinaky: everyone starts somewhere :D |
19:00 | < froztbyte> | (also, based on what I read about them earlier today, the threat of violence is an understandable one) |
19:00 | < Tarinaky> | Right, I'm officially late now. |
19:00 | < Tarinaky> | GONE! |
19:00 | | * Vornicus has honed his patience |
19:01 | < froztbyte> | lots of skillpoints into that one, amirite? |
19:01 | < Tarinaky> | Autohypnosis is op. |
19:02 | < froztbyte> | you're not supposed to be here right now |
19:03 | | AnnoDomini is now known as Jasever |
19:04 | <@Jasever> | Autohypnosis IS overpowered. |
19:06 | <@Jasever> | It's like a whole bunch of spells from various classes, bunched up into one ability. |
19:11 | | Attilla [Obsolete@Nightstar-db712228.as43234.net] has joined #code |
19:19 | | Attilla [Obsolete@Nightstar-db712228.as43234.net] has quit [Ping timeout: 121 seconds] |
19:20 | | Attilla [Obsolete@Nightstar-db712228.as43234.net] has joined #code |
19:29 | < Eri> | Since we were on the topic of hypercubes, this is a tessaract rotating |
19:29 | < Eri> | http://upload.wikimedia.org/wikipedia/commons/d/d7/8-cell.gif |
19:31 | < Eri> | If you were an observer inside one of the volumes of the tessaract, and you could only see in three dimensional space, would your perception of space be altered as it rotates? |
19:31 | < Eri> | That's obviously only a projection |
19:32 | < Eri> | Like, I look at the center volume as it moves through the rest of the projection, and it stretches, and reverses |
19:32 | <@Jasever> | Depends if one of the rotation axes makes 'down' alter its normal position. |
19:33 | < Eri> | I was thinking rotation about the fourth axis |
19:33 | < Eri> | Err, hang on |
19:33 | <@Jasever> | I wouldn't think so, then. People don't have a good way to sense 4th axis movement. |
19:35 | < Eri> | I suppose it could all be math anyway, no? Like, we've defined higher dimensions, but do we know of any forces capable of acting in these dimensions? None that exist in our three, from what i know |
19:36 | < Eri> | *I |
19:40 | <@Jasever> | I know nothing. I just thought it'd be fun to run a dungeon in it, following an image found on /tg/. |
19:40 | <@Jasever> | http://i.imgur.com/yj8ri.jpg |
19:47 | < Eri> | That link may have just made something clear to me. |
19:47 | < Eri> | When you've got a projection of a tessaract, there's a cube in the middle, surrounded by volumes on each face. |
19:47 | < Eri> | My interpretation was that these are all distinct volumes. |
19:48 | < Eri> | By the description in that post, the volume on, say, the north face is also the volume on the south face? |
19:48 | < Eri> | I think I understand the rotation a bit better, now |
19:51 | < Eri> | Hmm hmm hmm, which would mean that the "door" described isn't a door at all |
19:52 | < Eri> | You'd step from, say, an x-y-z right-handed system into an x-y-w right handed system if you go one way, and an x-y-w left handed system if you go the opposite way. |
19:53 | < Eri> | I haven't figured out which direction you'd have to go to change which axis yet, though. Something to think about in the shower |
19:53 | <@Jasever> | I'm afraid that I cannot parse what you say, else I will get a headache. |
19:54 | < Eri> | Basically, we get a tessaract by sweeping a cube out one unit in the w direction |
19:54 | < Eri> | Where w is the fourth axis |
19:54 | < Eri> | So, the cube, overall, becomes a tessaract |
19:54 | < Eri> | Each face of the cube forms a new cube |
19:54 | <@Jasever> | Okay. |
19:55 | <@Jasever> | I get that much. |
19:55 | < Eri> | But, each face only exists in a certain plane |
19:55 | <@Jasever> | I can even sort-of imagine the 5-dimensional one. |
19:55 | < Eri> | So, the x-y face, swept into w, forms an x-y-w cube |
19:55 | < Eri> | There's no z in that cube |
19:55 | <@Jasever> | Okay. |
19:56 | < Eri> | We can generalize this, I think, because there are vertices and edges |
19:57 | < Eri> | So, each edge of the original cube now makes a face, each vertice makes an edge |
19:57 | < Eri> | This totally makes a lot of sense to me, now. I didn't really understand how to imagine an n-cube now. It's just a bunch of n-1 cubes, in different co-ordinate systems |
19:58 | < Eri> | Incidently, that also means stepping through the "door" would probably kill you, because one entire axis of you no longer exists |
19:59 | | * Eri hmms |
19:59 | < Eri> | Or, maybe it's just not represented |
19:59 | <@Jasever> | PORTALS. |
19:59 | < Eri> | More things to think about. The shower's already booked, I'll have to think of this while I eat my cereal |
20:01 | < Eri> | Hmm. I can extend something I said above |
20:02 | < Eri> | If I step through a door from x-y-z right-handed into z-y-w left handed, then go across the room, and step into x-y-z again, it would now be left-handed, I think |
20:03 | < Eri> | Maybe not. I may not be applying the left/right transition logic consistently |
20:03 | | * Eri thinks..... while riding my bike to school, I guess. |
20:03 | < Eri> | Man, now my day is packed |
20:06 | < Eri> | One last note, I realized while putting on my socks. |
20:07 | < Eri> | My n cube = n n-1 cubes can be generalized. |
20:07 | < Eri> | Since we sweep vertices, each dimension is a nested set of vertices |
20:09 | < Eri> | That's pretty elementary, though. I only mentioned it because it lets us generalize to a lower dimension than 3 |
20:28 | | RichyB [MyCatVerbs@Nightstar-86656b6c.cable.virginmedia.com] has quit [Ping timeout: 121 seconds] |
20:40 | | RichyB [MyCatVerbs@Nightstar-86656b6c.cable.virginmedia.com] has joined #code |
20:52 | | Attilla [Obsolete@Nightstar-db712228.as43234.net] has quit [Ping timeout: 121 seconds] |
20:53 | | Attilla [Obsolete@Nightstar-db712228.as43234.net] has joined #code |
21:16 | | Stalker [Z@Nightstar-5aa18eaf.balk.dk] has quit [Ping timeout: 121 seconds] |
21:33 | | maoranma [maoranma@Nightstar-cd44a482.pools.spcsdns.net] has joined #code |
22:26 | <@jerith> | 20:59 < Tarinaky> froztbyte: You missed me threatening my fellow freshers with violence didn't you? |
22:26 | <@jerith> | We are patient with people who want to learn. |
22:27 | <@jerith> | If you want instant gratification, we will have very little patience. |
22:27 | | Stalker [Z@2C3C9C.B2A300.F245DE.859909] has joined #code |
23:25 | | Rhamphoryncus [rhamph@Nightstar-5697f7e2.abhsia.telus.net] has joined #code |
23:37 | <@Anna> | I was on the verge of murdering some twat yesterday. |
23:37 | <@Anna> | Comes in asking for help |
23:37 | <@Anna> | But doesn't say what his problem is |
23:38 | <@Anna> | Just repeatedly bugging everyone for help |
23:38 | < Stalker> | Where/how/morecontextpls? |
23:39 | <@Anna> | https://gist.github.com/1911692 |
23:45 | | * Vornicus returns from eating a sunday dinner on saturday and a game of puerto rico. |
23:45 | < Rhamphoryncus> | <Qwerty316> My commodore |
23:45 | < Rhamphoryncus> | <Qwerty316> can anyone help? |
23:45 | < Rhamphoryncus> | <Qwerty316> its a 64 |
23:45 | < Rhamphoryncus> | Yeah, that's a troll |
23:45 | < Rhamphoryncus> | A very successful one |
23:46 | <@Jasever> | It was fairly obvious one-fourth into its routine. |
23:50 | <@Tamber> | Not even an amusing one. Shame. |
23:51 | | * Vornicus determines that he can't really ask Tarinaky whether his help, um, helped, because he hasn't gotten a chance to fool around with it anyway |
23:55 | | Anna is now known as rstamer |
23:58 | | celticminstrel [celticminst@Nightstar-5d22ab1d.cable.rogers.com] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!] |
--- Log closed Sun Feb 26 00:00:13 2012 |