There's a widespread belief in IT that test code and UI are easier than other coding tasks.
It's completely false. Both are harder than other coding tasks. Your senior devs tell you to assign these projects to junior devs because they don't want to do them. They don't want to do them because they're much harder than other coding tasks.
It's win-win for the senior devs: they get easier work, and when the junior devs struggle, it makes the senior devs look even better. "oh, man, they can't even write a test suite. Well, I guess I should get the big bonus this year."
Put your best devs on test and UI. Put your junior devs on the simple stuff: backend work.
It's freaking horrible for US residents, as well. I just want to buy a service, I don't want to try to work through the calculus of how well the driver performed, how much I value it, how much the driver deserves, and how much social aggression I'll face if the driver thinks they've been shorted. I just need a ride. I don't need a passive-aggressive douche pressuring me to tip well on my way to the airport.
Completely disagree. I worked over a decade in the valley, and have now worked for several years in academia. The amount of bureaucratic nonsense I have to deal with now is a few orders of magnitude smaller than what went on in the corporate world. My first six months in academia were more productive than my last six years in the private sector.
Academia does not have the cash required to sustain a large bureaucracy. It's simply not there. Technologies that, in the corporate world, would be managed by a team of thirty people, in academia are managed by one person, because that's all they can afford. Things that took months, or years, now take hours, or days. It could not be more starkly different.
I can't believe anyone is taking this seriously. Every valley company claims to hire only the best. It's marketing bs that upper management sells to themselves, and to gullible new hires. They've been doing this for decades.
Lisp programmers don't engage in "parenthesis counting". They read it by indent, like python, and the editor does the counting.
I'm working in both lisp and python at the moment, and it makes me dislike python more every day. Invariably, the allegedly readable, convenient syntax hurts more than it helps.
There's complexity that comes with the problem domain. Then there's "incidental" complexity that comes with your choice of tools. For example, languages without garbage collection have more incidental complexity than languages with garbage collection: without GC, you spend a lot of time manually solving the problem of managing memory resources.
OO introduces a lot of incidental complexity. That's the point. It's clear, since he mentions some function programming languages, that he believes FP introduces less incidental complexity. I think that's exactly right.
You're wrong about the alternatives. JVM based languages have the same libraries as java available, by definition. Check out clojure. A good place to start is the Rich Hickey videos on infoq.com.
Virtually nothing will protect you from people who have access to your desk. It takes only seconds to install a trojan: less time than the time-out on your password-protected screen saver. You're vulnerable unless you explicitly turn it on every time you leave your desk. Usb key loggers are easy to install and conceal, as are web cams that can watch you typing your passwords. If your cpu chassis is accessible after you leave for the day, an attacker can install a trojan even if you are methodical about locking your desktop. Whole-disk encryption can help. But who goes to all these lengths? Physical access trumps all.
I use a laptop, and lock it in a drawer when it's not in my possession. But I don't imagine that I'm invulnerable.
But you're ignoring the other RESULTS you'll accidentally succeed in achieving, viz. teaching the kid that remuneration is the only acceptable form of reward. [...] Personally, I'm interested in intelligent, creative kids - writers, poets, scientists, kids with real curiosity who want to do things because they love to do them, because the problem fascinates them, because they want to KNOW, goddamnit.
Well, surely you aren't suggesting that forcing kids to do schoolwork for no pay -- the status quo -- is somehow more likely to turn them into writers/poets/scientists than paying them to do schoolwork. So what's your alternative?
I wonder why you think that wouldn't be suggested ("surely"), considering that's exactly what research shows. Extrinsic motivators de-motivate student interest in the subjects being taught. The larger the extrinsic motivator, the less interested the student is in the subject when that motivator is removed. This is a plan for creating students who hate the subjects being taught.
California isn't half so liberal as you apparently believe it is. While the legislature is dominated by Democrats, there is a very strong Republican political machine in the state that's able to deadlock the legislative process. They've also elected quite a few governors, Nixon, Reagan, Wilson. The state school board is rather conservative. Overall, it looks a lot like Washington does now: the Dems, though in the majority, are ineffective. The Republicans are obstructionist. The policies that are implemented are not strongly liberal.
I have a Verizon phone. The platform could not be more locked-down. Nonetheless, app developers seem to be completely overwhelmed by the variety of devices on this completely locked platform. Only a handful of devices are supported by any given application, and the support is complicated by incompatible OS upgrades. In fact, Verizon is unable to give a consistent answer when asked what is the latest OS version for my phone. While the phone randomly crashes when using different apps, I'm shuttled between Verizon and the developers looking for a resolution, and no one can agree on what OS version should work.
At least with an open system there would be a final recourse: I could look at the damn code myself, and directly experiment with possible solutions.
If you interact with anyone who does not value privacy then your efforts are wasted. They can also expose your data. This is how facebook is able to know who your friends are even if you've never had a facebook account, or given them a single piece of data: they can mine the contact lists of people who have willingly exposed theirs. If you appear on any of them, facebook can start building a profile of you.
Unless you're living without human contact, you will be profiled in a database somewhere.
I felt the same way until I watched Douglas Crockford's videos on javascript. If you hate javascript, you're doing it wrong. I now prefer it to the other languages being discussed here.
But I might have missed some. There is not much difference between "return 0;" and "ret=0; goto exit_function;". Both are unconditional jumps there is no rational reason why one should be "considered harmful" and the other not.
If there are resource allocations, or at any time in the future resource allocations may be added, there is a huge difference between these two in terms of maintainability. A single point of return makes it trivial to ensure that all allocations are properly freed.
There are two types of functions containing multiple points of return: those with bugs, and those that will have bugs. In a large project, with many engineers, you can reliably find bugs simply by searching for functions with multiple return statements. They're practically always buggy.
err... Word docs crud up with invisible mark-up, as well. It isn't relevant that the underlying mechanism is different. With no "reveal" option, it can be infuriating trying to find and delete the invisible things so the formatting will be correct.
The one application of "goto" that I swear by is for cleaning up allocations on failure when coding in C.
Maintaining a huge library of legacy C code, one of the most common bugs we see is leaks due to people using multiple "return" statements and failing to clean up allocations. You can fairly reliably pick such a function at random and find a memory leak: people always get it wrong.
"goto cleanup;" however, is hard to mess up.
I've seen any number of clever tricks to avoid the "goto". Using "break" statements in a do {} while (0) loop, for example. All of them merely obfuscate the code, and make it more likely for bugs to appear.
So, you're lost in the wilderness and you have two roads to choose from. One goes over a high pass and looks very difficult. One goes through a swamp, and looks very difficult. You have to choose. You can say "I'd rather flap my arms and fly home," but, well, you can't actually do that.
Is it lying to pick one of the paths, even though you'd prefer to do something else entirely, something that isn't actually possible? Are you going to start flapping your arms because it's more true to your values?
a vote for a major candidate is a statement that you:
* Approve of that candidate
* Endorse that candidate's position(s)
* Want that candidate to be the next President of the United States!
This is the most ridiculous thing I've ever read about voting. Voting is not an endorsement. It's not even a statement. Good lord, it is anonymous for precisely that reason. No one even knows who you voted for.
Look, this is not a survey of what your political beliefs are. It is a choice between two outcomes. It says nothing at all about your personal beliefs, except in as much as it influences the election. That's what voting is: your chance to influence the outcome of the election. It's like a hammer. It's not like a position statement.
Your vote cannot elect a third party candidate. Even if you vote third party, the only effect it has is influencing which major party candidate will win. I.e. if you preferences run Nader, Kerry, Bush, voting Nader has the effect of working against your goals. That is what it does, and it's the only thing it does. It doesn't make you a better person; it doesn't make you more "true to your values"; it doesn't make any statement.
It's not really "our" actions when some nimrod plows into you with his SUV while reading his email. The driver isn't going to pay for the wheel chairs and change your colostomy bags for you. Or bring your child back to life. We need both a deterrent to keep people from doing this, and a way of funding the clean-up (which can last a lifetime) when it happens. More regulation of car insurance might cover the damage. More strict laws might be a deterrent (i.e. go directly to jail if you injure someone while reading email), but it could be difficult to determine negligence. How do you know for sure he was using the computer? Maybe he was driving safely and it was an honest mistake.... not that I think the current practice of suing the manufacturers makes sense, but we have to address all of the requirements if we change it.
It's a fairly classic example in game theory. You set up an auction such that the 2nd highest bid (i.e. the loser) pays. You can't bid more than you have.
Now, who wins? The person with the most money. He always has incentive to bid higher (his cost goes to zero when he does), and he can keep bidding the longest.
Contracts with "loser pays" clauses are basically million dollar gift funds for lawyers. There's always incentive to pay more because if you win, your costs are zero.
As a deterrent to frivolous suits it sounds reasonable, but it's not.
This is ridiculous, they would not attempt to cheat in this way, because it would look very bad if they were caught.
The GOP has cheated in the debates before and gotten caught, in 1980. They pilfered materials from the Carter campaign and used them to coach Reagan for the debates. This is hardly outside the range of risk they would take.
Better than Bush or Kerry? He sounds like a complete crackpot.
Iraq wasn't a threat to the US? Iraq wasn't the immediate threat that Bush made it out to be, to justify his ineptly planned and executed war.
But you're living in la-la-land if you think he wasn't a threat to the US. He wanted WMDs; he wanted to expand his missile range; he funded suicide bombers in Israel; he was a nut job.
Everyone on the planet with a brain saw Iraq was a threat, even the French. Few thought Bush's plan made any sense at all, and it's become a debacle. We haven't had a failure in Iraq that wasn't predicted by Bush's critics long before it happened. The Bush administration doesn't have a ghost of a clue of how to protect America.
Vote Kerry. The Democrats have consistently recognised the threats we face, and backed sensible defenses.
When Clinton arrived on the scene, North Korea was positioning itself to mass produce nuclear weapons. Not just build two or three for defense. They were investing in large processing plants to churn these bombs out on an assembly line. And it does matter how many bombs a crackpot dictator is holding. If he's holding three, they are very valuable to him. If he's holding three hundred, he can sell a few to, oh, say, terrorists to help keep his economy from falling apart even more.
Clinton's framework halted that dead in its tracks. It included an inspections process, which found that NK did, in fact, halt production. It did not find that NK had made no bombs, and it was never meant to.
Clinton's plan made the difference between having two or three custom built bombs and having an on-going production capacity that would churn out hundreds of bombs. And this is what Bush dropped on the floor.
It is from Winter Soldier, though the sources you site seem to be conflating evidence against Lane's book with evidence against Winter Soldier.
Is there evidence to discredit William F. Crandell, the leader of VVAW, and a veteran? Crandell agrees that Lane's book is bogus, but he still stands by the Winter Soldier testimony.
There's a widespread belief in IT that test code and UI are easier than other coding tasks.
It's completely false. Both are harder than other coding tasks. Your senior devs tell you to assign these projects to junior devs because they don't want to do them. They don't want to do them because they're much harder than other coding tasks.
It's win-win for the senior devs: they get easier work, and when the junior devs struggle, it makes the senior devs look even better. "oh, man, they can't even write a test suite. Well, I guess I should get the big bonus this year."
Put your best devs on test and UI. Put your junior devs on the simple stuff: backend work.
It's freaking horrible for US residents, as well. I just want to buy a service, I don't want to try to work through the calculus of how well the driver performed, how much I value it, how much the driver deserves, and how much social aggression I'll face if the driver thinks they've been shorted. I just need a ride. I don't need a passive-aggressive douche pressuring me to tip well on my way to the airport.
Completely disagree. I worked over a decade in the valley, and have now worked for several years in academia. The amount of bureaucratic nonsense I have to deal with now is a few orders of magnitude smaller than what went on in the corporate world. My first six months in academia were more productive than my last six years in the private sector.
Academia does not have the cash required to sustain a large bureaucracy. It's simply not there. Technologies that, in the corporate world, would be managed by a team of thirty people, in academia are managed by one person, because that's all they can afford. Things that took months, or years, now take hours, or days. It could not be more starkly different.
You have no idea what you are talking about.
I can't believe anyone is taking this seriously. Every valley company claims to hire only the best. It's marketing bs that upper management sells to themselves, and to gullible new hires. They've been doing this for decades.
Lisp programmers don't engage in "parenthesis counting". They read it by indent, like python, and the editor does the counting.
I'm working in both lisp and python at the moment, and it makes me dislike python more every day. Invariably, the allegedly readable, convenient syntax hurts more than it helps.
There's complexity that comes with the problem domain. Then there's "incidental" complexity that comes with your choice of tools. For example, languages without garbage collection have more incidental complexity than languages with garbage collection: without GC, you spend a lot of time manually solving the problem of managing memory resources.
OO introduces a lot of incidental complexity. That's the point. It's clear, since he mentions some function programming languages, that he believes FP introduces less incidental complexity. I think that's exactly right.
You're wrong about the alternatives. JVM based languages have the same libraries as java available, by definition. Check out clojure. A good place to start is the Rich Hickey videos on infoq.com.
Virtually nothing will protect you from people who have access to your desk. It takes only seconds to install a trojan: less time than the time-out on your password-protected screen saver. You're vulnerable unless you explicitly turn it on every time you leave your desk. Usb key loggers are easy to install and conceal, as are web cams that can watch you typing your passwords. If your cpu chassis is accessible after you leave for the day, an attacker can install a trojan even if you are methodical about locking your desktop. Whole-disk encryption can help. But who goes to all these lengths? Physical access trumps all.
I use a laptop, and lock it in a drawer when it's not in my possession. But I don't imagine that I'm invulnerable.
But you're ignoring the other RESULTS you'll accidentally succeed in achieving, viz. teaching the kid that remuneration is the only acceptable form of reward. [...] Personally, I'm interested in intelligent, creative kids - writers, poets, scientists, kids with real curiosity who want to do things because they love to do them, because the problem fascinates them, because they want to KNOW, goddamnit.
Well, surely you aren't suggesting that forcing kids to do schoolwork for no pay -- the status quo -- is somehow more likely to turn them into writers/poets/scientists than paying them to do schoolwork. So what's your alternative?
I wonder why you think that wouldn't be suggested ("surely"), considering that's exactly what research shows. Extrinsic motivators de-motivate student interest in the subjects being taught. The larger the extrinsic motivator, the less interested the student is in the subject when that motivator is removed. This is a plan for creating students who hate the subjects being taught.
California isn't half so liberal as you apparently believe it is. While the legislature is dominated by Democrats, there is a very strong Republican political machine in the state that's able to deadlock the legislative process. They've also elected quite a few governors, Nixon, Reagan, Wilson. The state school board is rather conservative. Overall, it looks a lot like Washington does now: the Dems, though in the majority, are ineffective. The Republicans are obstructionist. The policies that are implemented are not strongly liberal.
I have a Verizon phone. The platform could not be more locked-down. Nonetheless, app developers seem to be completely overwhelmed by the variety of devices on this completely locked platform. Only a handful of devices are supported by any given application, and the support is complicated by incompatible OS upgrades. In fact, Verizon is unable to give a consistent answer when asked what is the latest OS version for my phone. While the phone randomly crashes when using different apps, I'm shuttled between Verizon and the developers looking for a resolution, and no one can agree on what OS version should work.
At least with an open system there would be a final recourse: I could look at the damn code myself, and directly experiment with possible solutions.
If you interact with anyone who does not value privacy then your efforts are wasted. They can also expose your data. This is how facebook is able to know who your friends are even if you've never had a facebook account, or given them a single piece of data: they can mine the contact lists of people who have willingly exposed theirs. If you appear on any of them, facebook can start building a profile of you.
Unless you're living without human contact, you will be profiled in a database somewhere.
I felt the same way until I watched Douglas Crockford's videos on javascript. If you hate javascript, you're doing it wrong. I now prefer it to the other languages being discussed here.
But I might have missed some. There is not much difference between "return 0;" and "ret=0; goto exit_function;". Both are unconditional jumps there is no rational reason why one should be "considered harmful" and the other not.
If there are resource allocations, or at any time in the future resource allocations may be added, there is a huge difference between these two in terms of maintainability. A single point of return makes it trivial to ensure that all allocations are properly freed.
There are two types of functions containing multiple points of return: those with bugs, and those that will have bugs. In a large project, with many engineers, you can reliably find bugs simply by searching for functions with multiple return statements. They're practically always buggy.
err... Word docs crud up with invisible mark-up, as well. It isn't relevant that the underlying mechanism is different. With no "reveal" option, it can be infuriating trying to find and delete the invisible things so the formatting will be correct.
The one application of "goto" that I swear by is for cleaning up allocations on failure when coding in C.
Maintaining a huge library of legacy C code, one of the most common bugs we see is leaks due to people using multiple "return" statements and failing to clean up allocations. You can fairly reliably pick such a function at random and find a memory leak: people always get it wrong.
"goto cleanup;" however, is hard to mess up.
I've seen any number of clever tricks to avoid the "goto". Using "break" statements in a do {} while (0) loop, for example. All of them merely obfuscate the code, and make it more likely for bugs to appear.
So, you're lost in the wilderness and you have two roads to choose from. One goes over a high pass and looks very difficult. One goes through a swamp, and looks very difficult. You have to choose. You can say "I'd rather flap my arms and fly home," but, well, you can't actually do that.
Is it lying to pick one of the paths, even though you'd prefer to do something else entirely, something that isn't actually possible? Are you going to start flapping your arms because it's more true to your values?
a vote for a major candidate is a statement that you:
* Approve of that candidate
* Endorse that candidate's position(s)
* Want that candidate to be the next President of the United States!
This is the most ridiculous thing I've ever read about voting. Voting is not an endorsement. It's not even a statement. Good lord, it is anonymous for precisely that reason. No one even knows who you voted for.
Look, this is not a survey of what your political beliefs are. It is a choice between two outcomes. It says nothing at all about your personal beliefs, except in as much as it influences the election. That's what voting is: your chance to influence the outcome of the election. It's like a hammer. It's not like a position statement.
Your vote cannot elect a third party candidate. Even if you vote third party, the only effect it has is influencing which major party candidate will win. I.e. if you preferences run Nader, Kerry, Bush, voting Nader has the effect of working against your goals. That is what it does, and it's the only thing it does. It doesn't make you a better person; it doesn't make you more "true to your values"; it doesn't make any statement.
It's not really "our" actions when some nimrod plows into you with his SUV while reading his email. The driver isn't going to pay for the wheel chairs and change your colostomy bags for you. Or bring your child back to life. We need both a deterrent to keep people from doing this, and a way of funding the clean-up (which can last a lifetime) when it happens. More regulation of car insurance might cover the damage. More strict laws might be a deterrent (i.e. go directly to jail if you injure someone while reading email), but it could be difficult to determine negligence. How do you know for sure he was using the computer? Maybe he was driving safely and it was an honest mistake. ... not that I think the current practice of suing the manufacturers makes sense, but we have to address all of the requirements if we change it.
It's a fairly classic example in game theory. You set up an auction such that the 2nd highest bid (i.e. the loser) pays. You can't bid more than you have.
Now, who wins? The person with the most money. He always has incentive to bid higher (his cost goes to zero when he does), and he can keep bidding the longest.
Contracts with "loser pays" clauses are basically million dollar gift funds for lawyers. There's always incentive to pay more because if you win, your costs are zero.
As a deterrent to frivolous suits it sounds reasonable, but it's not.
This is ridiculous, they would not attempt to cheat in this way, because it would look very bad if they were caught.
The GOP has cheated in the debates before and gotten caught, in 1980. They pilfered materials from the Carter campaign and used them to coach Reagan for the debates. This is hardly outside the range of risk they would take.
Better than Bush or Kerry? He sounds like a complete crackpot.
Iraq wasn't a threat to the US? Iraq wasn't the immediate threat that Bush made it out to be, to justify his ineptly planned and executed war.
But you're living in la-la-land if you think he wasn't a threat to the US. He wanted WMDs; he wanted to expand his missile range; he funded suicide bombers in Israel; he was a nut job.
Everyone on the planet with a brain saw Iraq was a threat, even the French. Few thought Bush's plan made any sense at all, and it's become a debacle. We haven't had a failure in Iraq that wasn't predicted by Bush's critics long before it happened. The Bush administration doesn't have a ghost of a clue of how to protect America.
Vote Kerry. The Democrats have consistently recognised the threats we face, and backed sensible defenses.
When Clinton arrived on the scene, North Korea was positioning itself to mass produce nuclear weapons. Not just build two or three for defense. They were investing in large processing plants to churn these bombs out on an assembly line. And it does matter how many bombs a crackpot dictator is holding. If he's holding three, they are very valuable to him. If he's holding three hundred, he can sell a few to, oh, say, terrorists to help keep his economy from falling apart even more.
Clinton's framework halted that dead in its tracks. It included an inspections process, which found that NK did, in fact, halt production. It did not find that NK had made no bombs, and it was never meant to.
Clinton's plan made the difference between having two or three custom built bombs and having an on-going production capacity that would churn out hundreds of bombs. And this is what Bush dropped on the floor.
It is from Winter Soldier, though the sources you site seem to be conflating evidence against Lane's book with evidence against Winter Soldier.
Is there evidence to discredit William F. Crandell, the leader of VVAW, and a veteran? Crandell agrees that Lane's book is bogus, but he still stands by the Winter Soldier testimony.