Amazon.com Widgets

Archive for March, 2010

Open-source licensing – fact and fantasy (or at least religion)

Monday, March 22nd, 2010

Open-source, as discussed in the previous posting on network equipment, is a fascinating world. Perhaps the best intellectual and business promotion ever written is Eric Raymond’s “The Cathedral and the Bazaar.” There is no question that open-source has led to an upheaval in the world of business technology, enabled entirely new industries, and benefitted the overwhelming majority of individuals and companies out there, with few tears shed for those commercial vendors that have lost business due to open-source competitors. For those who do shed such tears, I strongly recommend Joseph Schumpeter’s “Capitalism, Socialism and Democracy.”

In this article, we will explore the legal side of open-source. This article was inspired by a rather heated debate on open-source licensing with The Schlossnagle. Theo is probably one of the best system engineers and architects I have met. He is the author of a book on building scalable Internet applications, and founded and runs the consulting firm OmniTI.

Open-source creates an interesting and unique series of challenges for its creators.

  • Copying: In the closed-source world, while someone else can potentially reverse-engineer your product, or duplicate its functionality, in the open-source world, the original source is available right there for anyone to take. Thus, the only protection you have as to how your code is used is legal in the form of copyright.
  • Usage: In the closed-source world, you have the option of using code inside your software to restrict its usage and functionality, based on, for example, license keys, which you control. In the open-source world, such an option does not exist. Since the code is open-source, it is easy for anyone to see how the usage controls work and bypass them.

Unsurprisingly, most open-source products allow for unlimited usage. For example, anyone can download and run as many copies of Apache, Linux or OpenBSD that they want. It is almost a truism that open-source and unlimited usage are the same. Obviously, they are not, but they essentially go hand-in-hand.

Where it gets interesting is in redistribution or repackaging. To understand this, we need to delve a little bit into the arcana of copyright law.

In most modern developed countries, copyrights give the author of some creative work the exclusive right to decide how his or her work may be redistributed. This does not include an original, depending on the laws of a country in question and sometimes the particular sales agreement, but duplicates. Thus, if I create a painting, and you (for some unknown reason, given my artistic talents) purchase it, in most cases you may then resell that painting to whomever you want and for whatever price makes you happy. However, under copyright law, you do not have the right to duplicate or copy (hence rights to copy or “copy-right”) that exact painting and sell it off. In doing so, you are violating my copyright. I, and only I, have the right to decide how my work gets duplicated.

All of this is particularly relevant in the world of open-source code. If I create an open-source product, when you download it, you have already created a copy. You are welcome to use it for your own use as you see fit. However, if you distribute it to someone else, especially for some form of compensation, and you have not received my permission to do so, you have violated my copyright.

Given all of the above, it is crucially important to decide exactly how the creator of open-source software will license that software. There are, essentially, two schools of thought in open-source licensing: GPL and BSD/Apache/MIT, which, for brevity, we will call BSD.

  • GPL: The Gnu General Public License, based on the Gnu project by Richard Stallman, is a restrictive distribution license. While it has many details, its philosophy is, essentially, “I made this for free, you can use and distribute it for free. If you want to make money off of it, you cannot since I did not.” The GPL restricts distribution of the software to inclusion in any other software or product that is also GPL (or compatible). For many open-source developers, this makes a lot of sense. They are more than happy to contribute their work product to the good of the community, but do not want someone using that work product to make money unless they do. There really is one downside to the GPL: it restricts adoption. If what you have is unique, or used only in GPL-type products, then adoption will be high. But given the choice between a GPL product and an unrestricted one, a new product developer will always prefer to incorporate an unrestricted one.
  • BSD: This is a class of license that says, essentially, do what you want with my product. There are variants on the BSD (not taking into account who was first) incorporated in the BSD, Apache, MIT and several other licenses, each of which contain legally important differences, such as limitations of liability, requirements of attribution, and other legalities, but essentially all of these licenses let someone use and redistribute the product largely at will. Thus, if I am building a commercial product, I am unable to use a GPL-licensed product in mine, but I can use a BSD one.

