.that I voted for Barack Obama. 
The contention that DRM doesn't stop piracy and therefore should be abandoned is false an misleading, and yet it repeated constantly by anti-DRM zealots. It is absolutely true that DRM will likely never totally prevent piracy. With enough time and effort, virtually any DRM can be cracked. Of course, that's not the reason DRM exists, and that's why the entire line of argument is a straw man. DRM very effectively prevents casual piracy and counterfeiting. Windows Activation, for instance, effectively prevents the average computer user from sharing their copy of Windows with their buddy, as well as allows users to accurately tell if they were sold a counterfeit copy.
Does the application of DRM to a software product result in the overall piracy rates of the product changing? That's a hard question to answer if only because casual piracy is virtually impossible to track. It's fairly easy to track torrent downloads, but no so easy to track how often somebody casually lends an installation CD to somebody else. Studies of traditional piracy suggests that applying DRM doesn't affect the types of piracy that are easy to keep track of publicly. Casual copying can really only be detected if the product in some way communicates back with the company that created it, or if there are mechanisms in place to audit large numbers of users in some way. Indeed, companies like Microsoft do both of these things. Microsoft claims that Windows Activation in Vista reduces casual piracy and counterfeiting by 50% over XP's Activation process. Even if that figure is off by an order of magnitude, it still makes a lot of sense for Microsoft to pursue these measures. In the case of digital content distribution software, like Apple's iTunes or Microsoft's Zune Marketplace, DRM may do very little to decrease piracy overall, but these services simply wouldn't exist without DRM. Content creators (record labels, TV producers, etc) would not allow Apple or Microsoft to distribute their content digitally without some safeguards against trivial and casual piracy of that content. It's one thing for somebody to buy a CD, rip it, and create a torrent of it, but it's a far bigger problem if that same person had unrestricted access to 2 million songs that they could then download and redistribute and at ease. Whether that same content is available in bits and pieces via piracy sites is not the question (it obviously is), it's the ease of access and redistribution that a something like iTunes or the Zune Marketplace would provide to would be pirates if there was no DRM applied to those services.
DRM is meant to raise the barrier just enough to prevent casual piracy ("don't copy that floppy!"), and to make media companies happy enough to allow digital music companies like Apple and Microsoft to provide huge content libraries for distribution. It seems that, for now, it is accomplishing these goals. If it weren't, that funky thing called economics would dictate that companies stop using it. I realize that anti-DRM zealots really want to make as big a stink as possible, either because of some silly ideological stance or because of a previous bad experience. Fine, if you manage to convince enough people that DRM is evil, maybe companies will stop using it. But stop saying that it doesn't work. It does. And, honestly, most computer users couldn't care less about DRM as long as it doesn't get in the way of them doing things they think they shouldn't reasonably be allowed to do.
Like many other Americans on Friday morning, I was first confused and then shocked by John McCain's selection of Sarah Palin as his Vice Presidential nominee. Confused because I had never heard of her, and then shocked to learn how unambiguously unqualified she is for this incredibly important role. In one fell swoop, McCain single handedly demolished both his slogan, "Country First", as well as his best argument against Barack Obama, experience. There can be no doubt in any honest person's mind that McCain chose Palin because he needed to shake up the race, a race he was losing. His choice was not based on who would be best to take the reigns should McCain succumb to age or cancer while in office, but instead it was based on a political gamble designed solely to win an election. This is about as far from "Country First" as you can get. McCain picked Palin because she has the image of a reformer, even if that image isn't particularly deserved. He picked her because she has great appeal to the GOP's religious base due to her extreme right wing stances while simultaneously having the potential to regain McCain's image as a maverick and even get some of Hillary Clinton's most ardent (and post-rational) supporters over to his side. He was hoping that such a unexpected and risky choice would convince some independents and undecided voters that McCain isn't just "more of the same", but instead something fresh and new. He picked her to give a sense of youthfulness to his ticket, a ticket which Barack Obama has very successfully cast as old and tired. If Palin had all of these characteristics, plus had, on at least the state level, 6 or 8 years of experience with issues relevant to the country as a whole, I suspect we would still be talking about how she is one of the least qualified people McCain could have chosen. Instead, Ms. Palin has virtually no relevant experience. This is a woman who 2 years ago was mayor of a town with 6,000 people. A town whose center consists of the Mugshot Saloon, which is pictured to the right. McCain and his surrogates have already started to try and downplay her extreme lack of experience, even suggesting that she has more relevant experience than Barack Obama. This claim falls flat for several reasons. First, as mentioned before, it flies in the face of everything McCain has been decrying about Barack Obama for months. Even if Palin is as qualified or slightly more qualified than Obama, how could McCain justify choosing her over so many other qualified individuals when he said voting for Obama would be "dangerous"? McCain claims that Palin has more "executive experience" than Obama. Is McCain really suggesting that being mayor of 6,000 people, and Governor of 600,000 for less than 2 years is all you need to be President, yet 8 years in the Illinois state Senate (representing about 750,000) and 4 years as a US Senator (representing about 13 million) doesn't cut it? Seriously? I would venture to guess that Barack Obama gained more "executive experience" running his campaign over the past 18 months than Palin has gained during her very limited tenure as Governor of Alaska. Furthermore, simply being an "executive" does not translate directly into having had relevant experience to be President of the United States. Has she dealt with issues relevant on a national stage? In a recent interview, she couldn't formulate even a remotely informed opinion on the war in Iraq, stating that she has "been so focused on state government", and that she hasn't "really focused much on the war in Iraq." No only that, when asked about being McCain's VP, she insisted that first someone would have to tell her what the Vice President does everyday, and how she could use that position to help people in Alaska. This isn't a matter of having bad stances on nationally important issues; she has no discernible stances at all! How could McCain possibly think that she could deal with national security issues when the women got her first passport in 2007? It's absurd, and it would actually be kind of funny if we weren't talking about a woman who currently has about a 50% chance of becoming the next Vice President of the United States. Just to humor the people who honestly think there is a comparison between Barack Obama and Sarah Palin, let's take a look at how their experiences stack up so far: | | Sarah Palin | Barack Obama | | Childhood | Born in Sandpoint, Idaho. Moved as an infant to Wasilla, Alaska. | Born in Honolulu, Hawaii. Moved to Jakarta, Indonesia at the age of 7, and lived there until the age of ten. Returned to Hawaii to live with his grandparents while his mother was getting her degree. Lived in Honolulu until going to college at the age of 17. | | Early Life & Education | Attended local Wasilla schools for both grade school and high school. She excelled in basketball and other athletics. | Attended local schools in Honolulu until the age of 7, when he moved to Jakarta. There he attended a variety of schools including a local Catholic school and an Indonesian elementary school, both considered to be among the better options in Jakarta. At the age of 10, he returned to Honolulu to attend the highly competitive Punahou School. | | Higher Education | Attended Hawaii Pacific College in Hilo, Hawaii for a semester and studied business administration. Transferred to North Idaho College. She then transferred again to the University of Idaho and received a Bachelors in Communications and minored in political science. | Attended Occidental College in Los Angeles for 2 years. Transferred to Columbia University in NY and majored in political science with a specialization in international relations. Graduated with a Bachelors in Political Science. Attended Harvard University to study law and became the first black editor of the Harvard Law Review. Graduated at the top of his class, magna cum laude with his law degree. | | Early Career | Worked as a sports reporter for a local Anchorage television station, and with her husband as a commercial fisherman. She was runner up in the Miss Alaska beauty pageant after winning the Miss Wasilla pageant. | Worked for a year at the Business International Corporation, and then at the New York Public Interest Research Group. Moved to Chicago and became a community organizer for the Developing Communities Project on the rough South Side, helping people find work and motivated them to bring about political change. Grew the Developing Communities Project's budget from $70k to over $400k. Helped setup job training projects, college prep. tutoring programs, and tenants right's organizations. After getting his law degree from Harvard, he returned to Chicago and worked for the firms Sidley & Austin, and Hopkins & Sutter. While at these firms, he continued his community organizing and concentrated primarily on cases that would help his South Side community, passing up opportunities to make a great deal of money as a corporate lawyer. Wrote his first book, Dreams from my Father. Taught constitutional law at the University of Chicago Law School for 12 years. Joined Davis, Miner, Barnhill & Galland and specialized in civil rights legislation and economic development. | | Political Life | Wasilla PTA board. Served on the Wasilla City Council for two terms. (4 years.) Served as Wasilla Mayor for 8 years, a town of 6,000 people. Has served as Alaska's Governor for 18 months, governing 600,000. Palin first received her passport in 2007 so that she could go visit some Alaskan national guard troops in Kuwait and Germany. This was he first trip out of the country for any reason. | Chicago Illinois State Senator for 8 years, representing the 13th District, which has a population of about 750,000. US Senator from the State of Illinois for 4 years, representing about 13 million people. While in the US Senate, Obama has held positions on the Foreign Relations Committee, the Environment and Public Works Committee, the Veterans Affair's Committee, the Health, Education, Labor, and Pensions Committee, the Homeland Security and Governmental Affairs Committee, and the subcommittee on European Affairs. As part of these roles, he has made numerous trips to Eastern Europe, the Middle East, Central Asia, and Africa. In February of 2007, Obama announced his candidacy for the Presidency. He managed a campaign which grew to over 1000 staff remembers and millions of volunteers around the country, with a budget exceeding $100 million. | So the people claiming Palin has more "executive experience" somehow think that being mayor of a town of 6,000 people and then being Governor of Alaska for 18 months makes her more qualified than Barack Obama, who has represented nearly 13 million people, is a professor of constitutional law, a lawyer, a graduate of the country's top schools, a distinguished career as both a state and US Senator, has a long history of managing others through his work as a community organizer and indeed his Presidential campaign? If that were true, you could also claim she was more experienced than both Joe Biden and John McCain. Please, explain to me the relevant "executive experience" Palin gained. Spell it out exactly. Let's face it, those people defending her "executive experience" are either lying to themselves, or lying to everybody else. Another line used by McCain and his surrogates while defending this indefensible choice is that while she may seem to be unqualified, McCain determined that they were "soulmates" and that's why he is confident she will be able to lead the country if something happens to him. When, exactly, did he come to this conclusion? McCain met Plain twice in his entire life, and the 2nd time was when he chose her to be VP. Yes, this really is as reckless as it sounds. McCain chose a woman with virtually no experience to be a "heartbeat" away from the Presidency after meeting her once. To me, this shows how McCain is willing to risk not only his candidacy, but his country, in his effort to become President. It shows that McCain's gambling problem isn't isolated to the craps table. It shows he is the one who is truly dangerous. Barack Obama has spent the last 18 months proving to the American people that he can lead this country. Judging by the fact that he is the Democratic party nominee, he survived that test. Sarah Palin was chosen by McCain, and it appears, McCain alone. The American people will have about 8 weeks to learn all they possibly can about this completely untested and unproven individual. This is why it is often said that the VP pick is one of the first truly presidential acts of a candidate. Republicans trusted John McCain to make this decision carefully, and John McCain absolutely violated that trust.
I've been trying to hunt down a bug for months. It's one of those bugs that you can't replicate, that you can really predict, and that only happens in production once every few weeks. It's also a bug that can essentially completely break the system, and at the worst possible time... during periods of heavy load. The basic story is that I have an application that handles tens or hundreds of thousands of requests a day. These requests are in the form of MSMQ messages which are sent to a set of middle tier machines for processing from a variety of sources and for a variety of purposes. Once they reach the middle tier, a component called the Dispatch Manager deserializes the contents of the message, examines the .NET type and various properties of that type that adhere to a particular interface called IDispatchedMessage, and then hands the message off to another component for processing. The process of peeking the message on the queue and dispatching it happens in a multithreaded, object pooled environment. The problem was that sometimes the message types wouldn't get deserialized properly. I would get errors stating that the Dispatch Manager didn't know how to read that particular message. This almost always happened during periods of heavy load, when there were dozens of threads simultaneously dispatching messages. After a fairly random amount of time, but always when the load started to decrease a little, the Dispatch Manager would magically remember how to deserialize those messages again and the problem would go away until the next time I restarted the application or the internal application cache was cleared. The message types and where they're supposed to get dispatched to are stored in a SQL Server database. This data doesn't change too often, so I cache it using a singleton pattern. The Dispatch Manager constructs an XmlMessageFormatter class instance using the type names from the database, caches this instance, and returns a reference to this static instance when requested. This instance is then assigned to the MSMQ message and the Body property is accessed to get the deserialized data. Something like: public IDispatchedMessage DeserializeMessage(System.Messaging.Message message) { IDispatchedMessage dispatchedMessage; XmlMessageFormatter messageFormatter; messageFormatter = MessageFormatterCache.GetMessageFormatter(); message.Formatter = messageFormatter; dispatchedMessage = message.Body as IDispatchedMessage; return dispatchedMessage; } Looking at this code, I concentrated my attention on the MessageFormatterCache. I figured it had to be the problem. Some how, my singleton pattern was failing under load. I rewrote the code several times. I did extensive research on potential issues with double checked locking in .NET. Not matter what I did, the code still broke. Well, that wasn't the issue. It was a far more insidious issue, and honestly one I should have caught a lot earlier. The XmlMessageFormatter class, like many classes in the .NET Framework, is not thread safe. Usually, this doesn't actually mean that it won't work, it just means that it hasn't been tested or designed with multithreaded access in mind. In the case of the XmlMessageFormatter, they weren't kidding. The clue that tipped me off was that just before the Dispatch Manager would start forgetting message types, I would get an exception stating that a collection had been modified and therefore the enumeration could not continue. I was never creating, modifying, or enumerating collections in the code in question, so I took at look at the stack trace. Sure enough, it pointed directly to the Read method of the XmlMessageFormatter. Here is a slightly abbreviated version of that Read method: public object Read(Message message) { this.CreateTargetSerializerTable(); XmlTextReader xmlReader = new XmlTextReader(message.BodyStream); foreach (XmlSerializer serializer in this.targetSerializerTable.Values) { if (serializer.CanDeserialize(xmlReader)) { return serializer.Deserialize(xmlReader); } } throw new InvalidOperationException(Res.GetString("InvalidTypeDes..."));Well, there is the enumeration that was generating the exception. Wait a minute, what's that method call at the top of the Read method? That looks like something that might change state, and in a multithreaded context, that's a very bad thing. Let's take a look: private void CreateTargetSerializerTable() { if (!this.typeNamesAdded) { for (int i = 0; i < this.targetTypeNames.Length; i++) { Type type = Type.GetType(this.targetTypeNames[i], true); if (type != null) { this.targetSerializerTable[type] = new XmlSerializer(type); } } this.typeNamesAdded = true; } if (!this.typesAdded) { for (int j = 0; j < this.targetTypes.Length; j++) { this.targetSerializerTable[this.targetTypes[j]] = new XmlSerializer(this.targetTypes[j]); } this.typesAdded = true; } if (this.targetSerializerTable.Count == 0) { throw new InvalidOperationException(Res.GetString("TypeListMissing")); } } That's no good at all. This method is clearly not thread safe. Multiple threads can get to the boolean check and continue on into those if blocks before the first thread has finished building the collection and setting the bool to true. This will cause everything to break until load calms down a little and one thread has time to completely run through the process of deserializing a single message. This is exactly what I was seeing. The fix was fairly simple. Just use a cloned copy of the XmlMessageFormatter for each thread. I modified the MessageFormatterCache to return a cloned instance, and the problem disappeared. Microsoft even implemented ICloneable for the XmlMessageFormatter. That should have tipped me off right from the beginning. Oh well. I also "primed" the cached instance by forcing it to deserialize a message in a thread safe context beforing letting it out into the wild world of multiple threads. This improved performance a little since it wasn't building the collection over and over again each time a thread used it. Just goes to show, you should never assume that a class is thread safe.
I was one of the most pessimistic of pessimists when it came to not just the future of the world's energy supply, but the future of modern society as we know it. While always remaining skeptical, I pretty much bought into the doomsday predictions about peak oil. I surfed the peak oil web sites. I watched and read the peak oil movies and books. Hell, I bought two domain names and started working on a peak oil site of my own. I was sold. Honestly, I should have known better. People who predict the end of society have a pretty poor track record of being correct. I was probably drawn in by a combination of my decidedly cynical outlook on politics, as well as my just-enough-to-be-dangerous insight into energy alternatives, oil production, macroeconomics, and science. I am no longer a believer, partly because of a better understanding of new energy technologies, and partly because of a better understanding of our modern economy. I'll leave my knew economic viewpoint for another blog post, but suffice it to say that our economy is not nearly as dependant on oil as it was 30 years ago. The advent of the Internet, information technology, and our shift toward the service sector dramatically dampens the effect that oil shortages have on the economic engine as a whole. Short of most of the world's oil disappearing overnight, we wont' see the collapse of society that is often predicted by peak oil enthusiast. For this blog post, I'm going to focus on one particular technology that all by itself could allow us to reduce our fossil fuel consumption by 30%[1], and that's only when you use it for electrical power production. This technology is called concentrated solar power.  Concentrated solar power, or CSP, basically amounts to using big mirrors to focus the sun on a small area in order to get something very hot. In other words, it's like what a lot of kids do to ants with magnifying glasses. It really is that simple. Typically, the focal point contains a fluid with a very high specific heat, such as molten salt. This hot liquid then travels to either a heat exchanger so it can turn water into steam for steam turbines, or into something like a sterling engine. (Although at this point our best bet is still steam turbines.) This heat can also be stored for power generation during periods of little or no solar radiation, like at night. I had heard of CSP before, but had discounted it as not having a high enough efficiency to be a viable alternative. I had always assumed, and indeed read, that CSP, along with most other "green" alternatives, would take up so much land area that we would need to use virtually all the free space in the United States for power production to offset fossil fuels. As it turns out, this is complete baloney. In fact, a 92 by 92 mile area in the south western US (probably encompassing Death Valley) could power the entire United States electrical grid... and we would even have a little juice left over to sell to our friends in the north. That's just a bit more than 1/3rd of the Mojave Desert, which I'm pretty sure isn't being used for much right now. Think about that for a minute. Every single watt of electricity that is currently produced by a combination of coal, oil, natural gas, nuclear, hydroelectric, wind, and even photovoltaics could be produced by a big set of mirrors in the desert. That's almost 500,000 megawatts of capacity.[2] We would even have plenty of space left over to keep up with new demand, or with the demand of our neighbors to whom we would undoubtedly be happy to sell our electricity. Of course, most of our exports would probably be heading north, since Mexico's "solar resources" are nearly as good as ours. What an interesting turn of events it would be if the parts of the world that are currently the most poor and devoid of natural resources suddenly became the Saudi Arabia of the 21st century. (Yes, I realize that Saudi Arabia would also be included in this list.) Huge swaths of North Africa that are currently some of the poorest nations on earth could be sitting on (or, rather, under) the world's largest and most valuable commodity of the future: solar radiation. I know what you're thinking. You're thinking that CSP plants are expensive to build, or they're difficult to maintain, or they use exotic materials that are extremely expensive. Well, there is some truth to that, but not so much truth as to make it a deal breaker. CSP plants, as I mentioned before, are primarily glass, concrete, and steel. They're less complicated than a modern office building. As a result, CSP plants should last 50 to 100 years without any serious upkeep costs. The only thing that makes them particularly expensive is their massive size. How expensive, exactly?. Well, if we set out to fully move our electrical grid over to a combination of CSP and the existing alternatives like hydroelectric, nuclear, and wind, we would need to build around 350,000 Mw of capacity. The area required to produce this capacity is about 78 by 78 miles, or about 6,104 square miles. Using the data from a Department of Energy presentation given to the state of California back in 2003, as well as data from the construction of a small CSP plant in Nevada, I've calculated that the current cost per Mw of capacity is about $3,750,000. That's a lot of money. It would cost over $1.5 trillion to build enough capacity to service the entire United States. No, I'm not suggesting we spend $1.5 trillion. Those costs don't take into account any of the magic of the economies of scale. The DoE presentation I mentioned earlier estimates that a 250 Mw plant would cost around $750 million to construct. A 1000 Mw plant would run you around $2 billion. A 6000 Mw plant would cost about $11 billion. As you can see, our cost per megawatt steadily decreases when you increase plant capacity. Assuming we plateau at 6000 Mw in terms of the economies of scale (which I have little reason to conclude, but for the sake of skeptical argument let's go with it), we're already down to $1.8 million per megawatt. That's about half the cost per Mw of the 65 Mw plant in Nevada. All of a sudden we're looking at a price tag of around $650 billion to generate all of our electricity from things other than fossil fuels, or around $900 billion to go 100% CSP. Still sounds like a lot of money, doesn't it? Well, it is a lot of money, but it's not money that is simply exiting our economy like some of our other expenditures. If we set out with the goal of no fossil fuels for electrical production in the United States by 2025, it would mean investing around $37 billion a year into CSP. That's about 30% of what we spend in Iraq per year. Does it still sound unreasonable? Remember, one big reason why we're in the mess in the Middle East is because of fossil fuels. We could kill two birds with one stone. Still not convinced? The DoE presentation also cited data that showed that the construction of a single 1000 Mw facility results in about 7000 new jobs for a period of about a year, and then around 2000 permanent jobs thereafter. We would need to construct over 20 of these plants per year to meet our goal. That's 144,000 jobs a year, 40,000 of which are long term. Can you imagine if our economy added 144k new jobs every year for 17 years in one sector alone? Any President with that on their resume has some serious bragging rights. Most power plants are heavily "back loaded" in their costs. A coal power plant, for instance, costs 20% "up front" (construction), and 80% in fuel costs and maintenance. A CSP plant is exactly the opposite. 80% of the cost of a CSP plant is in its construction, and 20% in its maintenance. (Fuel is free... as long as the Sun doesn't charge.) This means that unlike fossil fuel plants, CSP has the potential to get cheaper over time. You would think this is a good thing, but in terms of private investment, it's not. An investor doesn't want to wait 50 years to make his money back. If he can build a 1000 Mw coal plant for $250 million and charge 8 cents per kilowatt hour, he'll make his money back in far less time than if he built a $750 million CSP plant and charged the same amount per kilowatt hour. The investor knows full well that 30 years down the road that CSP plant will be a gold mine since fuel is free and maintenance costs are low. That 8 cents per kilowatt hour will be 80% profit. Alas, the investor isn't going to live to be 150 and enjoy the fruits of that labor, so he is going to stick with coal. At best, the investor might be willing to pony up the $750 million if he can charge 15 cents or 20 cents a kilowatt hour, but those prices aren't competitive in our fossil fuel driven world. So how do we fix this? The government needs to "make the market". What that means is that there needs to be significant incentives in the form of tax breaks and straight up cash to build these plants. If we can level the playing field between CSP and fossil fuels in terms of initial investment costs or in terms of cost per kilowatt hour, CSP will take over. If we as a nation are willing to spend $120 billion a year on the Iraq war under the slogan that it will make us safer and stronger as a nation, why not $37 billion a year for something that will actually make us safer and stronger as a nation? The best part is, CSP is just one possible technology that can save us from peak oil. New nuclear reactor designs, innovative wind turbines, and the constantly increasing efficiency of photovoltaics will all help as well. Peak oil has either arrived or will arrive in the very near future. Very few people still doubt that. How its arrival affects us isn't out of our control. We have a choice. [1] The US uses 40% of its fossil fuels for electricity production, but only 72% of electrical production is via fossil fuels. So 72% of 40% is about a 30% potential decrease in fossil fuel usage. [2] Our current grid capacity is somewhere around 500,000 megawatts, or about 4,380 terawatt hours of production per year. It breaks out to: Coal = 245,890 mw, Natural Gas = 89,383 mW, Nuclear = 97,442 mW, Oil = 16,095 mW, Solar/Geothermal/Hydroelectric/Wind/Other = 38,403 mW. For more details, go here.
|
|