Isn't that the general principle with any game, video or not? The rules for chess are easy enough to learn, but being -good- at the game is an entirely different thing. Most of the truly enjoyable games (where you feel you have some amount of control over winning and losing) seem to have simple rules with complex ramifications. You can't precisely see what strategy will be best, so you have to try them all to find out. And with multiplayer, you generally wind up with a rock/paper/scisors sitatuation -- no single strategy is superior to all others, but some are truly inferior, and everyone will have a different one. Even the games of chance try to convince you that there's some hidden strategy to the game you have to discover -- the controls and the rules are obvious, but it's up to you to figure out how to use them to your advantage. And that's the real challenge. (If the rules are a challenge, your game will fail.)
I had never heard of Polyus. Its feature list reads like a swiss-army knife: nukes (to be used as space mines or dropped onto land targets), defensive canon, optical (passive) and radar (active) tracking, optical/radar stealth shroud, decoys/targets for testing,... it looks like it was designed to defend itself (from being boarded or shot at) as well as deliver weapons either in space or on land... and they were already thinking in terms of defending against beam weapons back then -- we barely have working ones now!
Those aren't your only options. We've been coding with Borland Builder 5 for years -- the code survives changes in versions of windows fairly well. (There's an issue with skinning, but let's not get into that.) You could also use wxWidgets (was called wxWindows until Microsoft paid them to change their name) which has at least Python and C++ bindings. You could technically also spring for directly using Gnome. Regarldess, you'll find yourself interacting with the Win32 API every now and then, but it's not so bad. I think I've found it useful now and again to have played with Visual C++ and the MFC (understanding what people are trying to do) but it's never been critical.
Take a look at your options, maybe try a few of them... and go back and try them again after you've tried others (as you're a beginning C++ programmer, you're bound to learn things not related to the API's as you go, so you don't want that to influence your decision) and pick whatever's most comfortable to you. Ultimately, you code fastest and most reliably when you're comfortable, not because you're using UltimateToolXYZ. (The language wars are really rather stupid -- most of the time, it's all about library/abstraction-layer wars.) Heck, try Java. I hear it's cool. Never touch the stuff, personally.
Wait -- your college is still offering C++? I thought all academic institutions had switched to teaching Java (only)... something about "the next big thing"...
VistA (for Veteran Affairs) and RPMS (for Native Americans / Alaska Natives) are MUMPS/M packages for hospitals and clinics. I think I heard recently that RPMS is switching to Caché instead of the M globals, but I doubt that makes much difference (except they can start using some form of SQL if they want to.) MUMPS is still very much being used to run medical services... doesn't appear to be dying anytime soon. They're even investing in switching to GUI interfaces (a few actually look almost good -- for medical apps, that's amazing). But if you want to have some fun, ask RPMS guys for their table layouts... (sparse matrix is hard to describe in terms of table layouts.)
Is that the same "post-relational" as with Intersystem's Caché? Their database is based on (-is-) the MUMPS/M (also 1960's) built-in "global" database. To me, looks a lot like a php array gone nuts -- each element of the array can itself be an array or a scalar value, etc. You do everything through loops of table_name[i][j][k][l][m] to find what you want, etc. And they're telling me that this is a good thing? Sparse matrix technology to the rescue? *sigh* At least they claim it also supports SQL...
Everyone's always so quick to say the relational model is dead... I wonder what NetCraft has to say about it.
a) The relational model is not slow. It's a mathematical model. It's like saying that algebra is slow because your calculator is slow. Get a better calculator. b) The relational model really can store anything you can describe. It's a lot like algebra and accountants: if you can't make it quantifiable, you won't be able to do the math. A lot of people are simply unwilling to come up with good metadata for a relational database, and declare that it can't handle "unstructured" data. (Unstructured doesn't mean is has no structure -- it means they won't tell us what it is, or don't care.) c) The relational model doesn't say you can't store a value of "TX, AZ" in a field. It only says that such a multivalue field cannot be seen as if it were "TX" in one row and "AZ" in another row. "TX, AZ" is equal only to "TX, AZ", but not to "TX" or "AZ". You can define your own functions for Contains(), Overlaps(), etc. if you like. d) The relational model doesn't say you can't store XML values. It only says that when you do, you should be prepared to write very complex functions to work with those values. If you're willing to, then that's your problem. e) Relational databases are slow compared to custom solutions, yes. So are general-purpose operating systems, compared to custom embedded OS's. Unlike custom solutions, they have great flexibility, a very rich toolset. Custom solutions won't give you a working OUTER JOIN operator, for example. Graphics CPU's vs. general-purpose CPU's...
The submitter seemed to think this was the end of relational databases. The article itself was much less harsh -- its criticisms of the relational model are more criticisms of current products. The author wants a-la-carte features, not having to pay for what they don't use. Oracle is huge, yes. Firebird isn't -- tiny footprint, yet the features are there. Not all RDBMS's take up a gig of hard drive space (and ram!) just to start up. And hey, if you don't want transactions, you can always use MySQL! [snicker]
The relational model is fine. Yes, we should improve speed. No, we can't make it as fast as following pointers around in a file -- but businesses long ago realized the cost was too high (pointer-based databases don't give you fast joins on non-FK fields)...
Or... we could legalize that which does others no harm they didn't ask for or deserve. (Or rather, *not* criminalize it. Freedom is the default.)
If rendering a service will harm the provider, that's a risk the provider needs to know about going in -- but that's no cause for making it illegal. And if the service harms the recipient, that's also something the recipient should know about -- but that's no cause for making it illegal. Prostitution, drugs,... yes, we should all know about the risks involved so we can make informed decisions.
But we don't need the state (nor you) telling us what harm we can and can't do to ourselves once we're allowed to consent to things. (reached the age of consent, minus those mentally incapable, plus those who've emancipated themselves prematurely, etc.)
You can argue about whether or not prostitution is a good *choice*, but I don't see how that impacts the legality of prostitution.
And yes, we'll talk about it regardless of whether or not we've known any prostitutes personally -- because that's irrelevant. I don't need to know an astronaut to talk about space, I don't need to know a geologist to talk about magma, and I don't need you to tell me what I can or can't talk about. Not all decisions are based on anecdotal evidence.
And as to P2P -- who the hell cares if a device has "legitimate" uses? It doesn't matter. What matters is whether or not someone is actively using a device (P2P, gun, or lemon) in a way that infringes on someone else's freedom. (Excluding self-defense, law-imposed punishment, etc.)
Indeed, my example wasn't perfect. If it were, I think I'd be trying to get myself elected somewhere...
Thanks you for drawing up such a list of "possibly murderous situations" -- I'd been meaning to do so for the purpose of defining the limits of the label "terrorism" (which we use very loosely.) If you look at your examples though, they are (to me) quite obviously points on a map... individual examples of some higher ideal. The idea is to draw the actual lines, not just plot out a bunch of example cases.
Did you intend harm? Did you understand the consequences of your actions? Were you in control of your actions, and if not, had you consciously caused yourself not to be in control? Was the victim consenting? Did the victim have the right to consent? Were you executing justice in accordance with laws that the victim had (perhaps implicitly) agreed to? Were you acting preemptively, and if so, were you sure that your enemy had crossed a point of "no return", and about to cause undue harm? Were there any other ways of stopping the person? (Definitions of "free will" and sentience would eventually come into play, I'm pretty sure.)
Teaching by example works well because kids pick up on the "rules" easily -- they don't just think that the examples you've given are the only cases in the universe (luckily). But for law... if we define law by example, then we decide cases by analogy... most analogies are flawed on some level, which means every case will involve "yes, X is like Y in respects A, B, and C, but not D, but we feel that's close enough"... that's really quite dangerous. If we define by example and expect everyone to pick up on the examples, then we're being very trusting... but we run the risk of having them guess wrong. With a kid, you can just tell the kid "no, that's not what I meant"... with law, people die (at least in the US.)
I'd like to think, when I'm presented before a court, accused of some crime, the -only- thing on the mind of the jurors will be "was this covered by law?", not "what does this law cover?".
I think there's a room enough for making the law applicable despite changes in technology and culture without having to resort to laws which are defined by the courts as you go.
Justice Antonin Scalia gave a talk recently(-ish) about the concept of the "living constitution", mostly to point out that although the idea sounds good when you consider badly-written laws... it's always dangerous. Anyone could bend the law any direction; although you may think it's helpful to you the one time you get the law bent the way you want, it'll come back to bite you in the bum when someone uses that same concept against you. In his opinion, we should all fight against the "living constitution" (and by extension, any philosophy that says that laws need not be precisely worded, with clear intent) and instead rely on passing laws that are to our advantage, black-on-white.
A flexible law is not a gray law. "Do not murder", for example, is clear -- yet it doesn't come with a laundry list of possible ways of committing murder that has to be revised every time a new weapon is made or a new trick learned. Perhaps it needs a definition of murder (example: actively and intentionally causing the death of a human who doesn't consent to it) but just because it's simple doesn't mean it's gray. From that simple law, you can probably deduce whether or not something you're about to do is legal.
On the other hand, laws of the form "this is legal if the court says it is" means that a citizen can no longer be reasonably expected to know the law -- which comes dangerously close to exhonerating the citizen from having to know the law at all, or ever be liable for violations of said law.
Geek-ish: laws should be well-written open-source code. Everyone should have access to the code, and as such, can read it, understand it, and know what will happen given a particular set of input (actions.) If, on the other hand, the law depends on sending requests off to a black-box for which the code is unknown, the result might as well be random.
Re:Atomicity in filestores is a great benefit
on
The Future of Databases
·
· Score: 2, Interesting
... oh, and the file system should also verify the integrity of the files, and the system as a whole -- make sure that your changes are "allowed" (both state-constraints and transition-constraints), make sure that everything works together (imagine your FS making sure that your changes to your mail server config match up with your changes to the user list?)...... oh, and allowing multiple users to modify files at the same time, and know enough about the file formats to reconcile possible conflicts (not stupidly like CVS does, where everything is either binary or treated as sequences of lines of text delimited by a carriage return)...... oh, and maybe we should resolve the issue of putting the type of the file in the filename (variables have names, values have types)...... oh, and don't forget support for, say, two-phase commits, nested transactions, and all those other things... which, by the way, Jim Gray has one of the authoritative books on.
I've never understood this. What's with people's fascination with the libraries provided with a language? On the one hand, we have people complaining about how awful C++ is in terms of "language design" (by which they're referring to the actual grammar of the language, what you can/can't do with it) and on the other, people complaining about what libraries come with it. I always thought that, given that most languages are capable of importing any new libraries you give them, the vocabulary wasn't an issue: if they don't provide you with function XYZ that you can imagine and want, then you just write it yourself, or find someone else who did. That's all we're doing anyway: every program we write is just an addition to the namespace. I always thought the strength of a language was at least in part determined by how easy it was to extend: did it give you everything you needed to build new functions, classes, etc.?
People pick their development platforms no longer (did they ever?) so much on the language itself but what functions are "easily accessible" (the fewest lines of #include-like code) to them. Yes, there's a productivity issue, but... dang. That's just harsh. You could have the best "language" in the world, and yet nobody would notice it until it came "standard" with a library the size of java's. (Which, by the way, is enormous, and I doubt I'd ever find what I was looking for in such quantities of code anyway.) You could have the worst language in the world, or at least a terribly half-assed one, and it'd still be used if it came with all the functions people happen to want at the moment (which is distressingly related to what technologies are "hot" at any particular point in time.) We talk about how great Java and PHP and Perl's basic libraries are, yet we have sites dedicated to sharing code that isn't included by default (CPAN, that new O'Reilly equivalent for Java, PEAR, etc.)... so obviously, despite their size, they're still not "quite enough"...
Are we ever going to go ahead and figure a way to make sure libraries we write in one language are available (easily) in others, so we can get down to the business of picking languages based on language features? C provided us with a basic interoperability which I don't think we have for object-oriented languages (OO is a vague concept anyhow)... but it's hurting us to be rewriting the -same- algorithms, for the -same- purposes, for each different language.
Note that parts of the Boost library may be included in future C++ standards, according to their website. Not like that addresses my issues, but for those who like Boost, it's something. Now if, Boost were available to all languages...
According to the UN Law of the Sea, ships in international waters cannot be used to transport slaves, and any slave who makes it to a ship in international waters is automatically freed. Slavery is illegal in international waters. (This based on my reading.)
but 2 hours at 55mph is not very good. I presume that it holds at least as much fuel as your average automobile.
According to the linked website (RTFA,) it has a 5 gallon tank of "normal" gasoline. (Which octane rating? Do we care?) My car (and previous ones) hold more like 12 to 14 gallons. And it lists 55 knots, not 55 mph, which according to google is 63 mph (but I'm no good at nautical units, so it might be lying to me and I wouldn't know.) So, with those assumptions, it's 2 hours at 63 mph using 5 gallons of fuel, or 126 miles on 5 gallons = 25 mpg, which is less than I get, but more than many people do. And there's no "city" vs. "highway" difference, is there? (I didn't see whether or not take-off/landing were included in the fuel capacity.)
Just because it has a stamp of approval from a big-name standards organization doesn't at all mean it's viable, though if it's not, it probably does mean that it's already popular in some way and someone wanted a stamp of approval for the sake of having it.
Like, say, HL7 for medical information exchange. The format sucks (we constantly find ways in which it can't handle the true cardinality of relations, because people assumed way too much)... but we can't say "we don't support HL7 because we think it's stupid" without being laughed at. So you support it. And once you're done with that, you're too tired to go implement another spec that makes more sense, so you do what everyone else does: advertise that your software is HL7-compliant and therefore compatible with "every other major piece of software" in the medical industry (where "major" == "supports HL7", circular logic.)
Sure. It's standard. And approved (ANSI.) And widely used. And it sucks. (And no, moving it to XML in v3 doesn't make it any better.)
Excerpt: "The standard of illegality is that the seller must have "sufficient economic power with respect to the tying product to appreciably restrain free competition in the market for the tied product...." [Northern Pacific R. Co. v. United States, 356 U.S. 1, 6]. Market dominance - some power to control price and to exclude competition - is by no means the only test of whether the seller has the requisite economic power. Even absent a showing of market dominance, the crucial economic power may be inferred from the tying product's desirability to consumers or from uniqueness in its attributes."
I would say that, given the monopoly status of phone / DSL providers, you don't even have to worry about "market dominance" at all -- it's automatic. They're in a position to do "whatever they like", and this is illegal even for companies -not- in a monopoly position. From a discussion of this same law over Windows/IE/WMP, the distinction was also made clear between "cars with tires" (cannot be functionally complete) and "operating system with browser/media player" (can still work, with fewer features) even though in both cases there are separate markets for "chunks" of the item being sold. And that's for a case where the 'extra' is offered for "free", not a "oh, you have to buy this too" clause.
Doesn't "Vacuum" now run without having to take the database offline? As I understand it, that was what was keeping Pg from being truly 24x7. "Sweep" in firebird runs as a background process and -might- slow down the server while it's running, but doesn't prevent anything from happening. I thought that's what Pg had switched to?
... or Firebird with safe-write enabled. There's no appreciable start-up cost even if your db server lost power in the middle of a large transaction. It will reclaim "garbage" space during normal activity as it discovers areas that aren't in use because their transaction got rolled back by the power failure. Handy. (Firebird and PostgreSQL are extremely similar in terms of transactional capabilities; the big difference was SWEEP vs. VACUUM, which apparently Pg took care of in 8.0?)
If you've [sic] wife's on the pill, she might have some questions when the mailman visits that day.
Uh, I guess you don't believe in using multiple (simultaneous) methods of birth control? Not only because shit happens, but as a natural result of equally sharing effort and responsibility?
Correlation is not causation, and even in the case of causation, each consequence has a large number of possible causes. Logically, I can say that it may or may not have anything to do with Jon; it could be coincidence, it could already have been planned, and even if it weren't, it very well could simply be an acceleration of an existing path -- if, as you say, it's weak, and known to be weak, then it won't have the effect you attribute to it. The rest of the industry would only be amazed by Apple's ability (charisma) to use weak DRM and get away with it, not with the technology itself. They would still evolve.
However, you're using an argument that reminds me of someone being bullied. "Shh, don't anger him, or he'll beat us up some more!" If cops start being rude with everyday citizens because they see so much crap in the streets, do you hold them blameless? Oh, sure, the people who give them crap should stop, but not because of the effect it has on you. If I annoy a bully and you get hurt because he's angry, am I directly responsible for your hurt, or is the bully?
Besides. If DRM will never be secure, then you can be sure people like Jon have your best interest in mind -- for every obstacle created by DRM, they'll find a work-around for you. If you believe we should leave well-enough alone so we won't get "real" DRM imposed, you probably also believe DRM is a bad thing. If it's a bad thing, you can work against it, either through the market or the legislature. If you don't think you can have an effect, then why can Jon? If it's a good thing, he's just helping them make it better by testing it and finding flaws. But don't blame Jon.
My rule of thumb for good laws is this: "does this law say it is illegal to maliciously harm someone against their will"? In this case, the existence of the law implies that the ISPs, by -not- offering to filter content for users on demand, are actively hurting people. Are they? At best, I could see filing this as "non-assistance to person in danger" (idly standing by) but that would still require that someone -else- (porn sites) be actively hurting consumers against their will. You generally don't go to porn sites without conscious effort, ergo, you're responsible for winding up there, and responsible for any harm this may cause you (if any, which is, to me, debatable.) Internet access and the "risks" involved, are optional. We're not talking about making sure citizens have access to potable water.
It should not be law. It's a sound basis for product design "hey, users want to browse the web but keep themselves and their kids from actively and/or accidentally coming across porn".
So, what, you think that if nobody circumvents current (flawed) methods, "the industry" obviously won't innovate or fix the holes anyway? We software engineers get bored, tend to be proud of our work, and will likely improve our software even if we're not asked to. Expect DRM to get "better" regardless. But hey, with people like you around, companies implementing better DRM can shift the blame for their "stricter rules" on people like Jon rather than on content duplicators, their own greed, or whatever else might be appropriate.
Corporation A decides not to buy every possible domain name for their products, because it costs too much. Business B buys a domain name that seems available and unencumbered, for their business. Business B has spent money Corporation A couldn't be bothered to spend. Business B then goes on to use the domain name and associate it with their services; they build up a customer base; they rely on having this domain name as part of their advertising, branding, etc. Corporation A then says "oh, look, something related to our name is owned by someone else" and gets it snatched away by the court. Business B is now left without their domain name they worked hard on. Corporation A which probably already had plenty of domain names now has one more, insignificant, domain name, and the added benefit that Business B's customers visit the URL not knowing it's changed ownership. Business B now has to go and start over again, find a new name, build up its customer base again, redo its advertising, etc. and hope, pray to some deity, that the same thing doesn't happen to them again. What this amounts to, via chilling effects, is that companies can "reserve" domain names for free -- everyone will/should be too afraid of litigation to go anywhere near any names that might someday be snatched by someone on shaky grounds. Corporation A can now avoid spending any money on domain names until someone else does, knowing those "undiscovered" domain names out there are theirs regardless of whether or not they pay the appropriate fees ahead of time.
Isn't that the general principle with any game, video or not? The rules for chess are easy enough to learn, but being -good- at the game is an entirely different thing. Most of the truly enjoyable games (where you feel you have some amount of control over winning and losing) seem to have simple rules with complex ramifications. You can't precisely see what strategy will be best, so you have to try them all to find out. And with multiplayer, you generally wind up with a rock/paper/scisors sitatuation -- no single strategy is superior to all others, but some are truly inferior, and everyone will have a different one. Even the games of chance try to convince you that there's some hidden strategy to the game you have to discover -- the controls and the rules are obvious, but it's up to you to figure out how to use them to your advantage. And that's the real challenge. (If the rules are a challenge, your game will fail.)
I had never heard of Polyus. Its feature list reads like a swiss-army knife: nukes (to be used as space mines or dropped onto land targets), defensive canon, optical (passive) and radar (active) tracking, optical/radar stealth shroud, decoys/targets for testing, ... it looks like it was designed to defend itself (from being boarded or shot at) as well as deliver weapons either in space or on land ... and they were already thinking in terms of defending against beam weapons back then -- we barely have working ones now!
Those aren't your only options. We've been coding with Borland Builder 5 for years -- the code survives changes in versions of windows fairly well. (There's an issue with skinning, but let's not get into that.) You could also use wxWidgets (was called wxWindows until Microsoft paid them to change their name) which has at least Python and C++ bindings. You could technically also spring for directly using Gnome. Regarldess, you'll find yourself interacting with the Win32 API every now and then, but it's not so bad. I think I've found it useful now and again to have played with Visual C++ and the MFC (understanding what people are trying to do) but it's never been critical.
... and go back and try them again after you've tried others (as you're a beginning C++ programmer, you're bound to learn things not related to the API's as you go, so you don't want that to influence your decision) and pick whatever's most comfortable to you. Ultimately, you code fastest and most reliably when you're comfortable, not because you're using UltimateToolXYZ. (The language wars are really rather stupid -- most of the time, it's all about library/abstraction-layer wars.) Heck, try Java. I hear it's cool. Never touch the stuff, personally.
... something about "the next big thing" ...
Take a look at your options, maybe try a few of them
Wait -- your college is still offering C++? I thought all academic institutions had switched to teaching Java (only)
VistA (for Veteran Affairs) and RPMS (for Native Americans / Alaska Natives) are MUMPS/M packages for hospitals and clinics. I think I heard recently that RPMS is switching to Caché instead of the M globals, but I doubt that makes much difference (except they can start using some form of SQL if they want to.) MUMPS is still very much being used to run medical services ... doesn't appear to be dying anytime soon. They're even investing in switching to GUI interfaces (a few actually look almost good -- for medical apps, that's amazing). But if you want to have some fun, ask RPMS guys for their table layouts ... (sparse matrix is hard to describe in terms of table layouts.)
Is that the same "post-relational" as with Intersystem's Caché? Their database is based on (-is-) the MUMPS/M (also 1960's) built-in "global" database. To me, looks a lot like a php array gone nuts -- each element of the array can itself be an array or a scalar value, etc. You do everything through loops of table_name[i][j][k][l][m] to find what you want, etc. And they're telling me that this is a good thing? Sparse matrix technology to the rescue? *sigh* At least they claim it also supports SQL ...
Everyone's always so quick to say the relational model is dead ... I wonder what NetCraft has to say about it.
...
...
a) The relational model is not slow. It's a mathematical model. It's like saying that algebra is slow because your calculator is slow. Get a better calculator.
b) The relational model really can store anything you can describe. It's a lot like algebra and accountants: if you can't make it quantifiable, you won't be able to do the math. A lot of people are simply unwilling to come up with good metadata for a relational database, and declare that it can't handle "unstructured" data. (Unstructured doesn't mean is has no structure -- it means they won't tell us what it is, or don't care.)
c) The relational model doesn't say you can't store a value of "TX, AZ" in a field. It only says that such a multivalue field cannot be seen as if it were "TX" in one row and "AZ" in another row. "TX, AZ" is equal only to "TX, AZ", but not to "TX" or "AZ". You can define your own functions for Contains(), Overlaps(), etc. if you like.
d) The relational model doesn't say you can't store XML values. It only says that when you do, you should be prepared to write very complex functions to work with those values. If you're willing to, then that's your problem.
e) Relational databases are slow compared to custom solutions, yes. So are general-purpose operating systems, compared to custom embedded OS's. Unlike custom solutions, they have great flexibility, a very rich toolset. Custom solutions won't give you a working OUTER JOIN operator, for example. Graphics CPU's vs. general-purpose CPU's
The submitter seemed to think this was the end of relational databases. The article itself was much less harsh -- its criticisms of the relational model are more criticisms of current products. The author wants a-la-carte features, not having to pay for what they don't use. Oracle is huge, yes. Firebird isn't -- tiny footprint, yet the features are there. Not all RDBMS's take up a gig of hard drive space (and ram!) just to start up. And hey, if you don't want transactions, you can always use MySQL! [snicker]
The relational model is fine. Yes, we should improve speed. No, we can't make it as fast as following pointers around in a file -- but businesses long ago realized the cost was too high (pointer-based databases don't give you fast joins on non-FK fields)
Or ... we could legalize that which does others no harm they didn't ask for or deserve. (Or rather, *not* criminalize it. Freedom is the default.)
... yes, we should all know about the risks involved so we can make informed decisions.
If rendering a service will harm the provider, that's a risk the provider needs to know about going in -- but that's no cause for making it illegal. And if the service harms the recipient, that's also something the recipient should know about -- but that's no cause for making it illegal. Prostitution, drugs,
But we don't need the state (nor you) telling us what harm we can and can't do to ourselves once we're allowed to consent to things. (reached the age of consent, minus those mentally incapable, plus those who've emancipated themselves prematurely, etc.)
You can argue about whether or not prostitution is a good *choice*, but I don't see how that impacts the legality of prostitution.
And yes, we'll talk about it regardless of whether or not we've known any prostitutes personally -- because that's irrelevant. I don't need to know an astronaut to talk about space, I don't need to know a geologist to talk about magma, and I don't need you to tell me what I can or can't talk about. Not all decisions are based on anecdotal evidence.
And as to P2P -- who the hell cares if a device has "legitimate" uses? It doesn't matter. What matters is whether or not someone is actively using a device (P2P, gun, or lemon) in a way that infringes on someone else's freedom. (Excluding self-defense, law-imposed punishment, etc.)
heck, you can get a programmer residing in the US for less than $11k/mo ...
.dfm files would also appear in projects compiled with Borland C++ Builder -- the files are common to both Delphi and Builder.
Indeed, my example wasn't perfect. If it were, I think I'd be trying to get myself elected somewhere...
... individual examples of some higher ideal. The idea is to draw the actual lines, not just plot out a bunch of example cases.
... if we define law by example, then we decide cases by analogy ... most analogies are flawed on some level, which means every case will involve "yes, X is like Y in respects A, B, and C, but not D, but we feel that's close enough" ... that's really quite dangerous. If we define by example and expect everyone to pick up on the examples, then we're being very trusting ... but we run the risk of having them guess wrong. With a kid, you can just tell the kid "no, that's not what I meant" ... with law, people die (at least in the US.)
Thanks you for drawing up such a list of "possibly murderous situations" -- I'd been meaning to do so for the purpose of defining the limits of the label "terrorism" (which we use very loosely.) If you look at your examples though, they are (to me) quite obviously points on a map
Did you intend harm? Did you understand the consequences of your actions? Were you in control of your actions, and if not, had you consciously caused yourself not to be in control? Was the victim consenting? Did the victim have the right to consent? Were you executing justice in accordance with laws that the victim had (perhaps implicitly) agreed to? Were you acting preemptively, and if so, were you sure that your enemy had crossed a point of "no return", and about to cause undue harm? Were there any other ways of stopping the person? (Definitions of "free will" and sentience would eventually come into play, I'm pretty sure.)
Teaching by example works well because kids pick up on the "rules" easily -- they don't just think that the examples you've given are the only cases in the universe (luckily). But for law
I'd like to think, when I'm presented before a court, accused of some crime, the -only- thing on the mind of the jurors will be "was this covered by law?", not "what does this law cover?".
I think there's a room enough for making the law applicable despite changes in technology and culture without having to resort to laws which are defined by the courts as you go.
... it's always dangerous. Anyone could bend the law any direction; although you may think it's helpful to you the one time you get the law bent the way you want, it'll come back to bite you in the bum when someone uses that same concept against you. In his opinion, we should all fight against the "living constitution" (and by extension, any philosophy that says that laws need not be precisely worded, with clear intent) and instead rely on passing laws that are to our advantage, black-on-white.
Justice Antonin Scalia gave a talk recently(-ish) about the concept of the "living constitution", mostly to point out that although the idea sounds good when you consider badly-written laws
A flexible law is not a gray law. "Do not murder", for example, is clear -- yet it doesn't come with a laundry list of possible ways of committing murder that has to be revised every time a new weapon is made or a new trick learned. Perhaps it needs a definition of murder (example: actively and intentionally causing the death of a human who doesn't consent to it) but just because it's simple doesn't mean it's gray. From that simple law, you can probably deduce whether or not something you're about to do is legal.
On the other hand, laws of the form "this is legal if the court says it is" means that a citizen can no longer be reasonably expected to know the law -- which comes dangerously close to exhonerating the citizen from having to know the law at all, or ever be liable for violations of said law.
Geek-ish: laws should be well-written open-source code. Everyone should have access to the code, and as such, can read it, understand it, and know what will happen given a particular set of input (actions.) If, on the other hand, the law depends on sending requests off to a black-box for which the code is unknown, the result might as well be random.
... oh, and the file system should also verify the integrity of the files, and the system as a whole -- make sure that your changes are "allowed" (both state-constraints and transition-constraints), make sure that everything works together (imagine your FS making sure that your changes to your mail server config match up with your changes to the user list?) ... ... oh, and allowing multiple users to modify files at the same time, and know enough about the file formats to reconcile possible conflicts (not stupidly like CVS does, where everything is either binary or treated as sequences of lines of text delimited by a carriage return) ... ... oh, and maybe we should resolve the issue of putting the type of the file in the filename (variables have names, values have types) ... ... oh, and don't forget support for, say, two-phase commits, nested transactions, and all those other things ... which, by the way, Jim Gray has one of the authoritative books on.
I've never understood this. What's with people's fascination with the libraries provided with a language? On the one hand, we have people complaining about how awful C++ is in terms of "language design" (by which they're referring to the actual grammar of the language, what you can/can't do with it) and on the other, people complaining about what libraries come with it. I always thought that, given that most languages are capable of importing any new libraries you give them, the vocabulary wasn't an issue: if they don't provide you with function XYZ that you can imagine and want, then you just write it yourself, or find someone else who did. That's all we're doing anyway: every program we write is just an addition to the namespace. I always thought the strength of a language was at least in part determined by how easy it was to extend: did it give you everything you needed to build new functions, classes, etc.?
... dang. That's just harsh. You could have the best "language" in the world, and yet nobody would notice it until it came "standard" with a library the size of java's. (Which, by the way, is enormous, and I doubt I'd ever find what I was looking for in such quantities of code anyway.) You could have the worst language in the world, or at least a terribly half-assed one, and it'd still be used if it came with all the functions people happen to want at the moment (which is distressingly related to what technologies are "hot" at any particular point in time.) We talk about how great Java and PHP and Perl's basic libraries are, yet we have sites dedicated to sharing code that isn't included by default (CPAN, that new O'Reilly equivalent for Java, PEAR, etc.) ... so obviously, despite their size, they're still not "quite enough" ...
... but it's hurting us to be rewriting the -same- algorithms, for the -same- purposes, for each different language.
...
People pick their development platforms no longer (did they ever?) so much on the language itself but what functions are "easily accessible" (the fewest lines of #include-like code) to them. Yes, there's a productivity issue, but
Are we ever going to go ahead and figure a way to make sure libraries we write in one language are available (easily) in others, so we can get down to the business of picking languages based on language features? C provided us with a basic interoperability which I don't think we have for object-oriented languages (OO is a vague concept anyhow)
Note that parts of the Boost library may be included in future C++ standards, according to their website. Not like that addresses my issues, but for those who like Boost, it's something. Now if, Boost were available to all languages
According to the UN Law of the Sea, ships in international waters cannot be used to transport slaves, and any slave who makes it to a ship in international waters is automatically freed. Slavery is illegal in international waters. (This based on my reading.)
but 2 hours at 55mph is not very good. I presume that it holds at least as much fuel as your average automobile.
According to the linked website (RTFA,) it has a 5 gallon tank of "normal" gasoline. (Which octane rating? Do we care?) My car (and previous ones) hold more like 12 to 14 gallons. And it lists 55 knots, not 55 mph, which according to google is 63 mph (but I'm no good at nautical units, so it might be lying to me and I wouldn't know.) So, with those assumptions, it's 2 hours at 63 mph using 5 gallons of fuel, or 126 miles on 5 gallons = 25 mpg, which is less than I get, but more than many people do. And there's no "city" vs. "highway" difference, is there? (I didn't see whether or not take-off/landing were included in the fuel capacity.)
Just because it has a stamp of approval from a big-name standards organization doesn't at all mean it's viable, though if it's not, it probably does mean that it's already popular in some way and someone wanted a stamp of approval for the sake of having it.
... but we can't say "we don't support HL7 because we think it's stupid" without being laughed at. So you support it. And once you're done with that, you're too tired to go implement another spec that makes more sense, so you do what everyone else does: advertise that your software is HL7-compliant and therefore compatible with "every other major piece of software" in the medical industry (where "major" == "supports HL7", circular logic.)
Like, say, HL7 for medical information exchange. The format sucks (we constantly find ways in which it can't handle the true cardinality of relations, because people assumed way too much)
Sure. It's standard. And approved (ANSI.) And widely used. And it sucks. (And no, moving it to XML in v3 doesn't make it any better.)
3 ... it's a possible violation of the Sherman act (anti-trust), in the area of "tie-in sales".
(example case: this one is about refusing to sell rights to one film unless rights to a whole set of films were bought simultaneously)
Excerpt: "The standard of illegality is that the seller must have "sufficient economic power with respect to the tying product to appreciably restrain free competition in the market for the tied product...." [Northern Pacific R. Co. v. United States, 356 U.S. 1, 6]. Market dominance - some power to control price and to exclude competition - is by no means the only test of whether the seller has the requisite economic power. Even absent a showing of market dominance, the crucial economic power may be inferred from the tying product's desirability to consumers or from uniqueness in its attributes."
I would say that, given the monopoly status of phone / DSL providers, you don't even have to worry about "market dominance" at all -- it's automatic. They're in a position to do "whatever they like", and this is illegal even for companies -not- in a monopoly position. From a discussion of this same law over Windows/IE/WMP, the distinction was also made clear between "cars with tires" (cannot be functionally complete) and "operating system with browser/media player" (can still work, with fewer features) even though in both cases there are separate markets for "chunks" of the item being sold. And that's for a case where the 'extra' is offered for "free", not a "oh, you have to buy this too" clause.
Doesn't "Vacuum" now run without having to take the database offline? As I understand it, that was what was keeping Pg from being truly 24x7. "Sweep" in firebird runs as a background process and -might- slow down the server while it's running, but doesn't prevent anything from happening. I thought that's what Pg had switched to?
... or Firebird with safe-write enabled. There's no appreciable start-up cost even if your db server lost power in the middle of a large transaction. It will reclaim "garbage" space during normal activity as it discovers areas that aren't in use because their transaction got rolled back by the power failure. Handy. (Firebird and PostgreSQL are extremely similar in terms of transactional capabilities; the big difference was SWEEP vs. VACUUM, which apparently Pg took care of in 8.0?)
If you've [sic] wife's on the pill, she might have some questions when the mailman visits that day.
Uh, I guess you don't believe in using multiple (simultaneous) methods of birth control? Not only because shit happens, but as a natural result of equally sharing effort and responsibility?
http://www.scrubbles.net/mead/mead12.html
I came across this a few days ago, seemed vaguely related conceptually.
Correlation is not causation, and even in the case of causation, each consequence has a large number of possible causes. Logically, I can say that it may or may not have anything to do with Jon; it could be coincidence, it could already have been planned, and even if it weren't, it very well could simply be an acceleration of an existing path -- if, as you say, it's weak, and known to be weak, then it won't have the effect you attribute to it. The rest of the industry would only be amazed by Apple's ability (charisma) to use weak DRM and get away with it, not with the technology itself. They would still evolve.
However, you're using an argument that reminds me of someone being bullied. "Shh, don't anger him, or he'll beat us up some more!" If cops start being rude with everyday citizens because they see so much crap in the streets, do you hold them blameless? Oh, sure, the people who give them crap should stop, but not because of the effect it has on you. If I annoy a bully and you get hurt because he's angry, am I directly responsible for your hurt, or is the bully?
Besides. If DRM will never be secure, then you can be sure people like Jon have your best interest in mind -- for every obstacle created by DRM, they'll find a work-around for you. If you believe we should leave well-enough alone so we won't get "real" DRM imposed, you probably also believe DRM is a bad thing. If it's a bad thing, you can work against it, either through the market or the legislature. If you don't think you can have an effect, then why can Jon? If it's a good thing, he's just helping them make it better by testing it and finding flaws. But don't blame Jon.
My rule of thumb for good laws is this: "does this law say it is illegal to maliciously harm someone against their will"? In this case, the existence of the law implies that the ISPs, by -not- offering to filter content for users on demand, are actively hurting people. Are they? At best, I could see filing this as "non-assistance to person in danger" (idly standing by) but that would still require that someone -else- (porn sites) be actively hurting consumers against their will. You generally don't go to porn sites without conscious effort, ergo, you're responsible for winding up there, and responsible for any harm this may cause you (if any, which is, to me, debatable.) Internet access and the "risks" involved, are optional. We're not talking about making sure citizens have access to potable water.
It should not be law. It's a sound basis for product design "hey, users want to browse the web but keep themselves and their kids from actively and/or accidentally coming across porn".
So, what, you think that if nobody circumvents current (flawed) methods, "the industry" obviously won't innovate or fix the holes anyway? We software engineers get bored, tend to be proud of our work, and will likely improve our software even if we're not asked to. Expect DRM to get "better" regardless. But hey, with people like you around, companies implementing better DRM can shift the blame for their "stricter rules" on people like Jon rather than on content duplicators, their own greed, or whatever else might be appropriate.
Corporation A decides not to buy every possible domain name for their products, because it costs too much. Business B buys a domain name that seems available and unencumbered, for their business. Business B has spent money Corporation A couldn't be bothered to spend. Business B then goes on to use the domain name and associate it with their services; they build up a customer base; they rely on having this domain name as part of their advertising, branding, etc. Corporation A then says "oh, look, something related to our name is owned by someone else" and gets it snatched away by the court. Business B is now left without their domain name they worked hard on. Corporation A which probably already had plenty of domain names now has one more, insignificant, domain name, and the added benefit that Business B's customers visit the URL not knowing it's changed ownership. Business B now has to go and start over again, find a new name, build up its customer base again, redo its advertising, etc. and hope, pray to some deity, that the same thing doesn't happen to them again. What this amounts to, via chilling effects, is that companies can "reserve" domain names for free -- everyone will/should be too afraid of litigation to go anywhere near any names that might someday be snatched by someone on shaky grounds. Corporation A can now avoid spending any money on domain names until someone else does, knowing those "undiscovered" domain names out there are theirs regardless of whether or not they pay the appropriate fees ahead of time.
So no, it's not okay in principle.