November 2005 - Posts
Follow-up to my previous post and Susan Bradley's comments surrounding Sony BMG's own-goal in an attempt to copy protect their music CDs while demonstrating flagrant disregard for the rights of their customers. I am fascinated by this classic tale of corporate mentality versus the power of the internet and the wider issues of intellectual property protection. This is a great example of how one man and his blog have caused a powerful multinational corporation to stop dead in its tracks and review its actions.
The law suits have begun. Excellent! It is about time the music industry had a taste of its own medicine. Sony deserves everything it gets. Mark Russinovich documents how Sony BMG grudgingly made a patch available to reveal their cloaked software and an uninstall process that requires you to potentially add yourself to Sony's mailing lists, at a web site that only supports Internet Explorer and requires that you install an ActiveX control signed by First 4 Internet, that 'fingerprints' your computer before giving you access to the download. Even then, you still have to be "in the know" to even realise the uninstall tools are available. All along, Sony and First 4 Internet have denied that there is anything wrong with their software, despite repeated demonstrations to the contrary, including the potential for the uninstall process to cause a "blue screen". Several viruses have been discovered in the wild that utilise the cloaking ability of F4i's rootkit to hide themselves.
"Integrity" is not a word I would assosciate with any of Sony's actions. Apart from several lawsuits (in California USA and Italy) being filed against Sony BMG, several anti-virus vendors (including Microsoft, F-Secure and Computer Associates) have announced that Sony's copy protection meets their criteria for malicious software and they will target and remove it from their customer's computers.
Finally, Sony BMG has responded to all the media attention and suspended production of music CDs containing XCP "for now". Lesson learned? Probably not. My respect to Mark Russinovich for uncovering this technology and bringing it to the public eye. A good result, Mark.
The sad thing is that this was all totally forseeable. The problem with copy protection is that it is rarely effective protection against the dishonest and often it has a negative impact on legitimate fee-paying users. Sony's scheme was, at best, ill conceived and was always fated to really annoy Sony's legitimate customers while having virtually no impact on pirates. Any organisation that believes it can effectively copy-protect digital content without adversely affecting its legitimate users is fooling itself. What company would choose a strategy that essentially penalises it's loyal customers and erodes the incentive to purchase bona fide goods? If the genuine article is less convenient than an illegal copy, what does anyone really expect the outcome to be? The way to protect intellectualy property is to build a relationship with the customer - to make the customer want to be a legitimate owner of the product. For example, an indespensable user manual supplied with software is a big incentive to purchase the original product. People will still copy the software, but those are not lost sales. There is a big difference between the number of pirate copies and lost sales - this is a critical point that vendors fail to grasp. Those people would never have purchased the software anyway, regardless of copy protection. In some cases, the copied software might even result in increased exposure leading to additional sales. I have personally gone on to purchased a number of software titles after first obtaining a 'hacked' version to try out.
Perhaps surprisingly, one company that seems to understand this is Microsoft. When Microsoft began using software activation I was initially worried about the development. However, with time it has proved to be a well-thought-out system with few disadvantages beyond needing to type an installation key during the setup process. Once a product is activated, the legitimate user is never inconvenienced. As someone who builds computers and swaps hardware around with alarming regularity, I was expecting a lot of problems with software activation, but to Microsoft's credit, I have never had a single problem activating a Microsoft product. Microsoft seems to understand that it cannot afford to upset its loyal customers. This activation technology has now enabled Microsoft to launch the Genuine Windows Advantage programme, which makes available free updates and software utilities to users after verifying that the installed software is legitimate. Clearly, there is an incentive to own legally obtained genuine copies of Microsoft products.
There needs to be a sea change in the attitude of the entertainment and software industries towards content protection. When products are attractively packaged at a reasonable price and give the customer what they want, customers will want to purchase and own those products. No company is going to increase sales or enhance its reputation by attempting to manipulate its customer base into purchasing a product that doesn't meet customer needs or is inconvenient to use. Copy protection, at best delays piracy for a little while and at worst becomes an inconvenience to legitimate users and a disincentive to purchase genuine products. Unless handled with utmost caution and scrupulous integrity, copy protection schemes can easily do more harm than good. It is probably wiser to spend the money on building a better product.
Originally posted by me 23-July-2005 on an alternative blog server.
My company hosts a discussion group that has about 750 members. The list uses GFI MailEssentials list server in conjunction with my exchange server. The GFI software is basic but functional and allows postings in both plain text and HTML and allows a footer to be added to each outgoing message.
I regularly get complaints from users that there is no "digest" version available. I really can't understand the fascination with digested mailing lists. All you gain is a reduced number of emails, which I could argue is not really an advantage either. In gaining that tiny advantage, you also give up all control over how your view, filter, sort, group your email. You give up the ability to block senders you aren't interested in reading, to perform automatic processing based on the sender, to colour code your messages. You give up the ability the view message threading and you are more or less forced to read everything in plain text (the lowest common denominator). Why on earth were digests ever popular? Apparently, some users find them "easier". I suspect what they really mean is that they don't have to bother learning how to use their email software.
There is a hard core of computer users out there who seem to think we should all be dragged down to the lowest common denominator. In the case of email, that is plain text. But it must be understood that the notion of "plain text" is an illusion anyway, since what they probably mean is text encoded in US ASCII. Another system that codes text in iso-8859 might well display that text differently. So plain text is itself an over-simplification.
What's wrong with HTML email? Some people object on the grounds that to encode something in HTML takes more bytes and that wastes valuable bandwidth. COME ON! Get a faster connection! Others object on the grounds that everything should be compatible with whatever worked 20 years ago, i.e. plain text. Again, understand that the world moves on and software needs to be upgraded if you expect it to still work tomorrow.
I will have no truck with this lowest common denominator attitude. Evolve or die.
Originally posted 4-July 2005 on an alternative blog server.
The blurring of the distinction between beta software and released code is something that is becoming more and more common in the software industry. Beta versions are widely available and easy to obtain and I think the purpose of a beta release has been slowly perverted over the last few years. Whereas beta software used to be all about getting the bugs out of the software, I think nowadays it is much more about sending a "wakeup call" to users to start their planning process. A segment of the user base hasn't really understood this. That segment never installs anything with a version number ending in ".0" and doesn't even think about planning their upgrade until ".1" is released. Then they are upset when a week after they roll out ".1" their deployment is obsolete.
Well guess what? It doesn’t work like that any more. The beta version is the new ".0" version.
I have no sympathy for organizations that ignore beta programmes for months and months then cry "foul!" when the product is released. Why do these people think Microsoft makes pre-release versions available to the industry, if not for evaluation and planning? If they are rolling out a product which they KNOW is about to become obsolete, I think they need to look at their decision making process. Early adoption is the only option. For the users who don’t understand that, I guess it looks like Microsoft is being draconian.
This post was originally made on the MSSmallBiz Yahoo group in response to information in E-Week that users of SUS were complaining that Microsoft had released WSUS then pulled the SUS download with no notice.
This item was originally posted by me on 22-July-2004 on another blog server. At the time of writing the .NET Framework 2.0 was still in public beta.
I wrote this in response to someone on a newsgroup who proudly proclaimed "I always wait until after the first couple of service packs before I adopt new technology". This is the antithesis of my own way of thinking, so I thought I would try to explain why I think early adoption is a better way of life.
This is my personal philosophy about new technology. I think you have to make a decision as to whether you’re an early adopter or whether you’re the kind of person who never loads anything with a version string ending in ".0". There are pros and cons to both approaches and I would not dream of telling anyone they are wrong for not agreeing with me, but here's my take on it. Note that when I say "early adopter" I am talking about released products, not betas. There are whole arguments for why certain vendors should be adopting beta technology but I'm not going to go into that here. Also, I am going to be making sweeping generalizations here. As I always say, "to generalize is to be foolish" and I'm sure everyone can find specific cases that break my reasoning.
Things evolve so quickly in computing that, in my opinion, you can’t afford not to be an early adopter. If you wait until version 1.1, then version 2.0 is already in development and by the time you've got used to 1.1, 2.0 will already be released. In short, its really easy to be in a position where you’re always obsolete or you never do anything because the next version is always imminent. The version numbers I've picked were no accident, of course, and they refer to the .net Framework - 2.0 is already in public beta and a lot of people are only now starting to adopt 1.1.
People dream up strange justifications for not adopting new technology. A lot of people are put off from installing the .net framework because it is a sizeable download (not a large download by any means but nevertheless sizeable, at over 20Mb). I had to smile when one person contacted me to tell me he wasn't going to use a piece of my software, because of the large download, when my piece of software was 'so small' in comparison. He felt the requirements were disproportionate. "Why do I have to do a 20Mb download just to use your tiny piece of software?" Of course, he totally missed the point that my software was so compact because a lot of it was contained in the .net framework. He missed the point that every piece of my software is compact because of all the useful, reusable components in the framework and that the framework only has to be downloaded once and every piece of software benefits thereafter. You have to take a little bit of pain up front to reap benefits forever. By not adopting a technology, you merely deny yourself the benefits of it. If you wait until a technology is "mature" then you have to take the same pain but you denied yourself the benefit of that technology while you were procrastinating. This is why I think it is always best to take the pain of new technology as early as possible and why I am an early adopter.
There is another important aspect to this. Every software engineer knows that the sooner you fix a bug or problem, the less it costs and the easier it is to do. The best kind of bug (and the cheapest) is one that gets fixed during development before anyone else knows about it. A bug that is discovered in a shipping product can cost orders of magnitude more time and money to put right. Well, I think this idea can be extended to developing software in what I shall refer to as "legacy" technologies. The .net languages and runtime are here to stay. Microsoft bet the company on it so you better believe we are all going to have to use it sooner or later. Windows Server 2003 has it built in 'out-of-the-box' and so will whistler, the next version of windows for the desktop. So, sooner or later, most developers will have to use .net languages if they want to be at all productive and have a chance of being compatible with the OS du jour. The .net technologies are now several years old, yet a lot of people are busy developing in legacy technologies. This is understandable. If the only tool you know how to use is a hammer, then every problem looks like a nail. However, the more code that is developed, the larger the codebase you have that uses the legacy technology and the harder it will be to justify upgrading. So, in a sense, the longer you leave it to upgrade, the harder it will be in the long run and the more it will cost you. You spend all your time developing in the wrong direction and you will have to re-do it all when you upgrade. As John Covey would say, you need to take time out to "sharpen the saw". If you don’t sharpen the saw, you spend all your time sawing and not getting very far. Adopting new technology is like sharpening the saw. With the pace of change in the computing industry, a lot of saw sharpening is required. I believe it is better to adopt new technology as early as possible so that you minimize the amount of re-development and maximize the benefit of the new technology for both yourself (the developer) and the end user.
Oh, and new technology is fun.
I don’t expect everyone to agree with this view, as I said it is just my personal philosophy. Please feel free to leave your comments if you have a different view - I welcome the discussion.
In a Yahoo group I'm a member of, I happened to mention that I thought C# was probably the best language to learn when starting out from scratch. The inevitable reply came back that Visual Basic was probably easier for the beginner, and honestly in terms of getting off the ground quickly, I think that may be right - but that badly misses the point of why Visual Basic is a bad language to pick in order to learn programming. I recommend C# not because it has the easiest syntax (though it isn't actually all that hard); not because it is the easiest to learn; but because it affords good programming technique. Below is the meat of my reply to that person which expands on this a bit more.
I'm not trying to start a technology war here - I really don't care if anyone uses Visual Basic or whatever - but there is anecdotal evidence that VB reinforces a 'hacker culture'. The reasons for this are purely historical - keep in mind that VB was introduced originally as a simple language aimed to plug the gap between batch files and professional application development. The original VB was syntactically weak, informally typed and completely lacked object oriented features. Though VB.Net is a very different language now than the original Visual Basic, it still carries some of that original "shoot from the hip" design philosophy and therefore VB _affords sloppy programming_. Conversely, C and C++ were difficult to learn and probably out of reach of most casual users, accounting for the huge popularity of VB.
I think that if you start with no knowledge, the hard things to learn about programming are the foundation concepts of algorithms, data structures, patterns and practices. The particular syntax used to express those concepts is almost an irrelevance, except that some notations lend themselves better to the task than others. I simply think it is better to use a notation that reinforces good technique than one that doesn't. It is easier to learn good technique from scratch than to learn sloppy technique then go back and unlearn it.
So if you are a new programmer looking to learn your first language, that's why I think that starting with C# is the better bet. It will simply teach you better programming discipline and reinforce good technique that will lead to higher quality software. Once you learn that, you can go on to write excellent code in VB if you prefer (but you probably will not want to). One article I've found that explores this idea quite nicely:
"...we'll look at how the culture of Visual Basic affects the quality of code produced, even today, and how the last remaining vestige of Visual Basic, the syntax, unfortunately continues to reinforce the culture".
One parting shot: If you're still working in VB6, what are you thinking? It is definitely time to consider moving up to a .Net language, be that VB.Net or C# or whatever. Now that you can get an Express edition of VB or C# totally free-of-charge, there is really no reason not to take the plunge.
I was about to blog in response to Susan Bradley's post "
Is the truth harmful?" asking if XCP copy protection was really all that bad and whether the disclosure of this technology (or rather the way in which it was disclosed) was harmful. The dubious technology known as XCP (eXtended Copy Protection) produced by Welsh firm First 4 Internet and deployed by Sony BMG on some of its music CDs was
first 'outed' by Mark Russinovich. I'm pleased to discover that Microsoft seems to share my opinion that this was malicious code. According to
this item and this one from the
Microsoft Malware Engineering Team, Microsoft intends to update its security tools to remove [XCP] copy protection. Well done Microsoft for taking a proactive stance on this one. I hope this technology cost Sony BMG a lot of money - I hope it was a
really expensive mistake that no-one will want to repeat.
Warning: Grumpy Old Man post alert!
Halloween - a harmless pagan tradition. Then came "trick or treat" - that horrid "tradition" imported from the land of the free sometime in the late 60s. Man, what is all that about? People say:
Oh, its just a bit of harmless fun for the kids. Get into the spirit of it!
Well, sorry but I don't buy it. What message are we sending? It's OK to extort things out of people with threats that something bad will happen to them if they don't comply? Aren't we teaching kids the wrong thing here?
So let's assume those kids understand the difference between a bit of harmless fun and demanding stuff with manaces. I am far from convinced that kids understand any such thing, but lets just take it as read for a moment. What if the home owner, the person whose door you know on, is broke and has nothing to give you? How is that supposed to make them feel? "I'm such a loser I can't even afford to give the kids something on Halloween". Chances are they will not answer the door - they'll just feel bad in private. But still, its just a harmless bit of fun.
Now what happens when those kids get a little bit older, say around 15. Now they are bored and angry. They are pumped full of hormones, desperately want to impress members of the opposite sex and maybe have discovered alchohol. Take a crowd of these adolescents, say twenty or thirty, add a dash of alchohol, give them a few dozen eggs and stand back. What you have is something reminiscent of the baboon enclosure at a safari park. You better not drive your car in there - and if you do, keep moving and don't open the windows. A pack of animals like this knows it is unstoppable. They know they can get away with pretty much anything and nothing can stop them. It is the law of the jungle. And on Halloween night, anything goes because this is the night when everyone is allowed to have their harmless bit of fun.
This is the way our society is going. Tonight we had a glimpse of the society of our future. Our country is going down the toilet and no-one can see it. The government introduces new laws to tweak this and micro-manage that - but they fail to recognise the root cause of a young generation without respect for people, property or the establishment. Our young simply do not learn respect and tolerance in school or at home (probably because their parents never learnt it, either). In my opinion, this began with the banning of corporal punishment in schools - something that was used on me a few times and which taught me a valuable lesson: if you cross the line, there are consequences. That's how children learn. They push boundaries until they reach a point where it is no longer tolerated. The retribution that ensues is a valuable life lesson for the child: "You may go thus far and no further". Young people learn by testing, by pushing their luck until they are knocked back. Today's youngsters are deprived of this important lesson that we all need. No-one can punish them and they are allowed to test the boundaries to destruction. Smack your child and you are a social pariah. Sue the teacher who dares discipline a child with more than a pointed stare! If it gets too bad, the police can deal with it, if they have enough time and money and don't have any "real" crimes to deal with.
When are people going to wake up and smell the coffee? Corporal punishment is not bad for the child. A short sharp shock does no lasting harm and teaches a valuable lesson; shows them where the invisible line is that they may not cross. Children need to learn a value system at an early age, right from pre-school. This comes from good role models, good parenting (there's no substitute for good parenting) and from what they learn in school and how errant behaviour is corrected. My wife, Grace, was born and grew up in Manila in the Philippines - she tells me they have a subject in the school curriculum called "Good Manners and Right Behaviour". What a blindingly obvious(*) good idea! How come we don't have that in our country?
(*) All good ideas are blindingly obvious after someone else has thought of them - but it takes a genius to be the first to have a really good idea. That's why we need patents and good ideas are so rare.