--- Log opened Wed Jan 16 00:00:18 2013 |
00:07 | | LiddyTheFelinco [lidistus-li@4CA975.06D306.8735BD.012B14] has quit [Ping timeout: 121 seconds] |
00:15 | | You're now known as TheWatcher[T-2] |
00:18 | | You're now known as TheWatcher[zZzZ] |
00:33 | | syksleep is now known as Syk |
00:34 | | Derakon[AFK] is now known as Derakon |
00:35 | < Xires> | is anyone here familiar w/ zeromq? I was just informed that the LGPLv3 which it uses introduces problems for use on embedded systems |
00:35 | < Xires> | I'm not sure how |
00:35 | | lidistus-linux [lidistus-li@4CA975.06D306.8735BD.012B14] has joined #code |
00:36 | <&McMartin> | Well, the v3 was created for the express purpose of fucking over Tivo. |
00:37 | <&ToxicFrog> | AIUI, the "problem" it introduces is that you are no longer allowed to make it impossible for users to run modified code on the device |
00:37 | <&ToxicFrog> | So this is only a problem if you are already an asshole~ |
00:37 | <&ToxicFrog> | But I am neither a lawyer nor particularly familiar with ZMQ |
00:37 | <&McMartin> | Or want to use non-programmable ROM chips, I suppose. |
00:38 | <&McMartin> | I have no idea if we still have those. |
00:38 | < Syk> | if you use non-programmable ROMs then I think it's fine |
00:39 | < Syk> | I think it's that if it can be modified at all, then it is a problem |
00:39 | < Syk> | (eg. software updates) |
00:40 | <@Reiv> | wut |
00:40 | <&McMartin> | Yeah, I don't expect the FSF to go for that, because I have a low opinion of their priorities~ |
00:43 | < Syk> | heh |
00:43 | < Syk> | IIRC stallman is fine with things that are baked into chips |
00:43 | < Syk> | because that counts as 'hardware' almost |
00:44 | <@Reiv> | What the heck are they doing? |
00:44 | < Xires> | hrm, that's very interesting..thanks for the info |
00:44 | < Syk> | but if it's user or system-editable, then it ought to be completely editable |
00:48 | <&ToxicFrog> | Reiv: what's "they" here |
00:49 | <@Reiv> | What happened to v3 and why was it messed with |
00:49 | <&ToxicFrog> | What? |
00:50 | <@Reiv> | er |
00:50 | <@Reiv> | conversation above. |
00:50 | <@Reiv> | LPGLv3 fucking over TiVo or something |
00:50 | <&McMartin> | Oh |
00:50 | <&McMartin> | Tivo ran a signed copy of Linux and wouldn't boot unless the signature matched. |
00:50 | <@Reiv> | I caught maybe half of it. |
00:51 | <&McMartin> | This destroys freedom forever, and so the FSF decided to put a stop to it |
00:51 | <@Reiv> | right |
00:51 | <&ToxicFrog> | TiVo used GPL software and technically complied by making the source available, but the TiVo itself won't boot modified software unless it's signed by TiVo themselves. |
00:51 | <@Reiv> | ... I see |
00:51 | <&McMartin> | Thwarted in part because Linux does *not* have the "The FSF can change our license whenever they want" clause on their GPL prelude. |
00:51 | <&ToxicFrog> | So, while it was GPL-compliant in letter, you couldn't actually do anything with the code, which rather obviously violates the spirit. |
00:51 | <&ToxicFrog> | The GPLv3 specifically prohibits doing this. |
00:52 | <@Reiv> | So not 'screw over the TiVo' insomuch as 'avoid TiVo doing that again' |
00:52 | <&McMartin> | They were, while drafting it, also saying things like "UEFI is only acceptable if MS publishes their own private keys" which made them look rather silly |
00:52 | <@Reiv> | Though hang on, this means the /hardware/ was locked, but not the code (ie any software advances the code may have had remained available for use elsewhere)? |
00:53 | <&McMartin> | Yes, this is the core of the disagreement, and TF is presenting this in a way that implies that TiVo are obvious villains here |
00:53 | <&McMartin> | This is not a universal assessment. |
00:53 | | * Reiv muses. |
00:53 | <@Reiv> | I... hm |
00:53 | <&ToxicFrog> | Reiv: yeah, but AIUI the main use case for wanting the code is to add features to your TiVo not present in the default firmware, not to turn other non-TiVo hardware platforms into TiVos |
00:53 | | * Reiv scratches his chin. |
00:53 | <&McMartin> | The people who think that the primary benefit of open source is not "I can hack literally everything" but instead "I want to make sure they aren't emailing my porn habit to the Vatican" will not care. |
00:54 | <&ToxicFrog> | At least, that's how it works with router firmware~ |
00:54 | <&McMartin> | I'm kind of a fan of signed drivers, personally~ |
00:54 | <@Reiv> | Yeah, but that's not really what Open Source /is/, but what /people like to use it for/. |
00:54 | <&ToxicFrog> | Yeah, I am strongly sympathetic to the former stance because it's the only way, for example, consumer-grade routers are at all useful |
00:54 | <@Azash> | I thought the prime benefits of open source were sharing with the community and crowdsourcing code review/patching |
00:55 | <@Reiv> | I had understood the point of Open Source being that everyone gets to nick each others innovations, and that you can't nick everyones stuff without sharing your own accordingly. |
00:55 | <&ToxicFrog> | To me, at least |
00:55 | <@Reiv> | If you want to lock down your TV box that you make... eh... is that an issue? |
00:55 | <&McMartin> | Well, it is if you're the FSF |
00:55 | <&ToxicFrog> | Reiv: as McM says, it depends on your stance |
00:55 | <@Reiv> | Well, OK. |
00:55 | <&McMartin> | I am incredibly skeptical of the FSF's motivations, far more than the norm |
00:55 | <@Azash> | McMartin: Is there anything which is not an issue for the FSF? |
00:55 | <&ToxicFrog> | That said |
00:55 | <&McMartin> | I haven't heard them hategasm over the Creative Commons. |
00:55 | <&McMartin> | That dosen't mean they haven't, but I haven't heard them do so. |
00:56 | <@Reiv> | But this sounds like "What we declared is not the same as what we secretly intended" and then getting annoyed when someone called them on it~ |
00:56 | | VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has quit [[NS] Quit: Program Shutting down] |
00:56 | <&ToxicFrog> | "improvements made should be available to the community, not just to the implementor" is a pretty common stance in support of FS |
00:56 | <&McMartin> | Sort of. |
00:56 | <@Reiv> | That's a good logic, and one that Open Source works with |
00:56 | <&McMartin> | There's a bunch of other social pressures against forking &c |
00:56 | <&ToxicFrog> | And the TiVo approach violates "hack everything" entirely and "publish improvements" partially, both of which I object to. |
00:56 | <&ToxicFrog> | It doesn't violate "software should not be a black box" but as a practical concern that's the part I care least about~ |
00:57 | <@Reiv> | Open Source is meant to be Publish Improvements. |
00:57 | <@Reiv> | Until now, it never occoured to me that it should by definition include 'Hack everything'. |
00:57 | <@Reiv> | That was merely a useful and occasionally fun side perk. |
00:58 | <@himi> | The reason the FSF freaks out over not being able to hack your TV is that if you can be restricted by law from hacking /something/ then people who want to make you pay for everything will endeavour to apply that law to /everything/ |
00:58 | <&ToxicFrog> | The GPL explicitly supports "hack everything", AIUI. It's not just that you need to publish the source, other people need to be able to use it |
00:58 | <@himi> | Yeah, TF |
00:58 | <@himi> | That was one of the things that they made fairly explicity with the GPLv3 |
00:58 | <@Reiv> | Hn |
00:59 | <@Reiv> | Being able to use it is not the same as 'on the device *you* made' |
00:59 | <&ToxicFrog> | "you can read the source but can't actually build or use modified versions of the software" has always been part of the GPL, it just wasn't comprehensive enough to apply everywhere in v2. |
00:59 | <@himi> | It's not just having the code and being able to change it, you need to be able to actually use it on your piece of hardware |
00:59 | <&ToxicFrog> | s/part of/a violation, at least in spirit, of/ |
00:59 | <@Reiv> | Right then. |
00:59 | <&McMartin> | That still falls into the realm of "What we declared is not the same as what we secretly intended" |
00:59 | <@himi> | Reiv: if you bought the device, why shouldn't you be able to do whatever you want with it, using the software that's released under an open source license |
01:00 | <@Reiv> | Himi: Because sometimes people want it locked down. |
01:00 | <&McMartin> | himi: Well, devices I can't do that with: |
01:00 | <&McMartin> | - all my wireless hardware |
01:00 | <&McMartin> | - my automobile's control computer |
01:00 | <@himi> | Reiv: sure, but ify ou own the device you should be able to decide how it's locked down |
01:00 | <@Reiv> | I should, however, be able to take the code for said device and hack it to work on my toaster, if I so deem it superior to Toasterware 2.6. |
01:00 | <&ToxicFrog> | This is why, for example, the LGPL contains provisions that just publishing the source for the library isn't enough, you also need to be able to relink the original program with modified versions of the LGPL library |
01:00 | <&ToxicFrog> | Whether this means releasing .o files for your program or dynamic linking or whatever |
01:00 | <@Reiv> | himi: The most obvious place that could be disagreed with would be things like the Xbox. |
01:01 | <@himi> | McMartin: there are regulatory limits on what you can do with WiFi hardware - these are reasonable because you can harm other people if you /don't/ work within those limits |
01:01 | <@Reiv> | Sometimes a closed system (if you can keep it closed, and yes I know that one was broken) can be good for, eg, anti-cheating. |
01:01 | <@Reiv> | I can also see, eg, voting machines |
01:01 | <&McMartin> | Reiv: Well, this is why it took something like 20 years for the FSF to declare that linking against the MS libcs. |
01:01 | <@himi> | Your car's computer is a difficult case |
01:01 | <&McMartin> | Er,r ather |
01:01 | <@Reiv> | You can see the code, but not run the modified stuff on the machines in your precinct~ |
01:01 | <&McMartin> | That it is acceptable for GPL software to link against the MS libcs and that you can publish the result |
01:01 | | cpux [cpux@Nightstar-98762b0f.dyn.optonline.net] has joined #code |
01:01 | | mode/#code [+o cpux] by ChanServ |
01:01 | <@himi> | Reiv: I do not /ever/ want to use a voting machine that is /not/ open source |
01:02 | <@Reiv> | Himi: But are you happy with it being freely hackable? |
01:02 | <&McMartin> | Yes, but the voting machine case is very clearly "I want to audit the code" not "I want to be able to hack it" |
01:02 | <@himi> | Reiv: hell yes |
01:02 | <&McMartin> | ...wait, what |
01:02 | <@Reiv> | himi: By, say, the guy with a fash drive and supports Romney? |
01:02 | <@himi> | If you can't guarantee the status of the code running on the voting machine, you should not ever be using it |
01:02 | <&McMartin> | If it is you have zero guarantee that the code running on the voting machine is the code you have the source for |
01:02 | <@himi> | This is a perfect case for signed code, enforced by hardware that you can control |
01:03 | <@himi> | But it is /not/ a case for closed source |
01:03 | <&McMartin> | Right |
01:03 | <&McMartin> | I'm saying the voting machine case is one where "Tivoization" is not only acceptable but mandatory |
01:03 | <&ToxicFrog> | Reiv: strawman. "The owner can load custom code" is not the same thing as "any random yahoo can load custom code" |
01:03 | <@Reiv> | TF: Define 'owner' |
01:03 | <@himi> | If I'm the person running the vote, I need to be able to make sure that it's running code I trust, and I need to be able to make sure that no one can load modified code |
01:03 | <&ToxicFrog> | That depends on the device. |
01:04 | <@himi> | The vendor can go fuck themselves if they want to stop me |
01:04 | <&McMartin> | himi: Yeah, that's a problem in the US; you can't trust the precincts |
01:04 | <@Reiv> | Yeah. What if TiVo sells you the box but declares they're the owner of the system within, hence it being legit to code-lock the box? |
01:04 | <@himi> | (Hear that, Diebold? Fuck you, bitches) |
01:04 | <@Reiv> | (A bit like software now) |
01:04 | <@himi> | McMartin: Yeah, but the whole US voting system is fucked in so many ways I honestly can't think of a way to fix it that wouldn't provoke a revolution from /someone/ |
01:04 | <@Reiv> | I don't mind the arguement that the source should be open rather than closed. |
01:05 | <&McMartin> | *external inspectors* need to be able to tell that it matches the golden copy |
01:05 | <@himi> | Reiv: TiVo sold me the hardware, outright |
01:05 | <@Reiv> | I do mind the implication that all code that is open should be allowed to be fiddled with and shoved back into the system under all circumstances. |
01:05 | <@himi> | They also sell a service that provides additional functionality |
01:05 | <@himi> | They own the service, and some of the data that the service makes use of |
01:05 | <@Reiv> | By and large? Sure. |
01:05 | <@himi> | They do /not/ own the hardware |
01:06 | <@gnolam> | Make that "I do not ever want to use a voting machine" and I'm with you.~ |
01:06 | <@himi> | If they own the hardware, they can replace it when it breaks |
01:06 | <&McMartin> | gnolam: Don't get a nerve disorder~ |
01:06 | <@Reiv> | Himi: This may be an acceptable model for them. |
01:06 | <@himi> | They can upgrade it when their service needs it |
01:06 | <@himi> | Reiv: yes |
01:06 | <@gnolam> | ? |
01:06 | <@himi> | Think about a set top box from someone like Foxtel or similar |
01:06 | <&ToxicFrog> | Reiv: that said, in the context of voting machines, the owner there is the independent agency (or government agency) running the vote, and they absolutely should be able to examine the source and run custom builds, regardless of what the vendor thinks |
01:06 | <@himi> | You rent the box, and when you cancel your service they want it back |
01:06 | <@Reiv> | But they didn't buy the machine, the local precinct did. |
01:07 | <&McMartin> | gnolam: Voting machines ended up becoming mandatory here when you could deduce the votes of the disabled by seeing the split between paper and machine ballots |
01:07 | <@himi> | Reiv: when you're talking about voting machines there are requirements over and above the basic notions of ownership and control |
01:07 | <@Reiv> | I suppose my arguement is that I don't mind the idea of code being locked down; I suspect the point of contention is to just whom it is locked down /to/. |
01:07 | <&McMartin> | (And the resulting machines actually print paper ballots as a result, it's pretty solid overall) |
01:07 | <@Reiv> | himi: I'm using this as a generic example. |
01:07 | <@gnolam> | In other words, to solve the problem of introducing voting machines in the first place, they became mandatory. |
01:07 | <@gnolam> | Mmm, logic.~ |
01:07 | <&McMartin> | Er |
01:07 | <&McMartin> | The problem before this was that the disabled could not operate a ballot. |
01:08 | <@himi> | Reiv: it's not a good generic example, because it throws up /so/ much crap |
01:08 | <&McMartin> | This is unacceptable by a wide array of laws we take pretty seriously |
01:08 | <@Reiv> | Like, say, an Open-Source PlayBox400, where you can see the code (and they nicked Linux to start with), but you can't run your FutureWarriorBlackShooter12 on it unless it's on the signed OS and hardware. |
01:08 | <@himi> | A better generic example would be something like your NAS, your home router, possibly your PC |
01:08 | <@himi> | Oh, yeah - gaming console |
01:09 | <@gnolam> | I fail to see what problem the machines solve. Explain. |
01:09 | <@Reiv> | Gnolam: Oh, that's the voting machines? |
01:09 | <@Reiv> | Privacy. |
01:09 | <@himi> | Wireless routers are more complicated because they interact and interfere with stuff outside of them |
01:09 | <@gnolam> | Heh |
01:09 | <@Reiv> | Say you have four guys in your prescinct who need to use a voting machine. |
01:09 | <@Reiv> | The voting machine gives a noticably different ballot to a standard vote. |
01:09 | <&McMartin> | Reiv: No, he's saying "why do those guys need one at all" |
01:09 | <@himi> | But even with them it's proven quite doable to have completely open sourced stacks |
01:09 | <@Reiv> | You can now figure out who voted what! |
01:09 | <@Reiv> | Ergo, to protect privacy, everyone uses the same machine. |
01:10 | <@himi> | Gaming console: I own the hardware, I should be able to do whatever I want with it |
01:10 | <&McMartin> | And the answer is "before they had to tell someone to vote for them, which is a thing you aren't supposed to do, or you're supposed to deny them the ballot, which is flat out illegal" |
01:10 | <@himi> | If that means running a completely different OS on it, why should the manufacturer care? |
01:10 | <@gnolam> | So are they voice operated, or what? |
01:10 | <@Reiv> | himi: But if you want to run /this/ game, you need /their/ software. |
01:10 | <@Reiv> | Is that a problem? |
01:10 | <&McMartin> | gnolam: spinny dial thing, here. |
01:11 | <&McMartin> | It's a selector wheel I recognize as compatible with various assistive technologies |
01:11 | <@himi> | Now, the manufacturer /may/ want to limit random people's ability to run particular code in it - i.e. you can't install whatever OS you want and expect to run games designed for the manufacturers OS |
01:11 | <@himi> | If you use hardware constraints to enforce that, fine |
01:11 | <@Reiv> | Yes, yes, hardware geeks want to hack up the OS and make it into a mini PC for their own entertainment. Fine, whatever. |
01:11 | <@Reiv> | It's not like you can stop them anyway~ |
01:11 | <@himi> | Now, what if the manufacturer used GPL code to build /their/ OS? |
01:12 | <&McMartin> | Well, you can by having a hypervisor chip refuse to boot unsigned kernels |
01:12 | <@gnolam> | Because err, picking up a piece of paper at one spot and depositing it in another does not require much in the way of motor function. |
01:12 | <&McMartin> | Oh, um |
01:12 | <@himi> | Say, it's a Linux variant that they put a nifty GUI on |
01:12 | <@Reiv> | gnolam: It's the 'tick the little boxes' that causes difficulty. |
01:12 | <@Reiv> | If, say, you cannot hold a pen. |
01:12 | <&McMartin> | California ballots are about 30 pages long and involving hand-punching a 3.5 card with 128 slots on it. |
01:12 | <@himi> | They're /required/ to allow me to get at the source that they used, including the modifications they made to it |
01:12 | <@Reiv> | himi: Yes, and? Not an issue yet. |
01:13 | <@Reiv> | My argument is that they should be allowed to be fussy about what ran on the hardware they configured. |
01:13 | <@himi> | So, I go and download that code, build it, and try to run it - all of this is within the law, and within what you might consider reasonable use of the hardware I own |
01:13 | <@himi> | But, it doesn't work because it wasn't signed by the manufacturer |
01:13 | <&McMartin> | Though it ought to work if you go run it on your PC |
01:14 | <@himi> | McMartin: possibly - think about the Linksys routers that were Linux based |
01:15 | <@himi> | In /that/ case they didn't have anything to stop you from running your own code, thankfully, but stuff like a PS3 or XBox 360 definitely does |
01:15 | <@Reiv> | This is mostly to stop you conviniently altering the settings of the underlying code to give you an edge. |
01:15 | <@himi> | Reiv: that scenario, of the hardware being specifically designed to stop you from doing something that's entirely legal, is what people like the FSF freak out about |
01:15 | <@Reiv> | Yeah, I guess I don't really see it. |
01:16 | <@himi> | . . . . no, it's mostly because copyright owners don't want you to be able to cheat and do shit like time-shifting or whatever |
01:16 | | lidistus-linux [lidistus-li@4CA975.06D306.8735BD.012B14] has quit [[NS] Quit: Leaving] |
01:16 | <&ToxicFrog> | McMartin: "it ought to work if you run it on your PC" is, um, not necessarily true |
01:16 | <@Reiv> | Himi: That's a different game again, but now it's a matter of copyright. |
01:16 | <@Reiv> | I'm saying there /are/ use-cases that could render such a concept fair. |
01:16 | <@himi> | Basically, the people who make the content dictate to the hardware manufacturers that It Shall Not Be Possible to Get Around These Constraints |
01:16 | <&McMartin> | TF: Well, the initial hypothesis here was "they nicked Linux and put a fancy GUI on it" |
01:17 | <&McMartin> | The fancy GUI should be readily lootable in that case |
01:17 | <@Reiv> | I also suspect that such a claim will not stop such shenanigans |
01:17 | <&ToxicFrog> | Router firmwares tend to very hardware-specific, for example, and expect to find a flash device to mount /etc on and a certain processor architecture and whatnot |
01:17 | <@Reiv> | Merely ensure that such things are not open-sourced. |
01:17 | <&McMartin> | Or only leased, yes. |
01:17 | <&McMartin> | The FSF seems to think that it is only their outfreaking that is preventing every device ever made to not be locked down in this fashion by law so that Microsoft can have a guarnateed revenue stream forever |
01:17 | <&ToxicFrog> | Reiv: in which case they can't use open source software and must develop from scratch, yes. That's the idea. |
01:17 | <@himi> | Reiv: there are /gazillions/ of cases where people have done exactly that sort of thing, using open source software in various ways |
01:18 | <&ToxicFrog> | If you use FOSS, you play by FOSS rules. |
01:18 | <&McMartin> | Sure, but the rules are what's written down. |
01:18 | <&McMartin> | Also, failing that, the rules are what the authors of the thing in question have |
01:18 | <@himi> | They're doing it illegally, and the only reason they're gettign away with it is generally that the original developers are a handful of people with no high powered legal team |
01:18 | < Syk> | the thing about licenses are that you don't have to enforce them |
01:18 | <&McMartin> | *Stallman* was offended by TiVo, but IIRC Torvalds was not. |
01:18 | < Syk> | if it's something that's inconsequential, you don't /have/ to sue them |
01:19 | <@himi> | McMartin: Yeah, TiVo was actually one of the /good guys/ in this |
01:19 | <@himi> | They needed a bit of prodding, but once they got over the initial "wtf?' stage they were very good about it all |
01:19 | <&McMartin> | Right, so, it's worth noting that v3 approach is "somebody unrelated is saying you are evil despite the fact that the licensor is pretty clear that this is fine in this way" |
01:20 | <&McMartin> | This is another factor of my general skepticism; I tend to consider the FSF's actual goal to be to establish hegemonic control of the software space by alternate means. |
01:20 | <@himi> | There really are masses of companies producing embedded systems that make use of various open source bits of software without adhering to the letter of the licenses, let alone the spirit |
01:20 | <&ToxicFrog> | McMartin: the issue there is that it was legal but, IMO, quite clearly in violation of the spirit of the law |
01:20 | <@himi> | The reality is that if you don't kick people in the head regularly, they /will/ cheat |
01:21 | <&McMartin> | TF: It's a contract, not a law, and both parties were fine with it. |
01:21 | <&ToxicFrog> | Hence the version update |
01:21 | <@himi> | The main reason for the GPLv3 changes was to properly clarify cases where people were adhering to the letter of the GPLv2, but not to the spirit |
01:21 | <&McMartin> | They were using verbiage from someone who was *not* fine with it, but the way contracts work say that that person can kind of go fuck themselves |
01:21 | <&ToxicFrog> | That's fine, but it's also ok for the person who originally designed the contract to go "holy shit, we did not expect it to be possible to use it in this way, we need to fix this" |
01:22 | <@Reiv> | Yeah, I think I'm roughly in line with McM. |
01:22 | <&McMartin> | Yes, though the extensive smear campaign was an asshole move~ |
01:22 | <&ToxicFrog> | Well, yes |
01:22 | <@himi> | That includes cases where you're using signed code with hardware constraints to stop people using their hardware as they choose |
01:22 | <&ToxicFrog> | OTOH, as noted earlier, I think TiVo were assholes in the first place because I rather like being able to load custom code on my devices |
01:23 | <&McMartin> | Nobody's making you buy one |
01:23 | <@himi> | Also, the GPLv3 only applies where it's applied - you don't /have/ to release your code under it |
01:23 | <@Reiv> | Yeah, uh, 'But I /like/ screwing with my hardware' is not entirely the point, or somethin'. |
01:23 | <@himi> | You also don't have to use people's GPLv3 code |
01:23 | <@himi> | Reiv: the point is, /I/ own /my hardware/ |
01:23 | <@himi> | Someone sold it to me |
01:23 | <@himi> | I have the right to do /anything/ I want to with it |
01:23 | <&McMartin> | But if you used the stock GPL2, other people can redistribute it under 3 against your intent because you gave the FSF the right to change your distributiont erms at their sole discretion |
01:24 | <@himi> | McMartin: Only if you applied it using the FSF's suggested wording |
01:24 | <&McMartin> | Right |
01:24 | <&McMartin> | Which is part of the "use this" |
01:24 | <@himi> | If you careda bout the fine details, you could easily say your code is GPLv2 only |
01:24 | <&McMartin> | Yes, such as if you were say the Linux Kernel |
01:25 | <@himi> | Sure |
01:25 | <&McMartin> | I note that v3 also includse some cases where there were ways to violate the letter without the spirit of v2 |
01:25 | <@himi> | But then, Samba is released under v3 |
01:25 | <&McMartin> | In theory contract-style copyright licenses don't really need that, but whatever |
01:25 | <@himi> | Exactly what you choose to do with your license is up to you |
01:25 | <&McMartin> | I don't think there has even been a case where someone has attempted to shut down a GPL2 source torrent |
01:26 | <&McMartin> | "This isn't a complete copy from that one source ZOMG" |
01:26 | < Syk> | McMartin: has happened |
01:26 | <&McMartin> | By a troll or because they thought this was an actual issue? |
01:26 | <@himi> | McMartin: the v3 developers were trying to update the license to deal with changes in the legal and technological environment |
01:26 | < Syk> | McMartin: when RIAA/MPAA sent out a whole bunch of notices saying that the file ubuntu-desktop-12.04-amd64.iso was being 'illegally downloaded' :D |
01:27 | < Syk> | they sent out a whole lot of notices for FOSS torrents |
01:27 | < Syk> | because they were popular |
01:27 | < Syk> | all of the lols were had |
01:27 | <&McMartin> | Yeah, uh, that's technically a felony under the DMCA, though this has sadly not been properly enforced |
01:27 | <@himi> | Hah |
01:28 | <@himi> | This is another reason why I, personally, like to bitch about anything that attempts to enforce copyright using technological constraints |
01:28 | <&McMartin> | (On paper the DMCA is a lot more viciously double-edged than its European equivalents. I'd be happier with it if both edges were used) |
01:28 | < Syk> | that's because the only people allowed to enforce the DMCA is the MAFIAA and their cronies :D |
01:28 | <&McMartin> | Well, no |
01:28 | | * himi points at the *AAs and their ilk |
01:28 | <&McMartin> | The only people allowed to enforce it are the courts |
01:29 | <&McMartin> | But there have been several documented cases of, for instance, Warner Brothers admitting in court that they didn't do the necessary due diligence that makes launching a DMCA takedown notice not be a felony |
01:29 | <@himi> | McMartin: only kind of - the takedown notices you can send out /are/ legally enforceable |
01:29 | <@himi> | The problem really is that you need bigger lawyers than the person you're up against to make something enforceable in court |
01:30 | <&McMartin> | Yeah, and the flipside is that reckless takedown notices are supposed to be felonious, and ISPs etc are supposed to have blanket immunity as long as they do their own due diligence |
01:30 | <&McMartin> | Neither of these has held up |
01:30 | <@himi> | Or you need a really smart license behind you, which is why whenever the GPL has gone to court people have backed down and changed their practises |
01:30 | <&McMartin> | The Google lawsuits showed why the second did, at least - they'd formed their own (superceding) agreements that gave the *AAs that right years before |
01:31 | <&McMartin> | The GPL is no different conceptually than any other licensing scheme |
01:31 | <&McMartin> | It's just that it generally extracts its payment *only* in its licensing conditions |
01:31 | <@himi> | McMartin: yeah, it's not really something I should have mentioned in that context |
01:32 | | * himi eyes his backscroll |
01:32 | <@himi> | Okay, I think I /may/ be a little overly passionate about this stuff |
01:33 | <&McMartin> | Also, I went to Berkeley~ |
01:33 | <@himi> | Yes, well, that's why you're just naturally heretical ;-P |
01:33 | <&McMartin> | I'm pretty firmly in the "with the GPL, it's the *software* that's free, not you" camp. |
01:34 | <@himi> | Hey, like I said earlier - what you do with your code is entirely up to you |
01:34 | <&McMartin> | Pretty much |
01:34 | <&McMartin> | Though various communities have different standards, and I straddle a lot of them. |
01:34 | <@himi> | I'm just as happy to use BSD style licenses as I am GPL style licenses, as long as no one bitches about me using GPLv3 when it's up to me |
01:35 | <&ToxicFrog> | Personally, I usually actually release under MIT |
01:35 | <@himi> | McMartin, are you suggesting that there are /cultures/ out there in the world? |
01:35 | <@Reiv> | TF: Which allows? |
01:35 | <@himi> | And that they're not all the same? |
01:35 | <@himi> | Reiv: whatever you want |
01:35 | <&McMartin> | Yeah, "feel free to release libraries under GPL, but don't expect me to use them or promote them" |
01:35 | <&McMartin> | MIT and BSD licenses are basically "You must credit us somewhere but there are no other restrictions on use" |
01:36 | <@himi> | BSD and MIT style licenses basically let you do anything you want, including keeping your changes entirely proprietary |
01:36 | <&ToxicFrog> | Reiv: anything as long as you don't try to claim you own the copyright. |
01:36 | <@Reiv> | Right. |
01:36 | <&McMartin> | TF: Except to any modifications you may make |
01:36 | <&ToxicFrog> | Right. |
01:36 | <&McMartin> | MIT, BSD, libpng, and zlib are all basically equivalent at this point. |
01:36 | <@Reiv> | GPL is much more strict, yes? |
01:36 | <&McMartin> | Yes |
01:36 | <&McMartin> | But it's for Freedom (tm), so it's all OK! |
01:37 | <@himi> | BSD requires you to credit the original authors, I think MIT just says you can't claim copyright over the original code |
01:37 | <&McMartin> | himi: At some point in the past couple of years the BSD and MIT licenses have mutated into being identical. |
01:37 | <@Reiv> | identical identical, or? |
01:37 | <&McMartin> | BSD's "you need to have in-software crediting" thing was the first thing to go, long ago |
01:37 | <&McMartin> | Identical requirements, different phrasing. |
01:38 | <@himi> | GPL essentially says you can do whatever you want with the code as long as you ensure that people you distribute the code to get the same rights |
01:38 | <@himi> | McMartin: yeah, it was kind of problematic in the real world, and went away ages ago |
01:38 | <&ToxicFrog> | Reiv: GPL is basically "you can do anything you like in private, but if you ever release software based on this, you must release it under the GPL, you must release source, and it must be possible for users to use that source to create and run modified versions" |
01:39 | <&McMartin> | "BSD" has meant "three-clause BSD" for a long time, but BSD now actually is only two clauses and is identical to MIT/X11 |
01:39 | <&McMartin> | There is, of course, Sun's way around the GPL~ |
01:39 | <@Reiv> | "...On the origional hardware you provided." |
01:39 | <&McMartin> | Kind of unintentional, and Oracle claims to be fixing it |
01:39 | <@himi> | Reiv: the big reason the GPL gets so many complaints is that it sticks its nose into what people redeveloping your code can do |
01:39 | <&McMartin> | Which is that in order to compile VirtualBox on Windows you need a Windows-hosted Linux amd64 cross-compiler |
01:40 | <&McMartin> | Which cannot actually be built without patching MinGW a little. |
01:40 | <@himi> | . . . that's pretty fucked up |
01:40 | <&McMartin> | Binary translation systems are a harsh mistress |
01:40 | <@himi> | Yeah |
01:40 | <&McMartin> | They of course were building on Solaris, running Visual Studio in Wine for the parts that had to be MS-specific |
01:41 | <&McMartin> | Since solaris uses ELF, those bits were just "call gcc to make these build products, even on Windows" |
01:41 | | VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code |
01:41 | <@himi> | Not really a use-case that the Wine devs were giving detailed thought to, I imagine |
01:42 | <&McMartin> | Actually, most versions of MSVS run great in Wine, AIUI |
01:42 | <@himi> | Wine is a truly amazing piece of software |
01:42 | <&McMartin> | Well, MSVS's core tools aren't doing anything exciting |
01:42 | <@himi> | Utterly insane, but amazing |
01:42 | <&McMartin> | YOu don't need anything other than kernel32.dll, and that's something you should be able to map perfectly to POSIX stuff |
01:42 | <@himi> | Yeah, but running something like Left4Dead? |
01:42 | <&McMartin> | Since, uh, boost:filesystem kind of does |
01:43 | | Mac|icecream [mac@Nightstar-fe8a1f12.il.comcast.net] has joined #code |
01:43 | <@himi> | Damn they're nuts |
01:43 | <&McMartin> | Oh! |
01:43 | <&McMartin> | That's Crossover Games |
01:43 | <&McMartin> | That stuff is madness, yes~ |
01:43 | <@himi> | No, it's entirely bog standard Wine these days |
01:43 | <&McMartin> | Oh, nice |
01:43 | | Derakon [Derakon@Nightstar-a3b183ae.ca.comcast.net] has quit [Client exited] |
01:43 | <@himi> | Most of the extra shit that went into the Crossover versions has been merged |
01:44 | <@himi> | (which was the original goal, by the way - the paid versions were kind of intended to be a way to support the devs who were working on the gaming-oriented side of Wine) |
01:44 | | * McMartin nods |
01:44 | <&McMartin> | So, I know the non-Games Crossover goals were basically to get MS's productivity tools up to snuff |
01:45 | <&McMartin> | msvs.exe has some bells and whistles, but I imagine that devenv.exe and cl.exe and link.exe were among the first things to emulate 100% |
01:45 | <@himi> | Ironically, I think a good chunk of the stuff that ended up making current games workable came from outside the Crossover devs |
01:45 | | * himi nods |
01:45 | <&McMartin> | Because you can't so much as run XCOPY without also making CL and LINK work |
01:46 | <&McMartin> | I forget if Linux has native COFF support, and if that includes working on PE32 as a result |
01:46 | <@himi> | Honestly, though, I think the Crossover stuff came along because it was taking co damn long to get Wine to 1.0 |
01:47 | | * McMartin nods |
01:47 | | Derakon_ [chriswei@Nightstar-a3b183ae.ca.comcast.net] has quit [Ping timeout: 121 seconds] |
01:47 | <&McMartin> | Also, DX9 SM3 is pretty much an entirely solved problem now |
01:47 | <@himi> | Yeah |
01:47 | <&McMartin> | As I have come to learn, though, that particular era is kind of the maximally inconvenient one, so of course it is also the maximally supported one~ |
01:47 | <@himi> | Life would be so much easier if more Windows games used OpenGL |
01:47 | <&McMartin> | Not really |
01:48 | <&McMartin> | They'd be using OpenGL 2.1 ;) |
01:48 | <@himi> | heh |
01:48 | <&McMartin> | (No really, that's what they use, I've been checking~) |
01:48 | <@himi> | At least OpenGL 2.1 has official support from vendors under Linux (including Mesa) |
01:49 | <@himi> | Oh, I don't doubt you - it's still the broadest target by a large margin |
01:49 | <@himi> | But from Wine's perspective mapping between Windows OpenGL calls and *nix OpenGL calls is /so/ much easier than DX to OpenGL |
01:50 | <&McMartin> | Yeah |
01:50 | <&McMartin> | Well |
01:50 | <&McMartin> | Kind of |
01:50 | <&McMartin> | If you have an nVidia card you're kind of Bilboing it up |
01:50 | <@himi> | Bilboing it up? |
01:50 | <&McMartin> | Since nVidia uses Cg, which HLSL is a dialect of and GLSL is not |
01:50 | <&McMartin> | So you go There and Back Again |
01:50 | <@himi> | heh |
01:50 | <&McMartin> | From HLSL to GLSL back to HLSL for the card |
01:51 | <@himi> | But you can rely on the drivers to do one bit of that translation |
01:51 | < Syk> | it kind of makes me a bit sad |
01:51 | <&McMartin> | Well, yes |
01:51 | < Syk> | because there's all this extra effort |
01:52 | < Syk> | extra, technically wasted, effort |
01:52 | <&McMartin> | I'm a little unclear as to how hard it would be to just have the driver accept DX calls directly |
01:52 | < Syk> | because people can't use cross platform shit |
01:52 | <&McMartin> | Because presumably the card does. |
01:52 | < Syk> | or Microsoft try and shut down cross platform shit |
01:52 | <&McMartin> | Syk: To be fair, the cross platform shit was a festering shithole for years |
01:52 | <@Reiv> | Yeah, uh, people used DX because It Worked Easy. |
01:52 | <&McMartin> | And DX and OGL had nearly-identical disasters at a nearly-identical time for nearly-identical reasons |
01:52 | <&McMartin> | s/easy/at all/ |
01:52 | < Syk> | rofl |
01:53 | <@Reiv> | OpenGL required nontrivial effort. |
01:53 | < Syk> | well, these days, there's not that excuse |
01:53 | <&McMartin> | You couldn't do any shader work at all in OGL without it no longer being cross-platform anymore |
01:53 | <@Reiv> | So people went with what was easy |
01:53 | <@himi> | Syk: cross platform graphics was basically fucked up beyond all recognition |
01:53 | < Syk> | didn't id software always use opengl? |
01:53 | <@Reiv> | People go with what they know. |
01:53 | <&McMartin> | Yeah, and it only ran on 1/3 of all graphics cards on all OSes, instead of on all graphics cards on one OS |
01:53 | < Syk> | like, isn't Quake 3 and 4 only OpenGL? |
01:53 | <@himi> | Syk: yeah, and they distributed their own OpenGL libraries at one point |
01:53 | <&McMartin> | I'm pretty pro-cross-platform but I recognize that the latter there is better |
01:53 | < Syk> | also someone on kotaku did a code review of Doom 3's source |
01:54 | < Syk> | apparently idtech 4 is the prettiest codebase ever to be known to man |
01:54 | <&McMartin> | Heh |
01:54 | < Syk> | they wrote all their own STL templates too |
01:54 | <&McMartin> | They were the first to do it as a business model |
01:54 | <&McMartin> | You had to |
01:54 | <@himi> | Carmack Is God |
01:54 | <&McMartin> | ffs |
01:54 | < Syk> | not using MS or GCCs |
01:54 | <&McMartin> | Yeah, uh |
01:54 | <&McMartin> | MS and GCC didn't get compliant STLs until the 21st century |
01:54 | < Syk> | idtech 4 was 2006 |
01:55 | <&McMartin> | Yeah, but I bet their own STLs were from Quake 1. |
01:55 | < Syk> | no |
01:55 | < Syk> | because idTech 1-3 were C |
01:55 | < Syk> | 4 was C++ |
01:55 | <&McMartin> | Ah |
01:55 | <&McMartin> | Well, in that case it's "we saw what they did, not trusting them", or a near-fatal case of NIH~ |
01:55 | <@himi> | Yeah, C++ standards aren't too far off the same situation as graphics standards |
01:55 | < Syk> | they did it apparently really cleanly |
01:55 | < Syk> | and really specific to them, which is good, I suppose |
01:55 | <&McMartin> | (My first professional programming job was unfucking a program that unwisely thought std::vector would behave as advertised) |
01:56 | <@himi> | Syk: I refer you to my previous comment about Carmack |
01:56 | <&McMartin> | (This was in '96) |
01:56 | < Syk> | also it's very sparse on comments and very high on 'a function does one thing' |
01:56 | < Syk> | Carmack is pretty much God |
01:56 | < Syk> | up until about 2008, though |
01:56 | < Syk> | then idtech 5 came along, RAGE sucked, and now id is just derping under bethesda's wing |
01:56 | <&McMartin> | Writing engines and writing games are different skills |
01:56 | <&McMartin> | Hi there, Unreal |
01:57 | <@himi> | Seriously, though, Id was and is basically a tech company - they could afford to focus on that kind of thing |
01:57 | < Syk> | McMartin: except id has historically been brilliant at both |
01:57 | < Syk> | Quake 2 is THE best FPS ever made |
01:57 | <@himi> | Syk: well, if you liked a very specific kind of game |
01:57 | <&McMartin> | Was spoiled forever by Descent |
01:57 | <@himi> | Quake 2 is good, but Half Life is at least as good as a game, in a different way |
01:58 | < Syk> | Half Life is well |
01:58 | < Syk> | HL is sort of in it's own corner |
01:58 | < Syk> | because it just transcends everything else |
01:58 | <@himi> | And Id made a hell of a lot more from the engine they built for Quake 2 than they did from Quake 2 itself |
01:58 | < Syk> | they did? |
01:58 | < Syk> | I didnt think a lot of things really used idtech |
01:58 | <@Reiv> | Oh man, Unreal Tournament. Why haven't we had a new one? |
01:58 | < Syk> | everyone just shovelled Unreal's bullshit into their code |
01:58 | <@himi> | Have you seen the number of games from that era that used the engine? |
01:59 | < Syk> | himi: I know of... uh |
01:59 | <@Reiv> | Yeah, uh, including Half-Life. |
01:59 | < Syk> | HL didn't use idtech 2 though |
01:59 | < Syk> | HL was idtech 2 with Gabe in it |
01:59 | < Syk> | unless that was the later Source engine |
02:00 | < Syk> | because Source is descended from idtech 2, apparently there's still bits in it |
02:00 | < Syk> | but I thought they did a whole pile of changes for HL? |
02:01 | <@himi> | Yeah, that's my understanding too |
02:02 | <&McMartin> | Yup |
02:02 | <&McMartin> | And then a bunch more for HL2 is done, so the HL engine was frozen as having gone gold |
02:02 | <@himi> | (Id is still damn cool for releasing all that code, regardless of how much they may suck at one thing or another) |
02:03 | <&McMartin> | Hence, /goldsrc and /src, the two engines in question |
02:03 | < Syk> | id have my respect, big time |
02:03 | <@himi> | (also, Carmack Is God just has such a ring to it) |
02:03 | < Syk> | they just need to fix it after RAGE |
02:03 | < Syk> | and I didn't particularly like Doom 3 |
02:04 | < Syk> | the mouse acceleration in Quake 4 and Doom 3 just made it hard to play :( |
02:04 | <@Reiv> | I heard RAGE was pretty good. |
02:04 | <@Reiv> | Just not the open-world Borderlands-but-pretty people were hoping for. |
02:05 | < Syk> | Reiv: there were texture flickering problems and it didnt work a lot, and it generally wasn't as good |
02:05 | < Syk> | I mean, it's probably a very good game, it's just not an /id/ quality game |
02:07 | <&McMartin> | I sort of turned into an indie hipster asshole around 2010 |
02:09 | <&ToxicFrog> | Syk: i don't think I can agree with your opinion re: Q2 even if we exclude corridor shooters, because this is a world in which Descent and System Shock exist |
02:10 | < Syk> | ToxicFrog: the problem with descent and system shock is that they're not quake 2 |
02:10 | <@Reiv> | Syk: So it failed due to expectations, not game itself? |
02:11 | <&ToxicFrog> | If by "not quake 2" you mean they have colours other than brown and grey in the palette, then es |
02:11 | < Syk> | Reiv: I think it's half DNF-style disappointment, and half technical issues |
02:11 | < Syk> | ToxicFrog: heh |
02:11 | < Syk> | I admittedly havent played Descent or System Shock |
02:11 | <&McMartin> | Descent more or less put me off FPSen until Portal |
02:11 | <@Reiv> | I would still argue this is distinct from 'sucked'. |
02:11 | < Syk> | I played some Descent 2, I think |
02:11 | <@Reiv> | Now, DNF sucked |
02:11 | <&McMartin> | Descent 2 had... problems |
02:11 | <@Reiv> | But 'not as good as the unassailable expectations' is not 'sucked'. |
02:11 | < Syk> | Reiv: technical issues such as 'the game doesn't work' :P |
02:12 | <&McMartin> | Some of which were mitigatable, like the levels being so goddamn mazelike that they added a friendly maze-solving AI to lead you around everywhere |
02:12 | <@Reiv> | Doesn't work, or has some weird textures? |
02:12 | <&McMartin> | Some of which were less so, like them accidentally m aking the final boss immune to damage in the default difficulty level |
02:12 | < Syk> | Reiv: my friend had issues getting it working at all, and texture popping exists on the consoles and I think the PC |
02:12 | <@Reiv> | lolwut |
02:12 | < Syk> | McMartin: heh |
02:12 | < Syk> | I didnt play much descent 2 |
02:12 | < Syk> | now, Descent: Freespace? |
02:13 | < Syk> | I played the SHIT out of that. |
02:13 | <@Reiv> | Syk: Texture popping is a bug, not 'unplayable' unless it really does break matters. |
02:13 | <&McMartin> | Freespace 2 was so good that it killed the space sim genre~ |
02:13 | <&ToxicFrog> | Descent 2 was pretty bad, IMO |
02:13 | <&McMartin> | It was |
02:13 | <&ToxicFrog> | Descent 1 and Freespace both kicked a whole mess of ass, though |
02:13 | < Syk> | McMartin: it also killed the developer :< |
02:13 | <&McMartin> | 1 is much better |
02:13 | <@Reiv> | No, it killed the genre because it was that good and didn't sell anyway~ |
02:13 | <&McMartin> | 1 with 2's AI is amazing and terrifying |
02:13 | < Syk> | yeah |
02:14 | <&McMartin> | The bot AI in Descent 2 was very, very good. |
02:14 | <~Vornicus> | "texture popping"? |
02:14 | <&McMartin> | The levels in Descent 1 were designed to not have to worry about the enemies beign too smart |
02:14 | <&ToxicFrog> | I love/hate the way the D2 bot AI interacts with D1 lifters |
02:14 | < Syk> | Vornicus: think: all of Borderlands 2 |
02:14 | <&McMartin> | D1 lifters exist only to haunt yoru nightmares |
02:14 | <&McMartin> | *your |
02:14 | <&ToxicFrog> | Which is that they all follow you around in a steadily growing swarm until you turn around, and then go SKREEEEEEE |
02:14 | <~Vornicus> | Syk: assume I have never played either Borderlands nor Borderlands 2. |
02:14 | <@Reiv> | wut |
02:15 | < Syk> | Vornicus: you know that weird JPG compression where its crap to start off with and gets better |
02:15 | <&McMartin> | Also, when you get in a concussion missile fight in the middle of a huge room, it aggros *the entire mine* and they can actually get there |
02:15 | <&ToxicFrog> | Vornicus: visible texture mipping, basically |
02:15 | <&McMartin> | Or they can't and set up gigantic ambushes behind every door |
02:16 | <~Vornicus> | So, when you load a thing and it starts out really really low detail and then suddenly increases in detail? |
02:16 | <&ToxicFrog> | McMartin: in D2X-XL, at least, D1 enemies get the D2 AI but not their ability to open doors. |
02:16 | <&ToxicFrog> | So you end up with ambushes but not IT IS A PARTY IN YOUR COCKPIT AND THE WHOLE MINE IS INVITED, HAVE FUN |
02:17 | <&ToxicFrog> | Syk: anyways, I did like Q2, it's probably my favourite Quake, but for FPSes in general it's not even in my top ten |
02:17 | <&ToxicFrog> | ...probably. I haven't actually sat down and made a list. |
02:18 | <&McMartin> | TF: The thing is, in D1 the levels tend to have shockingly few doors |
02:18 | <@Reiv> | I don't think I've even /finished/ 10 FPSes. |
02:18 | <&McMartin> | Man, I'd have to check |
02:18 | <&McMartin> | Prior to Portal I'd finished Wolf 3D and Descent and Descent 2 (on a possible difficulty level). |
02:19 | <@Reiv> | Oh! |
02:19 | <&McMartin> | After that but before starting my giant log I finished Portal and Mirror's Edge |
02:19 | <@Reiv> | I finished Wolf 3D! I did I did I did |
02:19 | <&ToxicFrog> | Still enough that you really notice the functional lack of doors in D2, though |
02:19 | <@Reiv> | I got lost in a room with exploding windows in Mirror's Edge. |
02:19 | <@Reiv> | I should really try again some time, but after all that time with fantastic queing it seemed to brickwall you. |
02:19 | <&McMartin> | Since starting out the List, in alphabetical order |
02:20 | <&ToxicFrog> | Cueing. |
02:20 | <&ToxicFrog> | I don't actually remember a room with exploding windows. |
02:20 | <@Reiv> | The men were trying to shoot you |
02:21 | <@Reiv> | After you talked to your cop sister. |
02:21 | <&McMartin> | Level 1 |
02:21 | <&McMartin> | Um |
02:21 | <@Reiv> | And you were meant to go somewhere and it was an ambush. I never found the exit. |
02:21 | <&McMartin> | Run down that hallway, there is a door at the end of it |
02:21 | <&McMartin> | There is a gunship shooting out the window |
02:21 | <&McMartin> | Unless it's *right* after you talk to your sister, in which case that's one of the most obtuse bits in the game; your goal is to get into the ventilation ducts which are not easy to see. |
02:21 | <&McMartin> | Watch a walkthrough of the stage to see where to go. |
02:22 | <&ToxicFrog> | Oh |
02:22 | <&ToxicFrog> | I think on that part the window exploded after I had left the room~ |
02:22 | <@Reiv> | Oh, I see. |
02:22 | <&McMartin> | Amnesia, The Ball, Bioshock, Borderlands, CoD4MW1, DX1, DX2, DX3, FO3, HL2, HL2E1, HL2E2, HL2LC, Portal 2, Quantum Conundrum, Zenoclash |
02:22 | <@Reiv> | Well then. I got stuck in an obtuse bit! |
02:22 | <@Reiv> | I was enjoying it first,t hough. |
02:22 | <@Reiv> | ... that's quite thorough of you, sir |
02:23 | <@Reiv> | wate you played a CoD |
02:23 | <&McMartin> | It was a gift |
02:23 | <@Reiv> | HANG YOUR HEAD IN SHAME |
02:23 | <&McMartin> | Also, it was the good one~ |
02:23 | <&McMartin> | I got to wear a haystack, I regret nothing |
02:24 | <&McMartin> | So that's somewhere between 15 and 19 depending on how you count |
02:26 | | * McMartin looks at that list |
02:27 | <&McMartin> | Also, I'm pretty sure my body count in CoD4 was lower than Bioshock, Borderlands, and all the HL2 except Lost Coast |
02:27 | <&McMartin> | Mmmaybe Zeno Clash, but for the most part they lived. |
02:27 | <&ToxicFrog> | I rather enjoyed CoD4, which is the only one I played. |
02:28 | <&McMartin> | It's AIUI the only good one, and all the rest are transparently phony attempts to recapture whatever worked in the first one. |
02:28 | | * ToxicFrog ponders. What would my top 10 FPSes be? |
02:29 | <&McMartin> | I'm letting some RPGs leak into my list, and even as such ranking 10 would be kind of tough. |
02:29 | | * McMartin never played a Quake or an Unreal because this mouselook thing is just gonna be a passing fad |
02:29 | < Xires> | UnrealTournament? |
02:29 | <&McMartin> | Or the non-Tournament ones. |
02:30 | < Xires> | haven't actually played Unreal |
02:30 | < Xires> | just UT |
02:30 | | * Reiv played the crap out of Unreal Tournament. |
02:30 | | * McMartin had a gap between about 1997 and 2009 for PC gaming. |
02:30 | <&McMartin> | The exceptions were strategy games and the occasional space sim or adventure. |
02:30 | | * Reiv was mildly famous for obscene talent with the Flak Gun and the, uh, Blue Beamy Orby Gun Of Doom. |
02:31 | <@Reiv> | (Which was not meant to be very powerful) |
02:31 | <&ToxicFrog> | For me, the biggest problem with coming up with the list, I think, is figuring out whether Thief is allowed |
02:31 | <&McMartin> | So, uh, I finally got around to playing Planescape Torment last July |
02:31 | <@Reiv> | (But I had somehow mastered a near instinctive talent of shooting-the-orb) |
02:31 | <&ToxicFrog> | And if so, whether DMoM&M or Arx Fatalis are |
02:31 | <&McMartin> | It turns out that it was really good |
02:31 | <&ToxicFrog> | ...or Mirror's Edge |
02:31 | <@Reiv> | (Just about all my kills were from area-bursts from one of those two weapons, actually~) |
02:31 | <&McMartin> | Yeah, uh |
02:31 | <@Reiv> | McMartin: Would you reccomend bothering with Planescape, then? |
02:31 | <&McMartin> | I don't think I have ten if I don't |
02:31 | <&McMartin> | Reiv: Oh, absolutely |
02:32 | | Mac|icecream is now known as Mac |
02:32 | <&McMartin> | Just be aware that it is secretly a visual novel, not an RPG. |
02:32 | <&McMartin> | https://hkn.eecs.berkeley.edu/~mcmartin/stack.html#a_114 |
02:33 | <@Reiv> | ... one of the things that oft stymied me on that game was that I worried I was missing branching paths and the like |
02:33 | <&McMartin> | ... well, yes |
02:33 | <@Reiv> | Is this more Guns'nConversation afterall? |
02:33 | <&McMartin> | Well |
02:34 | <&McMartin> | If you're going to be playing it "gotta catch 'em all" as one does most moral branching path systems, uh, see you 2019 or so |
02:34 | <@Reiv> | Righto~ |
02:34 | <&McMartin> | I went off TF's rails of "what you can do" within 15 seconds of getting out of the first room |
02:34 | <&McMartin> | And he's played it to death |
02:35 | <&McMartin> | (Of course, it also took me the better part of 90 minutes to figure out how to get out of the first room because I couldn't figure out how to interact with doors) |
02:35 | <&ToxicFrog> | If we do allow that flexibility, I think I end up with System Shock 1 and 2, Thief 1 and 2, Strike Force Centauri, DMoM&M, Mirror's Edge, Duke Nukem 3D, Blood, and Descent. |
02:35 | <&ToxicFrog> | Reiv: if missing plot/conversation branches is something that actually bothers you, either don't play anything by Black Isle, Troika, or Obsidian, or play everything by them six times each, basically. |
02:36 | | * Reiv has not heard of Strike Force Centauri, DMoM&M, or Blood. |
02:36 | <&McMartin> | Oh yeah, I also somehow completely bypassed a major plot-critical sidequest in PS:T and I'm still not sure if that was a bug |
02:36 | <&McMartin> | Like, it's suppose to happen *to* you and it didn't |
02:37 | <&ToxicFrog> | If that's the thing that happens involving Morte when you reach that new area, I'm pretty sure that's not meant to be skippable |
02:37 | <&ToxicFrog> | But don't quote me on that |
02:37 | <&McMartin> | So, the thing is |
02:37 | <&McMartin> | That part involves getting sent on a fetch quest for a thing |
02:37 | <&ToxicFrog> | Reiv: Strike Force Centauri is basically singleplayer Tribes. It was developed by Looking Glass immediately after SS1 and was in fact the inspiration for the Tribes games. |
02:37 | <&McMartin> | Morte *was carrying that thing at that time* |
02:37 | <@Reiv> | I kept dying when I tried to get Morte a bigass minotaur body. It was sad. |
02:38 | | thalass [thalass@Nightstar-724ec5eb.bigpond.net.au] has joined #code |
02:38 | <@Reiv> | TF: Why have I not heard of this? |
02:38 | <&ToxicFrog> | DMoM&M is Dark Messiah of Might and Magic, which is less a first person shooter and more a first person kicking orcs down staircases and into spikes while on fire simulator |
02:38 | <&McMartin> | Ha ha ha |
02:38 | <&McMartin> | sold~ |
02:39 | <&McMartin> | Also that's not far from my description of TBP |
02:39 | <@Reiv> | what |
02:39 | <&ToxicFrog> | (it has some technical issues, but they're all of the "it needs more resources than it should considering what it looks like" type and modern systems utterly destroy it) |
02:39 | <&McMartin> | They Bleed Pixels is a game about stabbing shoggoths 47 times before punting them into buzzsaws |
02:39 | <&ToxicFrog> | And Blood is Duke Nukem 3D, except turned up to 11. |
02:40 | <&ToxicFrog> | Your first two weapons are a flare gun and dynamite and you're a zombie cultist cowboy on a mission to kill Cthulhu. |
02:40 | <&McMartin> | Blood also appears to be on GOG |
02:40 | <&ToxicFrog> | It is |
02:40 | <@Reiv> | what. |
02:41 | <@Reiv> | Is this game actually /good/ beyond the sillyness? |
02:41 | <&ToxicFrog> | Sadly there is no source port for it, because unlike most BUILD engine games the source was never released |
02:41 | <&ToxicFrog> | But it runs fine in dosbox and there's a reverse-engineered engine rewrite in the works. |
02:42 | <@Reiv> | hn |
02:42 | <&McMartin> | No SFC, no DMoM&M |
02:42 | <@Reiv> | Does Planescape:Torment need DOSbox? |
02:42 | <&McMartin> | It's from '99 |
02:42 | <&ToxicFrog> | Reiv: you probably haven't heard of Strike Force Centauri because it was massively overshadowed by its immediate predecessor (System Shock), immediate successor (Thief), spiritual sequel (Starsiege: Tribes), and contemporaries Duke Nukem 3D and Quake. |
02:42 | <&McMartin> | It's from The Uncomfortable Period. |
02:42 | <&McMartin> | You'll need fanfix patches |
02:43 | <&ToxicFrog> | PS:T is win9x. There are unofficial patches. |
02:43 | <@RobinStamer> | Anyone have any idea how to draw graphs (node graphs) programatically? This is specifically just for requirement trees. |
02:43 | <&McMartin> | RobinStamer: Can you just feed data to dot? |
02:43 | <&ToxicFrog> | ^ |
02:43 | <@RobinStamer> | I want to be able to know where the nodes appear visually so I can let users click on them. |
02:43 | <&ToxicFrog> | Oh. |
02:43 | <@Reiv> | ToxicFrog: Interesting. But it's notable all the same? |
02:44 | <@RobinStamer> | If dot can give me that info, it's not documented anywhere I could find :/ |
02:44 | <&ToxicFrog> | Reiv: I'd say so. Fun, too, if you don't mind SS1-style controls. |
02:44 | <&McMartin> | It's beyond notable; it's definitive |
02:44 | <&McMartin> | So is Fallout 1, but you have to be more forgiving of stuff for it and its sequel |
02:44 | <@Reiv> | I see. |
02:44 | <&ToxicFrog> | Actually, yeah, which game are you asking about there |
02:44 | <&ToxicFrog> | I think the answer is "yes" in all three cases, though~ |
02:44 | <&McMartin> | Fallout 2 infamously begins to overflow its own buffers if you explore too many regions |
02:55 | | Mac [mac@Nightstar-fe8a1f12.il.comcast.net] has left #code ["Leaving"] |
03:05 | <&McMartin> | Meanwhile, I'm playign Might and Magic 6, which is a "explore and kill stuff and get loot and have traps go off in your face" RPG with background graphics out of Descent and character models out of Deus Ex 1 |
03:08 | <@Reiv> | I take it these are the worst parts of both~ |
03:09 | <&McMartin> | Descent was OK for its time, which was five years before~ |
03:09 | <&McMartin> | DX1's character models are a goddamn embarassment though even for its age |
03:11 | <@gnolam> | Heh. My first impression of DX1 back in the day was "How did they make the Unreal engine this ugly?". |
03:11 | <&McMartin> | Oh right also the goofy terrible photoshopped low-res photos of serpent isle |
03:13 | <&McMartin> | http://static.gog.com/upload/images/2009/09/6b112445a13445e841e9f25b469c354056fc cab9.jpg |
03:14 | <@gnolam> | Looks uglier than Daggerfall. |
03:14 | <&ToxicFrog> | Reiv: anyways, yes, play Blood, play PS:T, and play SFC |
03:15 | <&ToxicFrog> | ...although, thinking back to earlier conversations, possibly don't play Blood because you will get lost |
03:15 | <@gnolam> | Blood is quite skippable, IMO. |
03:15 | <&McMartin> | gnognolam: Looking at Daggerfall, I'm not sure I agree |
03:16 | <&McMartin> | Though Daggerfall's also two years earlier |
03:18 | | VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has quit [[NS] Quit: Program Shutting down] |
03:18 | <&ToxicFrog> | gnolam: Blood is, IMO, the best game of the "build engine mentality", which is to say, absurdly over the top splatterfests |
03:18 | <&ToxicFrog> | (a genre that also includes some non-Build games like RotT) |
03:18 | <&ToxicFrog> | If that's not something you normally enjoy, though, yeah |
03:19 | <&ToxicFrog> | And it's not a genre-defining classic the way PS:T and SFC are. |
03:19 | <&McMartin> | Hm |
03:19 | <@gnolam> | GOG still hasn't gotten hold of Strike Force: Centauri, have they? |
03:19 | <&McMartin> | I'm not sure if PS:T gets to be genre-defining, following up as it does both Fallout and Fallout 2 |
03:19 | <&McMartin> | gnolam: Nope. I just checked |
03:19 | <&ToxicFrog> | It's in the same IP hell as System Shock, I think |
03:20 | <&McMartin> | Dammit |
03:20 | <&McMartin> | EA needed to be *slightly more* evil =( |
03:20 | <&McMartin> | As a result we get Ultima VIII but not System Shock. |
03:20 | <&ToxicFrog> | Like SS1, it was developed by LGS and published through EA/Origin |
03:21 | <&ToxicFrog> | That said, I think CD Access still has hardcopies for like $10, and it's easy to pirate~ |
03:21 | <@Reiv> | McM: ... slightly more? |
03:21 | <&ToxicFrog> | Reiv: if EA had gotten all of the IP rights related to System Shock, those games would be on GOG now. |
03:22 | <&McMartin> | See also: Crusader No Remorse, Ultima VIII |
03:22 | <&McMartin> | Actually, just Crusader, U8 sucks~ |
03:22 | <&ToxicFrog> | As it is, EA and LGS split the rights, the intent being that neither could make more System Shock games without the cooperation of the other - LGS couldn't make a sequel with another publisher, and EA couldn't farm out sequels to another developer. |
03:23 | <@Reiv> | That sounds like the Gypsy Rope Fight. :/ |
03:23 | <&ToxicFrog> | However, this meant that when LGS folded, the System Shock IP ended up being owned by Meadowbrook Insurance Group, who have spent the years since squatting on it like a particularly ugly and foul-smelling dragon on its hoard. |
03:23 | <@Reiv> | ... because it's worth more on their investor portfolio than actually sold? |
03:23 | <&ToxicFrog> | Whereas we do get Ultima Underworld and Thief back because those rights were owned entirely by EA and whoever owns Eidos these days, respectively |
03:23 | <&McMartin> | They're unwilling to sell at a price anyone's actually willing to pay. |
03:24 | <@Reiv> | Is this 'they believe it is worth more than that' |
03:24 | <&McMartin> | Probably more "that number is an insult" |
03:24 | <@Reiv> | Or is it 'we write down a big number and get to put it on our 'net worth' sheet accordingly'? |
03:25 | <&ToxicFrog> | No-one knows the exact numbers involved except Meadowbrook and anyone who's tried to buy the rights from them. |
03:25 | <@Reiv> | OK |
03:25 | <@Reiv> | I guess the bit I don't understand |
03:25 | <@Reiv> | Why would you /not/ want to sell someone the rights? |
03:25 | <&ToxicFrog> | I have no idea. |
03:25 | <@Reiv> | My assumption is that they're either a) confused, or b) there's some accounting trick at play. |
03:26 | <&McMartin> | a) is to be fair not at all unlikely |
03:26 | <&ToxicFrog> | Maybe they're holding out for a cut of future sales rather than a flat fee and EA doesn't like that. |
03:26 | <&ToxicFrog> | Maybe they just want to keep it in the "net worth" column and never sell it. |
03:26 | <@Reiv> | IE: We claim these rights are worth $3M. We get to say that we've $3M in assets accordingly. Alas, if we don't /sell/ for $3M, this means we have to write off a loss... |
03:26 | <&McMartin> | The thing is |
03:26 | <&McMartin> | It *should* in theroy be possible for GOG to simultaneously sublicense from EA and MIG |
03:27 | <&McMartin> | Those numbers are going to be kind of small; I'd be astounded if either saw more than a dime per copy sold |
03:27 | <&ToxicFrog> | Assuming MIG is willing to do that on rational terms. |
03:27 | <&McMartin> | Right |
03:27 | <&ToxicFrog> | I kind of feel like, at this point, if they were willing to cut a deal with EA or GOG that was actually within the realms of sanity, System Shock would be on GOG right now~ |
03:28 | <&McMartin> | If they instead say "Oh, this has value, hm? Is it worth paying us a 30% cut?" and being told "lolno, we can't cover payment processing on that" and replying "then go pound sand, peasant" |
03:28 | <&McMartin> | Alternately, they may think that System Shock ought to be selling at the prices that modern PC games go for, if it's so great |
03:29 | <&McMartin> | It can compete with all these modern games, so obviously, it's worth $60/copy, and we want 20% of that, so, $12/unit moved |
03:29 | <&ToxicFrog> | So, uh, $5-$10 a copy, going by Steam~ |
03:29 | <&McMartin> | "Uh, mSRP is $5, budy" |
03:29 | <&McMartin> | Man, what is up with my bandwidth |
03:29 | <@Reiv> | TF: Don't be silly. Steam has /sales/ |
03:29 | <@Reiv> | But the price you tell people is sixty bucks. |
03:29 | <&McMartin> | Sorta |
03:29 | <&McMartin> | SO:tL is $30 |
03:29 | <@Reiv> | Pay no attention to the tail or realities of digital distribution they might get panicky that you're charging a sixth the console price |
03:30 | <@Reiv> | This might scare them off PC, because that means you lost 5/6 of your money! |
03:30 | | thalass is now known as Thalass|portal |
03:35 | | Thalass|portal [thalass@Nightstar-724ec5eb.bigpond.net.au] has quit [[NS] Quit: augh] |
03:39 | | Courage [Moltare@583787.FF2A18.190FE2.4D81A1] has quit [Ping timeout: 121 seconds] |
03:40 | | Courage [Moltare@583787.FF2A18.190FE2.4D81A1] has joined #code |
03:40 | | mode/#code [+o Courage] by ChanServ |
03:56 | | Kindamoody[zZz] is now known as Kindamoody |
04:11 | | Derakon [Derakon@Nightstar-a3b183ae.ca.comcast.net] has joined #code |
04:11 | | mode/#code [+ao Derakon Derakon] by ChanServ |
04:40 | | mac [mac@Nightstar-fe8a1f12.il.comcast.net] has joined #code |
04:50 | | Attilla [Obsolete@Nightstar-9e7fa2b2.range86-162.btcentralplus.com] has quit [Ping timeout: 121 seconds] |
04:50 | | Attilla [Obsolete@Nightstar-9e7fa2b2.range86-162.btcentralplus.com] has joined #code |
04:53 | < mac> | can some one tell me what might be the problem with this |
04:53 | < mac> | http://pastebin.com/4vSahui6 |
04:53 | <&McMartin> | What's the symptom? |
04:53 | < mac> | cannot initialize a parameter of type 'char *' with an rvalue of type 'char (*)[20]' |
04:54 | <&Derakon> | Uh, pretty sure "void func(char* var+20)" is invalid syntax. |
04:54 | <&McMartin> | void TestGrader::grade(char *b+20) |
04:54 | <&McMartin> | This line makes no sense |
04:54 | <&Derakon> | What are you trying to accomplish with the +20? |
04:55 | < mac> | sorry its [20] i must have messed it up i wrote that in didn't paste |
04:55 | < mac> | char *b[20] |
04:55 | < mac> | but i don't even know if that is valid. |
04:55 | <&McMartin> | Not as an argument |
04:55 | <&McMartin> | It's also an array of 20 character pointers, not an array of 20 characters. |
04:55 | <&Derakon> | You want an array of 20 char pointers? |
04:55 | <&McMartin> | C doesn't know about sizes, as a rule. |
04:56 | <&McMartin> | This also means that you won't be able to do a string copy by saying usrmnt = b |
04:57 | < mac> | my compiler give me this sweet tid bit." note: passing argument to parameter here void grade(char *); " |
04:58 | < mac> | so why can i pass an array with a pointer? |
04:58 | <&Derakon> | Because arrays are pointers. |
04:58 | <&Derakon> | If you do "char foo[20]", then the type of foo is char*. |
04:58 | <&Derakon> | It is a pointer to the first element of the array. |
04:58 | <&ToxicFrog> | Or, rather, arrays decay to pointers and are equivalent to them in most cases. |
04:59 | <&Derakon> | foo[10] is syntactic sugar for "*(foo + 10 * sizeof(*foo))", or something like that. |
04:59 | <&ToxicFrog> | (the main difference is when using sizeof(); if foo is statically allocated char[20], you'll get 20 rather than sizeof(char*) |
05:00 | <&ToxicFrog> | (it'll decay to a char* when passed to a function or assigned to something else or in most other cases, though) |
05:00 | <&McMartin> | (Unless it's char[20] in a .c file and an extern char * in the .h file, in which case your separate compilation will generate disastrously incorrect code) |
05:00 | <&Derakon> | "Disastrously incorrect" and "pointer" intersect to a distressing degree. |
05:01 | <&ToxicFrog> | (I think that if the .h is #included in the .c the compiler will complain about conflicting declarations) |
05:01 | | * McMartin correctly wrote some self-modifying pointer code over the weekend :3 |
05:01 | <&ToxicFrog> | (but I haven't actually tested this) |
05:01 | <&McMartin> | (I don't recall if I did that at the time; this was also an ARM cross-compiler) |
05:02 | <&McMartin> | (This is the kind of error one only makes once, at that was about a decade ago) |
05:02 | <&McMartin> | (woo, GBAdev) |
05:07 | <&ToxicFrog> | Oh, C. |
05:07 | <&ToxicFrog> | I don't miss you. |
05:08 | <&Derakon> | I hear that. |
05:16 | <@himi> | I love C |
05:16 | < mac> | So char arrays, |
05:16 | < mac> | is there no way to pass this |
05:16 | <@himi> | When I'm not writing it regularly |
05:17 | <@himi> | mac: pass a pointer |
05:17 | <&Derakon> | Mac: there is. You just lose the size information. |
05:17 | < mac> | well thats ok for this |
05:17 | < mac> | but how do i do that? |
05:17 | < mac> | because i sent it in as &mycharvariable |
05:18 | <&Derakon> | Let's say you have "char foo[20]", i.e. an array of 20 chars named "foo". |
05:18 | < mac> | ok |
05:18 | <&Derakon> | You have a function, myFunc. |
05:18 | < mac> | sure |
05:18 | <&Derakon> | myFunc takes a char pointer as an argument. |
05:18 | < mac> | yes |
05:18 | <&Derakon> | E.g. "myFunc(char* foo)" |
05:18 | <&Derakon> | And you call it as "myFunc(foo)". |
05:19 | < mac> | that should work? |
05:19 | <&Derakon> | It had better! |
05:19 | <&Derakon> | Otherwise either C has changed or my memory is shit. |
05:19 | < mac> | 0.o |
05:19 | <&Derakon> | Remember, I said that arrays are pointers. |
05:19 | < mac> | c++ does that matter? |
05:19 | <&Derakon> | The array syntax is literally just syntatic sugar for pointer arithmetic. |
05:19 | <&Derakon> | No, C++ is the same. |
05:20 | <&ToxicFrog> | Although C++ also gives you std::string, which may be a better choice for this. |
05:21 | <&Derakon> | Yeah, the standard line here is "If you are programming in C++ and you have "char *" in your code, you have a bug." |
05:21 | <&Derakon> | std::string roxxors the big one one one. |
05:22 | <@celticminstrel> | It's not 100% acurate to say "arrays are pointers". |
05:22 | <@celticminstrel> | ^accurate3 |
05:22 | <@celticminstrel> | ^-3 |
05:22 | <&McMartin> | Yes, the exception was listed above |
05:23 | <&McMartin> | Anyway, if you do use std::string, and you don't plan on actually modifying it, the correct way to pass it is actually as const std::string& |
05:23 | <&McMartin> | This is more efficient and it also still lets you use string literals. |
05:23 | <@celticminstrel> | They're more like const pointers, but there's still a slight distinction. |
05:24 | <&McMartin> | Yes, keep reading backscroll, we go over this |
05:24 | <@celticminstrel> | They are a separate type of their own that just happens to auto-convert to a pointer in most contexts that matter. |
05:24 | <&ToxicFrog> | Yes. We know. I said that less than a page ago. |
05:24 | <@celticminstrel> | Ah, so you did. Oh well. |
05:24 | <&ToxicFrog> | And now, the slep. |
05:24 | <&Derakon> | Night, TF. |
05:24 | <&ToxicFrog> | Save the last bullet for yourself, mac~ |
05:25 | < mac> | Toxic whats that supposed to mean? |
05:25 | <&McMartin> | He's comparing C programming to fighting off a zombie invasion |
05:41 | < mac> | http://pastebin.com/cvsvv2ZY :/ |
05:44 | <&Derakon> | Well, it can't find the definition of the function TestGrader::grade(char*). |
05:45 | <&Derakon> | Either that or you failed to build for 64-bit, but I suspect that's not the issue. |
06:03 | <&Derakon> | No need to PM me, dude, the channel's still here. |
06:03 | <&Derakon> | Plus then you might get help after I go to bed. |
06:03 | < mac> | k |
06:04 | < mac> | any way to pass a string as a value? like if i wanted to declare a function that took in a string ? |
06:04 | <&Derakon> | std::string, sure. |
06:04 | <&Derakon> | But if you want to work with C-style strings, well, they're character arrays. |
06:04 | <&Derakon> | That's all you get. |
06:05 | < mac> | is there a reason that it has to be std::string ? |
06:05 | <&Derakon> | Uh, because that's the C++ string type? |
06:06 | < mac> | also does it even matter if you include using namespace std; at the top in a header? |
06:06 | <&Derakon> | "using namespace std" means that you lose all the protection that the namespace gives you. |
06:07 | <&Derakon> | I admit I didn't really get the purpose of namespaces until I encountered code that really, really needed to have proper namespacing and didn't. |
06:07 | < mac> | well what does it do for me in terms of providing security? |
06:07 | < mac> | why include it at all? |
06:07 | <&Derakon> | Normally you'd have to type "std::string" to access the string type (and std::cout, etc.). |
06:07 | <&Derakon> | "using namespace std" imports everything in the std namespace into your local namespace. |
06:08 | <&Derakon> | Which means that you don't have to put "std::" in front of all that stuff. |
06:08 | <&Derakon> | But it also means that if you have something that's named the same thing as something in the std namespace, you can't tell them apart. |
06:08 | < mac> | oh |
06:08 | < mac> | i kinda get that |
06:09 | < mac> | but would including a namespace in a header file even work? |
06:09 | <&Derakon> | For example, with namespaces you could do "std::string string" to declare a variable named "string" with the type "std::string". |
06:09 | <&Derakon> | Uh, it's been long enough since I worked in C++ that I can't answer that question with authority. |
06:10 | < mac> | would other decelerators follow like char would it need to be std::char |
06:10 | < mac> | or no |
06:10 | <&Derakon> | char, int, and the like are fundamental types. string isn't. |
06:11 | <&Derakon> | (This is a sign of how old C++ really is) |
06:13 | < mac> | include files, you don't need them in .h files do you? I'm talking like #include <string> |
06:13 | <&Derakon> | Does the .h file need to refer to what's in the file you're including? |
06:15 | < mac> | #include <string> |
06:15 | < mac> | maybe? |
06:16 | < mac> | idk i want to be able to take in a string but I'm still getting an error even with using void myfunction(std::string); |
06:16 | <&Derakon> | What's the error? |
06:18 | < mac> | ld: symbol(s) not found for architecture x86_64 |
06:18 | < mac> | :/ |
06:20 | <&Derakon> | Put the code and your complete compiler output up on pastebin. |
06:20 | <&Derakon> | That error is useless without context. |
06:20 | < mac> | one sec i might have found a slight kink |
06:23 | <&Derakon> | Sorry, gonna have to head to bed. Good luck with your assignment. |
06:23 | | Derakon is now known as Derakon[AFK] |
06:26 | | celticminstrel [celticminst@Nightstar-e83b3651.cable.rogers.com] has quit [[NS] Quit: KABOOM! It seems that I have exploded. Please wait while I reinstall the universe.] |
06:26 | | mac [mac@Nightstar-fe8a1f12.il.comcast.net] has quit [[NS] Quit: Leaving] |
06:27 | | himi [fow035@D741F1.243F35.CADC30.81D435] has quit [Connection closed] |
06:31 | | ErikMesoy|sleep is now known as ErikMesoy |
06:59 | | mac [mac@Nightstar-fe8a1f12.il.comcast.net] has joined #code |
06:59 | < mac> | ok My linker is broke how does that even happen? |
06:59 | < mac> | can that even happen? |
06:59 | < mac> | broken* |
07:02 | <&McMartin> | If you're compiling for an arch you don't have binutils for? |
07:06 | < mac> | I'm just confused how that could even happen in the first place. |
07:07 | < mac> | it did work fine,thats why I'm flipping out. |
07:07 | < mac> | is it considered a core library? |
07:07 | < mac> | (I'm using a mac) |
07:26 | | mac [mac@Nightstar-fe8a1f12.il.comcast.net] has quit [[NS] Quit: Leaving] |
10:04 | | You're now known as TheWatcher |
10:23 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
10:23 | | mode/#code [+o himi] by ChanServ |
10:25 | | RichyB [richardb@Nightstar-3b2c2db2.bethere.co.uk] has joined #code |
10:26 | | Kindamoody is now known as Kindamoody|out |
10:34 | <@Azash> | http://www.theregister.co.uk/2013/01/16/developer_oursources_job_china/ |
11:02 | <@TheWatcher> | Pft |
11:18 | | * Vornicus pokes very vaguely at Excel, trying to figure out if something can be done. |
11:23 | <~Vornicus> | it feels like there might be a way - I've done some Crazy Things with Excel, but this could also be just beyond it. |
11:23 | <@Azash> | What are you trying to do? |
11:23 | <~Vornicus> | in generic terms, topological sort. |
11:24 | <~Vornicus> | In specific, I'm trying to make an excel sheet for Minecraft that will tell me, given a list of items I wish to create, what raw materials I need. |
11:24 | <@Azash> | Huh |
11:24 | <@Azash> | Oh |
11:25 | <@Azash> | Can you refer to certain cells using variable names? |
11:26 | < Xon> | Vornicus, sounds rather do-able |
11:26 | <@Azash> | Actually nevermind, that idea was silly |
11:26 | <~Vornicus> | This has some interesting difficulties, but the most important is that if the formulas try to include, for instance - if the formula that calculates how many books I need includes either the line for books or the line for bookcases, I will end up with a circular reference. |
11:26 | < Xon> | vlookup with item name to a map describing items + requirements with 1 line per requirement |
11:27 | < Xon> | this doesn't help you want it to recursively return *all* requirements for all items |
11:27 | <~Vornicus> | I can however do it, if I can get the things into a sensible order first. |
11:27 | < Xon> | the table the vlookup operates on can itself be generated from somethign a little more compact |
11:28 | <~Vornicus> | Specifically, if I can get them into an order where all of an object's predecessors are above it in the list, the rest is relatively simple. |
11:29 | < Xon> | might need to drop down to macros to easily do that |
11:30 | <~Vornicus> | Which is what I was afraid of. |
11:32 | <~Vornicus> | if there were a few more assumptions I could make this would be very simple; if, for instance, there were no production steps that created multiple objects (as, for instance, logs -> 4 planks does), then I could really just generate the list of raw materials and have done with it. |
11:32 | <~Vornicus> | or rather the object -> raw materials list. |
11:32 | < Xon> | in SQL terms, you are trying to dynamically construct a query with an arbitary number of self-joins |
11:34 | <~Vornicus> | Indeed. and I know it's not directly possible in SQL. Excel is considerably more flexible in certain ways, in that it can do recurrence relations and so forth,but this might be beyond it. |
11:34 | <~Vornicus> | ...oh, terror. |
11:34 | <~Vornicus> | Okay, I think I see how I might do this instead. |
11:40 | <~Vornicus> | The craft tree does have limited depth. I don't know its exact depth, but I know that it has one, and that's all I need. I can make each column a depth, and then create a formula for each object so that it gets stuff added to it for each production it's needed for in the level above. |
11:41 | < Xon> | yeah, that should work |
11:42 | < Xon> | then chain up to that max depth in vlookups |
11:42 | <~Vornicus> | yeah. |
11:42 | <~Vornicus> | the difficult part there though is you end up with a sort of reverse dictionary that you have to iterate through. That might be problematic. |
11:43 | < Xon> | pump the results into an area with the summarization stuff |
11:43 | < Xon> | so it spits out you need 'x' of 'b' |
11:44 | <~Vornicus> | no, this is a different problem |
11:46 | <~Vornicus> | If I seek both bottles and glass panes, for instance, I need glass blocks to add up its required amount for both... and then pass that total on down to sand. |
11:46 | < Xon> | ah |
11:46 | <~Vornicus> | so summarization won't help yet because it gives me my circular problem again. |
11:47 | | * TheWatcher eyes |
11:47 | <@TheWatcher> | You're crazy. I'm deeply impressed that you're even trying it, but you're nuts. |
11:48 | <~Vornicus> | What, you didn't know that before? |
11:48 | <@TheWatcher> | I did, I just felt it needed emphasising at ths point. |
11:48 | < Xon> | Vornicus, I was thinking you where using the chained vlookups to find all the required items for an item down to level 0 |
11:49 | < Xon> | the real trick is returning multipule items and knowing when to stop |
11:49 | <~Vornicus> | Not quite. Reason being, uh |
11:49 | <~Vornicus> | okay so. |
11:49 | <~Vornicus> | Wooden axe. |
11:50 | <~Vornicus> | To build a wooden axe, you need two logs: you need 3 plank blocks, and two sticks, but in order to get two sticks you need to spend two plank blocks and that gets you /four/ sticks. |
11:50 | <~Vornicus> | So to build /two/ wooden axes, you need... two logs. |
11:51 | < Xon> | 2nd thought. you are dealing with a 3 dimensional array with the the query walking it anywhwere between 2-5 times |
11:51 | < Xon> | don't do that with vlookups or simlar |
11:51 | < Xon> | really, just don't |
11:51 | <~Vornicus> | of course not. |
11:52 | < Xon> | in that case you'ld need to usse scripting |
11:54 | <~Vornicus> | At this point I'm at "can I reverse the recipe dictionary and use the results in a formula" |
11:54 | <~Vornicus> | reversing the recipe dictionary seems not that hard, but using the reversed recipe dictionary seems... complicated. |
12:00 | <~Vornicus> | because the formula for how many sticks I need? gives me the willies writing it down. |
12:02 | <@TheWatcher> | As long as you you't start to hear the distant beating of vile drums and the thin monotonous whine of accursed flutes, it can't be that bad.~ |
12:03 | <~Vornicus> | TheWatcher: but that's my lullaby music |
12:03 | <~Vornicus> | ...speaking of lullabys, SLEP |
12:04 | | Vornicus [vorn@ServerAdministrator.Nightstar.Net] has quit [[NS] Quit: Leaving] |
13:51 | | RichyB [richardb@Nightstar-3b2c2db2.bethere.co.uk] has quit [Ping timeout: 121 seconds] |
13:56 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds] |
14:09 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
14:09 | | mode/#code [+o himi] by ChanServ |
14:54 | | Syk [the@Nightstar-ee1cef6a.iinet.net.au] has quit [Ping timeout: 121 seconds] |
14:56 | | Syka [the@Nightstar-9620fc0d.iinet.net.au] has joined #code |
15:16 | | Syka_ [the@Nightstar-c1325250.iinet.net.au] has joined #code |
15:18 | | Syka [the@Nightstar-9620fc0d.iinet.net.au] has quit [Ping timeout: 121 seconds] |
15:25 | | RichyB [richardb@Nightstar-3b2c2db2.bethere.co.uk] has joined #code |
15:37 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds] |
15:50 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
15:50 | | mode/#code [+o himi] by ChanServ |
15:58 | < ShellNinja> | http://edge.org/conversation/on-iterated-prisoner-dilemma |
16:00 | | Syka [the@Nightstar-bf210090.iinet.net.au] has joined #code |
16:02 | | Syka_ [the@Nightstar-c1325250.iinet.net.au] has quit [Ping timeout: 121 seconds] |
16:20 | | d4de [olorin@4B91FF.00BEE6.E0802B.C554B9] has quit [Client closed the connection] |
16:21 | | d4de [olorin@4B91FF.00BEE6.E0802B.C554B9] has joined #code |
16:35 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds] |
16:41 | | mac [mac@Nightstar-fe8a1f12.il.comcast.net] has joined #code |
16:48 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
16:48 | | mode/#code [+o himi] by ChanServ |
16:50 | | Syka is now known as syksleep |
16:58 | | Attilla [Obsolete@Nightstar-9e7fa2b2.range86-162.btcentralplus.com] has quit [Ping timeout: 121 seconds] |
16:59 | | d4de [olorin@4B91FF.00BEE6.E0802B.C554B9] has quit [Ping timeout: 121 seconds] |
17:02 | | Attilla [Obsolete@Nightstar-9e7fa2b2.range86-162.btcentralplus.com] has joined #code |
17:15 | | Orthia [orthianz@3CF3A5.E1CD01.5A78C0.03128C] has quit [Ping timeout: 121 seconds] |
17:15 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds] |
17:20 | | d4de [olorin@4B91FF.00BEE6.E0802B.C554B9] has joined #code |
17:28 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
17:28 | | mode/#code [+o himi] by ChanServ |
17:31 | < mac> | mcmartin i found the problem last night after i left, my compiler just wouldn't link the files. I tried the all of my code in Xcode, it worked perfectly fine? /problem |
17:38 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds] |
17:51 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
17:51 | | mode/#code [+o himi] by ChanServ |
18:01 | | mac [mac@Nightstar-fe8a1f12.il.comcast.net] has quit [[NS] Quit: This computer has gone to sleep] |
18:12 | <@Rhamphoryncus> | Hrm. To figure out minecraft crafting requirements I'd generate everything using exact fractional values, then do a single pass (most refined to most raw) and round up the recipes |
19:12 | | lidistus-linux [lidistus-li@53D63E.E78079.03D41E.AA81DB] has joined #code |
19:15 | <@RobinStamer> | hmm? |
19:36 | | d4de [olorin@4B91FF.00BEE6.E0802B.C554B9] has quit [Ping timeout: 121 seconds] |
19:36 | | d4de [olorin@4B91FF.00BEE6.E0802B.C554B9] has joined #code |
19:45 | | Kindamoody|out is now known as Kindamoody |
19:47 | <@iospace> | http://en.wikipedia.org/wiki/BIOS_Boot_partition easter eggs! |
19:47 | <@Alek> | any progress news on SteamBox? |
19:58 | | lidistus-linux [lidistus-li@53D63E.E78079.03D41E.AA81DB] has quit [[NS] Quit: Leaving] |
19:59 | | mac [mac@Nightstar-fe8a1f12.il.comcast.net] has joined #code |
20:03 | | Kindamoody is now known as Kindamoody[zZz] |
20:16 | <@RobinStamer> | Rhamphoryncus: what for? |
20:18 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds] |
20:22 | | RichyB [richardb@Nightstar-3b2c2db2.bethere.co.uk] has quit [Ping timeout: 121 seconds] |
20:32 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
20:32 | | mode/#code [+o himi] by ChanServ |
20:34 | | Typherix [Typherix@Nightstar-7dc8031d.mi.comcast.net] has joined #code |
20:40 | | Vornicus [vorn@ServerAdministrator.Nightstar.Net] has joined #code |
20:40 | | mode/#code [+qo Vornicus Vornicus] by ChanServ |
21:08 | | lidistus-linux [lidistus-li@53D63E.E78079.03D41E.AA81DB] has joined #code |
21:12 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds] |
21:44 | | mac [mac@Nightstar-fe8a1f12.il.comcast.net] has quit [[NS] Quit: Leaving] |
21:59 | <~Vornicus> | Okay so on further thought it's actually "easy" to get a reverse dictionary that I can use; the problem is that it is stonking huge. |
22:01 | <~Vornicus> | I can use FREQUENCY on each recipe and the object list; this gives me a square matrix which I can then use SUMPRODUCT on to progress one step. |
22:01 | <~Vornicus> | mmm, but that doesn't quite handle the wooden axe problem. |
22:11 | <~Vornicus> | I still think my best bet is topological sorting. |
22:13 | <&McMartin> | I see you hitting alligators with a stick here; what's the swamp you're trying to drain? |
22:18 | <~Vornicus> | so, what I want is an excel sheet that, given a list of items i want to have in minecraft, will tell me how much of what raw materials I need. |
22:19 | <~Vornicus> | This is complicated in that I need to avoid circular references, and there's some really weird calculation complications: if you want to make a single wooden axe you need to have two logs; if you want to make two wooden axes you need to have ...two logs. |
22:21 | <~Vornicus> | (wooden axe is two sticks + three planks; sticks you get from a 2-plank recipe that gives you 4 sticks, and planks come from a 1-log recipe that gives 4 planks, so one wooden axe requires that you consume 5 planks but leaves you with two sticks left over; two axes takes up the last three planks and those two remaining sticks) |
22:25 | <~Vornicus> | so basically after I calculate how many total sticks i need I need to ceiling that to find out how many planks, etc. |
22:26 | <~Vornicus> | So far the only design I have that works to /do/ that gives me interesting problems like "implement topological sort in Excel" which of course I don't know how to do yet~ |
22:32 | <@Reiv> | Why do it in Excel? |
22:34 | <@TheWatcher> | Because he's nuts~ |
22:35 | | Jamie [NSwebIRC@ECA6CF.84CE4D.B16876.0522DD] has joined #code |
22:35 | <@TheWatcher> | (says the guy who programs in perl most of the time at the moment, but hey...) |
22:35 | <~Vornicus> | Mostly because I want to see if I can get it done |
23:16 | | himi [fow035@D741F1.243F35.CADC30.81D435] has joined #code |
23:16 | | mode/#code [+o himi] by ChanServ |
23:22 | | You're now known as TheWatcher[T-2] |
23:26 | | You're now known as TheWatcher[zZzZ] |
23:27 | <@Rhamphoryncus> | Vornicus: just use fractional values, then use a second pass to round them up |
23:28 | <@Rhamphoryncus> | Actually, the whole thing could just be multiple passes until nothing changes |
23:28 | | ErikMesoy is now known as ErikMesoy|sleep |
23:39 | | VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code |
23:46 | | RichyB [richardb@Nightstar-3b2c2db2.bethere.co.uk] has joined #code |
23:57 | | Orthia [orthianz@3CF3A5.E1CD01.5A78C0.03128C] has joined #code |
23:57 | | mode/#code [+o Orthia] by ChanServ |
--- Log closed Thu Jan 17 00:00:37 2013 |