For example, I have contributed thousands of posts to Usenet over the past decade. When I first started, pretty much no-one had even heard of the x-no-archive header. Even today, few mainstream newsreaders support it readily. Thus no-one bothered to set it.
Skip forward a few years, and now Deja News is offering an archive of all my old posts, along with everyone else's. You have a commercial organisation making money by using my words without informing me, nor with my permission. That, in itself, is a dicey proposition, although at least there's a "public interest" argument in its favour. The buy-out of the database by Google, now blatantly selling my words without my permission, is clearly over the line, though.
Now, personally, the principle of this annoys me, but the actual content being available doesn't bother me, because I'm always careful not to write anything I wouldn't want someone to read in future in a Usenet post. I can see why it would legitimately bother others, though, particularly if they expected their posts to expire and disappear a week or two after they were written, and not to show up on a potential employer's report six years later. Claiming that people should have seen this coming and put "x-no-archive: yes" on everything they posted a decade ago is simply unrealistic.
You can make a similar argument for web caches now. Until a year or two ago, with things like the Wayback Machine and Google Cache coming up, a search engine was just a search engine, and always linked to your site. The need to use robots.txt to protect your material simply didn't exist on the same scale then.
I think there is every reason to have lawyers involved here, because at the moment, the law lags behind the technology. You can't copy others' material in other media without adhering to certain rules and regulations, and new evolutions in the way the Internet is being used may require new legislation to prevent abuses of rights that were previously unchallenged. Given the number of ill-formed and illogical arguments made by many posters here, typically those who want everything to be free to them even though they've done nothing to earn it, what other solution would you suggest?
If the information is being copied and circumventing the NYT's usual requirements for access, then this is not the NYT's problem, it's Google's. A good question might be how Google's robots can actually circumvent that access in the first place, but I'm sure someone's thought of that somewhere I haven't noticed yet...
OTOH, Google is quite at liberty not to list the NYT in its results if it so wishes, which presumably wouldn't be the outcome the NYT would be hoping for (and would presumably get if employing robots.txt).
The moral onus here is clearly on Google to ensure that if they are changing the way information is presented then they do so in a manner acceptable to the provider of that information. Or did you expect the NYT to contact anyone in the world who might be interested in caching their site? The "we don't need any legal recourse" argument is pretty weak too; it basically assumes that everyone in the world (a) knows about and (b) obeys robots.txt, which is clearly nothing close to the correct.
All in all, if both companies are looking for a constructive solution to this problem that benefits all concerned, it seems pretty sensible for them to get around the table, discuss what they want to happen, and make it so.
Bracha pointed out that one problem with C++ templates is code bloat.
This is a tiresome and usually ill-founded argument. How much (space) overhead do you really think is incurred in a typical application as a result of this design decision?
Consider the common template example of a container class. Generalising but not much, you don't use a container class with many different types in most programs, and you don't use many of the methods available on it even then. Since only the implementation of necessary function specialisations is generated, the overhead is usually very little.
Moreover, techniques exist to reduce this overhead in some cases where it's of particular interest. For instance, a list<T*> can typically be just a typesafe wrapper for a list<void*>. These techniques are in active use, by the better STL implementations, for example.
While we're on the subject of space overhead, I'll just note that in the dynamic-binding languages, you typically have to instantiate a generalised version of every member function, since you never know who will be using your function and with what generic parameters. This can easily result in more space overhead in realistic circumstances than the specific code generated by C++ templates.
Now, consider the advantages of compiling specialisations rather than a single generic implementation. Your scope for optimisation is much better in this case, and a generic implementation of a function typically carries no more overhead than a specific one. A common example here is comparing C++'s std::sort with C's qsort, where the former frequently produces much superior output code due to the improved scope for optimisation.
Moreover, you have scope to optimise out whole layers of template mechanics. This allows high performance maths and expression template libraries to use clever template mechanics behind the scenes with impunity, while offering fairly straightforward syntax to the "end user".
As far as I can tell, all of this comes down very much in favour of C++'s approach. Java, as usual, adopts an approach where everything is available dynamically at run time, which grants a lot of flexibility on one hand, but carries a heavy performance penalty on the other (some, but crucially not all, of which can be overcome with JIT techniques).
There is nothing inherently superior about either approach: they are different design decisions with different goals in mind, each better for its own goal. Claiming that C++ templates induce more code bloat than Java's generics is, under realistic circumstances, pretty much wrong, though.
I'm sorry, but operator overloading is one of the most gratuitous and depraved features to make it into the language.
Since you've just provided the Boilerplate Objection(TM), perhaps I should provide the Boilerplate Rebuttal(TM).
You cannot redefine operators over only fundamental types, so the "don't know what it does" argument is pretty poor. Sure, someone writing their own type can provide a silly version of operator+ that doesn't do what you'd expect, but hey, they can do that with addTo() as well. Maybe we should make like Java, though, where operator overloading is OK as long as the language does it (String's + concatenation operator) but not for anyone else?
Granted, allowing the overloading of || and && without providing for shortcut evaluation was probably a mistake, and I've never seen anyone try to use it; in fact, several well-respected C++ style guides explicitly warn against it. OTOH, the streams syntax in C++ using << is a more positive example of using operators in innovative ways because op-overloading lets you. (OK, the C++ IOStreams system is superficially clever but deeply flawed, but that's a different matter.)
The killer, though, is that without operator overloading, you can't write types that work well with generic algorithms, which renders generic programming pretty difficult. Considering that GP is one of the most promising areas of C++ development, and the combination of templates, operator overloading and other related features is behind a lot of the most useful libraries now available, I think your obvious answer is obviously wrong.
And, after nearly a decade of programming C++, I'm still waiting to see in practice one of these crippling "subtle errors" that I keep hearing about in theory. Somehow, I've managed never to find the library where a+b calls Reformat(WITHOUT_ASKING), I guess.:-)
Sure, there are a lot of features, but basically everybody uses the sane subset thereof, and every once in a great while, if they really, really need it, they can use some of those fancy, destruct-o-matic features.
I think it's important to realise that most of the time, you shouldn't be using a lot of the nitty gritty features in C++: they're primitive, low level features, designed to offer maximum flexibility and performance, without any particular guarantees of safety. For most code, you should be using higher level tools with a more appropriate balance of performance, flexibility and safety.
However, a lot of the smarter, higher level tools now becoming popular -- libraries like the Boost collection and Loki, for example -- are possible precisely because a few people, typically those writing libraries of higher level tools, have the low level features available. If you're writing your own tools, you'd miss most of the power of a language like C++ if the low level support weren't there.
So I agree with you that many people use the same subsets of the tools available, but I think there is (or at least should be) a pretty clear distinction. Most applications programmers should rarely be using many of the language features, and will mostly use only the basics and some higher level tools, probably from libraries. The people writing those higher level libraries, on the other hand, will probably be using every trick in the book to make the library code as widely useful as possible, and for them, that extra power is invaluable, and what sets a language like C++ apart from something like Java or C#.
Also, when was the last time *you* used the dynamic_cast operator, Mr. Smartypants?
You can cast both up and down a class hierarchy. Usually, you only need to go one way, and polymorphism suffices. Sometimes, it's useful to go the other way, and the safest and most convenient method of doing that is a dynamic_cast.
You can even combine the cast with an if statement to ensure that no code ever tries to use a pointer that's been cast to a more derived type unless the cast succeeded, i.e., the object pointed to really is of a suitably derived type:
base *b = make_some_object();
if (derived *d = dynamic_cast<derived*>(b))
{
do_something_with_derived_objects_only(d);
} // Can't even accidentally use d now; it's out of scope.
In fact, I wonder how other languages do without [dynamic casts].
A lot of languages that don't explicitly have dynamic casts really do the same thing under the surface. There's little difference in behaviour between Java's cast via () and a dynamic_cast of a reference in C++, for example: both result in an exception being thrown if the object referred to isn't of a suitable type. I guess this isn't very surprising when you consider the similarities between how objects are handled in Java and how references work in C++.
From what little I've seen (as a VS.NET 2002 user considering upgrading) the 2003 edition is more of a "serious service pack" than a major new release, if you're only using it as a plain C++ compiler without all the.NETty bits. It fixes some bugs from the 2002 edition, reputedly improves the stability (although I can't comment on that either way from personal experience), and improves standards compliance in a few specific ways, notably in the templates area. The ability to use it with libraries like Loki and the Boost collection is one of Microsoft's marketing points, and I've yet to hear of serious complaints about that on the grapevine, so the template support must be fairly strong in the new edition.
Classic headers (iostream.h, string.h, etc.) were deprecated in the 1998 Standard.
<iostream.h> was never a standard header. Many pre-standard compilers offered IOStreams functionality in such a header, although frequently with subtle differences from what you find in the standard <iostream> (not just the namespace issue).
The old C headers (<string.h>, <math.h> and co) are explicitly supported but deprecated in C++, in the Compatibility Features annex of the standard. Similarly, there is also a mention in the standard of the old char* streams (strstream and friends) although these have also been superceded by the stringstream family.
I think what C and C++ really lack is the option to turn on array range checking.
You shouldn't be using raw arrays in anything except low level code anyway. For higher level code, it's almost invariably better to use a container class, be it vector, map, a matrix class of your choice, or whatever.
If you're using vector, there is already an at() method that checks the index. It should perhaps have been the "default", rather than making the overloaded operator[] the non-range-checked one and at() the safer alternative, but it's a bit late to fix that now; the feature is, and always has been, there, though.
Think about it--why does the Open Source model produce better code?
You haven't been keeping up on current events, have you?:-)
The first study you mention, and its conclusions, were obviously flawed in several ways, as the discussion here and elsewhere pointed out at the time. The new Reasoning study, currently under discussion elsewhere on Slashdot as well, finds rather differently, though apparently still suffers from several of the same flaws as the original, and thus has to be taken with the same pinch of salt.
I agree with you that communal development projects, such as much of the Open Source world, tend to attract a certain type of developer, whose motivation and skill level may be higher than average for a number of reasons. However, since many of these guys are also professional developers during the day, and still have a good attitude and skillset then, it doesn't follow that Open Source necessarily produces better code than an equivalent closed source offering.
I invite you to (any time you like) get on the wrong side of a "bobby".
In my "violent psycho" alter ego, I've trained various martial arts/combat sports with serving and ex-police officers over the past few years. I've also trained with and under some of the people who train them. The basic training they get is pretty laughable by serious standards (though if you don't know how to fight someone armed with a stick, you won't be laughing long). OTOH, they tend to have a very good attitude, being reluctant to use force until they have no sensible alternative, but having no qualms in using it decisively when necessary. Quite a few also take extra training outside of work.
Their job is only to stop/catch unarmed (or at least, without ranged-weapons) criminals anyway. A policeman with one of the standard-issue batons is significantly better armed than joe crook with a knife...
No, he's not. If it weren't for the knifeproof vest, he'd be a heavy bet to be dead, and even with it he's still at a significant disadvantage. I'll take a sharp over a few extra inches of reach any day, if I'm going to attack someone with the intent of doing serious damage. Obviously it's not exactly a "defensive" weapon, though, so I can't see the police carrying blades routinely any time soon.
Any time there is a gun-toting idiot (briefly) around, the police just call in the armed-response unit (ARU). Much better-trained snipers who don't seem to care where they hit, so long as the bad-guy gets it. Similar to SWAT teams, I suppose.
There are several police units who are routinely armed in the UK, not just the guys in ARVs. "Sniper" might be a bit dramatic a description as well. I'm sure they have that capability if they need it, but it's not exactly the most common use of guns among British police.
Gun crime isn't much of an issue in the UK anyway. There's a pretty-persistent rumour of a shoot-to-kill policy amongst the armed police. Perhaps that's a contributory factor:-)
I rather suspect that there are two reasons gun crime isn't higher in the UK, neither of which relates to that policy. First, most of it is between one group of organised criminals and another, over turf, drugs, or whatever. A few innocents get caught in the cross-fire, but fortunately not very many. Second, guns are a big deal here. Attacking someone with a baseball bat or holding up a store with a knife will get police attention. Wielding a gun will probably get you half the local force looking for you until they find you. Nobody smart uses a gun to commit trivial crimes, it just grabs too much attention.
As for the "shoot to kill" policy, I suspect that if you check around, you'll find pretty much any law enforcement body that carries firearms has a rule that either you don't fire at all or you shoot to finish it. Shooting to wound is for the movies.
I'm sorry, did I just see an open source advocate having a dig at Microsoft because a part of its UI has similar features to something offered by a product from the other camp a while earlier? That's absolutely priceless, considering that the vast majority of features in the big open source end user applications are basically direct clones of similar features in commercial apps offered by the big names.
No, I did not know that. It would be interesting to see Paint deal with layers and transparancies. The last time I used it, it had trouble with a single layer bitmap.
It has trouble doing serious work in any format; it's not meant to be a Paint Shop Pro or Photoshop replacement, and never pretended to be. But that wasn't the original point anyway.
After all you would think a reasonable software company would have their browser able to display portable NET graphics before a half assed paint program.
Why? Almost no-one uses them yet. I'd far rather they worked on things like improving the security and robustness of the product, or fixing irritating non-standard rendering behaviour in a few well-known places, than supporting a new "standard" as soon as some other group puts a rubber stamp on it, even if almost no content is offered in that format yet.
I'm going to drop the subject now, since you're moving the goalposts. The original point was that it could be hard to make Mozilla let go of graphics file formats. You said just leave them there, because Windows couldn't display them anyway. I called you on it, and listed several parts of Windows that can show all of the file formats mentioned by the OP. You're now trying to pick on one specific example (PNG in IE) where you know MS is weak, even though it wasn't one of the original things mentioned by the OP, just to have a go.
For the record, I did give the GIMP a genuine try on my XP box at home not so long ago. It installed more crap on my system than a bad bit of shareware with spyware attached, consistently crashed within five minutes of trying to do even the most basic editing, and appeared to be completely incapable of exporting into about 50% of the file formats it claimed to support. All of this plus a hideous user interface, and I'm supposed to come down in favour of open source apps over Windows Paint? I'll stick to paying my few pennies and getting Paint Shop Pro, thanks.
The grandparent was mostly referring to browsers, so I did the same.
OK, sorry, I didn't realise that was your intent.
I have far less of a problem with Mozilla's browser as far as reliability and performance go. In that case, I'm much more concerned about its practicality: the fanatical devotion to standards compliance and inability to use several popular plug-ins well can seriously get in the way just when you really want some information off a particular web site. But I think the Moz browser would at least be sane as a choice for an office default, whereas its mail client clearly isn't a smart move for a business that depends on it.
Turning off HTML view in Moz mail is trivial: there's an "As Text" option tucked away on the View menu.
I don't know of any way to get rid of it in OE, though. That's part of the problem with all these nasty security flaws in IE. While you have to visit a web page to get hurt that way via IE, if someone just sends you an HTML mail with the same contents and you have auto-preview on in OE as most people apparently do, you get hit. If you know how to turn it off, please share, because I'm sure many people would be interested.
The big problem with IE isn't that by default it's got an icon on the desktop or Start menu. It's that underlying parts of the OS -- the help system, for example, or Windows Update -- rely on it being present. For a while, installing a new version of IE was also the only way to get updated "common" controls required by some applications, although all recent versions of Windows include these as standard. And because of its rather bizarre links to the OS, taking out IE can take out a whole system on a bad day. Unfortunately, just removing the iconic links to iexplore.exe doesn't fix any of this, which is why it annoys so many people.
Heck, without Mozilla, most M$ users can't view half the world's image formats anyway, especially pgn. Is there some kind of change in the M$ hell world I've missed in my last year or two in the land of the free?
Yes. Several, it seems, given your frequent, ill-informed, anti-Microsoft posts on Slashdot recently.
You do know that XP can show folders containing images as thumbnails, right? Even showing a collection of mini-thumbnails for other folders containing images within them? And that you get a picture viewer app that can show those images at full size, arrange to print a collection of them, etc? And that even Windows Paint can do PNG?
Too true! If buses stop at a bus station, and trains stop at a train station...
Real people send their mail using a pen and paper, even if it's to the guy in the next cubicle. What else did you think those irritating orange "internal post" envelopes were for?
Mozilla is now at least as stable as IE, approximate ly as fast, is open source, complies with standards, blocks pop-ups, has tabbed browsing, an extensions system...
Several of those claims are debatable.
What is certain is that Moz also has a bizarrely complex profile system, leading to a whole world of potential bugs that literally wipe out whole mail boxes, address books or other settings, and require hours to reset things back to a useful state if it's even possible at all.
Yes, it has happened to me. Yes, it was a recent version of Mozilla. No, I'm not the only one. No, none of Outlook, Outlook Express or Exchange has any similar bugs reported against it as far as I'm aware.
I do still use Mozilla at home, for a variety of reasons, but I keep copies of vital e-mails. I also always keep IE on hand for the times when the Moz browser's standard compliance gets in the way of doing useful work, which seems to be about every third visit to a major web site.
I wouldn't dream of installing Moz as standard in an office environment. In my experience, it isn't significantly more stable than IE (on the contrary, half the time my WinXP PC won't shut down it's because Moz hasn't closed properly) and when it blows, it really blows. Neither the e-mail client nor the browser is ready to trust businesses with yet.
And yes, I'm familiar with current and fully patched versions of all the major browsers on multiple platforms.
I agree with you that some people are striving for the near impossible, and pretty much ignoring the realities of how hard it would be to implement such things. That said...
There are currently NO systems (that I know of) that take control of the airplane away from the pilot deliberately
There are such systems on trains in many countries, and have they prevented several serious accidents following signals passed at danger.
No, there are no "designated flight paths" that have such a problem.
Thank you, I was really hoping you'd say that. If that's the case for restricted airspace now, then where did you find these two planes that are supposed to be on a collision course and needing to take evasive action that the soft wall system is going to prevent because they're both going right around the outside of restricted space?
I think any pilot who sees such a system, and thinks that it is ok for the aircraft to deliberately take control of the airplane away from him when his and his passenger's lives may most depend on him being able to maneuver is, by definition, insane.
And what do you call pilots who let their planes be flown into crowded office buildings, killing all on board anyway plus a few thousand civilians, i.e., who are involved in exactly the sort of situation the proposed system is designed to prevent? Whether voluntarily or not, control of the planes on 11 September was taken over from four different flight crews, with terrible results. There were no survivors from any of those planes, so how much worse is it supposed to get if the pilots get overridden?
Then it's a good thing that there will never be such an automated missle system, isn't it?
Don't kid yourself. Two British airmen were shot down over Iraq earlier this year by exactly such a system, operated by the US, in a so-called "friendly fire" incident. Whether or not human error was also involved is irrelevant. Whether or not panic and rapid decision-making was inolved is irrelevant. The harsh reality is that the air defence system was there, and managed to shoot down a non-hostile aircraft, and there is no guarantee that similar systems, which you currently have outside various potential targets, wouldn't do the same. Not a very comforting thought for those sane pilots flying commercial airliners nearby, is it? It wouldn't be the first time in recent years that a passenger jet had been shot down by the military after a case of mistaken identity, either.
It is extremely dangerous. It will kill people, if created as described in the article.
Putting people inside a few tonnes of metal and sending them up where nature didn't intend is extremely dangerous and, in all probability, will kill people. It is still the safest way to travel. The question is what makes it safest.
When you create a system like this, you have to imagine the likely failure modes, and then imagine the new failure modes it introduces. [...] Like, system breaks and puts the aircraft into a hard left bank. You cannot install such a system in an aircraft safely without having a means of disabling it.
But anything you install in a plane has risks. When you take off in that shiny new Airbus, how much control do you think the flight crew are going to have if someone overlooked a bug in the control software that is all that links their cabin controls to the physical surfaces?
I'm sorry, but airspace is either restricted or it isn't. There is no rule that says you cannot fly "near restricted airspace", only that you cannot fly into it.
Maybe that's part of the problem. One moment, you're perfectly legal, happily following a designated flight path and no threat to anyone. The next, you're a terrorist weapon that needs to be shot down because there's no time to do anything else. Isn't that a bit, well, sudden?
This is a bad idea. Any sane pilot will oppose it, unless it can be shut off instantly, and if it can be shut off, it is worthless.
In a car, I'd agree with your reasoning, and I dislike the occasionally-suggested speed limiters and such for exactly that reason. But the thing is, a car doesn't put the ability to kill thousands of people in one easily controlled place, and then put up a big sign advertising that fact to people who just might be sick enough to try and take control of that one place do it.
While I entirely accept that a flight crew need to have the final word on anything under normal circumstances, they have to trust external influences all the time anyway: air traffic controllers, mechanics, software developers, GPS satellites... If any of the links in the chain breaks, an accident will result. And yet still, flying is the safest way to travel.
I can see why there will be serious and legitimate concerns about any system like this, but I think generalisations like "any sane pilot will oppose it" are going too far. If it's a choice between this and "OK, if you cross that line, an automatic missile system is going to fire on you instead" then I know which I'd take.
As the crow flies, Washington National Airport is 3.2 miles from the White House. Assuming we "soft-wall" the White House and the US Capital building (3.6 miles from DCA), how near do you mean when you say 'near'? The planes gotta land somewhere.
That's a very interesting point. I suspect that the answer is that critical infrastructure such as airports would eventually have to move away from easy targets like big cities, and flight paths would just avoid them completely, with any aircraft heading for one triggering alarm bells. This would cost a fortune, take many years to implement, require much better transport infrastructure to get passengers to and from airports efficiently, and throw up a whole host of other obstacles. But if you decide that the extra safety is necessary in today's political climate, that's the price you'll have to pay. (Moving things out of major population centres does have other benefits besides safety, of course, as anyone in the Heathrow flight path can tell you -- right after being woken up at antisocial a.m. by aircraft noise.)
Assuming that mid-air collisions are more likely where there is a greater density of air traffic (at places like airports), do you still think that these soft-walls are safe and that the "nearby soft-wall" situation is covered?
I rather suspect that in the event of an emergency, SOP at the airports near 1600 Pennsylvania Avenue does not involve diverting a large, fast-moving explosive over the residence of the President. If anyone tried that -- even assuming large aircraft could divert from their usual flight path that sharply -- I suspect that there are a few Treasury Department employees who would have a few words to say long before anything got near the White House.;-)
I'm not sure from the original article whether you're looking for mainly physical things, mainly software, or some combination of both, but here are a few ideas:
The convergence (or not?) of different technologies at home: PC, TV, games console, sound system, phone/fax gear, etc.
Using micropayments to support web sites.
Technologies for teleworking.
"Non-traditional" input methods: speech recognition and natural language processing, image recognition and gesture-based control systems, etc.
OK, I give up. You're worse than RMS. You persistently ignore the positives of things you don't like, you exaggerate the negatives, you put words into people's mouths, you ignore the wording of the law or just dismiss it outright when you happen not to agree with it, and your arguments are illogical, emotional and utterly without objective merit. The best you can do is attack figures of speech and twist what I've written to give it meanings I did not, so as to set up a range of straw men at which you can shoot. I've tried to persuade you with reasoned argument, but you appear not to want to be convinced, or even to consider any other point of view than your own.
I don't know why you bother participating in a forum like this, particularly if you believe it shouldn't exist, but I for one no longer have the time to reply. Fortunately, if you ever try to act on your views in the real world, you're likely to get sued, thrown in jail, or otherwise discover the truth about these things the hard way.
When the government tries to force an unjust law on the people, the people are under no obligation to accept it.
And who is to say that it is unjust? You? Copyright is a well-established legal principle, and there are very good reasons for it. The fact that you don't like it doesn't make it unjust.
Perhaps you have a better idea for how to make laws? Or should we dispense with them altogether, since no doubt someone thinks every illegal thing should be legal, typically those who want to break the law and get away with it.
I'll gloss over the tooting thing; how exactly can an anonymous posting on an Internet bulletin board refuting a critical comment possibly be tooting my own horn?
I thought you already had a job. Do you do any real work, or do you make all your money by threatening people with copyright infringement lawsuits?
I do have a real job. I'm looking to make some extra money by doing some extra work. Do you have a problem with that?
And no, I'm not threatening anyone with copyright infringement lawsuits, though I would have every right to do so if people took my material and posted it elsewhere without my permission. I'm looking to make extra money by doing some honest work making use of my other skills. The only time action over copyright infringement would become relevant is if somebody like you tried to take advantage of my hard work for his own benefit, and I quite reasonably took legal action to prevent you from doing so.
Two ways. 1) Advertising, and 2) Subscription fees from others.
Thank you. Think about that for a minute, and understand that you just made my whole point beautifully. If everyone read Slashdot via web caches that didn't pass on relevant information, they would make no money from either of those sources. Then how would they support themselves?
...is that sometimes it's used in new ways.
For example, I have contributed thousands of posts to Usenet over the past decade. When I first started, pretty much no-one had even heard of the x-no-archive header. Even today, few mainstream newsreaders support it readily. Thus no-one bothered to set it.
Skip forward a few years, and now Deja News is offering an archive of all my old posts, along with everyone else's. You have a commercial organisation making money by using my words without informing me, nor with my permission. That, in itself, is a dicey proposition, although at least there's a "public interest" argument in its favour. The buy-out of the database by Google, now blatantly selling my words without my permission, is clearly over the line, though.
Now, personally, the principle of this annoys me, but the actual content being available doesn't bother me, because I'm always careful not to write anything I wouldn't want someone to read in future in a Usenet post. I can see why it would legitimately bother others, though, particularly if they expected their posts to expire and disappear a week or two after they were written, and not to show up on a potential employer's report six years later. Claiming that people should have seen this coming and put "x-no-archive: yes" on everything they posted a decade ago is simply unrealistic.
You can make a similar argument for web caches now. Until a year or two ago, with things like the Wayback Machine and Google Cache coming up, a search engine was just a search engine, and always linked to your site. The need to use robots.txt to protect your material simply didn't exist on the same scale then.
I think there is every reason to have lawyers involved here, because at the moment, the law lags behind the technology. You can't copy others' material in other media without adhering to certain rules and regulations, and new evolutions in the way the Internet is being used may require new legislation to prevent abuses of rights that were previously unchallenged. Given the number of ill-formed and illogical arguments made by many posters here, typically those who want everything to be free to them even though they've done nothing to earn it, what other solution would you suggest?
If the information is being copied and circumventing the NYT's usual requirements for access, then this is not the NYT's problem, it's Google's. A good question might be how Google's robots can actually circumvent that access in the first place, but I'm sure someone's thought of that somewhere I haven't noticed yet...
OTOH, Google is quite at liberty not to list the NYT in its results if it so wishes, which presumably wouldn't be the outcome the NYT would be hoping for (and would presumably get if employing robots.txt).
The moral onus here is clearly on Google to ensure that if they are changing the way information is presented then they do so in a manner acceptable to the provider of that information. Or did you expect the NYT to contact anyone in the world who might be interested in caching their site? The "we don't need any legal recourse" argument is pretty weak too; it basically assumes that everyone in the world (a) knows about and (b) obeys robots.txt, which is clearly nothing close to the correct.
All in all, if both companies are looking for a constructive solution to this problem that benefits all concerned, it seems pretty sensible for them to get around the table, discuss what they want to happen, and make it so.
This is a tiresome and usually ill-founded argument. How much (space) overhead do you really think is incurred in a typical application as a result of this design decision?
Consider the common template example of a container class. Generalising but not much, you don't use a container class with many different types in most programs, and you don't use many of the methods available on it even then. Since only the implementation of necessary function specialisations is generated, the overhead is usually very little.
Moreover, techniques exist to reduce this overhead in some cases where it's of particular interest. For instance, a list<T*> can typically be just a typesafe wrapper for a list<void*>. These techniques are in active use, by the better STL implementations, for example.
While we're on the subject of space overhead, I'll just note that in the dynamic-binding languages, you typically have to instantiate a generalised version of every member function, since you never know who will be using your function and with what generic parameters. This can easily result in more space overhead in realistic circumstances than the specific code generated by C++ templates.
Now, consider the advantages of compiling specialisations rather than a single generic implementation. Your scope for optimisation is much better in this case, and a generic implementation of a function typically carries no more overhead than a specific one. A common example here is comparing C++'s std::sort with C's qsort, where the former frequently produces much superior output code due to the improved scope for optimisation.
Moreover, you have scope to optimise out whole layers of template mechanics. This allows high performance maths and expression template libraries to use clever template mechanics behind the scenes with impunity, while offering fairly straightforward syntax to the "end user".
As far as I can tell, all of this comes down very much in favour of C++'s approach. Java, as usual, adopts an approach where everything is available dynamically at run time, which grants a lot of flexibility on one hand, but carries a heavy performance penalty on the other (some, but crucially not all, of which can be overcome with JIT techniques).
There is nothing inherently superior about either approach: they are different design decisions with different goals in mind, each better for its own goal. Claiming that C++ templates induce more code bloat than Java's generics is, under realistic circumstances, pretty much wrong, though.
Since you've just provided the Boilerplate Objection(TM), perhaps I should provide the Boilerplate Rebuttal(TM).
You cannot redefine operators over only fundamental types, so the "don't know what it does" argument is pretty poor. Sure, someone writing their own type can provide a silly version of operator+ that doesn't do what you'd expect, but hey, they can do that with addTo() as well. Maybe we should make like Java, though, where operator overloading is OK as long as the language does it (String's + concatenation operator) but not for anyone else?
Granted, allowing the overloading of || and && without providing for shortcut evaluation was probably a mistake, and I've never seen anyone try to use it; in fact, several well-respected C++ style guides explicitly warn against it. OTOH, the streams syntax in C++ using << is a more positive example of using operators in innovative ways because op-overloading lets you. (OK, the C++ IOStreams system is superficially clever but deeply flawed, but that's a different matter.)
The killer, though, is that without operator overloading, you can't write types that work well with generic algorithms, which renders generic programming pretty difficult. Considering that GP is one of the most promising areas of C++ development, and the combination of templates, operator overloading and other related features is behind a lot of the most useful libraries now available, I think your obvious answer is obviously wrong.
And, after nearly a decade of programming C++, I'm still waiting to see in practice one of these crippling "subtle errors" that I keep hearing about in theory. Somehow, I've managed never to find the library where a+b calls Reformat(WITHOUT_ASKING), I guess. :-)
I think it's important to realise that most of the time, you shouldn't be using a lot of the nitty gritty features in C++: they're primitive, low level features, designed to offer maximum flexibility and performance, without any particular guarantees of safety. For most code, you should be using higher level tools with a more appropriate balance of performance, flexibility and safety.
However, a lot of the smarter, higher level tools now becoming popular -- libraries like the Boost collection and Loki, for example -- are possible precisely because a few people, typically those writing libraries of higher level tools, have the low level features available. If you're writing your own tools, you'd miss most of the power of a language like C++ if the low level support weren't there.
So I agree with you that many people use the same subsets of the tools available, but I think there is (or at least should be) a pretty clear distinction. Most applications programmers should rarely be using many of the language features, and will mostly use only the basics and some higher level tools, probably from libraries. The people writing those higher level libraries, on the other hand, will probably be using every trick in the book to make the library code as widely useful as possible, and for them, that extra power is invaluable, and what sets a language like C++ apart from something like Java or C#.
You can cast both up and down a class hierarchy. Usually, you only need to go one way, and polymorphism suffices. Sometimes, it's useful to go the other way, and the safest and most convenient method of doing that is a dynamic_cast.
You can even combine the cast with an if statement to ensure that no code ever tries to use a pointer that's been cast to a more derived type unless the cast succeeded, i.e., the object pointed to really is of a suitably derived type:
A lot of languages that don't explicitly have dynamic casts really do the same thing under the surface. There's little difference in behaviour between Java's cast via () and a dynamic_cast of a reference in C++, for example: both result in an exception being thrown if the object referred to isn't of a suitable type. I guess this isn't very surprising when you consider the similarities between how objects are handled in Java and how references work in C++.
From what little I've seen (as a VS.NET 2002 user considering upgrading) the 2003 edition is more of a "serious service pack" than a major new release, if you're only using it as a plain C++ compiler without all the .NETty bits. It fixes some bugs from the 2002 edition, reputedly improves the stability (although I can't comment on that either way from personal experience), and improves standards compliance in a few specific ways, notably in the templates area. The ability to use it with libraries like Loki and the Boost collection is one of Microsoft's marketing points, and I've yet to hear of serious complaints about that on the grapevine, so the template support must be fairly strong in the new edition.
<iostream.h> was never a standard header. Many pre-standard compilers offered IOStreams functionality in such a header, although frequently with subtle differences from what you find in the standard <iostream> (not just the namespace issue).
The old C headers (<string.h>, <math.h> and co) are explicitly supported but deprecated in C++, in the Compatibility Features annex of the standard. Similarly, there is also a mention in the standard of the old char* streams (strstream and friends) although these have also been superceded by the stringstream family.
You shouldn't be using raw arrays in anything except low level code anyway. For higher level code, it's almost invariably better to use a container class, be it vector, map, a matrix class of your choice, or whatever.
If you're using vector, there is already an at() method that checks the index. It should perhaps have been the "default", rather than making the overloaded operator[] the non-range-checked one and at() the safer alternative, but it's a bit late to fix that now; the feature is, and always has been, there, though.
You haven't been keeping up on current events, have you? :-)
The first study you mention, and its conclusions, were obviously flawed in several ways, as the discussion here and elsewhere pointed out at the time. The new Reasoning study, currently under discussion elsewhere on Slashdot as well, finds rather differently, though apparently still suffers from several of the same flaws as the original, and thus has to be taken with the same pinch of salt.
I agree with you that communal development projects, such as much of the Open Source world, tend to attract a certain type of developer, whose motivation and skill level may be higher than average for a number of reasons. However, since many of these guys are also professional developers during the day, and still have a good attitude and skillset then, it doesn't follow that Open Source necessarily produces better code than an equivalent closed source offering.
In my "violent psycho" alter ego, I've trained various martial arts/combat sports with serving and ex-police officers over the past few years. I've also trained with and under some of the people who train them. The basic training they get is pretty laughable by serious standards (though if you don't know how to fight someone armed with a stick, you won't be laughing long). OTOH, they tend to have a very good attitude, being reluctant to use force until they have no sensible alternative, but having no qualms in using it decisively when necessary. Quite a few also take extra training outside of work.
No, he's not. If it weren't for the knifeproof vest, he'd be a heavy bet to be dead, and even with it he's still at a significant disadvantage. I'll take a sharp over a few extra inches of reach any day, if I'm going to attack someone with the intent of doing serious damage. Obviously it's not exactly a "defensive" weapon, though, so I can't see the police carrying blades routinely any time soon.
There are several police units who are routinely armed in the UK, not just the guys in ARVs. "Sniper" might be a bit dramatic a description as well. I'm sure they have that capability if they need it, but it's not exactly the most common use of guns among British police.
I rather suspect that there are two reasons gun crime isn't higher in the UK, neither of which relates to that policy. First, most of it is between one group of organised criminals and another, over turf, drugs, or whatever. A few innocents get caught in the cross-fire, but fortunately not very many. Second, guns are a big deal here. Attacking someone with a baseball bat or holding up a store with a knife will get police attention. Wielding a gun will probably get you half the local force looking for you until they find you. Nobody smart uses a gun to commit trivial crimes, it just grabs too much attention.
As for the "shoot to kill" policy, I suspect that if you check around, you'll find pretty much any law enforcement body that carries firearms has a rule that either you don't fire at all or you shoot to finish it. Shooting to wound is for the movies.
I'm sorry, did I just see an open source advocate having a dig at Microsoft because a part of its UI has similar features to something offered by a product from the other camp a while earlier? That's absolutely priceless, considering that the vast majority of features in the big open source end user applications are basically direct clones of similar features in commercial apps offered by the big names.
It has trouble doing serious work in any format; it's not meant to be a Paint Shop Pro or Photoshop replacement, and never pretended to be. But that wasn't the original point anyway.
Why? Almost no-one uses them yet. I'd far rather they worked on things like improving the security and robustness of the product, or fixing irritating non-standard rendering behaviour in a few well-known places, than supporting a new "standard" as soon as some other group puts a rubber stamp on it, even if almost no content is offered in that format yet.
I'm going to drop the subject now, since you're moving the goalposts. The original point was that it could be hard to make Mozilla let go of graphics file formats. You said just leave them there, because Windows couldn't display them anyway. I called you on it, and listed several parts of Windows that can show all of the file formats mentioned by the OP. You're now trying to pick on one specific example (PNG in IE) where you know MS is weak, even though it wasn't one of the original things mentioned by the OP, just to have a go.
For the record, I did give the GIMP a genuine try on my XP box at home not so long ago. It installed more crap on my system than a bad bit of shareware with spyware attached, consistently crashed within five minutes of trying to do even the most basic editing, and appeared to be completely incapable of exporting into about 50% of the file formats it claimed to support. All of this plus a hideous user interface, and I'm supposed to come down in favour of open source apps over Windows Paint? I'll stick to paying my few pennies and getting Paint Shop Pro, thanks.
OK, sorry, I didn't realise that was your intent.
I have far less of a problem with Mozilla's browser as far as reliability and performance go. In that case, I'm much more concerned about its practicality: the fanatical devotion to standards compliance and inability to use several popular plug-ins well can seriously get in the way just when you really want some information off a particular web site. But I think the Moz browser would at least be sane as a choice for an office default, whereas its mail client clearly isn't a smart move for a business that depends on it.
Are you sure those are the right way around?
Turning off HTML view in Moz mail is trivial: there's an "As Text" option tucked away on the View menu.
I don't know of any way to get rid of it in OE, though. That's part of the problem with all these nasty security flaws in IE. While you have to visit a web page to get hurt that way via IE, if someone just sends you an HTML mail with the same contents and you have auto-preview on in OE as most people apparently do, you get hit. If you know how to turn it off, please share, because I'm sure many people would be interested.
The big problem with IE isn't that by default it's got an icon on the desktop or Start menu. It's that underlying parts of the OS -- the help system, for example, or Windows Update -- rely on it being present. For a while, installing a new version of IE was also the only way to get updated "common" controls required by some applications, although all recent versions of Windows include these as standard. And because of its rather bizarre links to the OS, taking out IE can take out a whole system on a bad day. Unfortunately, just removing the iconic links to iexplore.exe doesn't fix any of this, which is why it annoys so many people.
Yes. Several, it seems, given your frequent, ill-informed, anti-Microsoft posts on Slashdot recently.
You do know that XP can show folders containing images as thumbnails, right? Even showing a collection of mini-thumbnails for other folders containing images within them? And that you get a picture viewer app that can show those images at full size, arrange to print a collection of them, etc? And that even Windows Paint can do PNG?
Too true! If buses stop at a bus station, and trains stop at a train station...
Real people send their mail using a pen and paper, even if it's to the guy in the next cubicle. What else did you think those irritating orange "internal post" envelopes were for?
Several of those claims are debatable.
What is certain is that Moz also has a bizarrely complex profile system, leading to a whole world of potential bugs that literally wipe out whole mail boxes, address books or other settings, and require hours to reset things back to a useful state if it's even possible at all.
Yes, it has happened to me. Yes, it was a recent version of Mozilla. No, I'm not the only one. No, none of Outlook, Outlook Express or Exchange has any similar bugs reported against it as far as I'm aware.
I do still use Mozilla at home, for a variety of reasons, but I keep copies of vital e-mails. I also always keep IE on hand for the times when the Moz browser's standard compliance gets in the way of doing useful work, which seems to be about every third visit to a major web site.
I wouldn't dream of installing Moz as standard in an office environment. In my experience, it isn't significantly more stable than IE (on the contrary, half the time my WinXP PC won't shut down it's because Moz hasn't closed properly) and when it blows, it really blows. Neither the e-mail client nor the browser is ready to trust businesses with yet.
And yes, I'm familiar with current and fully patched versions of all the major browsers on multiple platforms.
I agree with you that some people are striving for the near impossible, and pretty much ignoring the realities of how hard it would be to implement such things. That said...
There are such systems on trains in many countries, and have they prevented several serious accidents following signals passed at danger.
Thank you, I was really hoping you'd say that. If that's the case for restricted airspace now, then where did you find these two planes that are supposed to be on a collision course and needing to take evasive action that the soft wall system is going to prevent because they're both going right around the outside of restricted space?
And what do you call pilots who let their planes be flown into crowded office buildings, killing all on board anyway plus a few thousand civilians, i.e., who are involved in exactly the sort of situation the proposed system is designed to prevent? Whether voluntarily or not, control of the planes on 11 September was taken over from four different flight crews, with terrible results. There were no survivors from any of those planes, so how much worse is it supposed to get if the pilots get overridden?
Don't kid yourself. Two British airmen were shot down over Iraq earlier this year by exactly such a system, operated by the US, in a so-called "friendly fire" incident. Whether or not human error was also involved is irrelevant. Whether or not panic and rapid decision-making was inolved is irrelevant. The harsh reality is that the air defence system was there, and managed to shoot down a non-hostile aircraft, and there is no guarantee that similar systems, which you currently have outside various potential targets, wouldn't do the same. Not a very comforting thought for those sane pilots flying commercial airliners nearby, is it? It wouldn't be the first time in recent years that a passenger jet had been shot down by the military after a case of mistaken identity, either.
Putting people inside a few tonnes of metal and sending them up where nature didn't intend is extremely dangerous and, in all probability, will kill people. It is still the safest way to travel. The question is what makes it safest.
But anything you install in a plane has risks. When you take off in that shiny new Airbus, how much control do you think the flight crew are going to have if someone overlooked a bug in the control software that is all that links their cabin controls to the physical surfaces?
Maybe that's part of the problem. One moment, you're perfectly legal, happily following a designated flight path and no threat to anyone. The next, you're a terrorist weapon that needs to be shot down because there's no time to do anything else. Isn't that a bit, well, sudden?
In a car, I'd agree with your reasoning, and I dislike the occasionally-suggested speed limiters and such for exactly that reason. But the thing is, a car doesn't put the ability to kill thousands of people in one easily controlled place, and then put up a big sign advertising that fact to people who just might be sick enough to try and take control of that one place do it.
While I entirely accept that a flight crew need to have the final word on anything under normal circumstances, they have to trust external influences all the time anyway: air traffic controllers, mechanics, software developers, GPS satellites... If any of the links in the chain breaks, an accident will result. And yet still, flying is the safest way to travel.
I can see why there will be serious and legitimate concerns about any system like this, but I think generalisations like "any sane pilot will oppose it" are going too far. If it's a choice between this and "OK, if you cross that line, an automatic missile system is going to fire on you instead" then I know which I'd take.
That's a very interesting point. I suspect that the answer is that critical infrastructure such as airports would eventually have to move away from easy targets like big cities, and flight paths would just avoid them completely, with any aircraft heading for one triggering alarm bells. This would cost a fortune, take many years to implement, require much better transport infrastructure to get passengers to and from airports efficiently, and throw up a whole host of other obstacles. But if you decide that the extra safety is necessary in today's political climate, that's the price you'll have to pay. (Moving things out of major population centres does have other benefits besides safety, of course, as anyone in the Heathrow flight path can tell you -- right after being woken up at antisocial a.m. by aircraft noise.)
I rather suspect that in the event of an emergency, SOP at the airports near 1600 Pennsylvania Avenue does not involve diverting a large, fast-moving explosive over the residence of the President. If anyone tried that -- even assuming large aircraft could divert from their usual flight path that sharply -- I suspect that there are a few Treasury Department employees who would have a few words to say long before anything got near the White House. ;-)
I'm not sure from the original article whether you're looking for mainly physical things, mainly software, or some combination of both, but here are a few ideas:
OK, I give up. You're worse than RMS. You persistently ignore the positives of things you don't like, you exaggerate the negatives, you put words into people's mouths, you ignore the wording of the law or just dismiss it outright when you happen not to agree with it, and your arguments are illogical, emotional and utterly without objective merit. The best you can do is attack figures of speech and twist what I've written to give it meanings I did not, so as to set up a range of straw men at which you can shoot. I've tried to persuade you with reasoned argument, but you appear not to want to be convinced, or even to consider any other point of view than your own.
I don't know why you bother participating in a forum like this, particularly if you believe it shouldn't exist, but I for one no longer have the time to reply. Fortunately, if you ever try to act on your views in the real world, you're likely to get sued, thrown in jail, or otherwise discover the truth about these things the hard way.
And who is to say that it is unjust? You? Copyright is a well-established legal principle, and there are very good reasons for it. The fact that you don't like it doesn't make it unjust.
Perhaps you have a better idea for how to make laws? Or should we dispense with them altogether, since no doubt someone thinks every illegal thing should be legal, typically those who want to break the law and get away with it.
I'll gloss over the tooting thing; how exactly can an anonymous posting on an Internet bulletin board refuting a critical comment possibly be tooting my own horn?
I do have a real job. I'm looking to make some extra money by doing some extra work. Do you have a problem with that?
And no, I'm not threatening anyone with copyright infringement lawsuits, though I would have every right to do so if people took my material and posted it elsewhere without my permission. I'm looking to make extra money by doing some honest work making use of my other skills. The only time action over copyright infringement would become relevant is if somebody like you tried to take advantage of my hard work for his own benefit, and I quite reasonably took legal action to prevent you from doing so.
Thank you. Think about that for a minute, and understand that you just made my whole point beautifully. If everyone read Slashdot via web caches that didn't pass on relevant information, they would make no money from either of those sources. Then how would they support themselves?