The battles between the BSD and the GPL camps can get fierce at times. The GPL was created by a “religious extremist,” the BSD is an “invitiation to legal piracy,” the list goes on. When a very powerful Web 2.0 rich client library, ExtJS, converted from a less restrictive version of the GPL (LGPL) to the full GPL, criticism by users was severe. In the end, both of these philosophies are valid, and are entirely subject to developer’s choice. If you created a product, you really do have three choices:

  1. Keep it closed-source and sell it commercially. Microsoft and Oracle have built huge business on this, as have countless other companies. There is nothing wrong with reaping the financial benefits of your financial investment.
  2. Open-source it and make it completely available, i.e. BSD. Again, there is nothing wrong with being fully community-focused, and either making no money on the product, or making money through ancillary services, such as consulting and support arrangements.
  3. Open-source it and restrict it only to similar products, i.e. GPL. If there is nothing wrong with making money off of your labour and investment, and it is certainly commendable to contribute to the community, it is certainly acceptable to take a middle road that says, “I want to make money, but am willing to be altruistic towards others who are also altruistic.” Many products in the GPL world are dual-licensed, wherein the GPL applies to other GPL products, but if you want to embed it into a commercial product, you need to buy a typical commercial license.

Theo did raise one interesting objection to my middle-of-the-road argument in favour of GPL and/or dual licensing. He said that commercial and BSD-style are very clean and clear, black and white. One has a very clear picture where one stands. The GPL and dual-licensing, on the other hand, are much more in the middle, a shade of grey, and can be confusing. While I understand that objection, I am not convinced it holds for several reasons.

  1. Life is grey. Very rarely is life, or business, black and white. Humans work quite well on the middle ground, codified as Maimonides’ “golden mean.”
  2. If it works, use it. If the philosophy applies well to the situation at hand, then it should be used.

