So does that mean that I can now get my crazy stalker ex girlfriend charged with copyright infringement for fantasizing about our relationship (it's an unauthorized copy!)
Business - Financial Business - Personnel Business - Operations Personal - Family Personal - Friends
The same example with folders:
Business + Financial + Personnel + Operations Personal + Family + Friends
I wish to be able to put multiple tags on any piece of email (perhaps it's related to both family and friends), but I don't wish to see all of the defined tags in a single list, because the list is hard to search through when you have a lot of similar prefixes (in this case, there are 3 tags starting with "Business" and 2 tags starting with "Personal"). If I could just arrange my tags in a hierarchy, this would not be an issue. The system would be especially powerful if it allowed for tags to have more than one parent tag.
Using this system you could pretend they're just traditional folders. You could also pretend they're just traditional tags. But for those people like me who want more organization and less limitation, it would be the best of both worlds literally.
The instanceof operator allows you to test whether or not a certain cast operation will succeed without throwing an exception.
For example, the following will NOT throw an exception, no matter what you pass into the getXValue method:
class X {
String value } class Y {
public String getXValue(Object mayBeX)
{
if( mayBeX instanceof X )
{
X casted = (X)mayBeX;
return casted.value;
}
return "";
} }
I had to reload a bunch to get past the "Maximum concurrency of 10" thing, but I finally made it. So here it is for everyone else who's had problems:
Lately I seem to find everywhere lots of articles about the imminent dismissal of Java and its replacement with the scripting language of the day or sometimes with other compiled languages. No, that is not gonna happen. Java is gonna die eventually of old age many many years from now. I will share the reasoning behind my statement. Let's first look at some metrics.
Language popularity status as of May 2008
For this I am gonna use the TIOBE index (tiobe.com) and the nice graphs at langpop.com. I know lots of people don't like them because their statistics are based on search engine results but I think they are a reasonable fair indicator of popularity.
Facts from the TIOBE index:
TIOBE Index Top 20
What I find significant here is the huge share the "C like syntax" languages have.
C (15.292) + C++ (10.484) + Java (20.176) + C# (3.963) = 49.915%
This means 4 languages get half of all the attention on the web. If we add PHP (10.637) here (somehow uses a similar syntax) we get 60.552%
As a result we can extract:
Reason number 1: Syntax is very important because it builds on previous knowledge. Also similar syntax means similar concepts. Programmers have to make less effort to learn the new syntax, can reuse the old concepts and thus they can concentrate on understanding the new concepts.
This is less than the attention Visual Basic gets: 10.782% and leads us to...
TIOBE Index Top 21-50Reason number 2: Too much noise is distracting. Programmers are busy and learning 10 languages to the level where they can evaluate them and make an educated decision is too much effort. The fact that most of these languages have a different syntax and introduce different (sometimes radically different) concepts doesn't help either.
Looking at the trend for the last 7 years we can see a pretty flat evolution in popularity for most of the languages. There are a few exceptions like the decline of Perl but nothing really is earth shattering. There are seasonal variations but in long term nothing seems to change.
TIOBE Trend
This shows that while various languages catch the mind of the programmer for a short time, they are put back on the shelf pretty fast. This might be caused by the lack of opportunity to use them in real life projects. Most of the programmers in the world work on ongoing projects.
Reason number 3: Lack of pressure on the programmers to switch. The market is pretty stable, the existing languages work pretty well and the management doesn't push programmers to learn new languages.
Number of new projects started
Looking at another site that does language popularity analysis, langpop.com, we see a slightly different view but the end result is almost the same from the point of view of challenger languages. What I found interesting here was the analysis regarding new projects started in various languages. The sources for information are Freshmeat.net and Google Code. The results show a clear preference for C/C++/Java with Python getting some attention.
Reason number 4: Challenger languages don't seem to catch momentum in order to create an avalanche of new projects started with them. This can be again due to the fact that they spread thin when they are evaluated. They are too many.
Other interesting charts at langpop.com are those about books on programming languages at amazon.com and about language discussions statistics. Book writers write about subjects that have a chance to sell. On the other hand a lot of discussion about all theses new languages takes place online. One thing I noticed in these discussio
This is an interesting discussion for me because I've experienced the whole thing in real life. My cousin has run a large, free, web-statistics tracking site. When he started it, it was running on PHP+apache-- He was just to the point when he was able to start making money off it, and I gave him some bad advice. I told him that if he was having performance issues, he should re-engineer the entire thing himself.
After 2 years building a web-server from scratch, he's in beta now. But during those 2 years that he wasn't improving (or maintaining) the existing code base, he lost all his thousands of free customers. He has no regrets, and his code behind it is awesome! It's fast, efficient, and modular. As far as code is concerned, it's like Michelangelo's David. From a purely coding perspective, it was the right decision. From a business perspective, it was a very poor decision. He could have a thriving business right now, but unfortunately for him, all he has now are a few prospective customers in beta.
I (on the other hand) have built a technology to enable certain kinds of web-apps for my personal site. It's in java so it's slower, and eats memory a bit. I could spend a year or 2 re-writing it in C, and know for certain there were no memory or performance issues. But that's not worth it to me. I can start getting paying customers now. From a business perspective it's more than enough. As my business grows, I simply need to upgrade my hardware.
My cousin spent a total of 3 man-years getting to where he is now (1 year for the original code-base, and 2 years for the current code-base). I've spent 1 man year for my current code-base. Assuming our time is worth only $30/hr, and that these part time, off hours man years are only 500 hours each, his cost was $60k more than mine was. I can buy a lot of hardware with that difference, and I'm collecting money at the same time.
From a coding perspective, it makes sense to spend an infinite amount of time to make your code-base perfect. In the real world, the right language is often what is most practical.
Certain types of programming lend themselves to multiple threads of execution easier than others. Functional languages (http://en.wikipedia.org/wiki/Erlang>Erlang, for example) guarantee that functions will have no side-effects, thereby allowing the compiler/execution environment to shunt the execution of the function into whatever thread is most convenient at the time.
Yes, you can code your C or C++ functions to do the same, but it takes a lot of effort that can be avoided if the execution environment knows that your code is safe.
What you wish WAS available for previous versions of IE. PerlScript was one scripting language that made use of the technology. The technology behind it has been deprecated in favor of.NET. The technology is available, but your users won't (or aren't allowed) to download the plugin just to see your site. At least with the lowest-common-denominator strategy we have now, you can build fairly robust sites. I fear the world you describe where I have to ask my users to install my specific language plugin before my site will work.
This Tit for Tat strategy you speak of works very well given a constrained system. However, it cannot be simply applied to this real-world situation. Tit for Tat requires that your action toward another player be exactly the same as the action that player did to you previously. In a simple game such as the Prisoner's Dilemma, it is easy to determine what the action was and who the players are. In this situation, the players are not always the same. Simply put, the people who launch the original rockets will not feel the sting from the return rockets, preventing the tit for tat cycle from being effective.
In fact, it is probable that the people launching the rockets WANT Israel to retaliate, because they can use the retaliatory attacks as positive propaganda for their side.
Interestingly enough, a more optimal strategy is to use the basic strategy of tit for tat with the addition of forgiveness. This means that you generally try and retaliate, except that sometimes you won't. When standard Tit for tat is used by both sides, it is possible to get locked into a cycle-- each side continues to retaliate one after the other forever. If there is a chance that sometimes you won't retaliate, then the cycle can be broken.
The difference is that in a few months, everybody who downloads Firefox WILL be FF3, whereas in a few months, webkit will still just be the nightly version-- unless apple decides to get off their butts and upgrade safari to use the newest webkit. I sincerely hope they do, but my past experiences with them has led me to believe that they will not upgrade again for some time.
I think comparing firefox3b4p to webkit is like comparing apples and oranges. Firefox3b4p is a beta version of an actual product, whereas webkit is a rendering engine.
While I'm very impressed with the work that's been done on webkit, I think more apt comparison would be webkit to gecko -- but nobody would ever do that, because the resulting numbers would be meaningless to the general population. Joe User doesn't care about the rendering engine underneath, he cares about the actual application he can (easily) install and use.
When apple decides to upgrade safari with a newer version of webkit, then I'll take notice... But until then, webkit will just be a very nice shiny rendering engine with tons of potential.
For the record, we were using the corporate edition (with the policies managed from a central location). We could not find any option or policy that would disable scanning of port 25.
Some antivirus packages also block some outbound email as well. At a previous company I worked for, we had to send out numerous survey invitations. Norton would quietly queue and scan all the outbound data (going to port 25)-- which worked in many cases. Except that it was slow. And there was now way of knowing how much data (if any) was still queued. And if the computer was restarted before Norton finished processing the queue, the data was silently lost (even though a "Accepted for delivery" message was returned to the sending program).
These limitations wouldn't be hit by your normal 1-or-2 emails at a time users. But for the rare legitimate high volume senders, like us, it was a problem. IT wouldn't let us turn off Norton alltogether (and rightly so, as we'd seen virii on our network in the past), and there was no way to selectively disable that "feature". Eventually we forced to make our outbound mail server listen on a different port, so that Norton wouldn't scan/lose the data.
At least with COX you get a notification saying that the message couldn't be sent, with Norton, the messages might just quietly disappear.
I agree with most of your points, but I'd like to point out that the existing system is broken partly because of the cost to file. In risk/reward terms, it is much more risky for me (a private inventor) to file a patent application than it is for a large corporation to file the same application because I have a smaller income. I've got to be very sure the patent will succeed before I'm able to file. A large corporation, however, has the resources to file many applications with little risk.
Because of this, corporations will submit all sorts of dubious patents, flooding the system-- and we know at least some are getting through.
I'm not against corporations owning patents (I think provides the economic guarantees required for certain products), but I think there needs to be some sort of penalty for patent-office flooding-- designed in such a way so that individual investors wouldn't need to worry about it, but it would raise the bar for the other submitters.
Perhaps a system whereby if the same filer has a certain ratio of rejected applications to accepted applications (over a certain minimum), they are locked out from filing another application for X amount of time...
Input validation done in Javascript is doomed to fail anyway, since it can be bypassed simply by using any modern browser that allows script debugging.
Input validation done on the client should always only be for convenience. Unless you want hackers to eat your site for breakfast, you'd better also do validation on the server.
I thought you would like to know that sex-offenders are LESS likely to be repeat offenders (As posters above have pointed out, and provided links and citations).
But then I read the rest of your post and realized that you were less interested in actual justice (the administering of deserved punishment or rewardjustice defined) and more interested in living in fear.
When I first learned that my state kept an online sex offender database I decided to look up my neighborhood. I'm not sure how to communicate exactly how shocked I was to find that MY address was on the list. Granted, I was living in an apartment at the time, but the name associated with the entry was not anyone who had lived in that apartment for a long time. Apparently this person had not updated his address for a while.
I'm extremely grateful that I wasn't strung up by some crazy lynch mob. It's also led me to a firm belief that these public sex-offender registries, and increasing restrictions on sex-offenders are WRONG.
There's too many things that can go wrong, and there's too many politicians who are willing to play the "think of the children" (And get out of jail free) card.
The problem is not that there was a crime committed. The problem is that the punishment doesn't FIT the crime. To me, there seems something fundamentally wrong with making somebody register on the sex offender list for the rest of their life due to a 2 or 3 year age difference (senior dating a freshman or softmore for instance). This person will NEVER be able to get a good job. It's hard enough getting a job as a convicted felon, but add on the "sex offender" tag and very few businesses will accept the "risk" of hiring you. (There is risk to the company because if you were one of the few recidivists they could be found liable in a civil suit-- also ridiculous).
I also disagree with the ever-increasing laws that state that a sex offender cannot live within X-thousand feet of a school/park/playground/mall/etc. I don't have a problem with reasonable numbers (like 500-1000 feet), but I think that any larger distance is over the top. In some cities registered sex offenders have been forced to live under bridges because there are no other places it's legal for them to live.
These combinations of factors will prevent sex offenders from being re-entering society... And for these that can't re-enter society it's the same as a life sentence. The punishment doesn't fit the crime because they are not being given explicit life sentences, but the net effect is the same.
SSL doesn't work with virtual hosting. That means each cert essentially needs it's own IP address. Since there's already somewhat of an IP address shortage (due to inefficient provisioning in the early days of the net), it may be awhile before this actually happens.
Who knows, maybe it will be a driver, either for, or against IPv6
So does that mean that I can now get my crazy stalker ex girlfriend charged with copyright infringement for fantasizing about our relationship (it's an unauthorized copy!)
What good is this criminal liability if we don't hold accountable the folks who violate it?
I prefer hoarding dark matter... It's so dense, that each pound weighs over 1000 lbs!
Consider this example with tags:
Business - Financial
Business - Personnel
Business - Operations
Personal - Family
Personal - Friends
The same example with folders:
Business
+ Financial
+ Personnel
+ Operations
Personal
+ Family
+ Friends
I wish to be able to put multiple tags on any piece of email (perhaps it's related to both family and friends), but I don't wish to see all of the defined tags in a single list, because the list is hard to search through when you have a lot of similar prefixes (in this case, there are 3 tags starting with "Business" and 2 tags starting with "Personal"). If I could just arrange my tags in a hierarchy, this would not be an issue. The system would be especially powerful if it allowed for tags to have more than one parent tag.
Using this system you could pretend they're just traditional folders. You could also pretend they're just traditional tags. But for those people like me who want more organization and less limitation, it would be the best of both worlds literally.
P.S. Patent Pending ... (Just kidding!)
Barack & Hillary 2008
Vote Barakilly, it's the Bush families worst nightmare!
The instanceof operator allows you to test whether or not a certain cast operation will succeed without throwing an exception.
For example, the following will NOT throw an exception, no matter what you pass into the getXValue method:
class X {
String value
}
class Y {
public String getXValue(Object mayBeX)
{
if( mayBeX instanceof X )
{
X casted = (X)mayBeX;
return casted.value;
}
return "";
}
}
I had to reload a bunch to get past the "Maximum concurrency of 10" thing, but I finally made it. So here it is for everyone else who's had problems:
Lately I seem to find everywhere lots of articles about the imminent dismissal of Java and its replacement with the scripting language of the day or sometimes with other compiled languages.
No, that is not gonna happen. Java is gonna die eventually of old age many many years from now.
I will share the reasoning behind my statement. Let's first look at some metrics.
Language popularity status as of May 2008
For this I am gonna use the TIOBE index (tiobe.com) and the nice graphs at langpop.com. I know lots of people don't like them because their statistics are based on search engine results but I think they are a reasonable fair indicator of popularity.
Facts from the TIOBE index:
TIOBE Index Top 20
What I find significant here is the huge share the "C like syntax" languages have.
C (15.292) + C++ (10.484) + Java (20.176) + C# (3.963) = 49.915%
This means 4 languages get half of all the attention on the web.
If we add PHP (10.637) here (somehow uses a similar syntax) we get 60.552%
As a result we can extract:
Reason number 1: Syntax is very important because it builds on previous knowledge. Also similar syntax means similar concepts. Programmers have to make less effort to learn the new syntax, can reuse the old concepts and thus they can concentrate on understanding the new concepts.
Let's look at a group of 10 challengers:
Python (4.613) + Ruby (2.851) + Lisp/Scheme (0.449) + Lua (0.393) + SmallTalk (0.138) +
Haskell (0.137) + Groovy (0.131) + Erlang (0.110) + Caml (0.090) + Scala (0.073) = 8.985%
This is less than the attention Visual Basic gets: 10.782% and leads us to...
TIOBE Index Top 21-50Reason number 2: Too much noise is distracting. Programmers are busy and learning 10 languages to the level where they can evaluate them and make an educated decision is too much effort. The fact that most of these languages have a different syntax and introduce different (sometimes radically different) concepts doesn't help either.
Looking at the trend for the last 7 years we can see a pretty flat evolution in popularity for most of the languages. There are a few exceptions like the decline of Perl but nothing really is earth shattering. There are seasonal variations but in long term nothing seems to change.
TIOBE Trend
This shows that while various languages catch the mind of the programmer for a short time, they are put back on the shelf pretty fast. This might be caused by the lack of opportunity to use them in real life projects. Most of the programmers in the world work on ongoing projects.
Reason number 3: Lack of pressure on the programmers to switch. The market is pretty stable, the existing languages work pretty well and the management doesn't push programmers to learn new languages.
Number of new projects started
Looking at another site that does language popularity analysis, langpop.com, we see a slightly different view but the end result is almost the same from the point of view of challenger languages.
What I found interesting here was the analysis regarding new projects started in various languages. The sources for information are Freshmeat.net and Google Code. The results show a clear preference for C/C++/Java with Python getting some attention.
Reason number 4: Challenger languages don't seem to catch momentum in order to create an avalanche of new projects started with them. This can be again due to the fact that they spread thin when they are evaluated. They are too many.
Other interesting charts at langpop.com are those about books on programming languages at amazon.com and about language discussions statistics. Book writers write about subjects that have a chance to sell. On the other hand a lot of discussion about all theses new languages takes place online. One thing I noticed in these discussio
"Vehicular terrorist" no. But if you put these on your truck, I'd consider your a testicular terrorist.
This is an interesting discussion for me because I've experienced the whole thing in real life. My cousin has run a large, free, web-statistics tracking site. When he started it, it was running on PHP+apache-- He was just to the point when he was able to start making money off it, and I gave him some bad advice. I told him that if he was having performance issues, he should re-engineer the entire thing himself.
After 2 years building a web-server from scratch, he's in beta now. But during those 2 years that he wasn't improving (or maintaining) the existing code base, he lost all his thousands of free customers. He has no regrets, and his code behind it is awesome! It's fast, efficient, and modular. As far as code is concerned, it's like Michelangelo's David. From a purely coding perspective, it was the right decision. From a business perspective, it was a very poor decision. He could have a thriving business right now, but unfortunately for him, all he has now are a few prospective customers in beta.
I (on the other hand) have built a technology to enable certain kinds of web-apps for my personal site. It's in java so it's slower, and eats memory a bit. I could spend a year or 2 re-writing it in C, and know for certain there were no memory or performance issues. But that's not worth it to me. I can start getting paying customers now. From a business perspective it's more than enough. As my business grows, I simply need to upgrade my hardware.
My cousin spent a total of 3 man-years getting to where he is now (1 year for the original code-base, and 2 years for the current code-base). I've spent 1 man year for my current code-base. Assuming our time is worth only $30/hr, and that these part time, off hours man years are only 500 hours each, his cost was $60k more than mine was. I can buy a lot of hardware with that difference, and I'm collecting money at the same time.
From a coding perspective, it makes sense to spend an infinite amount of time to make your code-base perfect. In the real world, the right language is often what is most practical.
Note: This post was heavily influenced by Joel Spolsky's article Things you should never do
Certain types of programming lend themselves to multiple threads of execution easier than others. Functional languages (http://en.wikipedia.org/wiki/Erlang>Erlang, for example) guarantee that functions will have no side-effects, thereby allowing the compiler/execution environment to shunt the execution of the function into whatever thread is most convenient at the time.
Yes, you can code your C or C++ functions to do the same, but it takes a lot of effort that can be avoided if the execution environment knows that your code is safe.
What you wish WAS available for previous versions of IE. PerlScript was one scripting language that made use of the technology. The technology behind it has been deprecated in favor of .NET. The technology is available, but your users won't (or aren't allowed) to download the plugin just to see your site. At least with the lowest-common-denominator strategy we have now, you can build fairly robust sites. I fear the world you describe where I have to ask my users to install my specific language plugin before my site will work.
This Tit for Tat strategy you speak of works very well given a constrained system. However, it cannot be simply applied to this real-world situation. Tit for Tat requires that your action toward another player be exactly the same as the action that player did to you previously. In a simple game such as the Prisoner's Dilemma, it is easy to determine what the action was and who the players are. In this situation, the players are not always the same. Simply put, the people who launch the original rockets will not feel the sting from the return rockets, preventing the tit for tat cycle from being effective.
In fact, it is probable that the people launching the rockets WANT Israel to retaliate, because they can use the retaliatory attacks as positive propaganda for their side.
Interestingly enough, a more optimal strategy is to use the basic strategy of tit for tat with the addition of forgiveness. This means that you generally try and retaliate, except that sometimes you won't. When standard Tit for tat is used by both sides, it is possible to get locked into a cycle-- each side continues to retaliate one after the other forever. If there is a chance that sometimes you won't retaliate, then the cycle can be broken.
Given the (lack of) marketplace acceptance for Windows Vista, I'd suggest that there may, in fact, be more demand for Windows 3.11.
The difference is that in a few months, everybody who downloads Firefox WILL be FF3, whereas in a few months, webkit will still just be the nightly version-- unless apple decides to get off their butts and upgrade safari to use the newest webkit. I sincerely hope they do, but my past experiences with them has led me to believe that they will not upgrade again for some time.
I think comparing firefox3b4p to webkit is like comparing apples and oranges. Firefox3b4p is a beta version of an actual product, whereas webkit is a rendering engine.
While I'm very impressed with the work that's been done on webkit, I think more apt comparison would be webkit to gecko -- but nobody would ever do that, because the resulting numbers would be meaningless to the general population. Joe User doesn't care about the rendering engine underneath, he cares about the actual application he can (easily) install and use.
When apple decides to upgrade safari with a newer version of webkit, then I'll take notice... But until then, webkit will just be a very nice shiny rendering engine with tons of potential.
"we've developed in every field, from metallurgy to medicine to computers in ways that would never have been dreamed possible seventy-five years ago."
Personally, I'm extremely impressed at the advances being made in modern phrenology!
For the record, we were using the corporate edition (with the policies managed from a central location). We could not find any option or policy that would disable scanning of port 25.
Some antivirus packages also block some outbound email as well. At a previous company I worked for, we had to send out numerous survey invitations. Norton would quietly queue and scan all the outbound data (going to port 25)-- which worked in many cases. Except that it was slow. And there was now way of knowing how much data (if any) was still queued. And if the computer was restarted before Norton finished processing the queue, the data was silently lost (even though a "Accepted for delivery" message was returned to the sending program).
These limitations wouldn't be hit by your normal 1-or-2 emails at a time users. But for the rare legitimate high volume senders, like us, it was a problem. IT wouldn't let us turn off Norton alltogether (and rightly so, as we'd seen virii on our network in the past), and there was no way to selectively disable that "feature". Eventually we forced to make our outbound mail server listen on a different port, so that Norton wouldn't scan/lose the data.
At least with COX you get a notification saying that the message couldn't be sent, with Norton, the messages might just quietly disappear.
I agree with most of your points, but I'd like to point out that the existing system is broken partly because of the cost to file. In risk/reward terms, it is much more risky for me (a private inventor) to file a patent application than it is for a large corporation to file the same application because I have a smaller income. I've got to be very sure the patent will succeed before I'm able to file. A large corporation, however, has the resources to file many applications with little risk.
Because of this, corporations will submit all sorts of dubious patents, flooding the system-- and we know at least some are getting through.
I'm not against corporations owning patents (I think provides the economic guarantees required for certain products), but I think there needs to be some sort of penalty for patent-office flooding-- designed in such a way so that individual investors wouldn't need to worry about it, but it would raise the bar for the other submitters.
Perhaps a system whereby if the same filer has a certain ratio of rejected applications to accepted applications (over a certain minimum), they are locked out from filing another application for X amount of time...
Personally I was disappointed that progress was made! What will we joke about when it's finally released?!
Input validation done in Javascript is doomed to fail anyway, since it can be bypassed simply by using any modern browser that allows script debugging.
Input validation done on the client should always only be for convenience. Unless you want hackers to eat your site for breakfast, you'd better also do validation on the server.
I thought you would like to know that sex-offenders are LESS likely to be repeat offenders (As posters above have pointed out, and provided links and citations).
But then I read the rest of your post and realized that you were less interested in actual justice (the administering of deserved punishment or reward justice defined) and more interested in living in fear.
When I first learned that my state kept an online sex offender database I decided to look up my neighborhood. I'm not sure how to communicate exactly how shocked I was to find that MY address was on the list. Granted, I was living in an apartment at the time, but the name associated with the entry was not anyone who had lived in that apartment for a long time. Apparently this person had not updated his address for a while.
I'm extremely grateful that I wasn't strung up by some crazy lynch mob. It's also led me to a firm belief that these public sex-offender registries, and increasing restrictions on sex-offenders are WRONG.
There's too many things that can go wrong, and there's too many politicians who are willing to play the "think of the children" (And get out of jail free) card.
The problem is not that there was a crime committed. The problem is that the punishment doesn't FIT the crime. To me, there seems something fundamentally wrong with making somebody register on the sex offender list for the rest of their life due to a 2 or 3 year age difference (senior dating a freshman or softmore for instance). This person will NEVER be able to get a good job. It's hard enough getting a job as a convicted felon, but add on the "sex offender" tag and very few businesses will accept the "risk" of hiring you. (There is risk to the company because if you were one of the few recidivists they could be found liable in a civil suit-- also ridiculous).
I also disagree with the ever-increasing laws that state that a sex offender cannot live within X-thousand feet of a school/park/playground/mall/etc. I don't have a problem with reasonable numbers (like 500-1000 feet), but I think that any larger distance is over the top. In some cities registered sex offenders have been forced to live under bridges because there are no other places it's legal for them to live.
These combinations of factors will prevent sex offenders from being re-entering society... And for these that can't re-enter society it's the same as a life sentence. The punishment doesn't fit the crime because they are not being given explicit life sentences, but the net effect is the same.
SSL doesn't work with virtual hosting. That means each cert essentially needs it's own IP address. Since there's already somewhat of an IP address shortage (due to inefficient provisioning in the early days of the net), it may be awhile before this actually happens.
Who knows, maybe it will be a driver, either for, or against IPv6