The same way automated spam mailers are more dangerous than snail-mail spam. If scamming gets cheaper (b/c one program can do the work of 1000 workers), it will be done a lot more often.
I know you've been mod'ed +1 Funny, but as a male who spent over a decade interacting solely with women for 9 hours out of the day, as a matter of survival I've learned that what you've said is right.
The key to realize is that while some D&D players meta-game in their games, women meta-meta-game or meta-meta-meta-game their entire lives.
A good example to explain this would be if you ask a man where get bought a stake. He'll say "Joe's Market" or something. As a woman the same question and she'll respond "Why? What's wrong with it?" (I've purposely chosen one of the simplest meta-levels a woman may operate at so the men can maybe understand.)
Now when men assume women are operating at a direct level and women assume men are operating at a meta-meta-level, you can imagine the confusion that results. One side thinks the other is acting irrationally (like a meta-gaming character would seem to a non-meta-gaming character) and the other things the first is a dolt (like a meta-gaming character would think of a non-meta-gaming character).
In theory it could be a market. But I think the main problem is it has too many externalities. For example, the primary motive for the author (i.e. a better reputation through publishing) is a classic externality.
In theory that could all be internalized (and I hope they do so in the article), so it's not hopeless. But I agree that there are many traps in doing that internalization.
How about this plan: Receiver specifies a white list. SMS from a white-listed sender charges the receiver otherwise it charges the sender. Also provide a way for the sender to check if a receiver has them white listed.
With this plan spammers gets charged, but you can pay for any opt-in services you want by white-listing them.
(Yes, I realize how close this is to many e-mail spam prevention proposals. However, I think that since the SMS infrastructure is already doing accounting, this sort of thing might work with SMS where it has failed with e-mail.)
The restraining order is temporary until arguments can be heard. If we weren't so close to the election a better strategy would be to wait and argue it in court. No need to make the judge angry or risk a contempt of court charge by leaking it.
With it so close to the election though, those arguments may not be heard soon enough. (OTOH, it may already be to close for the report to make any difference anyway.)
Long term you are right. The problem is getting there. Bankrupt reinsurers bankrupt the whole economy... fast. The bailout isn't to fix the long term; it's to buy us enough time for the next President to fix the long term.
Unless those banks going under plunges us into a second great depression depleting the FDIC in the process.
I am a staunch advocate of letting the market do its job, but this time the external factors are more important. The casualties of those bankrupt banks will not be the rich; they will be you and me (even if you're not in the US).
I realize this is not a popular opinion right now because it's seen as giving a hand out to the rich. In a sense it is just that, but it's also our best play at buying enough time to get the situation fixed (at least until the next President gets in office).
Yesterday's stock crash was a taste of what would happen with no bailout. Today's stock recovered with news that the bailout might still happen. You do the math.
Disclaimer: I am not an economist, so my opinions are formed by the economist friends I know. They are fairly conservative (i.e. free-market) economists so when they say it's time for a bailout that tells me something serious is happening. If someone has a better informed and more thoroughly examined opinion, I would be glad to hear it.
It depends on your school, but I know of some school legal teams that are stuck in the mindset of locking everything up in hopes of making a buck for the university down the road. It's not really their fault. It's what the administration (i.e. management) keeps asking them to do. But it is also totally opposed to the academic spirit.
Bottom line, if you call in the legal team, you will have to play by their rules. If you keep quiet, you might not get noticed by them and you can do what ever you want (within reason).
However there is no easy way to measure "distortion" of the encoded image that matches the human visual system all that well. (unlike audio).
How do you objectively measure psychoacoustic distortion? Do the same techniques not apply to vision simply due to unknown constants or is there some more fundamental reason?
Only one way to settle this, a shootout. Spidermokey is already on there. Get the rest of them up. (I'd get V8 up except it's missing command line arguments.)
Yeah, except that it's JavaScript, traditionally one of the slower languages because it's objects are basically hashtables. The improvements you see are going to be mostly to fastpathing past those hashtables. This unfortunately means that the improvements you see in JavaScript are unlikely to port to other languages since those improvements are to a feature that isn't used in most other languages. (Lua and Python may be exceptions.)
Yes in the sense that in Haskell "let x = foo 3" will not evaluate "foo 3" until the actual value of "x" is needed and any further reads of "x" will use the "cached" value. (In the lingo "x" contains the thunk "foo 3" that is forced the first time the value of "x" is needed. Further forcing of "x" just looks up the value stored in "x" and doesn't execute anything.)
No in the sense that with Haskell further calls to "foo 3" will not use the value from previous calls to "foo 3". (Which is what the GGP was implying.) This usually included under the broad term memoization, but not call-by-need.
The reason this is important is that with full function memoization you have to make a trade off of how many argument values (which might themselves be large data structures) to store for each function. This leads to the issue you mention, but as I said, Haskell doesn't do that. On the other hand, with call-by-need, the values to store are very well defined (there is no "cache" only forced and unforced thunks) and standard garbage collection techniques apply (*).
(*) There are ways to get space leaks in a call-by-need language, but those are not what the GGP was describing. (For example, "(let a = (let x = 3 in if x > 3 then z else 4) in...". As long as "a" doesn't get forced, the thunk for "a" will keep "z" alive even though "z" could never actually be needed. This is a problem but has nothing to do with the SMP or caches the GGP mentions.)
By "practical efficiency" I meant runtime efficiency... Wasn't trying to raise doubt, I just couldn't personally vouch for the efficiency of combinatorial parsers (especially unoptimized ones), you know?
There are two halves to that question: asymptotic performance and how big is the constant on real problems.
As to the first I believe Parsec and most other combinator libraries are LL and are usually (*) linear in the size of the string being parsed.
As to the second, I would have no idea, though I would hazard to guess that on modern CPU's parse times are fast enough that the relative efficiencies don't matter that much (unless maybe you're parsing Ethernet frames on a busy server).
Finally I should note that while Parsec is the most well known parser combinator library (and the only one I've actually used), the number of parser combinator libraries seems to have exploded in the past couple years so there may be better ones than Parsec out there now.
(*) "Usually" assumes you have a deterministic CFG and no back-tracking. Non-deterministic CFG's are nessisarily somewhere(**) between O(n^2) and O(n^3) though practically speaking sub-cubic algorithms have too high of constants to pay off.
(**) Exactly where between O(n^3) and O(n^2) is (very important) open research. Any technique that will improve the asymptotic performance of CFG parsing will improve the performance of matrix multiplication which will improve the performance of half the scientific computing programs out there. This in turn helps weather forecasting, structural engineering simulations, semiconductor design, etc.
Personally I find an innocuous phrase (e.g. "Nice weather were having") gets more of a startle than "Boo!". (Assuming of course the person is concentrating enough to not notice me standing right behind him or her.) Now if the researchers could explain that, I would be interested.
Fear == Perception of and concern over a real or imagined threat.
Panic == Instinctual response when an intellectual one is more useful (e.g. fight or flight).
Choke == Intellectual response when an instinctual one is more useful (e.g. basketball player over thinking a shot).
Fear often causes panic (instinctual), but it may also motivate choking (intellectual). And in some cases it is even useful (e.g. for fear of making a mistake an engineer reviews the shuttle launch calculations).
I don't know too much about the practical efficiency of these
Time to write the passer for a medium sized language (Java sized) with yacc or Antler: 2 weeks.
Time to write it in Parsec (based on parser combinators): one afternoon.
(*) These are actual times from an actual project and anecdotally seem to be typical. However, this might not have to do with Parsec being combinator based (though the anecdotes suggest that); it might be that Parsec is simply better designed.
In a lazy language (more properly called "call-by-need"), every expression has a thunk wrapped around it and thunks are automatically forced. (They have thunks in Lisp/Scheme but they must be explicit rather than implicit.)
Lazy languages allow you to "use" values that haven't been defined yet. For example
a = 1 : b
b = 2 : a
Which would produce two lists of alternating ones and twos (a starts with 1 and b starts with 2; also ":" is infix "cons").
In Scheme (which I know better than Lisp), you could accomplish the same with
(let (
[a (cons 1 #f)]
[b (cons 2 #f)])
(set-cdr! a b)
(set-cdr! b a) ...)
But being lazy (1) frees you from thinking about order of evaluation and (2) allows some constructs to be expressed more easily (e.g. taking the fixed point of a composition of functions (example to complicated to post here)).
At the end of the day, any program written in one style can be written in the other so its all differences of ease and different ways of thinking about the program.
Don't be ridiculous. Functional vs procedural isn't a matter of intelligence. It's simply a way of thinking.
And the more ways you know how to think, the smarter you'll be. Don't learn one or the other, or even both. Learn as many as you can (e.g. logic programing, meta-programing, etc.). You'll be smarter for it.
The same way automated spam mailers are more dangerous than snail-mail spam. If scamming gets cheaper (b/c one program can do the work of 1000 workers), it will be done a lot more often.
I know you've been mod'ed +1 Funny, but as a male who spent over a decade interacting solely with women for 9 hours out of the day, as a matter of survival I've learned that what you've said is right.
The key to realize is that while some D&D players meta-game in their games, women meta-meta-game or meta-meta-meta-game their entire lives.
A good example to explain this would be if you ask a man where get bought a stake. He'll say "Joe's Market" or something. As a woman the same question and she'll respond "Why? What's wrong with it?" (I've purposely chosen one of the simplest meta-levels a woman may operate at so the men can maybe understand.)
Now when men assume women are operating at a direct level and women assume men are operating at a meta-meta-level, you can imagine the confusion that results. One side thinks the other is acting irrationally (like a meta-gaming character would seem to a non-meta-gaming character) and the other things the first is a dolt (like a meta-gaming character would think of a non-meta-gaming character).
In theory it could be a market. But I think the main problem is it has too many externalities. For example, the primary motive for the author (i.e. a better reputation through publishing) is a classic externality.
In theory that could all be internalized (and I hope they do so in the article), so it's not hopeless. But I agree that there are many traps in doing that internalization.
As an economist friend of mine said "We have now empirically shown that the USA has a credit limit because we've now maxed out our credit."
And someone else said he didn't.
At best you could say Clinton increased the debt slower than the GDP grew, but he still increased it every year. Let alone paying it off.
How about this plan: Receiver specifies a white list. SMS from a white-listed sender charges the receiver otherwise it charges the sender. Also provide a way for the sender to check if a receiver has them white listed.
With this plan spammers gets charged, but you can pay for any opt-in services you want by white-listing them.
(Yes, I realize how close this is to many e-mail spam prevention proposals. However, I think that since the SMS infrastructure is already doing accounting, this sort of thing might work with SMS where it has failed with e-mail.)
In other words from the earth to the sun and back 8 times.
(60,000 times around the earth is still to large a number to visualize.)
The restraining order is temporary until arguments can be heard. If we weren't so close to the election a better strategy would be to wait and argue it in court. No need to make the judge angry or risk a contempt of court charge by leaking it.
With it so close to the election though, those arguments may not be heard soon enough. (OTOH, it may already be to close for the report to make any difference anyway.)
Tell me where I'm wrong.
Long term you are right. The problem is getting there. Bankrupt reinsurers bankrupt the whole economy ... fast. The bailout isn't to fix the long term; it's to buy us enough time for the next President to fix the long term.
Some might go under, but that's OK
Unless those banks going under plunges us into a second great depression depleting the FDIC in the process.
I am a staunch advocate of letting the market do its job, but this time the external factors are more important. The casualties of those bankrupt banks will not be the rich; they will be you and me (even if you're not in the US).
I realize this is not a popular opinion right now because it's seen as giving a hand out to the rich. In a sense it is just that, but it's also our best play at buying enough time to get the situation fixed (at least until the next President gets in office).
Yesterday's stock crash was a taste of what would happen with no bailout. Today's stock recovered with news that the bailout might still happen. You do the math.
Disclaimer: I am not an economist, so my opinions are formed by the economist friends I know. They are fairly conservative (i.e. free-market) economists so when they say it's time for a bailout that tells me something serious is happening. If someone has a better informed and more thoroughly examined opinion, I would be glad to hear it.
New rule for my broker: company makes silly suits => SELL!!!
Is there any legal doctrine that you can't sue someone for things you also do?
Unclean Hands seems close but not quite.
It depends on your school, but I know of some school legal teams that are stuck in the mindset of locking everything up in hopes of making a buck for the university down the road. It's not really their fault. It's what the administration (i.e. management) keeps asking them to do. But it is also totally opposed to the academic spirit.
Bottom line, if you call in the legal team, you will have to play by their rules. If you keep quiet, you might not get noticed by them and you can do what ever you want (within reason).
However there is no easy way to measure "distortion" of the encoded image that matches the human visual system all that well. (unlike audio).
How do you objectively measure psychoacoustic distortion? Do the same techniques not apply to vision simply due to unknown constants or is there some more fundamental reason?
From the FAQ:
What are the license conditions?
The Schrodinger software is available under any of the GPLv2, MIT or MPL licences. Libraries may also be used under LGPL.
Sounds like someone wanted there to be no question about whether it was open source.
You have a better understanding of Free Speech than most Americans. I feel ashamed for my country.
Only one way to settle this, a shootout. Spidermokey is already on there. Get the rest of them up. (I'd get V8 up except it's missing command line arguments.)
Yeah, except that it's JavaScript, traditionally one of the slower languages because it's objects are basically hashtables. The improvements you see are going to be mostly to fastpathing past those hashtables. This unfortunately means that the improvements you see in JavaScript are unlikely to port to other languages since those improvements are to a feature that isn't used in most other languages. (Lua and Python may be exceptions.)
Yes and no.
Yes in the sense that in Haskell "let x = foo 3" will not evaluate "foo 3" until the actual value of "x" is needed and any further reads of "x" will use the "cached" value. (In the lingo "x" contains the thunk "foo 3" that is forced the first time the value of "x" is needed. Further forcing of "x" just looks up the value stored in "x" and doesn't execute anything.)
No in the sense that with Haskell further calls to "foo 3" will not use the value from previous calls to "foo 3". (Which is what the GGP was implying.) This usually included under the broad term memoization, but not call-by-need.
The reason this is important is that with full function memoization you have to make a trade off of how many argument values (which might themselves be large data structures) to store for each function. This leads to the issue you mention, but as I said, Haskell doesn't do that. On the other hand, with call-by-need, the values to store are very well defined (there is no "cache" only forced and unforced thunks) and standard garbage collection techniques apply (*).
(*) There are ways to get space leaks in a call-by-need language, but those are not what the GGP was describing. (For example, "(let a = (let x = 3 in if x > 3 then z else 4) in ...". As long as "a" doesn't get forced, the thunk for "a" will keep "z" alive even though "z" could never actually be needed. This is a problem but has nothing to do with the SMP or caches the GGP mentions.)
By "practical efficiency" I meant runtime efficiency... Wasn't trying to raise doubt, I just couldn't personally vouch for the efficiency of combinatorial parsers (especially unoptimized ones), you know?
There are two halves to that question: asymptotic performance and how big is the constant on real problems.
As to the first I believe Parsec and most other combinator libraries are LL and are usually (*) linear in the size of the string being parsed.
As to the second, I would have no idea, though I would hazard to guess that on modern CPU's parse times are fast enough that the relative efficiencies don't matter that much (unless maybe you're parsing Ethernet frames on a busy server).
Finally I should note that while Parsec is the most well known parser combinator library (and the only one I've actually used), the number of parser combinator libraries seems to have exploded in the past couple years so there may be better ones than Parsec out there now.
(*) "Usually" assumes you have a deterministic CFG and no back-tracking. Non-deterministic CFG's are nessisarily somewhere(**) between O(n^2) and O(n^3) though practically speaking sub-cubic algorithms have too high of constants to pay off.
(**) Exactly where between O(n^3) and O(n^2) is (very important) open research. Any technique that will improve the asymptotic performance of CFG parsing will improve the performance of matrix multiplication which will improve the performance of half the scientific computing programs out there. This in turn helps weather forecasting, structural engineering simulations, semiconductor design, etc.
Personally I find an innocuous phrase (e.g. "Nice weather were having") gets more of a startle than "Boo!". (Assuming of course the person is concentrating enough to not notice me standing right behind him or her.) Now if the researchers could explain that, I would be interested.
Fear != Panic
Fear == Perception of and concern over a real or imagined threat.
Panic == Instinctual response when an intellectual one is more useful (e.g. fight or flight).
Choke == Intellectual response when an instinctual one is more useful (e.g. basketball player over thinking a shot).
Fear often causes panic (instinctual), but it may also motivate choking (intellectual). And in some cases it is even useful (e.g. for fear of making a mistake an engineer reviews the shuttle launch calculations).
I don't know too much about the practical efficiency of these
Time to write the passer for a medium sized language (Java sized) with yacc or Antler: 2 weeks.
Time to write it in Parsec (based on parser combinators): one afternoon.
(*) These are actual times from an actual project and anecdotally seem to be typical. However, this might not have to do with Parsec being combinator based (though the anecdotes suggest that); it might be that Parsec is simply better designed.
In a lazy language (more properly called "call-by-need"), every expression has a thunk wrapped around it and thunks are automatically forced. (They have thunks in Lisp/Scheme but they must be explicit rather than implicit.)
Lazy languages allow you to "use" values that haven't been defined yet. For example
a = 1 : b
b = 2 : a
Which would produce two lists of alternating ones and twos (a starts with 1 and b starts with 2; also ":" is infix "cons").
In Scheme (which I know better than Lisp), you could accomplish the same with
(let ( [a (cons 1 #f)]
...)
[b (cons 2 #f)])
(set-cdr! a b)
(set-cdr! b a)
But being lazy (1) frees you from thinking about order of evaluation and (2) allows some constructs to be expressed more easily (e.g. taking the fixed point of a composition of functions (example to complicated to post here)).
At the end of the day, any program written in one style can be written in the other so its all differences of ease and different ways of thinking about the program.
Don't be ridiculous. Functional vs procedural isn't a matter of intelligence. It's simply a way of thinking.
And the more ways you know how to think, the smarter you'll be. Don't learn one or the other, or even both. Learn as many as you can (e.g. logic programing, meta-programing, etc.). You'll be smarter for it.