Well, right. That was unclear. I meant "providing a link to a free-for-all website like Sourceforge". I otherwise agree with you: you can't just say "Sourceforge has it!" because they don't have an arrangement with you to meet any legal obligations you might incur, and their terms of service probably even explicitly disclaim it.
Now people have to go to them for this extra functionality, that they built off of your code. Even you have to pay them money to use this extension of your code. That's ok with you?
I might not like it, but it's perfectly OK with me. If we were talking about SSH instead of HTTP, I'd have no expectation of getting the source to a console program I happened to run on their server. What's magic about web apps that make them different? Note that AGPL is actually broad enough to cover console apps, too; it's just that no one seemed to have a problem with this for the first 50 years of computing when text interfaces were more popular than GUIs.
If your "private development" in use on a public website, then it isn't really private.
That's just bizarrely wrong. By your logic, Coca Cola's formula isn't really a trade secret because regular people can buy it. I'll happily give our customers the output of our internal algorithms, but my boss wouldn't be too keen on giving them the algorithms themselves considering they're how we stay in business.
But EULAs (should be) unenforceable since there is no way to prove the user agreed to it.
Exactly. So, since AGPL purports to be a copyleft license while really being a EULA, what's it's legal standing? I could imagine an attorney (successfully) arguing that it's legally inconsistent and therefore invalid. And since AGPL itself explicitly states that "execution" is not the same as "conveyance", the user could continue to use that software legally because they are only distributing its output and not the program itself.
We heard the same dire predictions about the GPL and wrote them off. This is different because GPL violators were actually breaking copyright law. AGPL violators are doing no such thing.
Seriously, what the hell was the FSF thinking here? I'm an RMS fanboy but this is just ridiculous.
Then SmallNonprofitOrganization uses any of the hundreds of services out there to help them
No. SNO is directly legally obligated to make the source available, and providing a link to an external service probably would not meet that requirement. Similarly, if you are contractually bound to provide that information, why should Sourceforge have to help you do it for free? Great business opportunity for paid fileservers: "we'll sign a service level agreement with you so you can avoid the wrath of the Free Software community - for a small fee, of course".
The problem has been that companies are making improvements to free software but getting arround the requirement to release the source to those improvements to thier users by operating on a service model and not giving the code to thier users in any form (either source or binary).
So what's ethically wrong with that? Distribution has a fairly specific definition, and that ain't it. Suppose that the AGPL replaced the GPL in all GNU tools. If it's good, everyone should want to use it, right? So as part of your business, you give shell access to customers. Now they have the right to ask for the source code to Emacs just because they ran it on your server.
If that doesn't make sense for console programs - and it doesn't - then why is it a good thing for web apps? And if everyone migrates to a non-web framework in the future, say using JSON over SMTP or something else goofy, will there be a BGPL that applies extra conditions only to that class of applications?
AGPL sucks and is a bad idea all around. I can't believe this got greenlighted.
The GPLv2 regulates distribution, not usage. Some people claim that GPLv3's new language exerts some control on how you use the software, although I don't quite agree with that. The AGPL does, though, and I hate it for that.
The huge problem is that it makes a special standard for web applications that nothing else is held to. If I host a web app and you use it, I'm not distributing that application to you - I'm running it on your behalf and giving you the output. This is exactly identical to you SSHing into my console server, running a terminal app, and me handing back its output. And yet because "web2.0" and all that crap is so hot right now, people seem to think it's new and different. It's not. It is the old client-server paradigm.
This is seriously screwed up and I think it's a horrible idea. I grok the GPL and love it, but this is way beyond its original intent. The GPL is supposed to give the end users freedom, not take it away. If I wanted to lose all control of the software I run, I'd just buy a copy of Windows and be done with it.
if you support this foundation you also support breaking the law?
That needs to read "changing the law". FSF needs to get the message out loudly and clearly that they support sane laws and are working to get them.
I smoked pot once. But I DID NOT inhale. Will you hire me?
Interestingly on-topic. See, laws are only enforceable when the governed allow them to be. People are coming around to the idea that they don't want pot smoking to be a felony, even if they don't want to do it themselves. You yourself are coming out pro-sanity without being pro-lawbreaking. Well, the FSF needs to do the same.
44% are considering moving to another operating system.
The big news is that it's up from roughly 0% 5 years ago. Seriously, how many people would be seriously considering anything but Windows in the recent past?
If the sound from the speakers is able to act on the knobs with enough force to make the volume pots vibrate, then the volume will fluctuate at the frequency of the sound.
True, and wood doesn't vibrate.
If that really makes sense to you, then please send me your credit card number, mother's maiden name, and a blank check. What the hell, if you're willing to believe that, then you might as well believe me, too.
Lets say intel charges 100 bucks for 100 performance points, AMD now says, well we can't give you those same 100 performance points, instead we can only give 80, but aren't we nice, we only charge 80 bucks for it.
Maybe I only have 80 bucks.
Re:Ruby could be the answer as well
on
Open Source Math
·
· Score: 1
for (key, value) in dictionary.items(): print key, value
Don't do that. If "dictionary" happens to be a subclass of type dict that returns dynamic data (say, from a database backend), then.items() causes it to instantiate every single key:value pair it could ever return and compile all that into a list of tuples. You may not have the time or storage space to do that. Instead, write that as:
for key, value in dictionary: print key, value
which works off an iterator instead of casting the whole thing to a list.
Re:Math is "Free", MY LILY-WHITE ASS.
on
Open Source Math
·
· Score: 1
PS: The reason the formatting in this post is so God-awful is because Taco has some God-damned idiotic spam filter which requires an abnormally high number of characters per line.
Fun fact for the day: Slashdot allows unordered lists that would totally prevent that problem. It will do nothing for your homophobic self-loathing, though.
But what is important according to this article is whether the AVERAGE math or physics grad, without a CS background, is going to know that.
I get your point and you're mostly right about floating point math, but I'd say that anyone making that mistake deserves what they get.
For instance, if someone calculates pi/2 and expects an exact answer from a numerical (instead of symbolic) system, then they lack the thought processes required to do good work anyway. Yeah, that's elitist, but it's an elite field. Most people aren't qualified to work in it - despite my ego, I'm probably not - and a would-be mathematician who thinks you can exactly store irrational or repeating values in a finite space just won't cut it.
And for proto-mathematicians who are just getting started with computer math, you need two know two things. First, unless told otherwise, assume that all math is numeric, that those numbers are stored in relatively imprecise manner, and that all of this is well documented if you're really interested. Second, the computer science department has a class in numerical methods that will explain all of this in excruciating detail, and you can probably take it as an elective.
Re:Ruby could be the answer as well
on
Open Source Math
·
· Score: 3, Informative
Actually, dict.iterkeys() returns an iterator of that dict's keys alone. You wanted:
for key, value in mydict: print '%s: %s' % (key, value)
or even just:
for item in mydict.iteritems(): print '%s: %s' % item
Sorry, but I've already patented the systematic use and manipulation of abstract symbols representing real world quantities in order to derive relationships.
Great idea! Now I'm off to patent "the systematic use and manipulation of abstract symbols representing real world quantities in order to derive relationships... with a computer."
I'll use the royalties to follow up with "...over a computer network" and "...over a wireless computer network" in a few months.
Mathematics is a precise art. Computer calculations generally are not.
Correct. So it is incumbent upon people who depend on those results to understand the corner conditions and how to account for them. As always, there's a tradeoff: you can use hardware FP for fast, reasonably accurate approximation or decimal math for exact answers that take ages to calculate. Neither is "better" than the other, although I'm happy with fast math being the default since most people are usually more interested in the first few significant digits than the last few.
Second: The URL above may be generated by a GET form, but can simply redirect to an URL like/reports/foo/seasonal_2007_hideempty_bylastname.pdf
Since every last one of them is dynamically generated, that wouldn't be very helpful.
Moreover note that it provides for a nice and useful default file name in case someone wants to save the file to disk.
Actually, it takes them to a form where they can either download the results, email it to someone else, or copy-and-paste the URL to the password-protected file that they can give to other interested parties.
However, the point of this isn't that I can rebut each of your points individually, but to say that it's silly to say all URLs can be so rewritten. No, they can't. Many can, but (probably many more) others cannot.
All web sites should use only short and reasonable URLs with the path name part limited to no more than 12 characters.
That's stupid. My company's website is chock full of report generators, all of which have quite a few options. You can't POST those parameters because:
You're GETting data, not sending it,
POST breaks bookmarks, and
There's no good reason whatsoever to do otherwise.
Why shouldn't users get to link to "/reports/foo/seasonalreport?fiscalyear=2007&hideempty=true&orderby=lastname&format=pdf"? Short URLs make a lot of sense in a couple of situations, but most of the web has moved beyond those trivial cases. See also: the link to your post. What part of that would you remove, and what advantage would that give?
Re:Why I don't trust Python
on
Open Source Math
·
· Score: 3, Informative
>>> 1.00 - 0.01 0.98999999999999999
I'm too lazy to see if that's the IEEE 754 result or not (but I suspect it is). But three things in Python's defense:
Floats can only store exact values for the fractional part when the denominator is a power of 2. The "100" in "1/100" isn't a power of two, so IEEE 754 cannot represent it perfectly.
.999999999... == 1, so the answer is still correct.
If you must have exact answers, use the Decimal type:
Well, right. That was unclear. I meant "providing a link to a free-for-all website like Sourceforge". I otherwise agree with you: you can't just say "Sourceforge has it!" because they don't have an arrangement with you to meet any legal obligations you might incur, and their terms of service probably even explicitly disclaim it.
I might not like it, but it's perfectly OK with me. If we were talking about SSH instead of HTTP, I'd have no expectation of getting the source to a console program I happened to run on their server. What's magic about web apps that make them different? Note that AGPL is actually broad enough to cover console apps, too; it's just that no one seemed to have a problem with this for the first 50 years of computing when text interfaces were more popular than GUIs.
That's just bizarrely wrong. By your logic, Coca Cola's formula isn't really a trade secret because regular people can buy it. I'll happily give our customers the output of our internal algorithms, but my boss wouldn't be too keen on giving them the algorithms themselves considering they're how we stay in business.
Exactly. So, since AGPL purports to be a copyleft license while really being a EULA, what's it's legal standing? I could imagine an attorney (successfully) arguing that it's legally inconsistent and therefore invalid. And since AGPL itself explicitly states that "execution" is not the same as "conveyance", the user could continue to use that software legally because they are only distributing its output and not the program itself.
We heard the same dire predictions about the GPL and wrote them off. This is different because GPL violators were actually breaking copyright law. AGPL violators are doing no such thing.
Seriously, what the hell was the FSF thinking here? I'm an RMS fanboy but this is just ridiculous.
No. SNO is directly legally obligated to make the source available, and providing a link to an external service probably would not meet that requirement. Similarly, if you are contractually bound to provide that information, why should Sourceforge have to help you do it for free? Great business opportunity for paid fileservers: "we'll sign a service level agreement with you so you can avoid the wrath of the Free Software community - for a small fee, of course".
So what's ethically wrong with that? Distribution has a fairly specific definition, and that ain't it. Suppose that the AGPL replaced the GPL in all GNU tools. If it's good, everyone should want to use it, right? So as part of your business, you give shell access to customers. Now they have the right to ask for the source code to Emacs just because they ran it on your server.
If that doesn't make sense for console programs - and it doesn't - then why is it a good thing for web apps? And if everyone migrates to a non-web framework in the future, say using JSON over SMTP or something else goofy, will there be a BGPL that applies extra conditions only to that class of applications?
AGPL sucks and is a bad idea all around. I can't believe this got greenlighted.
The GPLv2 regulates distribution, not usage. Some people claim that GPLv3's new language exerts some control on how you use the software, although I don't quite agree with that. The AGPL does, though, and I hate it for that.
The huge problem is that it makes a special standard for web applications that nothing else is held to. If I host a web app and you use it, I'm not distributing that application to you - I'm running it on your behalf and giving you the output. This is exactly identical to you SSHing into my console server, running a terminal app, and me handing back its output. And yet because "web2.0" and all that crap is so hot right now, people seem to think it's new and different. It's not. It is the old client-server paradigm.
This is seriously screwed up and I think it's a horrible idea. I grok the GPL and love it, but this is way beyond its original intent. The GPL is supposed to give the end users freedom, not take it away. If I wanted to lose all control of the software I run, I'd just buy a copy of Windows and be done with it.
That needs to read "changing the law". FSF needs to get the message out loudly and clearly that they support sane laws and are working to get them.
I smoked pot once. But I DID NOT inhale. Will you hire me?Interestingly on-topic. See, laws are only enforceable when the governed allow them to be. People are coming around to the idea that they don't want pot smoking to be a felony, even if they don't want to do it themselves. You yourself are coming out pro-sanity without being pro-lawbreaking. Well, the FSF needs to do the same.
The big news is that it's up from roughly 0% 5 years ago. Seriously, how many people would be seriously considering anything but Windows in the recent past?
True, and wood doesn't vibrate.
If that really makes sense to you, then please send me your credit card number, mother's maiden name, and a blank check. What the hell, if you're willing to believe that, then you might as well believe me, too.
Maybe I only have 80 bucks.
Don't do that. If "dictionary" happens to be a subclass of type dict that returns dynamic data (say, from a database backend), then .items() causes it to instantiate every single key:value pair it could ever return and compile all that into a list of tuples. You may not have the time or storage space to do that. Instead, write that as:
which works off an iterator instead of casting the whole thing to a list.
Fun fact for the day: Slashdot allows unordered lists that would totally prevent that problem. It will do nothing for your homophobic self-loathing, though.
I get your point and you're mostly right about floating point math, but I'd say that anyone making that mistake deserves what they get.
For instance, if someone calculates pi/2 and expects an exact answer from a numerical (instead of symbolic) system, then they lack the thought processes required to do good work anyway. Yeah, that's elitist, but it's an elite field. Most people aren't qualified to work in it - despite my ego, I'm probably not - and a would-be mathematician who thinks you can exactly store irrational or repeating values in a finite space just won't cut it.
And for proto-mathematicians who are just getting started with computer math, you need two know two things. First, unless told otherwise, assume that all math is numeric, that those numbers are stored in relatively imprecise manner, and that all of this is well documented if you're really interested. Second, the computer science department has a class in numerical methods that will explain all of this in excruciating detail, and you can probably take it as an elective.
Actually, dict.iterkeys() returns an iterator of that dict's keys alone. You wanted:
or even just:
Great idea! Now I'm off to patent "the systematic use and manipulation of abstract symbols representing real world quantities in order to derive relationships... with a computer."
I'll use the royalties to follow up with "...over a computer network" and "...over a wireless computer network" in a few months.
You were mislead. Unless software requests otherwise, you get "round to nearest" and results should always be identical.
Correct. So it is incumbent upon people who depend on those results to understand the corner conditions and how to account for them. As always, there's a tradeoff: you can use hardware FP for fast, reasonably accurate approximation or decimal math for exact answers that take ages to calculate. Neither is "better" than the other, although I'm happy with fast math being the default since most people are usually more interested in the first few significant digits than the last few.
Since every last one of them is dynamically generated, that wouldn't be very helpful.
Moreover note that it provides for a nice and useful default file name in case someone wants to save the file to disk.Actually, it takes them to a form where they can either download the results, email it to someone else, or copy-and-paste the URL to the password-protected file that they can give to other interested parties.
However, the point of this isn't that I can rebut each of your points individually, but to say that it's silly to say all URLs can be so rewritten. No, they can't. Many can, but (probably many more) others cannot.
That's stupid. My company's website is chock full of report generators, all of which have quite a few options. You can't POST those parameters because:
Why shouldn't users get to link to "/reports/foo/seasonalreport?fiscalyear=2007&hideempty=true&orderby=lastname&format=pdf"? Short URLs make a lot of sense in a couple of situations, but most of the web has moved beyond those trivial cases. See also: the link to your post. What part of that would you remove, and what advantage would that give?
I'm too lazy to see if that's the IEEE 754 result or not (but I suspect it is). But three things in Python's defense:
Alternatively, find an electronics repair store. Drop off that 200lb. Sun CRT to get a repair estimate. Give them a false name. Run.
Caveats: only works once per shop, and the owner reserves the right to beat you mercilessly.
Oh yeah? I read this the day after Christmas a few months after my dad died. I still can't see it without choking up.
Oh! *smacks self on forehead*
See also: only five hosts. :-D