jwarkentin
Based on natural selection it would only necessarily be more common if it affected reproduction. It may begin to affect reproduction now that people are sleeping less and those that don't cope well (like those that don't have the gene) may die before they reproduce; but until recently when sleep deprivation has become a larger issue, I doubt it ever affected reproduction enough for natural selection to do its job.
The only catch is that if you change the server's key it will break all clients. However, you could always hard code a second public key that isn't even contained on your servers that is used as a fallback for catastrophic incidents where your private key gets exposed. Once you fix your security hole you swap out your key to your fallback and clients are secure again.
This is ALWAYS a bad idea. A few points:
- The only purpose of HTTPS and encrypting communications in general is to prevent MITM attacks.
- If your server is even willing to serve unencrypted requests it exposes your users to sslstrip attacks (http://www.thoughtcrime.org/software/sslstrip/). In reality you still should serve HTTP requests but only to force a redirect to HTTPS. In addition you should use the 'Strict-Transport-Security' header. It's the ONLY way to prevent future sslstrip attacks.
- Even worse, if you don't set the 'secure' flag on session cookies at a minimum (thus forcing logged in users to HTTPS only) you expose your users to session hijacking without even putting up a fight.
- If you aren't going to bother with forcing HTTPS all the time then there's not much point as you've opened up your users to simple sslstrip attacks followed by session hijacking or even worse, script injection or redirects.
One fundamental concept many people seem to forget as well is that the dangers of not encrypting communications extends beyond snooping. Attackers can actually modify the data stream to inject and/or replace content or even redirect users entirely.
Also, even if you only serve secure content yourself but you include insecure content on your page it exposes security vulnerabilities. Let's say you include unencrypted images on your site and you have users that are using a client with an image rendering engine vulnerability that allows remote code execution (this has happened in about every browser). All a MITM has to do is replace the requested image with different content that exploits the vulnerability. Now imagine if you included unencrypted JavaScript that actually does execute on your site (like from a CDN). The possibilities are endless.
How do you perform brain surgery on yourself?
Also, if you are indeed scientifically minded then you must be open minded to all theories that explain the state of things unless there is sufficient evidence to the contrary. It is not enough to say that there isn't sufficient evidence. Remember, the absence of evidence is not the evidence of absence. To rule out a theory that could explain our observations without evidence is not scientifically minded at all.
To have a productive conversation, if you believe that the two theories are mutually exclusive then please explain what about one of them being true, means the other cannot be. If you don't believe they are mutually exclusive then my original point stands that the statement by 'spiritplumber' is a non sequitur.
I personally still think it's a good thing, but that could definitely be debated on the server side. Unfortunately, if you want to have the advantage of writing one code base that can run on the browser or server, then it must work the same in both places.
Unicode, UTF-8 and character encodings: What every developer should know
1) Eliminate distractions. I don't know if it's ADHD or what but I'm very easily distracted. As much as I love programming, I often find that reading HN or checking my email, browsing Amazon or any number of other things seem more interesting. It's often even just doing things I need to get done, but at a time when I should be focusing on writing code.
For me the solution is to push all my browser windows to another desktop, open only the one I need for testing/research and absolutely ban myself from doing anything else for a period of time.
2) Manage expectations. The other problem I have is that my mind doesn't like to switch focus very easily. I may have been really laser focused on a problem for a while, but then after I finish or something else comes up and it's time to focus on a new problem, my brain rebels and refuses to change focus.
The solution for me has been to manage my expectations, in a sense. I have to close my eyes and clear my mind of everything and just relax for 5 minutes, with the expectation that after that I'm going to open my eyes and focus on the new task. It helps calm my mind and since I'm now expecting to focus on the new task in 5 minutes, but I'm not forcing it immediately, my mind warms up to the idea of doing it in a bit.
3) Have a plan. I've found that when I'm faced with a difficult and vague task my brain wants to avoid focusing just because it seems hard or something.
For this I've found that if I first pause and plan out exactly where I'm going to jump in, exactly what I'm going to do to try and tackle the problem, then it's easier to focus on it. Maybe that means I'm going to sit down with a white-board and draw out the system architecture to tackle a problem or whatever else.
4) Sleep and caffeine. I've found that when I'm too tired, I really just can't focus. Often just taking a 20 minute nap (keep it to 20 minutes, set an alarm) makes a world of difference. Also, I've found that getting some caffeine helps me focus a lot. Of course, it might not be as effective if you use it all the time.
It's also a well studied fact that younger minds are more impressionable and have great neuroplasticity. People who start something early in life are often much better at things, and not just because of the length of time they've been doing it. It becomes second nature. It fundamentally affects the way they learn to think.
Yes, there are plenty of great programmers and engineers who didn't start so young. Personally though, I started at the age of 9, and it's set me so much ahead of my peers. Don't underestimate the abilities of the young or the value of exploration and learning while young.
I agree that right now it's not going to happen, no matter how many different efforts there are out there. For it to really happen I think we would have to come up with a plan that would actually work, in terms of creating a massive world-wide mesh network. There would have to be a lot of consideration for things like security, DDoS mitigation, speed, standards and upgradeability.
If developing a viable mesh network for the task weren't tough enough, there would also have to be a plan for migration which is really the hard part. Getting everybody in the world moved over to a new network would be nothing short of a miracle.
There are a lot of options, each with their advantages in different situations. It's not so clear cut. It can be fast or it can be slow. It can be stable or not. It very much depends on the particular network protocol and setup.
Also, did you see this (one of many interesting efforts): http://openlibernet.org/faq.html
All that said, even if we just had a functioning alternative (even if it were significantly slower), it would give us options when we need uncensored, unregulated communication. It's better than having absolutely no options when your government oversteps its bounds.