"Fatal Exception's Neil McAllister writes about the no-win scenario facing today's independent programmers IN THE U.S.: 'In a knowledge economy, programmers rank among our most valuable workers, yet IN THE U.S. the current legal and regulatory climate makes a career as an independent software developer virtually a dead-end prospect.' Section 1706 of the U.S. 1986 Tax Reform Act, the hurdles and costs of obtaining health care for one's own family, a hostile U.S. legal climate in search of accountability for any defects in code -- these harsh realities make it 'easy to see why software developers would give up on entrepreneurship IN THE U.S. For many IN THE U.S., the risks simply don't match the potential rewards. Better to keep their heads down, not rock the boat, and hope they can hang onto their jobs until retirement.' Great news for big software vendors, which will be 'ensured an endless supply of programmers desperate for the safe haven of a steady paycheck, predictable taxation, health benefits, and a shield from civil prosecution when their code turns up buggy. But where will the next Microsoft come from? A field that discourages self-reliance sends the message that the status quo is the highest goal.'"
If you find yourself in a country where you face "malpractice settlements" as a software developer, or where the insurance of your family depends on your ability to write and sell software, I recommend that you don't.
Just charging for everything wont work as long as there are other outlets (as numerous people have already pointed out).
People visiting the site to get a quick look at the latest headlines won't pay for it. Real editorial material though, could possibly be sold. You could have a section of the paper open to subscribers only, while the free site covers only the agencies news stories. Sure, 99.9% of visitors would not buy the premium subscription, but they still need the volume for the advertisers. Second, we have only discussed these media as "online" and "paper" which is too limited. The online media is starting to take on other forms. Perhaps access to an iphone app or mobile site could only be available to subscribers? E-book readers another possibility to charge a premium. Basic *News* however is just information, and when presented in a normal web browser, the same information is available just a click away.
On a sidenote, the paper and online formats are only competing with eachother in a very small area: the places where the paper format is sold!
Duct tape is fine, if you throw it away quickly
on
The Duct Tape Programmer
·
· Score: 5, Insightful
Shipping is easy. Any idiot can whip something together that solves a problem, ships on time etc. That is rarely the issue. The issue is doing it in a fashion that will scale, be extensible, modifiable, understandable, high performing... the list goes on.
Given enogh time, any idiot could also make a system that is polished and architected to the point where it is fast, modifiable and extensible, and long overdue.
Bottom line: the whole skill of this business is delivering something that is architected enough while still meeting the deadline. In my experience, the necessary timeframe to deliver something long lasting and well architected is around five to ten times the time it would take to just solve the problem (tm). Of course many business exist today because they managed to release something to make money. The biggest mistake of many startups is probably polishing too much and not releasing early enough. The biggest mistake of those who DO make it past the first release is to not throw the first solution away and start over if it was something duct taped together.
Feels perfectly fine since the license allows to charge for things such as physical media (i.e. distribution costs). It would feel even more prudent if the author(s) would reduce the price to zero once the costs have been covered, as suggested in the article.
It was also suggested by another comment that it is fine for someone else to download the source and put the app on the App store for $0.00. Now that I feel would really violate the spirit of the GPL (given it was done knowingly, and that the original game only used the income to cover costs).
If one wants to play the game for $0.00 it's still free both as in beer and as in speech. Just not att the App Store right now. Other informed posters said that at normal stores GPL applications are sold at quite steep prices in boxes. The authors could do the same (the box for XPilot would then be a nice manual or something else not included in the GPL version), just to separate it from the original GPL version.
RIAA wants to sell music like shows in a movie theatre rather than perpetual listening rights. I have no problem with that! When I go to the movies I don't expect to get to come back tomorrow for free.
What is a big deal is that the terms need to be very clear. Is it a year of listening, or ten? Perhaps perpetual listening rights? If the terms are clear I can make an informed decision to buy or not. The price is also probably depending on what is actually sold. Implying that the work will "expire" at some unknown point in the future does not make me want to buy anything.
If the seller is depending on closed technical solutions (like DRM servers) I'd probably stay away.
But in general don't mind if my recording stops working. The same goes for a lot of software and other licensed works. If you pay to use a program or watch a movie, why not pay to listen to a recording N times or for X years? I don't need a copy that lasts forever, what I need is to know what I'm paying for. And I only pay for what I get. Didn't apple already prove that it is possible to charge a premium for lossless non DRM:ed music?
Sometimes they ARE at the frontline of ideas and research (singularity, photosynth etc.), but more often for a huge company such as MS it is more convenient and cost efficient to take good ideas and either buy them or reinvent as something either better because it is newer than the competition (.net vs java), has a more efficient development model than the competition (directx vs opengl). If you have all the money in the world you can be second with an idea and still make it work. Sometimes it is even better to be second..NET has all the clever afterthought that java developers had no chance of having.
If you can pay the best people in the world to develop something, it will be great. It will be better than the project those people worked on before coming to microsoft, be it google, java, spotify...
Also, if you have all the money in the world you can market your project more than the other project. Your project will thus have more users. Once you have critical mass, it doesn't really matter how good your project is.
The only reasonable thing to do here would be to simultaneously classify anything that isn't used primarily for goods transportation (professionally) as a CAR. This would include all "pickup trucks", "SUV's" and similar under the 42mpg law.
In fact, an even more reasonable thing to do would be to just use sensible (read western-european) taxes on gas in addition to the mpg-figures pulled from a hat, and let these things sort themselves out.
Depends on the size of project, length of maintenance and so on.
Of course there may always be "the right tool for the job" within a project (e.g. writing an os where some parts would need assembly and some parts c, or a web project where some parts just have to be js).
But I'd always be careful when choosing multiple languages over one. How many IDE:s do you need? How many build tools to rebuild all the software? How many testing frameworks? Can your IDE debugger step between language barriers? Is there even an IDE with integrated debuggers for all languages? Can you find new developers that know all the languages, or to you need to have separate developers for each language?
Version numbers are so 1980. Just make a timeline version scheme like ubuntu, office or visual studio where ju just indicate when the product was released, like FooProduct 2008. Naming something "6.0" to begin with feels wrong. There are better ways to stay away from "1.0". As a customer I can't use a version number to determine the maturity of a commercial product anyway, so there is no need to try. What I do want however is to know which version is the latest, how old the software is,and be able to tell from past version numbers how frequently new versions are released.
Bear in mind though, that using the year as a version number means that people may think twice about buying the product in three years.
When I read applications and interview developers, work experience is not really that important. At least not for young applicants. After 10 years of doing something els, I'd start questioning whether you are motivated, but a few years doing the wrong thing isn't the end of the world.
I usually check academic records to look for anything odd, for example if the candidate needed 6 years to finish a BSc that would be odd. Reading applications when applicants are scarce, is basically a matter of finding a reason this guy should *not* come to an interview. Could be glaring holes in academic records, sloppy spelling or something else. In later years, nearly everyone with the correct academic qualifications are contacted for an interview. If you feel that your previous work experience is keeping you from interviews, then do whatever it takes to make it look better. Exaggerate whatever creative role you have played, and try to leave out stuff that does not help you.
Next, at the interview, we just reason with the guy (it is always a guy, sadly) about programming. If you can reson well with me for an hour about programming in general, and some specific programming problems, You will probably be hired. If you can show me a hobby project or something that you have coded, then that is more impressive than anything you could have written about your work experience. It shows that you have a genuine interest.
We would never let an HR department of non-programmers, or a recruiting company get the first chance to filter candidates, that too is really important.
"Beta" is software that you don't take any responsibility for. Thus you can't charge anything for it either.
Emails disappearing from a beta email system is bad marketing, but it is use-at-your-own-risk software.
Since google doesn't charge users anything for using their applications, they have no reason to remove the word beta from them.
Thus they can make zillions on ads, and not really promise anything regarding uptime, data integrity and such.
That's weird (can't believe they have store casing in their index?)
Anyway, no difference to my example, although for some reason the crappy irrelevant results are in a different order...
Regardless of the cost of any perks they may enjoy there, a search engine company needs to have a search engine to live. To me, cuil appears to be a quick hack without the huge index it claims, and without a decent ranking algorithm.
As an example, I did a search for my home town (a really tiny place, 1000 people or so).
The top 10 google results included the towns unofficial homepage, a googlemap centered on the town, the wikipedia article for the town, a couple of weather sites with forecasts for the town and so on. All relevant, none repeated.
The first page of cuil displayed *seven* "find hotels in $town" (believe me, there are no hotels) or "find single women in $town" (same story there...).
A lot of these spam sites were even repeated five or six times among the first results. A japaneese version of a result was listed higher than the english version of the same result, and so on.
The logic of it is: with open source, people write software to fix their own problems. Only in rare cases (the big ones: Firefox, Ubuntu, and with commercial OSS) will any developer spend time fixing someone elses problem. And since all developers are geeks (sweeping generalization, but hey) most open source software will not solve any problems for a non-geek.
This is why the problem is so persistent, it is inherent to the open source way of devoloping software. It won't go away any time soon.
What could change it would for example be if a seller of a commercial linux distro would actually pay application developers for modifications, including usability: "-You get $1000 if you can make pidgin girlfriend-friendly following these guidelines", meaning: wizards, simplifications, naming conventions, themes and so on.
First off, why would anyone want to do (a lot) of developing on a laptop?
If you find yourself actually sitting down at a desk, with a power outlet, doing actual *work* on a laptop, you should
consider getting a separate screen and a decent keyboard for it. I realize that there are (hopefully small) number of developers
that travel around with laptops and have to at least *show* code to customers on them, and the widescreen thing can cause a problem.
But then again, a 15" laptop with 1680x1050 pixels still has about the same amount of vertical pixels as the old 15" 1280x1024 screens.
Resolution has been bumped too, has it not? I don't remember seeing many 1600x1200 15" laptops...
And as for developing on widescreens, all the people at my office use two 20" widescreens, and the developers simply tilt one of them to vertical giving 1680 vertical pixels, or more lines of code than you really need to see. The same thing could perhaps be applied to laptops, although you probably want a separate keyboard if you are using your laptop opened like a book standing vertically on the desk...
Why northern russia? What about being close to the equator? That is the reason the US have their sites in California and Florida, and the reason that the European agency cannot even have its launch site in Europe!
Is this site not intended for launching stuff into orbit, but merely intended as a landing site, or a sub-orbit launch site?
Lots of bashing about their design decision to use C#, about C# in general and so on. Their decision to use C# seems perfectly logical. Using a high level language to me seems like the ideal choice when writing complex control code. Perhaps a functional language could be even better..NET will allow you to even mix languages as much as you want. I would have used a modern high level language (java, c# or a specialized language) for the high level control, and I assume that the lower level code device driver and control was written in, for example, c. Makes perfect sense. The fact that the code is described as containing only 10k lines of code just makes the point even more clear. Use the right tool for the job. Use several tools if you need to.
The crash they experienced was because they didn't pay attention to their references properly. Garbage collection isn't any more magic than manual memory management. If you are sloppy the program will fail. The CLR worked exactly like it is supposed to. Unfortunately the fact that having an event handler on an object means that you are referencing it, is sometimes overlooked. If they had been as sloppy while using c/c++, they would have gotten some other problem instead, but the program would have crashed all the same. All this (slashvertisement!) shows is that doing memory profiling and long test runs is important, regardless of which language you have used.
First of all, the whole "is this the year of Linux" is getting kind of old. Linux will be a big desktop OS when it is as easy to use as windows (Not in its own way, but actually works like windows!). My pet peeve is the "setup.exe" which is found on the download page of any application homepage, and will work on any (well) windows system. Package managers can help, but they will never completely replace the "setup.exe" found on the website.
What is working in favor of linux on the other hand, is the mounting number of operating systems that people have to use on a daily basis. A cellphone can multitask, my cable set-top-box is a linux device and so on. People are getting more used to new interfaces, and alternative ways of doing things. Things people don't consider to even be computers, are teaching them that there is more to computers than windows.
Agreed, dongles provide a point of failure, which is why you should never use them just "because you can".
And if you have competition that does not use dongles, then you can't use dongles either, at least not if you fear that customers will feel that that difference is enough to choose the competitors product over yours.
Also, if you suspect that the customers computer will be used for anything other than as a dedicated workstation using your software, then don't use a dongle for that product.
Our viewpoints combined gives this my viewpoint exactly: copy protection is for expensive niche products, with a small userbase.
If I was really worried, then I'd skip the hassling of customers, and instead try to gather data on wether there is any real piracy going on. For example, let the setup program phone home and log itself as a unique installation. You can even skip the license number then. Of course, if the phoning home fails, it fails quietly. Noone should need an internet connection to install the software. And if the software is denied an internet connection (by means of a firewall for example) the installation should succeed anyway.
Be open about the phoning home. Noone likes a closed source software that phones home for no reason.
Don't hassle customers, even the ones who install a copy that is known to be pirated. You can't really tell who's the legitimate customer and who is not.
If you discover that there is widespread piracy of your product, and you want to do something about it, then make the leap to hardware protection. Bear in mind that dongles are quite a hassle for the customer. But at least the hassle is effective. Other means of protection means a hassle for paying customers, and just a fun challenge for pirates.
At that efficiency I think you could easily supply a house entirely, at least in those sunny regions. The problem is if course the price per kWh and not the efficiency only.
As for the hybrid, you could even imagine that covering the hybrid itself with cells would be sufficient to recharge it (if it normally charges at 1-2kW or something?). In that case, you can drive your hybrid to where the sun don't shine (and from there on it's gas...)!
What does a stolen SSN really mean? What can be done by someone who has stolen a SSN?
Some form of ID-numbers exist in most countries, but getting it stolen rarely poses a threat to your integrity?
What I'd like to know is how many of the boxes sold with preinstalled linux, actually get used as linux boxes.
How many use it just to dodge the license cost, and just install their pirated windows copy? Any guesses?
Is linux becoming the "no OS" choice available at other whitebox builders?
Why not let law enforcement agencies compile huge lists of sites that they deem illegal (containing kiddie porn or whatever).
Then publish those sites once a day or once a week, and all ISP:S can do as they wish with them.
The easiest would be to just block them in the DNS, if they wanted to be more rigorous they could block all traffic etc.
The point here is that no laws would be needed, and anyone who doesn't like it can always switch to another ISP,
as long as there are ISP:s that do not filter. I suspect there would be a market for that as well.
This is in fact how it works in, for example, Sweden.
"Fatal Exception's Neil McAllister writes about the no-win scenario facing today's independent programmers IN THE U.S.: 'In a knowledge economy, programmers rank among our most valuable workers, yet IN THE U.S. the current legal and regulatory climate makes a career as an independent software developer virtually a dead-end prospect.' Section 1706 of the U.S. 1986 Tax Reform Act, the hurdles and costs of obtaining health care for one's own family, a hostile U.S. legal climate in search of accountability for any defects in code -- these harsh realities make it 'easy to see why software developers would give up on entrepreneurship IN THE U.S. For many IN THE U.S., the risks simply don't match the potential rewards. Better to keep their heads down, not rock the boat, and hope they can hang onto their jobs until retirement.' Great news for big software vendors, which will be 'ensured an endless supply of programmers desperate for the safe haven of a steady paycheck, predictable taxation, health benefits, and a shield from civil prosecution when their code turns up buggy. But where will the next Microsoft come from? A field that discourages self-reliance sends the message that the status quo is the highest goal.'"
If you find yourself in a country where you face "malpractice settlements" as a software developer, or where the insurance of your family depends on your ability to write and sell software, I recommend that you don't.
Just charging for everything wont work as long as there are other outlets (as numerous people have already pointed out).
People visiting the site to get a quick look at the latest headlines won't pay for it. Real editorial material though, could possibly be sold. You could have a section of the paper open to subscribers only, while the free site covers only the agencies news stories. Sure, 99.9% of visitors would not buy the premium subscription, but they still need the volume for the advertisers. Second, we have only discussed these media as "online" and "paper" which is too limited. The online media is starting to take on other forms. Perhaps access to an iphone app or mobile site could only be available to subscribers? E-book readers another possibility to charge a premium. Basic *News* however is just information, and when presented in a normal web browser, the same information is available just a click away.
On a sidenote, the paper and online formats are only competing with eachother in a very small area: the places where the paper format is sold!
Shipping is easy. Any idiot can whip something together that solves a problem, ships on time etc. That is rarely the issue. The issue is doing it in a fashion that will scale, be extensible, modifiable, understandable, high performing... the list goes on.
Given enogh time, any idiot could also make a system that is polished and architected to the point where it is fast, modifiable and extensible, and long overdue.
Bottom line: the whole skill of this business is delivering something that is architected enough while still meeting the deadline. In my experience, the necessary timeframe to deliver something long lasting and well architected is around five to ten times the time it would take to just solve the problem (tm). Of course many business exist today because they managed to release something to make money. The biggest mistake of many startups is probably polishing too much and not releasing early enough. The biggest mistake of those who DO make it past the first release is to not throw the first solution away and start over if it was something duct taped together.
It was also suggested by another comment that it is fine for someone else to download the source and put the app on the App store for $0.00. Now that I feel would really violate the spirit of the GPL (given it was done knowingly, and that the original game only used the income to cover costs).
If one wants to play the game for $0.00 it's still free both as in beer and as in speech. Just not att the App Store right now. Other informed posters said that at normal stores GPL applications are sold at quite steep prices in boxes. The authors could do the same (the box for XPilot would then be a nice manual or something else not included in the GPL version), just to separate it from the original GPL version.
RIAA wants to sell music like shows in a movie theatre rather than perpetual listening rights. I have no problem with that! When I go to the movies I don't expect to get to come back tomorrow for free.
What is a big deal is that the terms need to be very clear. Is it a year of listening, or ten? Perhaps perpetual listening rights? If the terms are clear I can make an informed decision to buy or not. The price is also probably depending on what is actually sold. Implying that the work will "expire" at some unknown point in the future does not make me want to buy anything. If the seller is depending on closed technical solutions (like DRM servers) I'd probably stay away.
But in general don't mind if my recording stops working. The same goes for a lot of software and other licensed works. If you pay to use a program or watch a movie, why not pay to listen to a recording N times or for X years? I don't need a copy that lasts forever, what I need is to know what I'm paying for. And I only pay for what I get. Didn't apple already prove that it is possible to charge a premium for lossless non DRM:ed music?
If you can pay the best people in the world to develop something, it will be great. It will be better than the project those people worked on before coming to microsoft, be it google, java, spotify...
Also, if you have all the money in the world you can market your project more than the other project. Your project will thus have more users. Once you have critical mass, it doesn't really matter how good your project is.
The only reasonable thing to do here would be to simultaneously classify anything that isn't used primarily for goods transportation (professionally) as a CAR. This would include all "pickup trucks", "SUV's" and similar under the 42mpg law.
In fact, an even more reasonable thing to do would be to just use sensible (read western-european) taxes on gas in addition to the mpg-figures pulled from a hat, and let these things sort themselves out.
Depends on the size of project, length of maintenance and so on. Of course there may always be "the right tool for the job" within a project (e.g. writing an os where some parts would need assembly and some parts c, or a web project where some parts just have to be js). But I'd always be careful when choosing multiple languages over one. How many IDE:s do you need? How many build tools to rebuild all the software? How many testing frameworks? Can your IDE debugger step between language barriers? Is there even an IDE with integrated debuggers for all languages? Can you find new developers that know all the languages, or to you need to have separate developers for each language?
Version numbers are so 1980. Just make a timeline version scheme like ubuntu, office or visual studio where ju just indicate when the product was released, like FooProduct 2008. Naming something "6.0" to begin with feels wrong. There are better ways to stay away from "1.0". As a customer I can't use a version number to determine the maturity of a commercial product anyway, so there is no need to try. What I do want however is to know which version is the latest, how old the software is ,and be able to tell from past version numbers how frequently new versions are released.
Bear in mind though, that using the year as a version number means that people may think twice about buying the product in three years.
When I read applications and interview developers, work experience is not really that important. At least not for young applicants. After 10 years of doing something els, I'd start questioning whether you are motivated, but a few years doing the wrong thing isn't the end of the world.
I usually check academic records to look for anything odd, for example if the candidate needed 6 years to finish a BSc that would be odd. Reading applications when applicants are scarce, is basically a matter of finding a reason this guy should *not* come to an interview. Could be glaring holes in academic records, sloppy spelling or something else. In later years, nearly everyone with the correct academic qualifications are contacted for an interview. If you feel that your previous work experience is keeping you from interviews, then do whatever it takes to make it look better. Exaggerate whatever creative role you have played, and try to leave out stuff that does not help you.
Next, at the interview, we just reason with the guy (it is always a guy, sadly) about programming. If you can reson well with me for an hour about programming in general, and some specific programming problems, You will probably be hired. If you can show me a hobby project or something that you have coded, then that is more impressive than anything you could have written about your work experience. It shows that you have a genuine interest.
We would never let an HR department of non-programmers, or a recruiting company get the first chance to filter candidates, that too is really important.
"Beta" is software that you don't take any responsibility for. Thus you can't charge anything for it either. Emails disappearing from a beta email system is bad marketing, but it is use-at-your-own-risk software.
Since google doesn't charge users anything for using their applications, they have no reason to remove the word beta from them. Thus they can make zillions on ads, and not really promise anything regarding uptime, data integrity and such.
That's weird (can't believe they have store casing in their index?) Anyway, no difference to my example, although for some reason the crappy irrelevant results are in a different order...
Regardless of the cost of any perks they may enjoy there, a search engine company needs to have a search engine to live. To me, cuil appears to be a quick hack without the huge index it claims, and without a decent ranking algorithm.
As an example, I did a search for my home town (a really tiny place, 1000 people or so). The top 10 google results included the towns unofficial homepage, a googlemap centered on the town, the wikipedia article for the town, a couple of weather sites with forecasts for the town and so on. All relevant, none repeated.
The first page of cuil displayed *seven* "find hotels in $town" (believe me, there are no hotels) or "find single women in $town" (same story there...). A lot of these spam sites were even repeated five or six times among the first results. A japaneese version of a result was listed higher than the english version of the same result, and so on.
This is why the problem is so persistent, it is inherent to the open source way of devoloping software. It won't go away any time soon.
What could change it would for example be if a seller of a commercial linux distro would actually pay application developers for modifications, including usability: "-You get $1000 if you can make pidgin girlfriend-friendly following these guidelines", meaning: wizards, simplifications, naming conventions, themes and so on.
First off, why would anyone want to do (a lot) of developing on a laptop? If you find yourself actually sitting down at a desk, with a power outlet, doing actual *work* on a laptop, you should consider getting a separate screen and a decent keyboard for it. I realize that there are (hopefully small) number of developers that travel around with laptops and have to at least *show* code to customers on them, and the widescreen thing can cause a problem. But then again, a 15" laptop with 1680x1050 pixels still has about the same amount of vertical pixels as the old 15" 1280x1024 screens. Resolution has been bumped too, has it not? I don't remember seeing many 1600x1200 15" laptops...
And as for developing on widescreens, all the people at my office use two 20" widescreens, and the developers simply tilt one of them to vertical giving 1680 vertical pixels, or more lines of code than you really need to see. The same thing could perhaps be applied to laptops, although you probably want a separate keyboard if you are using your laptop opened like a book standing vertically on the desk...
Is this site not intended for launching stuff into orbit, but merely intended as a landing site, or a sub-orbit launch site?
Lots of bashing about their design decision to use C#, about C# in general and so on. Their decision to use C# seems perfectly logical. Using a high level language to me seems like the ideal choice when writing complex control code. Perhaps a functional language could be even better.
I would have used a modern high level language (java, c# or a specialized language) for the high level control, and I assume that the lower level code device driver and control was written in, for example, c. Makes perfect sense. The fact that the code is described as containing only 10k lines of code just makes the point even more clear. Use the right tool for the job. Use several tools if you need to.
The crash they experienced was because they didn't pay attention to their references properly. Garbage collection isn't any more magic than manual memory management. If you are sloppy the program will fail. The CLR worked exactly like it is supposed to. Unfortunately the fact that having an event handler on an object means that you are referencing it, is sometimes overlooked. If they had been as sloppy while using c/c++, they would have gotten some other problem instead, but the program would have crashed all the same. All this (slashvertisement!) shows is that doing memory profiling and long test runs is important, regardless of which language you have used.
First of all, the whole "is this the year of Linux" is getting kind of old. Linux will be a big desktop OS when it is as easy to use as windows (Not in its own way, but actually works like windows!). My pet peeve is the "setup.exe" which is found on the download page of any application homepage, and will work on any (well) windows system. Package managers can help, but they will never completely replace the "setup.exe" found on the website.
What is working in favor of linux on the other hand, is the mounting number of operating systems that people have to use on a daily basis. A cellphone can multitask, my cable set-top-box is a linux device and so on. People are getting more used to new interfaces, and alternative ways of doing things. Things people don't consider to even be computers, are teaching them that there is more to computers than windows.
And if you have competition that does not use dongles, then you can't use dongles either, at least not if you fear that customers will feel that that difference is enough to choose the competitors product over yours.
Also, if you suspect that the customers computer will be used for anything other than as a dedicated workstation using your software, then don't use a dongle for that product.
Our viewpoints combined gives this my viewpoint exactly: copy protection is for expensive niche products, with a small userbase.
Be open about the phoning home. Noone likes a closed source software that phones home for no reason. Don't hassle customers, even the ones who install a copy that is known to be pirated. You can't really tell who's the legitimate customer and who is not.
If you discover that there is widespread piracy of your product, and you want to do something about it, then make the leap to hardware protection. Bear in mind that dongles are quite a hassle for the customer. But at least the hassle is effective. Other means of protection means a hassle for paying customers, and just a fun challenge for pirates.
At that efficiency I think you could easily supply a house entirely, at least in those sunny regions. The problem is if course the price per kWh and not the efficiency only. As for the hybrid, you could even imagine that covering the hybrid itself with cells would be sufficient to recharge it (if it normally charges at 1-2kW or something?). In that case, you can drive your hybrid to where the sun don't shine (and from there on it's gas...)!
What does a stolen SSN really mean? What can be done by someone who has stolen a SSN? Some form of ID-numbers exist in most countries, but getting it stolen rarely poses a threat to your integrity?
How many use it just to dodge the license cost, and just install their pirated windows copy? Any guesses? Is linux becoming the "no OS" choice available at other whitebox builders?
The easiest would be to just block them in the DNS, if they wanted to be more rigorous they could block all traffic etc.
The point here is that no laws would be needed, and anyone who doesn't like it can always switch to another ISP, as long as there are ISP:s that do not filter. I suspect there would be a market for that as well. This is in fact how it works in, for example, Sweden.
In rural Sweden, I have recently started to notice that "fiber to the house" is appearing in houses without paved road the last mile :)