That's not an uncommon email policy. And yes, it's asinine -- breaks reply-to-all (though perhaps a good thing, on a list that big) -- but there are technical ways around it other than copy/paste/send/repeat.
I disapprove of what you say, but I will defend to the death your right to say it.
I will not, however, defend your right to force me to read it. Rather, I'll defend my right to ignore it, and even train my spamfilter on it.
What's more, I don't generally mind reading things I disagree with -- that at least sparks good debate, and there's even the chance I'm wrong, and could learn something.
However, "things I disagree with" is a far cry from v14gr4 or c14l1s, and certainly nowhere near "OMG SEND THIS TO 10 FRINDS AND BILL GATES WILL GIVE YOU A MILLION DOLLARS!!!!1!one"
Again: You have the right to send such email. It does, however, make you a dick, and means I'm unlikely to read anything from you in the future.
Couldn't have put it better than HungryHobo, though I'd be perfectly content to let people debate the meaning of "marriage" -- provided we remove it from the law.
The current "debate" shifts between legal, semantic, and religious issues so fast you get mental whiplash if you're paying attention. Just call it a "civil union" in the law, and let people define "marriage" however they like.
Actually, I was replying for another reason:
Maybe we should not let words be quite so "fluid". After all, he who controls the definitions of the words controls society itself.
In this case, it's the masses who control the definitions of words -- particularly slang like "spam".
And since it's the masses that constitute "society itself", I don't see what your point is.
Think if the resources needed to defend it from terrorists
Terrorists are an exaggerated threat in any case, but let's think. How is this harder than, say, defending a plane from terrorists? Or defending a building from terrorists who have planes?
or maintenance costs.
Would it cost more to maintain than the shuttle? Do you actually know how much it would cost, or are you just wanting to feel more-skeptical-than-thou?
There's also the problem that any ninja can come along and cut the cord
I think it'll survive a katana if it can survive the other stresses being placed on it.
Now...
Than there's the problem of "lowering" that massive cable to the ground.
Actually, I think the idea is that cars would run up and down the cable -- even as simple as, the cable stays put, and the cars use motorized wheels.
And of course it's vulnerability to shifting; half the time we can't even keep our satellites in the sky - how could we guarantee a cable would stay there?
Well, the base would be mobile too -- in the ocean. But I see your point.
Like "warp speed" it's a neat scifi idea, but not going to happen within our lifetime.
No, unlike "warp speed", it's actually not make-believe, and very likely not impossible. It just might turn out to be impractical, or not worth it.
That is: We know roughly how we would build it, and how it would work, if it worked. No one has any idea how a "warp drive" would work -- there's only various levels of technobabble thrown at it, like dilithium crystals (Star Trek), or contained black holes (Event Horizon).
Japan is, however, the exception. Look at Australia, China, and the UK for examples of places which don't necessarily have the best broadband speeds (or service), and have only a handful of providers (or one).
As for the "peering BS", what's apparently happened is, Cogent had a contract, they didn't pay it, and the day the depeering happened, they released a shitstorm of bad press which they'd obviously been planning. Not the first time they've pulled this, either.
If cogent wanted to renegotiate, that's really not a great approach.
Why should Cogent get a free ride? If I don't pay my Internet, I get cut off, no matter who else is connected through my house.
I would think that it would also be an easy pitch to save you from unfair taxes. Smaller government and all that...
Seriously, if you're feeling an economic crunch, why would you think helping your artists would turn it around? Is Canada that big an exporter of music for it to matter?
The amazing thing about complaining is, sometimes you find you were the first person to complain about that particular issue. And if you create enough noise, there's always the chance that you will eventually get a majority of the population to agree with you -- at which point, the government can either listen or be replaced.
I'm going to guess that whichever country manages to come the closest to network neutrality and sane copyright laws, is also going to be where all the actual artists go. It's an opportunity to pull ahead.
It's a chance for the US to actually be good at something other than monopolizing the rest of the world.
Friends, taxpayers, legislators (I hope), let us learn from Canada's mistakes.
Because they have never actually had a client pay them directly for their services. Their tune would change awfully quick after a client refused to pay for a website that didn't work in the browser used by 80% of the public.
Not all sites are public to begin with.
For those that are, conditional comments and an ie.css file make life much easier.
What a load of rubbish - have you ever seen just how slow Ruby sites run with any sort of significant load?
Only if you don't know how to scale horizontally. Have you seen just how fast Ruby sites run with an appropriate amount of load?
Yes, I have used all 3 in commercial projects - have you?
Appeal to authority -- yes, I have, but that's irrelevant.
If you're having to code up 20k of CSS and AT LEAST the same amount of markup (probably a lot more) to emulate something that already works, and works realiably,
Then you're not doing what I suggested.
how many sites do you actually "tweak" after it matches the visuals?
All of them. Especially during development. When have you had a customer stick to the same design through the entire development of a given site?
Tables have their place in the real world. Stop being elitist about it.
there would be various triggers of "if capacity exceeds A in time frame B, someone gets emailed/paged and is given the opportunity to override."
Point is, the overriding should probably happen after the system has attempted to auto-scale.
For instance, if I got Slashdotted, I'd probably want to scale to handle the load. If I have to be called in to make a decision before any scaling happens, I've probably missed an opportunity. On the other hand, if I've set reasonable limits, I then have the choice to relax some of those limits, or to decide I can't afford surviving Slashdot this time (or maybe realize it's a DDOS and not Slashdot), and pulling the plug -- but an hour's worth of extra capacity shouldn't kill me.
Of course, that all depends on what kind of site you're running. Some sites might rather be taken completely down by a Slashdotting than spend too much on hosting.
you're assuming that the "man in the middle", the ISP, doesn't have any business interest in things other than shuffling bits back and forth and solely getting paid to do that at a decent profit.
And that is what they should be. They are a utility -- they have no more business trying to guide you to their search engines than your power company has trying to sell you their own brand of hair dryer.
As long as we're talking about best software practices...
Learn jQuery for JavaScript. And if you ever have to build anything bigger than a few lines of jQuery, read Douglas Crockford's stuff. You don't need to use it gratuitously, but Javascript isn't a horrible language -- it could have been much worse.
Learn PHP because you'll have to, but pick up something better (Ruby/Rails, Python/Django, etc) in case the client wants you to build something from scratch.
When faced with a situation where a table will just work in every browser you intend to support with minimal table html markup, and doing it with CSS requires divs nested in divs nested in divs nested in divs with all sorts of css hacks...
Or you could just use CSS to make those divs behave like table cells -- which will work everywhere but IE.
homestarrunner.com without flash would be pretty pointless.
Certainly everything homestarrunner is doing could also be done in svg/canvas and Javascript.
if you opt to use the Java platform on Linux, you can avoid having to learn the system calls or whatever that comprise the "Linux (programmer) platform".
Which isn't unique to Java -- just about any sufficiently high-level language will abstract these, and even C will have some libraries to abstract them for you.
C also is the only language where basically all compilers have support for inline-assembly and/or intrinsics
By the same token, most of the interpreted languages I've mentioned allow some modules to be written in C, even inline C.
So then the question becomes, if you can get 80% of the game by writing 2% (not 20%) of the program in C, wouldn't you rather write the rest of the program in something else?
In certain situations, syntax errors in interpreted languages can be pretty hard to track down.
You'll have to be more specific... Certain types of errors may be harder, but syntax errors?
The worst I've had is a syntax error in a roughly 1k-line JavaScript file. Two things to learn about that: Missing brackets, parens, commas, and semicolons can cause just as much trouble as significant indentation, and all of these problems are easily avoided by not having 1k-line long files!
Every since dealing with that crap, I've vowed to never use a language unless it's a) Compiled. b) Strongly typed.
Both of which have nothing to do with syntax errors.
I'm confused -- your complaint was about syntax errors, correct? And you do realize that it's just as possible to have a compiled, statically-typed, significant-indentation language as it is possible to have an interpreted, dynamically-typed, curly-brace-delimited language?
So if someone offered a service where auto-scaling was fast, and there was some kind of limits on what you could be charged under what sorts of situations, would he still have a problem with auto-scaling?
Probably. At the very least, he does mention the possibility of limits, and claims it doesn't address the core issue -- which is that if it's an unexpected spike, a human should look at that traffic to see if it's legitimate before spending money on it.
I'd say, for most sites, it's probably worth it to auto-scale first, and then page the human. If it's not legitimate traffic, you can override it. If it was legitimate after all, 10 minutes to boot an EC2 instance is much faster than 10 minutes plus the time for you to answer your pager, look at the logs, and determine that it's legitimate.
It's 4pm on a Saturday, and your site is getting hit hard. Rally the troops, call a meeting, decide the proper action, call Fedex to ship you more infrastructure, deploy new hardware, profit from your new customers, all the while laughing at the fools who waited 10 minutes for their cloud to auto-scale.
RTFA. The author specifically makes the case for dynamic scaling, just not auto-scaling.
That is, you rally the troops, call a meeting, decide the proper action, and have someone do an 'ec2-run-instances' command.
It's 4pm on a Saturday and chances are that your site is being hit hard either because you were being an idiot or because someone is engaged in an attack on you.
Or you got Slashdotted.
If you plan properly, there are no sudden 4pm on Saturday spikes in traffic.
If you plan properly, you are prepared for the typical 4pm-on-Saturday spikes, if those are typical for you.
Which does nothing if you then get Slashdotted at 7 AM on a Sunday. Or whenever.
As to which is better, the question you have to ask is, what is the cost of not responding to that sudden spike in traffic?
There are better ways to deal with too much traffic than auto-scaling. One way is to use caching intelligently....
Yes. You could also rewrite your app in C, etc... Point is, sooner or later, you're going to run into a problem which requires you to scale.
And it would be pretty cool if, on being Slashdotted, you could have your auto-scaling tool kick in and have your site actually be live while you look for things to tweak (caching, etc) -- but not with the purpose of "getting the site back up", but rather, "saving some money".
I suppose it depends what kind of business you're in -- whether you can afford to take that downtime.
Now, if you can engineer it to where you never need auto-scaling, great. You can leave the auto-scaler running, and it will simply never kick in. The question is, which scenario is worse when you're wrong -- site down, or too much money?
I'm not sure exactly how the LAN side of this stuff is configured, never having actually used EC2
All instances are behind a giant NAT. And while all instances have a public IP address, there is also a user-controlled firewall in place. You can run iptables or whatever behind that, certainly.
All instances are reachable from all other instances via their internal IPs -- for free, within the same availability zone -- subject, again, to the user-controlled firewall, IIRC. It's trivial to, for example, only allow connections from other instances you control to the LAN interface. (They are also reachable via their external IPs, but that's both through the firewall and considered cross-zone traffic, so it costs more.)
So what you describe is certainly possible. The only question is whether your firewall instance would have enough bandwidth -- especially when talking about a DDOS.
I wouldn't actually count Erlang among them -- at least, not for this discussion.
Haskell, I believe, can automatically parallize a given function.
Erlang, on the other hand, requires you to manually spawn "processes" and distribute work for them, and makes this process easy enough that it's really not painful to do yourself. It is vaguely-functional, but more importantly, it's actually an imperative, single-assignment language which is insanely good at message-passing and crunching binary data.
That's not an uncommon email policy. And yes, it's asinine -- breaks reply-to-all (though perhaps a good thing, on a list that big) -- but there are technical ways around it other than copy/paste/send/repeat.
I wonder if bcc would help, here?
There's actually a simple resolution to that:
I disapprove of what you say, but I will defend to the death your right to say it.
I will not, however, defend your right to force me to read it. Rather, I'll defend my right to ignore it, and even train my spamfilter on it.
What's more, I don't generally mind reading things I disagree with -- that at least sparks good debate, and there's even the chance I'm wrong, and could learn something.
However, "things I disagree with" is a far cry from v14gr4 or c14l1s, and certainly nowhere near "OMG SEND THIS TO 10 FRINDS AND BILL GATES WILL GIVE YOU A MILLION DOLLARS!!!!1!one"
Again: You have the right to send such email. It does, however, make you a dick, and means I'm unlikely to read anything from you in the future.
Couldn't have put it better than HungryHobo, though I'd be perfectly content to let people debate the meaning of "marriage" -- provided we remove it from the law.
The current "debate" shifts between legal, semantic, and religious issues so fast you get mental whiplash if you're paying attention. Just call it a "civil union" in the law, and let people define "marriage" however they like.
Actually, I was replying for another reason:
Maybe we should not let words be quite so "fluid". After all, he who controls the definitions of the words controls society itself.
In this case, it's the masses who control the definitions of words -- particularly slang like "spam".
And since it's the masses that constitute "society itself", I don't see what your point is.
Notice how thick the cable is, in Halo 3. This one is much thinner.
So, the damage would be extremely minimal -- I'd worry more about the elevator car itself.
Like the jet pack.
The jet pack that someone has actually built?
Think if the resources needed to defend it from terrorists
Terrorists are an exaggerated threat in any case, but let's think. How is this harder than, say, defending a plane from terrorists? Or defending a building from terrorists who have planes?
or maintenance costs.
Would it cost more to maintain than the shuttle? Do you actually know how much it would cost, or are you just wanting to feel more-skeptical-than-thou?
First, GP:
There's also the problem that any ninja can come along and cut the cord
I think it'll survive a katana if it can survive the other stresses being placed on it.
Now...
Than there's the problem of "lowering" that massive cable to the ground.
Actually, I think the idea is that cars would run up and down the cable -- even as simple as, the cable stays put, and the cars use motorized wheels.
And of course it's vulnerability to shifting; half the time we can't even keep our satellites in the sky - how could we guarantee a cable would stay there?
Well, the base would be mobile too -- in the ocean. But I see your point.
Like "warp speed" it's a neat scifi idea, but not going to happen within our lifetime.
No, unlike "warp speed", it's actually not make-believe, and very likely not impossible. It just might turn out to be impractical, or not worth it.
That is: We know roughly how we would build it, and how it would work, if it worked. No one has any idea how a "warp drive" would work -- there's only various levels of technobabble thrown at it, like dilithium crystals (Star Trek), or contained black holes (Event Horizon).
Japan is, however, the exception. Look at Australia, China, and the UK for examples of places which don't necessarily have the best broadband speeds (or service), and have only a handful of providers (or one).
As for the "peering BS", what's apparently happened is, Cogent had a contract, they didn't pay it, and the day the depeering happened, they released a shitstorm of bad press which they'd obviously been planning. Not the first time they've pulled this, either.
If cogent wanted to renegotiate, that's really not a great approach.
Why should Cogent get a free ride? If I don't pay my Internet, I get cut off, no matter who else is connected through my house.
I would think that it would also be an easy pitch to save you from unfair taxes. Smaller government and all that...
Seriously, if you're feeling an economic crunch, why would you think helping your artists would turn it around? Is Canada that big an exporter of music for it to matter?
When I'm done building my gadget, it doesn't hit the front page of Slashdot. So I do see GP's point.
But it did manage to generate a fair number of comments. It's held my interest, for one.
And simplicity of algorithm doesn't make it any less cool. Take z=zz+c, for instance.
How do you know? Have you tried?
The amazing thing about complaining is, sometimes you find you were the first person to complain about that particular issue. And if you create enough noise, there's always the chance that you will eventually get a majority of the population to agree with you -- at which point, the government can either listen or be replaced.
It will be interesting to watch...
I'm going to guess that whichever country manages to come the closest to network neutrality and sane copyright laws, is also going to be where all the actual artists go. It's an opportunity to pull ahead.
It's a chance for the US to actually be good at something other than monopolizing the rest of the world.
Friends, taxpayers, legislators (I hope), let us learn from Canada's mistakes.
Because they have never actually had a client pay them directly for their services. Their tune would change awfully quick after a client refused to pay for a website that didn't work in the browser used by 80% of the public.
Not all sites are public to begin with.
For those that are, conditional comments and an ie.css file make life much easier.
What a load of rubbish - have you ever seen just how slow Ruby sites run with any sort of significant load?
Only if you don't know how to scale horizontally. Have you seen just how fast Ruby sites run with an appropriate amount of load?
Yes, I have used all 3 in commercial projects - have you?
Appeal to authority -- yes, I have, but that's irrelevant.
If you're having to code up 20k of CSS and AT LEAST the same amount of markup (probably a lot more) to emulate something that already works, and works realiably,
Then you're not doing what I suggested.
how many sites do you actually "tweak" after it matches the visuals?
All of them. Especially during development. When have you had a customer stick to the same design through the entire development of a given site?
Tables have their place in the real world. Stop being elitist about it.
If we stop, this problem will never go away.
there would be various triggers of "if capacity exceeds A in time frame B, someone gets emailed/paged and is given the opportunity to override."
Point is, the overriding should probably happen after the system has attempted to auto-scale.
For instance, if I got Slashdotted, I'd probably want to scale to handle the load. If I have to be called in to make a decision before any scaling happens, I've probably missed an opportunity. On the other hand, if I've set reasonable limits, I then have the choice to relax some of those limits, or to decide I can't afford surviving Slashdot this time (or maybe realize it's a DDOS and not Slashdot), and pulling the plug -- but an hour's worth of extra capacity shouldn't kill me.
Of course, that all depends on what kind of site you're running. Some sites might rather be taken completely down by a Slashdotting than spend too much on hosting.
you're assuming that the "man in the middle", the ISP, doesn't have any business interest in things other than shuffling bits back and forth and solely getting paid to do that at a decent profit.
And that is what they should be. They are a utility -- they have no more business trying to guide you to their search engines than your power company has trying to sell you their own brand of hair dryer.
As long as we're talking about best software practices...
Learn jQuery for JavaScript. And if you ever have to build anything bigger than a few lines of jQuery, read Douglas Crockford's stuff. You don't need to use it gratuitously, but Javascript isn't a horrible language -- it could have been much worse.
Learn PHP because you'll have to, but pick up something better (Ruby/Rails, Python/Django, etc) in case the client wants you to build something from scratch.
When faced with a situation where a table will just work in every browser you intend to support with minimal table html markup, and doing it with CSS requires divs nested in divs nested in divs nested in divs with all sorts of css hacks...
Or you could just use CSS to make those divs behave like table cells -- which will work everywhere but IE.
homestarrunner.com without flash would be pretty pointless.
Certainly everything homestarrunner is doing could also be done in svg/canvas and Javascript.
if you opt to use the Java platform on Linux, you can avoid having to learn the system calls or whatever that comprise the "Linux (programmer) platform".
Which isn't unique to Java -- just about any sufficiently high-level language will abstract these, and even C will have some libraries to abstract them for you.
C also is the only language where basically all compilers have support for inline-assembly and/or intrinsics
By the same token, most of the interpreted languages I've mentioned allow some modules to be written in C, even inline C.
So then the question becomes, if you can get 80% of the game by writing 2% (not 20%) of the program in C, wouldn't you rather write the rest of the program in something else?
In certain situations, syntax errors in interpreted languages can be pretty hard to track down.
You'll have to be more specific... Certain types of errors may be harder, but syntax errors?
The worst I've had is a syntax error in a roughly 1k-line JavaScript file. Two things to learn about that: Missing brackets, parens, commas, and semicolons can cause just as much trouble as significant indentation, and all of these problems are easily avoided by not having 1k-line long files!
Every since dealing with that crap, I've vowed to never use a language unless it's a) Compiled. b) Strongly typed.
Both of which have nothing to do with syntax errors.
I'm confused -- your complaint was about syntax errors, correct? And you do realize that it's just as possible to have a compiled, statically-typed, significant-indentation language as it is possible to have an interpreted, dynamically-typed, curly-brace-delimited language?
So if someone offered a service where auto-scaling was fast, and there was some kind of limits on what you could be charged under what sorts of situations, would he still have a problem with auto-scaling?
Probably. At the very least, he does mention the possibility of limits, and claims it doesn't address the core issue -- which is that if it's an unexpected spike, a human should look at that traffic to see if it's legitimate before spending money on it.
I'd say, for most sites, it's probably worth it to auto-scale first, and then page the human. If it's not legitimate traffic, you can override it. If it was legitimate after all, 10 minutes to boot an EC2 instance is much faster than 10 minutes plus the time for you to answer your pager, look at the logs, and determine that it's legitimate.
It's 4pm on a Saturday, and your site is getting hit hard. Rally the troops, call a meeting, decide the proper action, call Fedex to ship you more infrastructure, deploy new hardware, profit from your new customers, all the while laughing at the fools who waited 10 minutes for their cloud to auto-scale.
RTFA. The author specifically makes the case for dynamic scaling, just not auto-scaling.
That is, you rally the troops, call a meeting, decide the proper action, and have someone do an 'ec2-run-instances' command.
It's 4pm on a Saturday and chances are that your site is being hit hard either because you were being an idiot or because someone is engaged in an attack on you.
Or you got Slashdotted.
If you plan properly, there are no sudden 4pm on Saturday spikes in traffic.
If you plan properly, you are prepared for the typical 4pm-on-Saturday spikes, if those are typical for you.
Which does nothing if you then get Slashdotted at 7 AM on a Sunday. Or whenever.
As to which is better, the question you have to ask is, what is the cost of not responding to that sudden spike in traffic?
There are better ways to deal with too much traffic than auto-scaling.
One way is to use caching intelligently....
Yes. You could also rewrite your app in C, etc... Point is, sooner or later, you're going to run into a problem which requires you to scale.
And it would be pretty cool if, on being Slashdotted, you could have your auto-scaling tool kick in and have your site actually be live while you look for things to tweak (caching, etc) -- but not with the purpose of "getting the site back up", but rather, "saving some money".
I suppose it depends what kind of business you're in -- whether you can afford to take that downtime.
Now, if you can engineer it to where you never need auto-scaling, great. You can leave the auto-scaler running, and it will simply never kick in. The question is, which scenario is worse when you're wrong -- site down, or too much money?
I'm not sure exactly how the LAN side of this stuff is configured, never having actually used EC2
All instances are behind a giant NAT. And while all instances have a public IP address, there is also a user-controlled firewall in place. You can run iptables or whatever behind that, certainly.
All instances are reachable from all other instances via their internal IPs -- for free, within the same availability zone -- subject, again, to the user-controlled firewall, IIRC. It's trivial to, for example, only allow connections from other instances you control to the LAN interface. (They are also reachable via their external IPs, but that's both through the firewall and considered cross-zone traffic, so it costs more.)
So what you describe is certainly possible. The only question is whether your firewall instance would have enough bandwidth -- especially when talking about a DDOS.
Here's the problem: How would you know, before buying, that it is a Thai-only version? Does it say so on the box? Does the demo somehow indicate this?
Is it even possible to return it, then?
I wouldn't actually count Erlang among them -- at least, not for this discussion.
Haskell, I believe, can automatically parallize a given function.
Erlang, on the other hand, requires you to manually spawn "processes" and distribute work for them, and makes this process easy enough that it's really not painful to do yourself. It is vaguely-functional, but more importantly, it's actually an imperative, single-assignment language which is insanely good at message-passing and crunching binary data.