As you mentioned, it sounds like your old server code needs better logging from a better programmer.
An exception should mean that something crazy happened that the code can't handle, so the managing routine should try to handle it instead. If no managing routine knows how to handle the situation, then it's left to the user.
Since your managing routines can't handle the exceptional circumstance, and your managing staff won't let you install better code, I'll have to say your problem is with the management, not the exceptions. Any error handler can discard (or fail to collect) useful information.
If you're actually seeing #4 in practice, your coworkers need a nice bit of physical re-education.
Each situation you describe has perfectly valid circumstances:
1) Using a "try" on the whole function is suitable on functions where a particular caught exception can only mean one thing. If you're catching a FileNotFound exception, it means the file's missing. It doesn't matter that the error happened while opening the file, or at the first read. The exceptional situation is that the file can't be found. Exactly which call had the exception doesn't matter beyond debugging (for which there's usually extra information in the exception, such as line numbers).
2) Revealing ugly text isn't user-friendly. Rather, it shows that the programmer has no idea what's going on and is putting the burden of debugging on the user. Ideally, the exception handler will first take steps to remedy the situation on its own (config file not found? Use sane defaults and save them for next time!), then log the exception somewhere with only the meaningful parts (such as a module name, line number, and a selection of parameters). Nobody really needs to know the whole stack trace up to main().
3) Sometimes, an empty catch routine is fine, and if it isn't fine a good code audit should notice this anyway. Some errors can be safely discarded, but the code should reflect that they are being willfully ignored, rather than just ignored out of ignorance.
4) Despite my glib comment earlier, there are also cases where blindly retrying a step is the cleanest solution. One example I've seen recently is where a database connection would reveal a timed-out disconnection only upon actually executing statements. The straightforward solution was that if the first statement failed due to a timeout, the connection (which was now in an error state) would be checked again, reconnected, and the statement would be retried.
You should, if you want any hope of really dealing with the error, wrap every call in its own try/catch. I have not ever seen that done...
...because it's a silly idea. Now you're just using exceptions as special return values. Exceptions are not supposed to mean "something went wrong here". They should mean "there's a situation that is so unexpected that I don't know how to handle". It's a different paradigm entirely. The idea is that rather than writing your program to anticipate every possible error (as the mathematicians so loved), the program should instead follow a more practical "hope for the best, plan for the worst" design. Rather than worrying about exactly which byte of a file couldn't be read, the program should just understand that something's wrong with the file, and its contents can't really be trusted.
Then again, how do you handle the system volume suddenly vanishing out from under you? So, perhaps the coarse-grained "golly, it broke, try again later" folks have the right idea.;)
If your program is supposed to run on transient resources (like, for instance, a cluster that has a weak master controller running your program, and the bulk of its processors scheduled to run computation), this should be expected. Perhaps a "system vanished" exception can be raised to signal that in-process calculations should be restarted the next time the system appears, and that previous calculations should be saved in case everything else disappears, too.
Or in other words, it broke and you should prepare to try again later.:)
But even in exception-based languages there is still a lot of code that tests returned values to determine whether to carry on or go down some error-handling path.
The whole idea of exceptions is that you don't need to worry about checking return codes. If you're putting a lot of work into checking return codes for error conditions, then you're working with some ugly code that probably needs refactoring. One place I see this a lot is in Java wrappers around libraries ported from C (or used directly with JNI). Often, to make the documentation and example code line up perfectly, the wrapper returns invalid values for exceptional circumstances rather than just throwing exceptions. This is wrong.
The only code that should be run routinely for error-checking is to see if an exception should be raised. That's fast, only needed once per major function (so you're not re-checking at every minor transformation), and doesn't incur the cost of exceptions unless they're actually raised (which should be fairly rare, as they're exceptional).
Mom: "Outside the Word thing?" (by which she means the page view, or text area, or whatever context she was working in at the time)
Me: "Yes. All the way over to the left, past everything, to the very edge of your screen. Go left until you can't go any more, then try to go past that."
Mom: "Oh, there it is, okay. I've got it now."
Without a visible target, minor confusion becomes a major problem.
Loan guarantees like the one A123 got totalled $90 billion in the "stimulus" bill passed in 2009.
Not quite. A123's loan guarantee (totaling only $17 million, with an "m") came from the Department Of Energy, not directly through the stimulus bill. The DoE has extended about $34 billion in loan guarantees (of which only a small amount is actually expected to be paid out). A thorough analysis of the program is quite an interesting read.
The best source I can find for the quoted $90 billion is the total cost ($88 billion) for "purchases of goods and services" which included a number of other programs as well as funding the DoE loan guarantees. Note that the entirety of A123's loan, had the guarantee been paid, is about 1% of the rounding error.
Government sticking its thumb on the scales of the economy is always a bad idea--whether it be bailing out banks or perpetual ethanol subsidies + ethanol mandates + import tariffs.
That's the whole point of government, though. As I've said before, humans suck. We're terribly biased and selfish. Left to our own devices, we'll kill each other over
trivial matters, because we really don't care about anything beyond our local community. That's just how our brains have evolved. Sure, philosophically we can consider the notion of loving everybody and being nice, but that's not our instinct. We have to work for it.
That's where government comes in. Government is an abstraction that gives us an excuse to make policies based in philosophy, rather than just what we want at the time. If a politician thinks a big farming industry is really good in the long run, they'll support a subsidy, even if that means higher taxes right now. Since the policies are just abstract ideas to the politicians, rather than actual food disappearing from their dinner table, the politicians' human brains can make a less-biased decision based on the information they're given.
Of course, now it's that information that can be tainted by need and greed. Each politician thinks they're doing what's best, and voting for what will most help their constituents. This is why it's important to communicate with your representatives about issues you're knowledgeable about, and double-check your facts. Of course, since all humans are biased to believe that their opinions are objectively right, the burden's on you to provide enough proof to make a convincing argument.
"Okay, mom, move your mouse over to that power symbol on the bottom right. Yes, the circle with a line, just like on your electric blanket. Click that. Good. Yes, you want to click the "shut down" button."
(rough transcript of a conversation with my mother, who now runs Xubuntu (though she doesn't know it... it's that computer that only does "Internet browsing" and doesn't get viruses))
In short, yes, there's always been this much, but it's mixed with heavy doses of support from the "I want something for nothing", "Big Media is killing us" and "gub'mint is bad" crowds.
And yet, he's absolutely honest and correct. Any marketing spin would be slightly dishonest and manipulative, and he won't stand for that.
Humans are biased to our own detriment. We'll take immediate payoff (the "convenient features") over a bigger long-term benefit (Linux's flexibility). We'll trust recommendations ("pressure") from authorities as being absolute, rather than re-evaluating solutions to find what's best for us. When surrounded by others doing something, we'll assume that we must do the same (allowing the "network effect")
Humans just suck. Not saying that outright is being nice.
They could just be realistic about their own future on Earth.
Everybody dies sometime. If someone is willing to sever (or strain) their ties to Earth for the chance to advance mankind, why should that choice be suspect?
To be, or not to be: that is the question:
Whether 'tis nobler in the mind to suffer
The slings and arrows of outrageous fortune,
Or to take arms against a sea of troubles,
And by opposing end them?
Suicide is rarely malicious. A suicidal mind is usually either concerned with escaping its own problems, or preventing further harm to others. To leave Earth accomplishes both objectives, with the added bonus of contributing to human knowledge. For someone with no cherished ties to their present life, why do you suspect a mental defect or deficiency when they choose to explore the harsh frontier of another world over spending their days shuffling papers in an office?
One of the threats I expect to see more of is in the vein of Ken Thompson's hack, where a compiler (or any other build tool) hosts a trojan and infects other programs it compiles (or links, assembles, etc.) practically undetectably. With open-source software taking an ever-more-vital role in the Internet's core systems, will this kind of attack be easier to detect (perhaps due to the widespread availability of still-clean compilers), or more difficult (perhaps due to the wide network of trusted developers)?
"Calling things stuff" is necessary for understanding. "Asperger's Syndrome" makes a good name for something we didn't understand. Now that we understand a little more about it, we find that it already has a name: autism.
If anything, this improves the ability to clear up misunderstandings. Under the proper name, research funding for all autism can be more easily applied to formerly-Asperger's as well, and vice versa. We know now that the two terms are really just different severities of the same condition, so we don't need to duplicate all the research. It doesn't meat that all research will stop, or that myths will be allowed to continue unchecked.
A more apt comparison is that we no longer look for brontosaurus fossils.
Patent # 6,742,087: "Oxidative process for exchange of atmosphere across a membrane."
You all owe me everything you've ever earned.
Well, that depends entirely on the claims. What exactly is the "oxidative process" you've patented, and what part of the process would not be obvious to someone skilled in the art of biochemistry?
This patent thing is getting to the silly point. The original idea was that by making some ideas owned by certain parties, you would force others to innovate around them.
No, the original idea was to create an economic incentive to solve one's own design problems, rather than just waiting for someone else to do the hard work, then copying their result cheaply.
In the grand Slashdot tradition of bad analogies, consider a school where cheating on exams is forbidden, but students are allowed to openly sell their answers for whatever price they want. Now there's a financial motivation for a student to do their own work first, and sell it off. Of course, there are bullies trying to get something for nothing through sheer force, and there are also manipulators who will make false accusations to screw over someone else.
But that doesn't really apply when we're talking about a standard (Wi-Fi) on a standard type of device (PDA).
Okay. Now implement the standard RFC 1149 on a cell phone. When you figure out how to fit the tiny birdcages into the phone, breed the tiny pigeons, and train them to seek a particular mobile device rather than their home, let me know. Since it's just combining two standards, surely it's not a problem if I copy the solution?
At that point, we're just holding ourselves back.
What's holding our technology back isn't the patent system. It's the abuse of combining patents and standards, with different license terms to different manufacturers of "standard" devices. What I'd like to see are reduced patent terms, based on the time-to-market for different industries. Software, for example, may only have a patent life of five years, because after that time the state of the art will have moved on, and the old program is obsolete. I'd also like to see a requirement for any patented standard to have a fixed license fee. If your technology becomes part of a published standard, you must allow licensing at a flat per-copy rate that is open for alteration by a suitable judge.
An obvious plug, but I did take a look at it when I saw your first post. An interesting concept I might just have to play with later...
...it would seem the product would at least have to "phone home"...
That's the core of most modern DRM. Through some secret mechanism, the program computes a key, which is sent back to the vendor to see if it's allowed to run. If the computer doesn't have Internet access, either the program doesn't run, or the user has to pick up the phone and make the call himself. That means the vendor needs more servers, databases, security, and phone operators to support the DRM. Of course this can be outsourced to a DRM vendor, but then the program's continued operation relies on a third party.
Simple bypasses include setting up a server to hijack the authentication request and send the appropriate response to always allow the program to run.
You're asking vague questions, so I can give only vague (but hopefully useful) answers.
if a game doesn't have DRM, does that mean you can copy the folder to another HD, and the game will still work?
By "copy the folder", I assume you mean copying the already-installed game folder. In theory, this should work fine. In practice, you're gambling. The game may have generated configuration files or registry entries that include absolute paths, so those will still point to the old location. If that old location is ever deleted, the game may simply stop working.
If you're referring to copying the installer, it also depends on the program. I've encountered an installer that really wanted to be installed from the first optical device in the computer, not so much for copy protection, but to find the files it needed to copy from the CD. We'll not discuss the design implications here.
In short, in an ideal world with developers that care about writing clean and portable programs, you could copy and move the game in any form wherever you wanted, and everything would be fine. Is the real world, though, I can only wish you good luck.
Is password protection a weak form of DRM, or not DRM at all?
That depends on who you ask:
Ask a mathematician, and there is no such thing as "DRM", because it's all provably breakable, and therefore reducible to nothing.
Ask a publisher, and a password is a weak form of DRM that is really just there to discourage casual sharing, without requiring expensive development and infrastructure.
Ask a lawyer, and he'll tell you that it may or may not be DRM (as referred to by the DMCA), because while it could be argued that it is a "copy-prevention mechanism", it's also arguably trivial enough that sharing the password is not really bypassing or disabling as the DMCA covers.
In short, a password is a weak attempt at DRM that doesn't really do the job.
It wouldn't be an expense, because the business wouldn't be spending money on it. A family can spend much more on nonessentials than it saves. A business normally wouldn't be doing that (though I have heard of some failed businesses that used to throw great parties).
Now you're the one comparing apples and oranges. When I talk about a family saving an average $150 each month, that's net income. That's after all expenses, including setting money aside for vacations, entertainment, and anything else. That's building a safety net for later years where the family loses money.
Businesses can and do often spend more on non-operational expenses than their net income. For example, a startup will often spend a lot in purchasing office amenities, while having no profit. An established company may issue dividends to shareholders, raising its value as an investment vehicle rather than building up savings. While certainly not a part of the immediate cost of the core business, such investments can lead to higher profit in the long run.
...And I see you didn't think about how much HP paid for either.
Thinking about what HP paid is the whole point of this thread! Thinking "oh my god, that's so many dollars!" is a red herring, distracting from the relevant figures. HP spent about 7% of their assets on Autonomy, and about 2% on 3PAR. Yes, it's billions of dollars. Yes, that's a lot of money to individuals, but it's just a mundane investment for HP. My personal investments can change by that much monthly.
Autonomy's problems wouldn't be an issue, if HP had paid far less for Autonomy than it did. The same goes for 3PAR.
Quite the opposite. Regardless of what HP paid, fraud is still fraud, and that it succeeded means somebody wasn't doing their due diligence properly. That's why it's a big deal. Autonomy's actual financial problems aren't currently "an issue", but the attempts to hide the problems from HP are. Similarly, 3PAR is losing money, but it's not an issue because they aren't hiding that fact.
The problem here is that you are comparing apples and oranges. Many of a household's expenses, particularly for vacations and entertainment, would instead be profit in a business.
Yet again, I'll ask for a source for this. Businesses don't get to just write off expenses as profit. Company outings (like taking the whole company to an amusement park) and recreation facilities (like the purchase of an XBox for the office) are recorded as non-operational expenses, and are deducted from gross income (along with other expenses) to produce the net income figure.
3PAR.
...looks like it was well-researched, and has some technology that fits well with HP's offerings. Though the company's lost money in recent years, it has plenty of assets to spare. In the current economy, with IT departments being held back, it's reasonable that a SAN company will see losses. Amazingly, last time I was unemployed, I lost money, too!
The $150 per month plus the entertainment budget, plus all the other nonessentials that this family picked up.
I'm still not clear what you're getting at. Net income plus non-operational expenses gives you an indication of how much discretionary budget the entity had, but that's not a particularly useful figure. Do you expect that every cent of a company's income will go toward operating expenses, and that every cent of a family's income goes toward food and rent? Do you expect the family to operate under a rule where there can be no entertainment until the cost of the car is saved up again?
Note again the definition of "net income": it's the income after all expenses have been deducted. It's the figure reported as "profit" for a company, and "savings" for the family. It's a more useful figure than the discretionary budget, because discretionary items are often investments for improving future incomes. Autonomy's technology could open new business channels for HP, and a new car could mean access to a better job.
Even seemingly unrelated things can be investments. By going to a movie twice a month, the family breadwinners can be more relaxed, making them better at their job, leading to future raises. Since the movies are now essential to the income, that excludes them from the "nonessential" part, right? What about a kid's school supplies? Are they essential? Similarly, offering a bonus to managers whose departments reduce expenses may cost more up front, but in the long run can improve profits.
Tracing back your argument, my best guess is that you think this bad deal will somehow impact the availability of funds for HP's operations next year, but that's not how business works. They have $109 billion in assets. A $9 billion hit will reduce their liquidity somewhat, but they can still take out short-term loans to make up for that, if needed. It's not like they're suddenly missing $9 billion that they desperately need to survive.
Again, for comparison, the equivalent to HP's loss is a family with $40,000 in available assets taking a $3,500 loss. They'll still have food next year, and still be able to take vacations. They just have less assets sitting around.
Given that they do indicate a tendency for future losses, then it must matter.
[citation needed], again. There's no sign that HP's going to make poorly-researched acquisitions next year. They didn't in 2010, either.
Include everything that's not a cost of running a family, like two years of that family's entertainment and vacation budgets as well. Your $3500 bad car deal is now more like a bad house deal in the tens of thousands of dollars. As you note, it is recoverable in isolation.
This doesn't make sense. Where do the extra thousands of dollars go? $3500 buys $3500 in goods, whether that's a useless car, entertainment, a vacation, or baguettes. If buying the car means that the family can't go on a vacation next year, that doesn't suddenly increase the loss.
The $150 is the proportional monthly net income of the analogous family. That's after all committed expenses, with the exact definition left up to the family. The point is that every month, the family's bank balance goes up by about $150 with no set plans on how to spend that money.
But now consider that this is merely the latest in costly misteps from HP who has been fumbling for more than a decade now.
[citation needed]. Until 2012, HP's earnings were steadily increasing for the past five years.
What else did HP hide in that loss? Keep in mind that Autonomy allegedly only resulted in $9 billion losses out of almost $11 billion. There's more where that came from just in this quarter.
From a financial standpoint, it doesn't matter, as long as the losses now don't indicate future losses. That's the only reason why anybody's paying attention to the Autonomy deal. If it was obvious that the company was engaging in accounting fraud, somebody who was a part of the due diligence was negligent, and might cause similar problems in the future.
Companies lose money all the time, even in the billions of dollars. It's not a big deal unless it's fraudulent, in which case it's the fraud that's the problem, not the dollar value.
Alright, let's look at net income, and I'll make the same comparison.
HP losing $8.8 billion is like a middle-class family, who usually saves about $150/month, losing $3500 on a bad car deal. It sucks, and it'll take a few years to recover from, but it's not bad enough to warrant panic and disgust and accusations of intentional mismanagement. That's the same point I've been claiming through this whole thread.
Somebody at HP didn't do their research well enough, and somebody at Autonomy apparently tried to hide their problems. Somebody (ideally the same somebodies, but likely not) will lose their job(s) over this. Proportionally, this damage is still only "serious improprieties".
Funny you should mention that. My name was originally "Sarten", which is a Spanish term for "frying pan". The "X" got tacked on later as part of a late-night IRC conversation gone awry, and it's stayed there.
Not that you're one to question odd nicknames, Mr. E.
As you mentioned, it sounds like your old server code needs better logging from a better programmer.
An exception should mean that something crazy happened that the code can't handle, so the managing routine should try to handle it instead. If no managing routine knows how to handle the situation, then it's left to the user.
Since your managing routines can't handle the exceptional circumstance, and your managing staff won't let you install better code, I'll have to say your problem is with the management, not the exceptions. Any error handler can discard (or fail to collect) useful information.
If you're actually seeing #4 in practice, your coworkers need a nice bit of physical re-education.
Each situation you describe has perfectly valid circumstances:
1) Using a "try" on the whole function is suitable on functions where a particular caught exception can only mean one thing. If you're catching a FileNotFound exception, it means the file's missing. It doesn't matter that the error happened while opening the file, or at the first read. The exceptional situation is that the file can't be found. Exactly which call had the exception doesn't matter beyond debugging (for which there's usually extra information in the exception, such as line numbers).
2) Revealing ugly text isn't user-friendly. Rather, it shows that the programmer has no idea what's going on and is putting the burden of debugging on the user. Ideally, the exception handler will first take steps to remedy the situation on its own (config file not found? Use sane defaults and save them for next time!), then log the exception somewhere with only the meaningful parts (such as a module name, line number, and a selection of parameters). Nobody really needs to know the whole stack trace up to main().
3) Sometimes, an empty catch routine is fine, and if it isn't fine a good code audit should notice this anyway. Some errors can be safely discarded, but the code should reflect that they are being willfully ignored, rather than just ignored out of ignorance.
4) Despite my glib comment earlier, there are also cases where blindly retrying a step is the cleanest solution. One example I've seen recently is where a database connection would reveal a timed-out disconnection only upon actually executing statements. The straightforward solution was that if the first statement failed due to a timeout, the connection (which was now in an error state) would be checked again, reconnected, and the statement would be retried.
You should, if you want any hope of really dealing with the error, wrap every call in its own try/catch. I have not ever seen that done...
...because it's a silly idea. Now you're just using exceptions as special return values. Exceptions are not supposed to mean "something went wrong here". They should mean "there's a situation that is so unexpected that I don't know how to handle". It's a different paradigm entirely. The idea is that rather than writing your program to anticipate every possible error (as the mathematicians so loved), the program should instead follow a more practical "hope for the best, plan for the worst" design. Rather than worrying about exactly which byte of a file couldn't be read, the program should just understand that something's wrong with the file, and its contents can't really be trusted.
Then again, how do you handle the system volume suddenly vanishing out from under you? So, perhaps the coarse-grained "golly, it broke, try again later" folks have the right idea. ;)
If your program is supposed to run on transient resources (like, for instance, a cluster that has a weak master controller running your program, and the bulk of its processors scheduled to run computation), this should be expected. Perhaps a "system vanished" exception can be raised to signal that in-process calculations should be restarted the next time the system appears, and that previous calculations should be saved in case everything else disappears, too.
Or in other words, it broke and you should prepare to try again later. :)
But even in exception-based languages there is still a lot of code that tests returned values to determine whether to carry on or go down some error-handling path.
The whole idea of exceptions is that you don't need to worry about checking return codes. If you're putting a lot of work into checking return codes for error conditions, then you're working with some ugly code that probably needs refactoring. One place I see this a lot is in Java wrappers around libraries ported from C (or used directly with JNI). Often, to make the documentation and example code line up perfectly, the wrapper returns invalid values for exceptional circumstances rather than just throwing exceptions. This is wrong.
The only code that should be run routinely for error-checking is to see if an exception should be raised. That's fast, only needed once per major function (so you're not re-checking at every minor transformation), and doesn't incur the cost of exceptions unless they're actually raised (which should be fairly rare, as they're exceptional).
Mom: "Well I go left and nothing happens"
Me: "All the way left?"
Mom: "Yes. Nothing happened."
Me: "Keep going further left.
Mom: "Outside the Word thing?" (by which she means the page view, or text area, or whatever context she was working in at the time)
Me: "Yes. All the way over to the left, past everything, to the very edge of your screen. Go left until you can't go any more, then try to go past that."
Mom: "Oh, there it is, okay. I've got it now."
Without a visible target, minor confusion becomes a major problem.
Loan guarantees like the one A123 got totalled $90 billion in the "stimulus" bill passed in 2009.
Not quite. A123's loan guarantee (totaling only $17 million, with an "m") came from the Department Of Energy, not directly through the stimulus bill. The DoE has extended about $34 billion in loan guarantees (of which only a small amount is actually expected to be paid out). A thorough analysis of the program is quite an interesting read.
The best source I can find for the quoted $90 billion is the total cost ($88 billion) for "purchases of goods and services" which included a number of other programs as well as funding the DoE loan guarantees. Note that the entirety of A123's loan, had the guarantee been paid, is about 1% of the rounding error.
Government sticking its thumb on the scales of the economy is always a bad idea--whether it be bailing out banks or perpetual ethanol subsidies + ethanol mandates + import tariffs.
That's the whole point of government, though. As I've said before, humans suck. We're terribly biased and selfish. Left to our own devices, we'll kill each other over trivial matters, because we really don't care about anything beyond our local community. That's just how our brains have evolved. Sure, philosophically we can consider the notion of loving everybody and being nice, but that's not our instinct. We have to work for it.
That's where government comes in. Government is an abstraction that gives us an excuse to make policies based in philosophy, rather than just what we want at the time. If a politician thinks a big farming industry is really good in the long run, they'll support a subsidy, even if that means higher taxes right now. Since the policies are just abstract ideas to the politicians, rather than actual food disappearing from their dinner table, the politicians' human brains can make a less-biased decision based on the information they're given.
Of course, now it's that information that can be tainted by need and greed. Each politician thinks they're doing what's best, and voting for what will most help their constituents. This is why it's important to communicate with your representatives about issues you're knowledgeable about, and double-check your facts. Of course, since all humans are biased to believe that their opinions are objectively right, the burden's on you to provide enough proof to make a convincing argument.
"Okay, mom, move your mouse over to that power symbol on the bottom right. Yes, the circle with a line, just like on your electric blanket. Click that. Good. Yes, you want to click the "shut down" button."
(rough transcript of a conversation with my mother, who now runs Xubuntu (though she doesn't know it... it's that computer that only does "Internet browsing" and doesn't get viruses))
In short, yes, there's always been this much, but it's mixed with heavy doses of support from the "I want something for nothing", "Big Media is killing us" and "gub'mint is bad" crowds.
And yet, he's absolutely honest and correct. Any marketing spin would be slightly dishonest and manipulative, and he won't stand for that.
Humans are biased to our own detriment. We'll take immediate payoff (the "convenient features") over a bigger long-term benefit (Linux's flexibility). We'll trust recommendations ("pressure") from authorities as being absolute, rather than re-evaluating solutions to find what's best for us. When surrounded by others doing something, we'll assume that we must do the same (allowing the "network effect")
Humans just suck. Not saying that outright is being nice.
Well put, sir (or madam).
...and me without my mod points...
They could just be realistic about their own future on Earth.
Everybody dies sometime. If someone is willing to sever (or strain) their ties to Earth for the chance to advance mankind, why should that choice be suspect?
To be, or not to be: that is the question:
Whether 'tis nobler in the mind to suffer
The slings and arrows of outrageous fortune,
Or to take arms against a sea of troubles,
And by opposing end them?
Suicide is rarely malicious. A suicidal mind is usually either concerned with escaping its own problems, or preventing further harm to others. To leave Earth accomplishes both objectives, with the added bonus of contributing to human knowledge. For someone with no cherished ties to their present life, why do you suspect a mental defect or deficiency when they choose to explore the harsh frontier of another world over spending their days shuffling papers in an office?
I'm not sure who's winning, but the users are losing.
One of the threats I expect to see more of is in the vein of Ken Thompson's hack, where a compiler (or any other build tool) hosts a trojan and infects other programs it compiles (or links, assembles, etc.) practically undetectably. With open-source software taking an ever-more-vital role in the Internet's core systems, will this kind of attack be easier to detect (perhaps due to the widespread availability of still-clean compilers), or more difficult (perhaps due to the wide network of trusted developers)?
"Calling things stuff" is necessary for understanding. "Asperger's Syndrome" makes a good name for something we didn't understand. Now that we understand a little more about it, we find that it already has a name: autism.
If anything, this improves the ability to clear up misunderstandings. Under the proper name, research funding for all autism can be more easily applied to formerly-Asperger's as well, and vice versa. We know now that the two terms are really just different severities of the same condition, so we don't need to duplicate all the research. It doesn't meat that all research will stop, or that myths will be allowed to continue unchecked.
A more apt comparison is that we no longer look for brontosaurus fossils.
You make a good point. I don't recall any Speedo-wearing whales at the Florida beaches...
...That actually wasn't supposed to be the inflammatory part. Give me a break; I haven't gotten my coffee yet.
200 pounds is enough to easily break a phone in one's back pocket. Americans are just dumb enough to do it repeatedly.
A bendable phone is a killer feature, because it prevents the damage from a 200-pound American sitting on a slab of glass.
Patent # 6,742,087: "Oxidative process for exchange of atmosphere across a membrane."
You all owe me everything you've ever earned.
Well, that depends entirely on the claims. What exactly is the "oxidative process" you've patented, and what part of the process would not be obvious to someone skilled in the art of biochemistry?
This patent thing is getting to the silly point. The original idea was that by making some ideas owned by certain parties, you would force others to innovate around them.
No, the original idea was to create an economic incentive to solve one's own design problems, rather than just waiting for someone else to do the hard work, then copying their result cheaply.
In the grand Slashdot tradition of bad analogies, consider a school where cheating on exams is forbidden, but students are allowed to openly sell their answers for whatever price they want. Now there's a financial motivation for a student to do their own work first, and sell it off. Of course, there are bullies trying to get something for nothing through sheer force, and there are also manipulators who will make false accusations to screw over someone else.
But that doesn't really apply when we're talking about a standard (Wi-Fi) on a standard type of device (PDA).
Okay. Now implement the standard RFC 1149 on a cell phone. When you figure out how to fit the tiny birdcages into the phone, breed the tiny pigeons, and train them to seek a particular mobile device rather than their home, let me know. Since it's just combining two standards, surely it's not a problem if I copy the solution?
At that point, we're just holding ourselves back.
What's holding our technology back isn't the patent system. It's the abuse of combining patents and standards, with different license terms to different manufacturers of "standard" devices. What I'd like to see are reduced patent terms, based on the time-to-market for different industries. Software, for example, may only have a patent life of five years, because after that time the state of the art will have moved on, and the old program is obsolete. I'd also like to see a requirement for any patented standard to have a fixed license fee. If your technology becomes part of a published standard, you must allow licensing at a flat per-copy rate that is open for alteration by a suitable judge.
My very OpalCalc program...
An obvious plug, but I did take a look at it when I saw your first post. An interesting concept I might just have to play with later...
...it would seem the product would at least have to "phone home"...
That's the core of most modern DRM. Through some secret mechanism, the program computes a key, which is sent back to the vendor to see if it's allowed to run. If the computer doesn't have Internet access, either the program doesn't run, or the user has to pick up the phone and make the call himself. That means the vendor needs more servers, databases, security, and phone operators to support the DRM. Of course this can be outsourced to a DRM vendor, but then the program's continued operation relies on a third party.
Simple bypasses include setting up a server to hijack the authentication request and send the appropriate response to always allow the program to run.
Someone clarify for me
You're asking vague questions, so I can give only vague (but hopefully useful) answers.
if a game doesn't have DRM, does that mean you can copy the folder to another HD, and the game will still work?
By "copy the folder", I assume you mean copying the already-installed game folder. In theory, this should work fine. In practice, you're gambling. The game may have generated configuration files or registry entries that include absolute paths, so those will still point to the old location. If that old location is ever deleted, the game may simply stop working.
If you're referring to copying the installer, it also depends on the program. I've encountered an installer that really wanted to be installed from the first optical device in the computer, not so much for copy protection, but to find the files it needed to copy from the CD. We'll not discuss the design implications here.
In short, in an ideal world with developers that care about writing clean and portable programs, you could copy and move the game in any form wherever you wanted, and everything would be fine. Is the real world, though, I can only wish you good luck.
Is password protection a weak form of DRM, or not DRM at all?
That depends on who you ask:
In short, a password is a weak attempt at DRM that doesn't really do the job.
It wouldn't be an expense, because the business wouldn't be spending money on it. A family can spend much more on nonessentials than it saves. A business normally wouldn't be doing that (though I have heard of some failed businesses that used to throw great parties).
Now you're the one comparing apples and oranges. When I talk about a family saving an average $150 each month, that's net income. That's after all expenses, including setting money aside for vacations, entertainment, and anything else. That's building a safety net for later years where the family loses money.
Businesses can and do often spend more on non-operational expenses than their net income. For example, a startup will often spend a lot in purchasing office amenities, while having no profit. An established company may issue dividends to shareholders, raising its value as an investment vehicle rather than building up savings. While certainly not a part of the immediate cost of the core business, such investments can lead to higher profit in the long run.
...And I see you didn't think about how much HP paid for either.
Thinking about what HP paid is the whole point of this thread! Thinking "oh my god, that's so many dollars!" is a red herring, distracting from the relevant figures. HP spent about 7% of their assets on Autonomy, and about 2% on 3PAR. Yes, it's billions of dollars. Yes, that's a lot of money to individuals, but it's just a mundane investment for HP. My personal investments can change by that much monthly.
Autonomy's problems wouldn't be an issue, if HP had paid far less for Autonomy than it did. The same goes for 3PAR.
Quite the opposite. Regardless of what HP paid, fraud is still fraud, and that it succeeded means somebody wasn't doing their due diligence properly. That's why it's a big deal. Autonomy's actual financial problems aren't currently "an issue", but the attempts to hide the problems from HP are. Similarly, 3PAR is losing money, but it's not an issue because they aren't hiding that fact.
The problem here is that you are comparing apples and oranges. Many of a household's expenses, particularly for vacations and entertainment, would instead be profit in a business.
Yet again, I'll ask for a source for this. Businesses don't get to just write off expenses as profit. Company outings (like taking the whole company to an amusement park) and recreation facilities (like the purchase of an XBox for the office) are recorded as non-operational expenses, and are deducted from gross income (along with other expenses) to produce the net income figure.
3PAR.
...looks like it was well-researched, and has some technology that fits well with HP's offerings. Though the company's lost money in recent years, it has plenty of assets to spare. In the current economy, with IT departments being held back, it's reasonable that a SAN company will see losses. Amazingly, last time I was unemployed, I lost money, too!
The $150 per month plus the entertainment budget, plus all the other nonessentials that this family picked up.
I'm still not clear what you're getting at. Net income plus non-operational expenses gives you an indication of how much discretionary budget the entity had, but that's not a particularly useful figure. Do you expect that every cent of a company's income will go toward operating expenses, and that every cent of a family's income goes toward food and rent? Do you expect the family to operate under a rule where there can be no entertainment until the cost of the car is saved up again?
Note again the definition of "net income": it's the income after all expenses have been deducted. It's the figure reported as "profit" for a company, and "savings" for the family. It's a more useful figure than the discretionary budget, because discretionary items are often investments for improving future incomes. Autonomy's technology could open new business channels for HP, and a new car could mean access to a better job.
Even seemingly unrelated things can be investments. By going to a movie twice a month, the family breadwinners can be more relaxed, making them better at their job, leading to future raises. Since the movies are now essential to the income, that excludes them from the "nonessential" part, right? What about a kid's school supplies? Are they essential? Similarly, offering a bonus to managers whose departments reduce expenses may cost more up front, but in the long run can improve profits.
Tracing back your argument, my best guess is that you think this bad deal will somehow impact the availability of funds for HP's operations next year, but that's not how business works. They have $109 billion in assets. A $9 billion hit will reduce their liquidity somewhat, but they can still take out short-term loans to make up for that, if needed. It's not like they're suddenly missing $9 billion that they desperately need to survive.
Again, for comparison, the equivalent to HP's loss is a family with $40,000 in available assets taking a $3,500 loss. They'll still have food next year, and still be able to take vacations. They just have less assets sitting around.
Given that they do indicate a tendency for future losses, then it must matter.
[citation needed], again. There's no sign that HP's going to make poorly-researched acquisitions next year. They didn't in 2010, either.
Include everything that's not a cost of running a family, like two years of that family's entertainment and vacation budgets as well. Your $3500 bad car deal is now more like a bad house deal in the tens of thousands of dollars. As you note, it is recoverable in isolation.
This doesn't make sense. Where do the extra thousands of dollars go? $3500 buys $3500 in goods, whether that's a useless car, entertainment, a vacation, or baguettes. If buying the car means that the family can't go on a vacation next year, that doesn't suddenly increase the loss.
The $150 is the proportional monthly net income of the analogous family. That's after all committed expenses, with the exact definition left up to the family. The point is that every month, the family's bank balance goes up by about $150 with no set plans on how to spend that money.
But now consider that this is merely the latest in costly misteps from HP who has been fumbling for more than a decade now.
[citation needed]. Until 2012, HP's earnings were steadily increasing for the past five years.
What else did HP hide in that loss? Keep in mind that Autonomy allegedly only resulted in $9 billion losses out of almost $11 billion. There's more where that came from just in this quarter.
From a financial standpoint, it doesn't matter, as long as the losses now don't indicate future losses. That's the only reason why anybody's paying attention to the Autonomy deal. If it was obvious that the company was engaging in accounting fraud, somebody who was a part of the due diligence was negligent, and might cause similar problems in the future.
Companies lose money all the time, even in the billions of dollars. It's not a big deal unless it's fraudulent, in which case it's the fraud that's the problem, not the dollar value.
Alright, let's look at net income, and I'll make the same comparison.
HP losing $8.8 billion is like a middle-class family, who usually saves about $150/month, losing $3500 on a bad car deal. It sucks, and it'll take a few years to recover from, but it's not bad enough to warrant panic and disgust and accusations of intentional mismanagement. That's the same point I've been claiming through this whole thread.
Somebody at HP didn't do their research well enough, and somebody at Autonomy apparently tried to hide their problems. Somebody (ideally the same somebodies, but likely not) will lose their job(s) over this. Proportionally, this damage is still only "serious improprieties".
Funny you should mention that. My name was originally "Sarten", which is a Spanish term for "frying pan". The "X" got tacked on later as part of a late-night IRC conversation gone awry, and it's stayed there.
Not that you're one to question odd nicknames, Mr. E.