Which does this author prefer? None. Each license – commercial, BSD, GPL – has its time and place.

    The future of networks

    Sunday, March 14th, 2010

    If you asked anyone current in the technology world to say the first word that comes to mind when told networks, it is a fair bet that 99% (if not more), will say, “Cisco.” For years now, Cisco has dominated the business of network equipment. Despite challenges from Juniper, 3Com, Bay, Nortel and many others – including many no longer with us – as well as from Asia such as Huawei, Cisco remains dominant. According to its latest annual report, in 2009, Cisco sold $29BN in product alone, of which over 94% came from Routers, Switches and Advanced Technologies.

    It is possible, but not definite, that despite 25 years of history, Cisco may be at or past a peak of influence, depending on how it responds. Essentially, it is possible that the complete business that Cisco dominates may be at a turning point, where it will split into multiple component parts, where Cisco may dominate some, all or possibly none of those component parts.

    To understand where we are, it is necessary to look at the history of Cisco and commercial networking in general. In the early days, the products at the heart of Cisco where home-grown. Engineers who needed a router to connect between networks, or a firewall to protect networks, would take a workstation or server from a major Unix equipment manufacturer, likely as not Sun, put in extra network interface cards (NICs), and then write software to route, switch or control the traffic as it came into one NIC and wanted to go to the other. I have distinct (and warm) memories of building some of the earliest firewalls this way at First Boston, while the CheckPoint founders were still in the Israeli army.

    Over time, as corporate (and eventually Internet) networks grew, first linearly and then exponentially, this solution simply could not keep up for several reasons:

    1. Manufacturers did not make enough slots for the NICs that were needed;
    2. Traffic grew beyond the capacity of standard computer hardware to manage;
    3. Standardization became crucial, so that a router or firewall built by an engineer in one company was usable by the next hire;
    4. Security grew in importance, vis-a-vis both external and internal threats;
    5. Criticality of the systems required full support and service-level-agreements (SLAs) on both support and spare parts.

    In short, Do-It-Yourself (DIY) became untenable. Into the breach stepped Cisco, with fully-supported and -documented network device operating systems, hardware made for the special networking loads, training courses for the engineers, and even certification, to ensure your next hire knew what s/he was doing.

    In the years since, the open-source revolution has slowly been growing. Whereas, in the early Cisco days of 15-25 years ago, all systems support was commercial, nowadays many businesses are comfortable relying on commercial or community support for open-source products. Open-source can still provide standardization, solving at least part of the issue, as well as support, whether community or commercial (a la RedHat). Further, many open-source products perform better than their closed-source counterparts, and are far more secure. Few to no commercial companies have the resources to find and plug holes, especially security holes, to match a dedicated community of tens of thousands of open-source product fans. Thus, Apache dominates Web services – Intranet and Internet – Linux continues to make in-roads in the enterprise, with whole companies betting the (server) farm on it, and more startups than one can count have built their entire business on Ruby on Rails (or its latest incarnation), PHP or Java.

    The one area where open-source is essentially non-existent, at least at first glance, is enterprise networking. True, mini distributions of operating systems with firewalls in them have arisen (like m0n0wall, pfSense, smoothwall or many others), but the places where it counts, Cisco still rules the roost. It is important to note, as an aside, that as of ASA release 8.0, Cisco has based its router and switch operating systems on Linux, and is likely to continue to do so.

    With the growth of open-source in the enterprise in general, and its ability to solve problems 3,4,5 above, it is slowly becoming clear that the advantages to hardware-specific networking solution vendors exist solely in their hardware. With Cisco’s gross margins on product running 64.0% (that is gross margin, not variable cost), customers are paying a premium to solve all 5 challenges, when Cisco’s proprietary and expensive solution is required for only 2 of the 5 issues.

    Over the next several years, open-source routing, switching and firewall software solutions, whether new ones yet to be discovered or growth of existing solutions plus some management add-ons, will reach the point where they can run on any hardware, and will directly solve problems 3,4,5. At that point, the open-source solutions will become the de facto standard, running on whichever fairly commodity hardware is available from Cisco (if it rises to the challenge of somehow commoditizing its hardware while continuing to make a reasonable profit) or any other players. Essentially, the market for networking equipment will break down to its component parts:

    • Hardware, which will run whichever….
    • Software, likely open-source, the customer chooses, supported by….
    • Support Agreements, provided by a support company of the customer’s choice.

    Nowadays, Cisco makes obscene (according to the customer) or beautiful (according to the investor) margins, selling all three together to solve all 5 problems. The open-source revolution will hit networking some time in the next few years, break the three components apart, and either provide even more revenue and profit for Cisco, or bring a legendary dominant player to its knees.

    In Praise of the Sun – Can Solar Energy Solve Our Problems

    Sunday, March 7th, 2010

    Clean technology, especially energy generation, has generated (pun intended) an enormous amount of interest lately. Using one simple (and admittedly simplistic) metric, VCs invested almost $5BN in green/clean tech in 2009, out of a total of just under $18BN, or over 25%. Given that most VC investments involve uncertainty whether or not a market will adopt new technologies or services, but not whether or not they will work in the first place, while clean/green is often a question as to whether or not it will even work, that is an astounding number. Further, many green/clean firms explicitly depend on government subsidies to survive, where such subsidies and policies are fickle at best. If a “weighted” approach were taken, weighing in other normal factors – the same way that sales in retail are seasonably adjusted – then the percentages would be significantly higher.

    A major player in this approach is solar. Solar energy panel creators, investors, installers, etc. are endless, and it appears everyone is getting into the business. Solar looks and feels nice: it is, literally, clean, generates no polluting byproducts (except in the creation of solar panels themselves), and the Sun is available nearly everywhere on the planet. In a recent discussion, the questions as to whether or not the Sun could ever generate all or the majority of energy requirements for the human race. I decided to perform some basic research and make it available here.

    In order to simplify the issue, we need to understand several issues.

    First, there are actually two parts to energy: generation and location.

    • Generation: This is how you turn latent (or potential) energy into actual energy that can be used. Examples include solar cells in Arizona converting the Sun’s rays into electricity; a hydro-electric dam in Beaumont, Quebec, converting the flow of water (mechanical energy) into electricity; the Indian Point nuclear reactor in New York converting the energy connecting the protons and neutrons of a uranium atom into electricity; and, the classic example, an internal combustion engine in a car converting the chemical energy connecting atoms and molecules in petroleum into mechanical energy to move the car.
    • Location: Location is getting the generated energy to the point of usages. If we generate energy in Beaumont, but need it in Albany, it is useless unless we can transport it from Beaumont to Albany. Similarly, we may have a wonderful solar field in Arizona, but it is useless if it cannot be somehow stored and transported to an Acela express train currently speeding from Washington, DC, to Boston.

    For the sake of simplicity, we will completely ignore location. In other words, we will assume that any energy we generate – in the case of solar, almost exclusively electricity – can be properly stored for extended periods, and properly transported. Somehow, the electricity from the Texas solar field will make its way to a battery in a car that will travel from London to Manchester.

    Second, the amount of solar energy hitting the earth is not the same at every location, nor is it the same at all times of day or year. For the sake of simplicity, we will assume that every location on the earth will receive 12 full hours of Sun, and equatorial (i.e. maximum) Sun at that, every single day. We are ignoring clouds, rain, wind, haze, sunrise/sunset, elevation/azimuth, north/south, and all those other pesky factors that reduce the amount of solar energy hitting a single spot, and assuming we are simply blessed with the most we can get.

    Third, we are going to assume that our solar cells are 100% efficient. In other words, our magical solar cells can capture every single joule of energy that the Sun provides to a given spot. Obviously, this is a very big fiction: nothing engineered is ever 100% efficient, and current commercial solar cells technology is around 10-12%, expensive commercial technology is ~22%, some research equipment has gotten into the 40%+ range. Obviously, produced, commercially viable, high-efficiency cells are a very long way off. Nonetheless, we will ignore all of these factors and assume we are 100% efficient.

    Fourth, and last, we will ignore commercial viability. We do not care if our solar fields can operate at a profit or break even, or even at a massive loss. We only care whether or not it is scientifically feasible to capture enough solar energy to power civilization’s needs.

    What Are Our Needs?

    Surprisingly, this is a difficult question. To simplify it, I will focus solely on the United States. The US is a large, continent-wide country, with a population of ~300MM and a surface area of 9.8MM sq km. It is an advanced Western society, with high energy needs. Most countries in the world – politics notwithstanding – aim to emulate at least the United States’ economic position. According to Lawrence Livermore National Laboratory, US energy usage in 2008 was a total of 99.2 quadrillion (or quad) BTUs (British Thermal Units).

    How Much Sun?

    How much energy is actually hidden in those rays of light (actually photons) that hit the earth? The question depends on whether we are looking at the surface of the earth, or the edge of the atmosphere, a great distance up. According to NASA and most scientists nowadays, energy making it to the edge of the atmosphere, is 1.368 kW / sq m. For every square metre of atmospheric surface, 1.368 kilowatts of energy – of all forms of radiation – bombard it. About 30% of that is reflected by the atmosphere itself, so about 958 watts of energy per square metre make it into the atmosphere. However, another 20% is lost to clouds, atmospheric obstruction, etc., so about 51% (NASA) reaches the earth’s surface. Thus, with perfect 100% efficiency, no clouds in the way, no thinking about angles of the Sun and other effects, 697 W/sq M reach the earth’s surface. One Watt is 1 joule / second, so, over an entire year with 31.5MM seconds, with perfect conditions, 22MM joules of energy hit a square meter. We already saw that the US used 99.2 quads of energy in 2008. Each quad BTU is 1.06 quadrillion kilojoules, so the US used 105 quadrillion kilojoules. Since each square metre produces, under perfect conditions, 22MM joules, we would need 4,776 MM square metres, or 4,776 square kilometres, of surface to power the United States. According to the CIA Factbook, the US has a surface area of 9.8MM sq km. In other words, under perfect conditions, the US would need to cover less than 1% of its surface area to supply its energy needs.

    This looks very promising… until we start to account for efficiencies, weather, Sun declination, and all the other factors. Realistically speaking, the US, even with 50% efficiency solar cells, is unlikely to capture more than 5% of the solar radiation hitting its surface. The Sun is not directly overhead all day, anywhere; much of the US is northern and thus subject to much sharper angles of the Sun in the winter; large river and lake concentrations, as well as mountainous and populated areas, make placing solar cells impractical. Economics, of course, always enter the picture. Given this fact, we must multiple by 20 the surface area that would need to be covered. With perfect energy efficiency cells, the US would need to cover ~1% of its surface area. Suddenly, it is not that simple. Now, we return to dealing with today’s cells. Given the maximum (and very expensive) efficiencies of 22%, with these cells, the US would need to cover 4.4% of its surface area. That is a lot of land, larger than all of California!

    Summary

    In sum, given today’s best technology (which will change), and the weather (whose uncertainty, if the specific characteristics, will not), the US would need to cover an area the size of California to supply its energy needs, even before considering challenges of storage, transportation and cost-effectiveness. As much as I would like to be bullish about solar, I believe solar will remain a niche service, at least for the foreseeable future.