I found that when making a chart in the spreadsheet package that the undo list was very unreliable. If I made a few changes, then undid more than 1 or 2 of them, it would not go back to anything like what I had originally. Even if I reapplied (redo) the changes, ie, undo/undo/undo/redo/redo/redo, I didn't end up with what I started with.
Did you file a bug report?
If no-one has a record of the bug and how to reproduce it, they're unlikely to fix it.
A quick trip to bugzilla.mozilla.org will show bugs that have been waiting to be fixed for serveral *YEARS* now. Reading the comments on some of them, it's clear that there are some very strong egos involved. In several cases, where a large group of people want "x" changed, it simply doesn't happen because the developer doesn't believe in that same change.
Typically, in my experience, it's not that the committers are opposed to any change, they are just opposed to the proposed half-assed changes.
There are thousands and thousands of bugs in the database and simply not enough active developers to fix them all. Besides which, effort is being shifted to the new Mozilla Firebird project.
That happens to be a reference to Douglas Adam's famous sci-fi comedy "trilogy", The Hitchhiker's Guide to the Galaxy". In that series, Zaphod Beeblebrox is a two-headed alien who owns a spaceship with an Improbability Drive, which causes highly improbable things to happen.
Yes, but that's one of the exceptions that proves the rule. Most software for the world's two most popular operating systems families, Windows and Mac OS, can't be expected to be supported in 20 years.
Except that once you publish your file format, you can't modify it anymore. This is a nightmare.
Sure you can modify it. Simply issue a new version of your file format specification.
File formats can also be designed for extensibility, by making the specification modular. So then you can sometimes simply publish a new specification module.
It's the same principle behind "private" fields in Java.
Not really. Private fields are for stuff that users of a library shouldn't rely on because it might change or go away in future. With a file format, you can of course provide a library to abstract away implementation details, which is useful for avoiding costly code rewrites. But users of that file format shouldn't be forced to use your library - they should be able to write their own, in whatever language and on whatever platform they choose.
Microsoft are the initiator of force here. Their means of coercion is called "file format lock-in". People will fear switching away from Office if they won't be able to even read all their existing files.
But obviously, as a libertarian type, you will refuse to accept file-format lock-in as a kind of coercion.
If the article is no longer in a prominent place when the reply is issued then it seems like this proposal would require that either the reply be issued its own prominent place, or that the article be reissued with the reply appended to it. Doesn't seem very reasonable to me.
It sounds very reasonable to me. If an online publication does a blatant character assassination of someone on their front page, like accusing them of being a rapist or something, they should be forced to put a link to a reply in the same prominent position! Anything less is unfair.
All this whining is just from free speech zealots who don't agree with people having to take the responsibility of facing up to the consequences of their actions. Grow up and realise that free speech is not absolute. A right of reply (with regard to factual claims) should be a basic human
The problem is not about a multiplicity of links, but about theoretically endless arguments and counter-arguments. I shouldn't be forced to post and respond to your replies (and have this go on until either one of us decides to give up!).
Oh please. Cry me a river. If you don't want to continue a conversation, simply shut the fuck up. If you do, accept that the other party has just as much right to reply to correct factual inaccuracies as you do. You can't have your cake and eat it - you can't expect to say things with no consequences.
It's an unreasonable standard to require people to entertain the unreasonable positions held by another. If I write an article criticizing John Edward (the alleged psychic who was spoofed in a South Park cartoon), why should it be my burden to provide him with a soapbox where he can issue a rebuttal that is designed to promote his own deceptive agenda?
You shouldn't have to host his comment - only provide a link to it. If you don't want to provide a soapbox for him, you can choose not to say anything. (Or, under this proposal, you could choose not to directly make any factual claims about him. Saying "I believe that his claims are false" should get you off the hook under this proposal, because, as it explicitly states, beliefs are not part of its remit.)
But God forbid that people be exposed to both sides in a dispute! People can't be allowed to do that - they're simply too stupid to read about both sides of an issue and think for themselves!
It's funny, I thought that free speech fanatics were the most in favour of "reading about both sides of an issue"... even when it comes to Nazi scum. It seems I was mistaken!
Or imagine what publishers of articles criticizing creationism would have to go through.
Nothing - unless they made specific, controversial factual claims about specific creationists. But neither creationism nor God are "natural or legal persons", for legal purposes! So that's not affected.
But if you say that Creationist X is a wife-beater, then yes, he should have that same right of reply that anyone else has.
I would dispute that. All you have to do is prove that each part works as specced and that no interactions throw the whole thing out of whack. In other words, "unit proving" and "integration proving", akin to unit testing and integration testing.
type checking sees diminishing returns after 300k lines of code or so.
But type checking alone, without contracts, is only a very formalistic, shallow process - so it's not surprising that it would catch a tiny fraction of the bugs that a powerful Design by Contract system would catch!
Well, recently I've mainly worked on >10m LOC systems that are released on a sub-1month cycle.
If those systems don't use data hiding appropriately, and you've never seen data hiding used appropriately (perhaps you've never looked at an OS API?), then I'm not surprised that you seem to think that data hiding is useless.
Well, it doesn't help any in a language where anything and everything can be done at run-time.
I don't understand your point. Yes, you may be able to send a "GiveBirth" message to a "Man" object, but that doesn't mean it will make any sense to do so.
Strong typing in the context of a "pointerfree" language, and appropriately used, only prevents you from doing things that make no sense.
And also absolve them from the responsibility of designing their classes well the first time.
Oh come on. Ever heard of premature optimisation? A coder should be able to start a class using an arbitrary list and sorting it when necessary, and then switch to using a sorted list - or do the reverse change - without affecting clients. That's possibly not the best example, but the point is the internals of a class may reasonably change, but it's not reasonable to expect programmer's to optimise prematurely (or over-optimise all classes!) before they know how the profile will look. (You know, profilers - ever used one?)
Pure black-box abstractions break down pretty quickly for practical reasons (ever hear the term "glue code"?). See the Open Implementation concept.
Yes, I'm familiar with that. That doesn't invalidate the utility of black boxes entirely - and I know Gregor Kiczales, a leading champion of Open Implementation and later AOP, would concur on that point. You want to poke around in black boxes only to the extent necessary - and design your black boxes so that people don't need to do a lot of poking around in the internals!
Brazil has a bad economy now, including some famine.
Are you sure you mean famine, and not just failed crops? I would be surprised to learn of that. Generally speaking, genuine representative democracies never have famines.
Open source != free. There are plenty of vendors who provide their source code freely, but require licenses to actually use it in production (i.e. Caucho Resin [caucho.com]). Under this decision, Brazil could not use this software even though it is open source.
No, Resin is no longer Open Source (it used to be in effect donation-based Open Source, way back when I was using it, but is no longer).
Open Source does not just mean "the source is available". It has a specific definition which is very close to Free Software. The main difference is that the Free Software movement promotes Free Software as an ethical choice to be made whenever reasonably possible, whereas Open Source promotes it as a pragmatic choice. It's basically one set of software, with two movements representing it (and I don't think they are so divided as RMS makes out, even!)
Unless, of course, the open source product kills off the closed source alternatives for some reason, presumably because at the time it's a better (or better marketed) product.
There is nothing wrong with competing on merit, nothing much wrong with marketing (if it is truthful). However, MS didn't just compete on merit - they repeatedly broke the law, such as when they sabotaged DR DOS.
This was a bad thing when it led to Microsoft gaining effective monopolies in the desktop OS and office suite markets, and open source advocates spend all day bitching about that.
If the only problem with Microsoft was that it had effective monopolies, we wouldn't be complaining about how it got there - we'd just be talking about how to make open source programs competitive with closed sourced ones, and how to better advocate for them being used.
However, what we really object to is MS's consistent and galling pattern of misbehaviour. Competing on merit is not unethical. Faking error messages to kill a competitor's operating system (DR DOS) certainly is unethical. Purposefully breaking a contract to kill the write-once-run-anywhere promise of Java is unethical. Etc.
Have you read an article on Java.sun.com lately? Sun makes those kinds of arguments wrt their shipping technologies all the fricken time. Not in an overly pushy way IMO like some companies, and not in a moronic vapid way like those MS ads in Dr. Dobbs Journal (Do MS think that Dr Dobbs readers are complete morons??) But they do. It's refreshing to read an article with a complete lack of such, even if I can't follow it all.
Sun probably does not want to market a tech which may not go into production for years. It's sensible not to create false expectations.
Hardly. What he's saying there is (to expand a little), when code becomes too complicated, it becomes hard to understand, and thus people waste a lot of time trying (and often failing at first) to debug, evolve etc.
Obviously, he skipped a word or two there, making his statement less than 100% accurate - as any normal human being is wont to do in ordinary conversation - a fact which many overly critical Slashdotters are prone to ignoring!
I'm surprised you find the quoted sentence at all controversial, or "techno-babble." Or perhaps you mean the rest of the article was technobabble. I couldn't comment on that, since I'm not expert enough to understand all of it - and I doubt you are either.
Which quote tells you more ? Which quote has more insight ? Which quote came 30 years earlier ?
I wasn't aware that anyone - least of all Gosling himself - was entering this quote into the "most insightful software engineering quote of the century" contest. This was an informal interview, in which Gosling rattled on about things he is enthusiastic about at the moment, which is fair enough. You seem to be setting up a strawman here.
Well static typing makes the parse tree richer in the same way that requiring you to list your religion on a driver's license application makes the DMV's database richer. I'm not convinced of the benefit.
It (the former) tells you the set of messages (or methods, whatever you wanna call them) that it is legal to send to the value in question. It tells you what kind of thing the value is supposed to be. How can that not be useful in analysis?
Perhaps. I think Lisp programmers tend to worry less about refactoring and the like because they have a very powerful macro system
Which doesn't exactly help analysis. Yes, you can analyse the expansions of the macros - but sometimes that's not ideal.
Access modifiers are either a declaration that you are more intelligent than your users, or a way to hide your bad code from other people.
Their most important purpose is to absolve developers of the responsibility of keeping backward compatibility for those members. Sometimes you want to hide your implementation so you can actually change it without breaking third-party code. This is data hiding - undergraduate-level stuff. But maybe you've never worked on code that's likely going to be changed in future releases and which is used by third parties.
In languages which support Rigid Design By Contract (like the one I'm developing;), private members could be defined as taking no semantics, and therefore illegal to use directly - but this would likely just be confusing to newbie developers. But think of private members as having undefined semantics from the point of view of class users, and you'll see what I mean, I hope.
In Rigid Design By Contract, code can never rely upon semantics beyond those specified in the relevant contracts. If there is no contract (i.e. no semantics), the member in question simply cannot be referenced directly. (This is complicated slightly by the fact that the semantics of a member may be defined "implicitly" by referencing it in other contracts, but that just means you have to be sure not to mention it anywhere if you want to leave it undefined.)
As of right now, most spammers are suspected only of being annoying. In most US jurisdictions their actions are still completely legal.
Why do you think the FTC is going after some spammers then? Use your brain. It's not to waggle their fingers at them and say "That's very antisocial behaviour you know, unfortunately it's not illegal so we can't do jack squat about it, but we're going to stand here and waggle our fingers!"
They are going after spammers because many of those spammers are pretty obviously frauds and fraud is illegal. Also, federal spam laws are in the works - and the FTC wants international anti-spam cooperation in the worldwide law enforcement community.
You could bother actually reading about Trusted Computing* and DRM and realize that the above probably wouldn't even be possible. If it _was_, almost no one would buy it - what company would trust that?
Doesn't UCITA contain "self help" provisions? Don't companies in UCITA-covered states continue to buy software?
In the same way that walking around central Tokyo is an open invitation to be "visually spammed" with advertisements?
By that argument, shouldn't we legalise pornographic advertisements in public? Those who don't want to see them can simply "unsubscribe" by staying indoors all the time, after all.
Hey, I have a great idea for a legal defense for Al Queada! If you don't want to receive waterborne cholera, simply unsubscribe from your water supply! Terrorism is now legal!
If someone is selling stuff in the US, or processing credit cards in the US, they are subject to US law. Make those who use spammer's services pay! With jail time, in cases like these.
There can be libraries that your application relies upon, but those older-version libraries might not be present in newer versions of the software that contain exploits you would want to patch, or features you might like to build around.
(ITYM bugfixes for exploits, not exploits, but anyway...)
Either redhat will release a new version of the library with an API change or clarification, in which case you do a search-and-replace and fix your apps, or, Redhat drop it from the next release, in which case you simply reinstall it! With in-house apps, it sounds simple enough to me. Care to explain why this should be a big deal?
Did you file a bug report?
If no-one has a record of the bug and how to reproduce it, they're unlikely to fix it.
A quick trip to bugzilla.mozilla.org will show bugs that have been waiting to be fixed for serveral *YEARS* now. Reading the comments on some of them, it's clear that there are some very strong egos involved. In several cases, where a large group of people want "x" changed, it simply doesn't happen because the developer doesn't believe in that same change.
Typically, in my experience, it's not that the committers are opposed to any change, they are just opposed to the proposed half-assed changes.
There are thousands and thousands of bugs in the database and simply not enough active developers to fix them all. Besides which, effort is being shifted to the new Mozilla Firebird project.
Because a significant number of open source technologies are written in Java. I think that's what was being referred to here.
Huh? That was always possible.
Hence efforts like GCJ, CLASSPATH etc. - which are unfortunately still not even close to being finished.
So now you know.
Yes, but that's one of the exceptions that proves the rule. Most software for the world's two most popular operating systems families, Windows and Mac OS, can't be expected to be supported in 20 years.
Sure you can modify it. Simply issue a new version of your file format specification.
File formats can also be designed for extensibility, by making the specification modular. So then you can sometimes simply publish a new specification module.
It's the same principle behind "private" fields in Java.
Not really. Private fields are for stuff that users of a library shouldn't rely on because it might change or go away in future. With a file format, you can of course provide a library to abstract away implementation details, which is useful for avoiding costly code rewrites. But users of that file format shouldn't be forced to use your library - they should be able to write their own, in whatever language and on whatever platform they choose.
But obviously, as a libertarian type, you will refuse to accept file-format lock-in as a kind of coercion.
It sounds very reasonable to me. If an online publication does a blatant character assassination of someone on their front page, like accusing them of being a rapist or something, they should be forced to put a link to a reply in the same prominent position! Anything less is unfair.
All this whining is just from free speech zealots who don't agree with people having to take the responsibility of facing up to the consequences of their actions. Grow up and realise that free speech is not absolute. A right of reply (with regard to factual claims) should be a basic human
The problem is not about a multiplicity of links, but about theoretically endless arguments and counter-arguments. I shouldn't be forced to post and respond to your replies (and have this go on until either one of us decides to give up!).
Oh please. Cry me a river. If you don't want to continue a conversation, simply shut the fuck up. If you do, accept that the other party has just as much right to reply to correct factual inaccuracies as you do. You can't have your cake and eat it - you can't expect to say things with no consequences.
It's an unreasonable standard to require people to entertain the unreasonable positions held by another. If I write an article criticizing John Edward (the alleged psychic who was spoofed in a South Park cartoon), why should it be my burden to provide him with a soapbox where he can issue a rebuttal that is designed to promote his own deceptive agenda?
You shouldn't have to host his comment - only provide a link to it. If you don't want to provide a soapbox for him, you can choose not to say anything. (Or, under this proposal, you could choose not to directly make any factual claims about him. Saying "I believe that his claims are false" should get you off the hook under this proposal, because, as it explicitly states, beliefs are not part of its remit.)
But God forbid that people be exposed to both sides in a dispute! People can't be allowed to do that - they're simply too stupid to read about both sides of an issue and think for themselves!
It's funny, I thought that free speech fanatics were the most in favour of "reading about both sides of an issue"... even when it comes to Nazi scum. It seems I was mistaken!
Or imagine what publishers of articles criticizing creationism would have to go through.
Nothing - unless they made specific, controversial factual claims about specific creationists. But neither creationism nor God are "natural or legal persons", for legal purposes! So that's not affected.
But if you say that Creationist X is a wife-beater, then yes, he should have that same right of reply that anyone else has.
Oh, no! People will read anything a politician says and immediately believe every word of it!
If that's the case, then perhaps we should just abolish democracy, since most people are obviously too stupid to vote.
I would dispute that. All you have to do is prove that each part works as specced and that no interactions throw the whole thing out of whack. In other words, "unit proving" and "integration proving", akin to unit testing and integration testing.
type checking sees diminishing returns after 300k lines of code or so.
But type checking alone, without contracts, is only a very formalistic, shallow process - so it's not surprising that it would catch a tiny fraction of the bugs that a powerful Design by Contract system would catch!
Well, recently I've mainly worked on >10m LOC systems that are released on a sub-1month cycle.
If those systems don't use data hiding appropriately, and you've never seen data hiding used appropriately (perhaps you've never looked at an OS API?), then I'm not surprised that you seem to think that data hiding is useless.
I don't understand your point. Yes, you may be able to send a "GiveBirth" message to a "Man" object, but that doesn't mean it will make any sense to do so.
Strong typing in the context of a "pointerfree" language, and appropriately used, only prevents you from doing things that make no sense.
And also absolve them from the responsibility of designing their classes well the first time.
Oh come on. Ever heard of premature optimisation? A coder should be able to start a class using an arbitrary list and sorting it when necessary, and then switch to using a sorted list - or do the reverse change - without affecting clients. That's possibly not the best example, but the point is the internals of a class may reasonably change, but it's not reasonable to expect programmer's to optimise prematurely (or over-optimise all classes!) before they know how the profile will look. (You know, profilers - ever used one?)
Pure black-box abstractions break down pretty quickly for practical reasons (ever hear the term "glue code"?). See the Open Implementation concept.
Yes, I'm familiar with that. That doesn't invalidate the utility of black boxes entirely - and I know Gregor Kiczales, a leading champion of Open Implementation and later AOP, would concur on that point. You want to poke around in black boxes only to the extent necessary - and design your black boxes so that people don't need to do a lot of poking around in the internals!
Are you sure you mean famine, and not just failed crops? I would be surprised to learn of that. Generally speaking, genuine representative democracies never have famines.
No, Resin is no longer Open Source (it used to be in effect donation-based Open Source, way back when I was using it, but is no longer).
Open Source does not just mean "the source is available". It has a specific definition which is very close to Free Software. The main difference is that the Free Software movement promotes Free Software as an ethical choice to be made whenever reasonably possible, whereas Open Source promotes it as a pragmatic choice. It's basically one set of software, with two movements representing it (and I don't think they are so divided as RMS makes out, even!)
There is nothing wrong with competing on merit, nothing much wrong with marketing (if it is truthful). However, MS didn't just compete on merit - they repeatedly broke the law, such as when they sabotaged DR DOS.
This was a bad thing when it led to Microsoft gaining effective monopolies in the desktop OS and office suite markets, and open source advocates spend all day bitching about that.
If the only problem with Microsoft was that it had effective monopolies, we wouldn't be complaining about how it got there - we'd just be talking about how to make open source programs competitive with closed sourced ones, and how to better advocate for them being used.
However, what we really object to is MS's consistent and galling pattern of misbehaviour. Competing on merit is not unethical. Faking error messages to kill a competitor's operating system (DR DOS) certainly is unethical. Purposefully breaking a contract to kill the write-once-run-anywhere promise of Java is unethical. Etc.
This isn't an academic paper appearing in a context which has strong norms of citation. This is an informal interview.
Sun probably does not want to market a tech which may not go into production for years. It's sensible not to create false expectations.
Hardly. What he's saying there is (to expand a little), when code becomes too complicated, it becomes hard to understand, and thus people waste a lot of time trying (and often failing at first) to debug, evolve etc.
Obviously, he skipped a word or two there, making his statement less than 100% accurate - as any normal human being is wont to do in ordinary conversation - a fact which many overly critical Slashdotters are prone to ignoring!
I'm surprised you find the quoted sentence at all controversial, or "techno-babble." Or perhaps you mean the rest of the article was technobabble. I couldn't comment on that, since I'm not expert enough to understand all of it - and I doubt you are either.
Which quote tells you more ? Which quote has more insight ? Which quote came 30 years earlier ?
I wasn't aware that anyone - least of all Gosling himself - was entering this quote into the "most insightful software engineering quote of the century" contest. This was an informal interview, in which Gosling rattled on about things he is enthusiastic about at the moment, which is fair enough. You seem to be setting up a strawman here.
It (the former) tells you the set of messages (or methods, whatever you wanna call them) that it is legal to send to the value in question. It tells you what kind of thing the value is supposed to be. How can that not be useful in analysis?
Perhaps. I think Lisp programmers tend to worry less about refactoring and the like because they have a very powerful macro system
Which doesn't exactly help analysis. Yes, you can analyse the expansions of the macros - but sometimes that's not ideal.
Access modifiers are either a declaration that you are more intelligent than your users, or a way to hide your bad code from other people.
Their most important purpose is to absolve developers of the responsibility of keeping backward compatibility for those members. Sometimes you want to hide your implementation so you can actually change it without breaking third-party code. This is data hiding - undergraduate-level stuff. But maybe you've never worked on code that's likely going to be changed in future releases and which is used by third parties.
In languages which support Rigid Design By Contract (like the one I'm developing ;), private members could be defined as taking no semantics, and therefore illegal to use directly - but this would likely just be confusing to newbie developers. But think of private members as having undefined semantics from the point of view of class users, and you'll see what I mean, I hope.
In Rigid Design By Contract, code can never rely upon semantics beyond those specified in the relevant contracts. If there is no contract (i.e. no semantics), the member in question simply cannot be referenced directly. (This is complicated slightly by the fact that the semantics of a member may be defined "implicitly" by referencing it in other contracts, but that just means you have to be sure not to mention it anywhere if you want to leave it undefined.)
Why do you think the FTC is going after some spammers then? Use your brain. It's not to waggle their fingers at them and say "That's very antisocial behaviour you know, unfortunately it's not illegal so we can't do jack squat about it, but we're going to stand here and waggle our fingers!"
They are going after spammers because many of those spammers are pretty obviously frauds and fraud is illegal. Also, federal spam laws are in the works - and the FTC wants international anti-spam cooperation in the worldwide law enforcement community.
Doesn't UCITA contain "self help" provisions? Don't companies in UCITA-covered states continue to buy software?
By that argument, shouldn't we legalise pornographic advertisements in public? Those who don't want to see them can simply "unsubscribe" by staying indoors all the time, after all.
Hey, I have a great idea for a legal defense for Al Queada! If you don't want to receive waterborne cholera, simply unsubscribe from your water supply! Terrorism is now legal!
(ITYM bugfixes for exploits, not exploits, but anyway...)
Either redhat will release a new version of the library with an API change or clarification, in which case you do a search-and-replace and fix your apps, or, Redhat drop it from the next release, in which case you simply reinstall it! With in-house apps, it sounds simple enough to me. Care to explain why this should be a big deal?
The license incompatibility does not apply to users. Use is not restricted by the GPL or BSD licenses! Only distributors are affected.