code logs -> 2013 -> Wed, 16 Jan 2013< code.20130115.log - code.20130117.log >
--- 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
code logs -> 2013 -> Wed, 16 Jan 2013< code.20130115.log - code.20130117.log >

[ Latest log file ]