Network neutrality or bulk rate discount?

December 5th, 2008

Just read a crazy article trying to inflame people to be against network neutrality. Study: Google uses 21X more bandwidth than it pays for. The study essentially states that Google pays a lot less for its bandwidth than regular Internet users, and uses much more of it. The implication of the story is that because of Net Neutrality, Google isn’t paying its fair share of the costs of the Internet, and the poor ISPs just want to be able to make the biggest companies pay more.

Let’s dissect this a bit.

  • What is Network Neutrality?
  • Why is Google paying less?
  • What are the real costs of the Internet?

What is Network Neutrality?

First of all, Network Neutrality is a political issue related to the fundamental ways we’re charged to use the Internet. The EFF, most software and services companies, and most content providers are in favor of Net Neutrality.

People are charged for connecting to the Internet through a series of ISPs, and the ISPs pay telecommunications companies to connect to the wires and fiber optics that make up the Internet. On the Web, there are always two ends to Internet traffic–the web site you’re visiting, and you. The Internet routes all the traffic between you and the web site. You pay for your connection to the Internet, and the web site owner pays a web host or a data center or an ISP to be connected to the Internet. For every web site you visit, two people pay: you, and the web site owner.

Network Neutrality is an attempt to keep this model of paying for the Internet, essentially by putting a toll booth at the onramp and offramp. Proponents of Network Neutrality (which includes me) think this is enough, and do not want to see other revenue streams going to support the basic wires, because it opens up a huge conflict of interest. Charging for the pipe to your house, charging for the bandwidth you use, these are fair systems for paying for the Internet.

Opponents to Network Neutrality include mostly telecom companies like AT&T, Verizon, Sprint, and many others. What they want to change is they want to put surcharges on particular types of traffic. The specific underlying cause for this is VoIP–with the rise of services like Vonage, Skype, and dozens of other VoIP providers have cut into the revenue of the traditional phone companies. So instead of raising fees to ISPs and allowing this traffic to flow unimpeded, they want to preserve their old revenue model, and discriminate against voice traffic that goes over data.

If we looked at this as a highway, with tollbooths at all the on- and off-ramps, the telecom companies would argue that they just want to be able to charge more for semis hauling trailers, so that those activities that take up more space on the road would get charged more than individuals who are just driving a family car. Sounds good, right?

Except that’s not quite what they want to do. To extend our metaphor to fit, we’d need to add a high-speed train that the same companies also run. And then notice that they actually aren’t charging the trucks as much as they’re charging buses or electric cars or any other type of vehicle that might compete with their train service.

Network Neutrality does not prohibit telecom companies from charging whatever they want for traffic through their pipes. All it does is protect them from discriminating arbitrarily against different types of traffic. They could change from their current consumer all-you-can-eat for one monthly rate plan to charge by the GB of traffic, and none of the network neutrality folks would complain. Bigger bandwidth users will pay more for it. That’s neutral. But saying that VoIP, or Bittorrent, or video calling, or instant messaging, or email, should be charged at a different rate than web traffic only serves to protect monopolies and inhibit innovation.

Why is Google paying less?

Quite simply, they pay less per giga-byte of transfer because they’re buying it in huge bulk quantities. Regular home users do not get the best deal per giga-byte of traffic because most buy a flat unlimited plan, and never get close to the capacity they’re actually paying for. Back in the dial-up days, you used to pay more to get more hours online. Now you can be online 24×7, but you’re certainly not using all your bandwidth. That’s why you’re paying a higher rate.

Bandwidth does cost. Popular web sites pay high charges to get enough traffic to their servers, compared to home users. I’m sure Google’s Internet charges are well into the millions of dollars, probably tens of millions. Divided by the giga-byte they’re getting a great deal compared to home users. That is all this study is saying.

What are the real costs of the Internet?

Senator Ted Stevens did get it right in this respect: the Internet is a series of tubes. Think of the water system in any major city: Internet routers are like a pump station. An Internet backbone is like a water main between two pump stations. The copper wires or fiber-optic strands are quite like pipes, although data passes in both directions. As the pipes (the copper) comes out to your house, they get smaller and smaller, capable of carrying less data. Instead of water flowing over the pipes, it’s data, which is really just a tiny amount of precisely regulated pulses of electricity (or light, in the case of fiber). And instead of there being a big reservoir that is the source of the water, the data flows both ways, so all end points can also be the data source.

Creating the Internet took a huge amount of capital investment, to lay the wires and fiber across the country. The telecom companies largely built this system. But once it’s all built, there’s very little cost to operate it–just a relatively small amount of electricity and a bit of maintenance when things break. Extending the Internet to new communities, laying faster fiber to existing places, improving the technology along the way, these are the places your dollars go. That, and into the pockets of the companies that made the initial investment (mostly by piggybacking on the copper and profits of the previous phone system). These companies obviously should be rewarded for making the investment, but now that the infrastructure is largely in place, paying them more doesn’t necessarily result in further benefit to us.

The Internet should be managed like the rest of our infrastructure: our highways, our electrical systems, our water systems, etc. They should be managed like a utility, and not favor some interests over others. If their old business model of landlines is no longer viable, they shouldn’t be allowed to crush more innovative competitors by limiting access to the wires we all need to share.

One of my clients has suggested that phone companies should be split in two, with the part responsible for the actual infrastructure treated like a public utility, granted a monopoly on that infrastructure but not allowed to compete with services that depend on fair access to that infrastructure. It’s the very principle behind the idea of anti-trust, and I think it’s a great approach. What do you think?

Pet Peeve: A**wipes in intersections

December 3rd, 2008

Ok. Generally I avoid off-color language, but I’ve got yet another rant to get off my chest. And while it’s mostly off-topic for this blog, I promise to connect the dots…

So there I was, walking the dogs home from work. I crossed the Fremont bridge, then down the block to the one major intersection I need to cross, just in time for the walk sign.

But there are cars stopped right in the middle of the crosswalk, underneath the red light. And not just the crosswalk–there were fully 3 cars stopped on the intersection side of the the crosswalk, blocking cross traffic.

The guy parked squarely across the crosswalk shrugged and looked pretty embarrassed as our pack went around behind him. And then I had to walk up between the cars back to the crosswalk, along side some asswipe who had her head totally inside the car doing something or other that apparently was more important than driving or obeying traffic rules.

I rapped on her window as I walked by, and she let out a terrified shriek. Then she started yelliing at me. I was listening to the radio, and really didn’t care what she had to say, so I hollered “you’re in the middle of the intersection.” She rolled down her window to yell something more at me, so I hollered back at her, “you’re in the middle of the f**king intersection!” And continued on into the neighborhood.

Now, I’m usually a very calm, even-tempered guy. You never hear me say things like that. But assholes who think they need to make it through the next light at the expense of everybody who happens to be going the other direction really piss me off.

Don’t get me wrong–I’ve been caught unexpectedly in the intersection when the cars ahead didn’t move as much as I thought they would. And when this happens, I’m very embarrassed, and hyper-aware of everything around me, trying to get out of the way of any pedestrians or other cars I’ve unintentionally blocked. This woman received my moment of wrath because she was startled that I was even there, and couldn’t care less that her selfishness is the kind of thing that causes gridlock and endless traffic jams.

So how does that relate to our topics of open source, computers, business, and economics? A couple ways.

First, there’s the obvious parallel to network congestion. If you’re on a DSL connection, incoming and outgoing traffic have to alternate over the same pair of wires. If you flood the entire connection one way, the other way starts to suffer. For example, if you’re uploading a huge file over a network connection, it can greatly decrease your download speed, much more than you might expect. By keeping your traffic in either direction slightly under the maximum rate, the other direction can continue to flow freely. But if you max out one direction, the other direction suddenly can’t get through, just like lame drivers who block the intersection because they’re too impatient to wait for the next light.

The other point is about selfishness. Ayn Rand wrote some quite influential books. I read both Atlas Shrugged and The Fountainhead as a teenager, and they make a very persuasive case that people acting in their own self-interest can help the greater good. This is much of the justification for our current financial system, the whole idea of trickle-down economics that suggest if you do what’s in your interest, you’ll make lots of money and create jobs for others.

But gridlock provides a great counterpoint to this–the selfishness of a couple people who enter the intersection with no where to go can lead to stopping the cross-traffic, which could well be hundreds of other people. The actions of one person trying to get ahead can come at a cost to hundreds of others. The actions and profits of the big businesses that dominate our economy have come at the expense of the rest of us. One relevant economic phrase related to this is the tragedy of the commons.

Car companies: too big to fail, or too big to survive?

November 24th, 2008

For a time, “economies of scale” meant that the key to success was making a business bigger, and focusing on nothing more than profit. Sell more products however you could, and cut costs as much as possible. This is no longer the case. We’re entering a time when smaller businesses that solve real problems can be profitable, and the former behemoths are becoming dinosaurs.

The past

The assembly line was the key innovation of the auto industry, that famous invention of Henry Ford. By creating stations where each person did one thing, and moving the products past the people, it was possible to crank out thousands and then millions of mostly identical cars. As robotics came along, it was possible to remove people and reduce payroll. As globalization grew, it was possible to find places where the people you did need to employ cost less.

Who did this system benefit? For a while, it benefited auto workers, once the unions were in place to provide basic protections that limited repetitive stress injuries and guaranteed living wages. It definitely benefited owners of the car companies, at least the ones that survived to be bought by one of the big 3. It benefited the shareholders of the big 3, which for a time included in some small part much of the American middle class, along with many retirement funds more recently. And it brought cars and a whole car culture to several generations of Americans.

But there are many, many costs we’ve paid as a society for this. Many American cities had streetcar or rail systems in the 1920s and 1930s that were dismantled with the rise of the automobile. While some argue that streetcars were slow and inefficient compared to cars, many point to GM buying up the streetcar systems and dismantling them. And I have yet to see any accounting for the mass subsidization of the car system we’ve made over the years, the cost of paving the millions of miles of roads and parking lots, the gas distribution networks, or health issues related to air pollution. That’s not to mention the opportunity cost of dedicating all that land to our cars.

The number of people benefiting from the car companies is quickly declining through off-shoring and automation. Worse, for decades, the Big 3 have been buying up competitors and burying innovation. Rather than compete with its more lucrative mainstream cars, GM killed its early electric car program. Big car companies need to do a lot to maintain their monopoly. Big unions have arisen to provide some protection for the labor these companies needed. Big oil is perhaps the biggest benefiter of the auto industry, as it’s been for decades. But the effect of all of this bigness is funneling dollars from the mass middle-class to a tiny group of owners of these companies.

The present

The car companies are saying that if you account for all the parts suppliers and other companies that depend on the big 3 for revenue, they’re responsible for nearly 10% of our economy. But there’s some false logic here. First of all, if the big 3 go under, we’re not going to stop driving. It won’t take down the entire industry–we do love our cars. What it will do is create a big vacuum in the marketplace that will open it up to hundreds of innovative startups, giving them a much bigger opportunity to succeed.

If the big car companies fail, there will be a lot of talented people who know how to make cars looking for work, and many of them probably have some brilliant ideas to make them better. I think we’d see a renaissance in the car industry, with many companies going out of business but a lot more starting up to take their place. The old car industry has long been complacent, relying on heavy marketing to make their outdated business model keep running. And it worked, for a surprisingly long time.

The problem is, the assembly line is obsolete. It appeared during a period when talent was scarce, and raw materials plentiful. So big car companies got big by doing what they could to produce more with less people. Much of our business world has the idea that you make more money by replacing jobs that take skill with jobs that do not. Make the process smart, and make it so you can put a trained monkey (or robot) in a position so you can reduce your cost and make more money.

Unions stand in the way of this, protecting workers’ pay while their jobs become ever less. So these workers, their pensions, and their health-care benefits become a huge cost for the American car companies, compared to foreign companies that do not need to pay for these costs. Yet ironically, by paying decent wages, these companies also create people who have money to buy their products.

Here’s the real reason we’re in a recession and facing even worse: our entire business system that has been built on maximizing profits has worked so effectively in funneling capital to the wealthiest and away from our middle class, that the vast numbers of Americans can no longer afford to make the purchases that keep our economy running. We’re quickly becoming share-croppers in a neo-feudalistic world, slaves to our wages that effectively dwindle against rising health-care costs, mortgages that are 10 times as much as our parents, and fuel costs that have only diminished because nobody can afford to buy anything.

Who needs a bailout?

Now, I’m not suggesting we do nothing. If the big auto companies go out of business, there will be a lot of people out of work, with no safety net to keep them afloat. We pride ourselves on being a place where anybody can start up a business and potentially do really well–but the reality is, this is really hard to do in an environment where your potential customers aren’t buying anything.

I do think we need a bailout. I just think that rescuing the car companies is not who to bail out. We need to soften the landing of the hundreds of thousands of people who may find themselves suddenly out of work, and we need to figure out how to get capital in the hands of new entrepreneurs who can put these people back to work. The car companies have proven they’re not the ones with any sort of vision for the future, so they need to die now.

Right now, the barriers to creating a new business are steep. Very few people understand everything that’s involved in starting up a business, but most understand that the stakes are high if you have no other source of income. Many, if not most, successful businesses are started by people who have saved up a good amount of seed capital, or have spouses with a stable income, or by those who have done it before and have connections. Without money or connections, it’s extremely difficult to start a business.

I think we need a national program to help match engineers with business people and ideas, and provide seed money to get them launched.

There’s a few nascent events in Seattle along these lines: 6-hour startups, startup weekends, and the like put smart people in the same room and let them see if they can develop some sort of web site with business potential. We need this kind of thing expanded to include more than just software people, and also provide some financial backing to see if they can get running.

This is basically the role of venture capital, but the biggest problem with venture funds is that their timelines are too short–they expect a profitable exit event within a few years, and won’t necessarily fund something that isn’t designed to make a huge profit in a short amount of time.

Some of the work of the Small Business Administration and the Small Business Development Centers is admirable in this area–the problem is, not enough people know about these programs, and far too few engage with them. I think a large part of this is fear of losing health-care benefits, retirement plans, and other benefits that large companies provide at a huge advantage to smaller companies.

America has a huge mythos built on top of the entrepreneur, but very few people who actually become entrepreneurs. We would do far better to provide a social safety net for people out trying to start new ventures, making sure they have healthcare and other basic needs covered, along with the tools they need to figure out how to grow and thrive, than to bail out the decadent dinosaurs.

The Future

As bleak as the current financial system and business climate appears to be, there’s a ton of opportunity for real change. But we need to re-align our business value system to make this happen. Here are three specific mental adjustments the business world needs to make.

First of all, we need to recognize that people are our most valuable asset. Where businesses used to do everything possible to make people interchangeable cogs in a vast machine, to succeed in the future they’ll need to use perhaps our biggest untapped resource: our brainpower. To succeed, a business needs to find smart people who haven’t had their sense of initiative crushed by working in large businesses, and give them tools and encouragement to solve real problems. Rather than the cynical marketing to the lowest common denominator and appealing to “Joe Sixpack” as the average American, we need to recognize the genius in our neighbors and ourselves. We can be so much more.

Secondly, we must recognize that we are in a dire position, and need to work together to survive. It’s human nature to adopt an “us versus them” mentality. We’ve always separated people into our friends and our enemies. Nothing unites a people like a shared enemy. For a brief time, 9/11 brought Americans, and much of the world, together in shared suffering. In the large businesses of the world, success is measured by your sales compared to your competition. In the Cold War, nearly the entire planet was divided into the Free World versus the Communist world. But during all of this, we’ve been dumping waste into all the natural systems that support our very lives. We’ve been increasing the temperature of the planet by pumping greenhouse gasses into the atmosphere, causing galloping glaciers in Greenland and drowning cities. We’ve been poisoning our rivers and streams. We’ve been decimating entire fisheries at alarming rates, killing the great sources of our food. We’ve created rivers of garbage floating around in the middle of the oceans. And we’ve drawn down every natural resource available to us as if there was no tomorrow — soil levels, water levels, oil levels, all being consumed to give us an unreasonable standard of living. If we don’t start addressing these problems quickly, we won’t have a tomorrow.

We need to focus our energy on solving these problems, because they threaten our very existence. Our human enemies are mainly just the people who are unlucky enough to be faced with these problems first. It’s time to set aside our differences and get to work creating a place where our grandchildren can live.

Finally, we need to harness all the efficiency and productivity that technology provides, and focus that on solving real problems. Computers can automate many menial tasks. Large businesses have used technology to cut costs. In most cases, “costs” equals payroll–you save money by cutting jobs. But if our talent is our most valuable asset, it makes no sense to get rid of them. Instead, we need to take those assets and put them more directly to work on projects they’re best suited to handle.

The rise of agriculture meant that more people did not have to spend their lives finding sustenance–people who farmed created more food than they consumed, which led to the rise of towns. Industrialization further centralized our economy into big cities, and centralized wealth into the hands of a few. Now the Internet and open source is changing everything, providing a decentralized model that completely levels the playing field–individuals with no prior connections can become as influential as centuries-old institutions. We no longer need to be dependent on big economics, big corporations, big publishing houses–we now have the tools to build small local economies. Innovation is done by individuals. Small companies with smart people can displace the old dinosaurs. We need to teach people to be smart, and encourage innovation–not teach them to be dumb, staying mute in the face of rigid hierarchies of corporations.

Let the dinosaurs die, and let’s get on with solving our real problems.

Socialism, individualism, and open source

November 18th, 2008

I just heard a Republican pundit on the radio talking about how Republicans are supposed to stand for individual efforts over taking care of others, and small government rather than large. He posited that Republicans had lost the election because they hadn’t adhered to these core values.

A colleague who sounds a bit upset at last week’s results twittered a link to a blog post that accuses us of being “sheeple”, and going down the path of socialism, and apparently the author believes this will cause our country to collapse. The tail end of the McCain/Palin campaign hurled the Socialism epithet as well. Other colleagues have been sending cartoons of trick-or-treaters collecting candy on behalf of their friends who are “too lazy” to trick-or-treat.

There must be some fundamental difference in the way people see the world. I hear these things, and several thoughts come to mind: (warning: long, rambling unedited rant ahead)

  • We’re facing some awfully large problems. Sub-par health-care system. Failing education system. Crumbling transportation infrastructure built around gas-guzzling cars as the cost of oil goes up. Failure of the free market to regulate itself. It strikes me that these are all problems we need to solve together, not leave to the laissez-faire system we’ve had that have rigged the playing field towards the rich, redistributing our country’s wealth to the very top.
  • Why does the word Socialism have such negative connotations for the right wing? Is it just because it was part of the USSR’s name? Most of Europe has socialist programs in place, resulting in much better health coverage and a social safety net to help reduce homelessness.
  • The word “lazy” is used as a broad brush to dismiss the efforts of anybody who hasn’t reached some level of success, often by people who are struggling themselves. I’d argue that people at the bottom of the pay scale, working 2 minimum-wage jobs and barely scraping by, are anything but lazy. Opportunity is capricious, and not evenly distributed.
  • Open Source provides a proof-of-concept that illustrates that we’re better off working together to solve our problems, rather than keeping our solutions close to our chest and not sharing with our neighbors.

Us versus them

Our country was founded with a common enemy. For many people, it seems that patriotism depends upon having an external enemy. First the Brits. More recently, the Nazis and Japan, and then the Soviet Union. Now, it’s terrorism, along with illegal immigrants.

But Franklin Roosevelt, at his inauguration in the midst of the Great Depression, famously said “the only thing we have to fear is fear itself—nameless, unreasoning, unjustified terror which paralyzes needed efforts to convert retreat into advance.” And indeed, that is exactly what we fear today–terror. We’ve declared war on it, to the detriment of our civil rights and our moral standing in the world.

I think many people have transferred their fear and uncertainty of their own economic circumstances to this external threat of terrorism. But our real enemy, both here and abroad, is poverty and an unwillingness to work together in the face of much larger looming disasters, such as peak oil, climate change, water and energy shortages, overpopulation, mass extinctions. Instead of dealing with these issues, we’re blaming others for our problems.

I fail to see how the problems we face in the world are all because of terrorists, Democrats, or lazy people. I would argue we have terrorists because we have poverty, and hugely imbalanced distribution of wealth. If we don’t deal with those issues, we’ll surely see more terrorism in the future.

The individualist end game

Time is running out on many fronts. The sheer size of our population is putting a strain on the natural systems of our planet on which we’re completely dependent. Yet we squabble on how to divide up the planet, and those who play the dirtiest have long been winning.

In economics, there’s a distinction made between rivalrous and non-rivalrous resources. Rivalrous resources are those that can only be used by one person at any given time. Non-rivalrous resources are generally things that can be used by many at the same time. For example, my backpack is rivalrous–if you take it from me, I don’t have it anymore. A song is non-rivalrous–I can sing “Happy Birthday” without taking that away from you. Or at least, I should be able to…

In our current economic system, we have made more and more things rivalrous, at least in our legal system. We have carved up our land and made the vast majority of it private. We have granted patents on our very genes. We have allowed corporations to claim ownership of drinking water and charge people for access. We have companies whose sole purpose is to own a patent portfolio and make money off the use of ideas, whether or not other people came up with the same idea independently.

If you’re an individualist, you might see these things as capitalism at work, and the way it should be. But this is really a short-sighted view. Taken to the ultimate result of more and more people fighting over less and less, and you end up with situations like Rwanda in the 90s. According to Jared Diamond, one of the biggest factors leading up to the genocide was population-pressure–the population density had reached a level not seen anywhere else in Africa. Sons were fighting over postage-stamp lots of land to have something they could grow food on, as fathers divided the land into ever smaller bits. There were no shared spaces left, no mental buffers, not enough land to support the people. The rate we’re exhausting our planet’s resources, we risk a similar fate.

We’ve been steadily turning our common wealth into private wealth, redistributing wealth to a tiny few, leaving not enough for everybody else. We’ve been spending resources like oil that have taken millions of years to accumulate in a few generations, polluting our seas and soils, shipping our waste anywhere out of sight, and seeing all of this as somebody else’s problems.

Our country was founded on the principles of working together in the face of a common enemy. Ben Franklin is full of relevant quotes: “We must hang together, gentlemen…else, we shall most assuredly hang separately.” The biggest problem is that while these big companies take, take, take from our environment and people all to maximize their own profits, they’re stealing the resources everybody else will need in the long run, and socializing the true costs of them doing business.

Scarcity versus abundance

Ironically, the way out of this mess is to change perspectives and realize we really are blessed with tremendous resources. Among the largest, most under-utilized resource we’ve got are millions of smart people locked up doing menial work as cogs in the machinery of these big corporations. We’ve largely moved slavery out of agriculture into minimum-wage jobs across the country, and lower-wage jobs abroad. The term “wage slave” is not far off the mark. Prices of everything has been spiraling up while wages have flat-lined. In the past generation, the cost of buying a house has gone up by a factor of ten, while wages have doubled. Yet more people have bought houses than ever before, and we now see that it was mostly on borrowed money they couldn’t possibly pay back.

You hear the right wing complaining about big government, and how liberal policies reward people for not working. Our policies say a lot about what we value, and just about every decision congress makes benefits some people while penalizing others. We need to get a lot more strategic about our policy-making, and align those policies to address the big problems we’re facing–a health care crisis, global warming, deforestation, peak oil, the financial crisis, and more. If our most abundant under-utilized resource is brainpower, let’s make some policy changes that rewards using those resources, while penalizing the use of the natural resources we’re quickly exhausting.

We need to find ways of penalizing companies that consume natural resources and burden our systems with waste. We need to find ways of rewarding smart, responsible people and companies who help reduce waste in the system.

So how do we make this happen?

Let’s go back to the basics. What does everybody need? Food and shelter, obviously. Today, health-care needs to be a right–we’re a wealthy enough country that it’s absurd people have to choose between food and medication they need to treat and prevent a health issue. Beyond that, people need opportunity, and motivation. For far too long, our policy has been to motivate through fear. Make people afraid they won’t have enough food or have a place to live, and they’ll do drudgery work to avoid that. But it’s hard to give creativity free reign when you’re trying to scrape together the basic things you need to survive. Too many of our people are in exactly that position. And we need their help solving the bigger problems.

In fact, some of our biggest problems are caused by exactly this issue–people not having adequate food or shelter. Terrorists come from places where the future is bleak, where people aren’t secure that they’ll have a safe place to live and enough to eat, let alone make any positive contributions. But there’s always an opportunity to be destructive if your situation is dire.

Now, as much as I’ve been railing against big business, I do think business is the answer. We need to re-align our policies to favor small businesses, and lots of them, to power our way through this mess. Small businesses need to be part of their communities–they can’t just take their jobs to the lowest bidder. Small businesses are much more entrenched in location, and able to make contributions to help their communities. Small businesses provide jobs, solve multiple problems, and are able to think about things beyond merely satisfying their shareholders’ greed–they are able to optimize their business to fit in their part of the economic ecosystem, rather than doing whatever it takes to maximize profits. And small businesses succeed by recognizing that others need to succeed too.

The current barriers to people creating small entrepreneurial businesses that solve real problems are many:

  • A workforce trained to be wage slaves, rather than thinking, and making decisions, for themselves.
  • Crushing costs of doing business: payroll taxes, health care, business operational overhead that is a high cost of doing business.
  • Lack of knowledge/experience in creating a business. Very few people who start a business have done it before, and until you’ve started a business, it’s hard to understand the magnitude of the task.
  • Money. It takes money to get started. It takes money to hire people, provide training, lease space, buy equipment, get insurance, handle bookkeeping and taxes, and obtain licenses, let alone buy the raw materials that become your product.
  • Time management. If you’re a service business, you need to have enough billable hours to cover your costs and make a profit. If you’re a product business, you need to create or manage your products. You need to devote some of your time to marketing and sales before you make any money at all. You need to divide your time effectively between doing the stuff you get paid for, letting the world know you exist, developing the key relationships with partners and vendors and customers, and handling all the little stuff that needs to get done to keep the business running.

The bottom line is, nobody can do all of this alone. To succeed in business, you need help, and lots of it. You need customers who will spread the good word. You need vendors to help with all the operational aspects of your business. You need employees to do the actual work of your business. You need competitors to prove to the marketplace that your product or service is valuable.

So that’s a very long-winded way to get to the point that the vast majority of businesses do not have a monopoly on their product, and do not need “Intellectual Property” (IP) protection to be successful.

Venture Capitalists are always looking for IP: patents, copyrights, trade secrets, or some element that gives a company an advantage over every other potential competitor in the market. They need this because the venture system is based on home runs–they expect that out of 10 businesses, 7 will fail, 2 may break even, and 1 will be successful enough to cover the losses of the other businesses. They don’t know which business will be that home run, so they’re going to invest in the businesses they think stand the best chance.

I’ve spoken with hundreds of people who think their idea is unique, and they don’t want to tell you about it because you might steal it and make a ton of money–or at least be a competitor. The problem is, there are lots of good ideas, and many people come up with very similar ideas independently–the real shortage is the talent to execute those ideas, turn them into a viable business.

One of my biggest challenges as an early open source solution provider was having my potential customers take my solutions seriously. After all, if the software is free, how can it be any good? And if it avoids vendor lock-in, why am I the only one proposing it while they’ve got a dozen vendors pitching Microsoft or Intuit solutions?

While the idea behind my business is wide open, and there’s no prohibitive barrier to competitors setting up shop and doing exactly the same thing, our business is succeeding on execution, on the talent of my employees. It doesn’t matter what your idea is–what matters is whether you can bring it to market.

Systems thinking

To wrap this long meandering post up, we can no longer afford to run businesses that maximize a single factor (profit) at the expense of everything else (people, environment, waste, the future). We need to start optimizing for all critical factors. Our products and businesses need to account for the full impact of what we’re doing, and if it doesn’t make the world a better place in some small way, it shouldn’t continue to exist.

Businesses don’t exist in a vacuum. Businesses can serve a highly constructive role in our society, and help address all of the major challenges we face. But we need to adopt the Unix architecture, create them as small pieces loosely joined, not big monolithic monsters that crush everything in their path.

On taxes and barstool economics

October 28th, 2008

A friend of mine posted a story on Facebook that purports to explain income taxes, with beer. This led to a long discussion largely in support of its conservative message. I’ve found it on a few forums, purportedly by David R. Kamerschen, Ph.D. Professor of Economics University of Georgia. Here it is:

Our Tax System, Explained in Beer

Suppose that every day, ten men go out for beer and the bill for all ten comes to $100. If they paid their bill the way we pay our taxes, it would go something like this:

The first four men (the poorest) would pay nothing.
The fifth would pay $1.
The sixth would pay $3.
The seventh would pay $7.
The eighth would pay $12.
The ninth would pay $18.
The tenth man (the richest) would pay $59.
So, that’s what they decided to do.

The ten men drank in the bar every day and seemed quite happy with the arrangement, until on day, the owner threw them a curve. “Since you are all such good customers,” he said, “I’m going to reduce the cost of your daily bee r by $20.” Drinks for the ten now cost just $80.

The group still wanted to pay their bill the way we pay our taxes so the first four men were unaffected. They would still drink for free. But what about the other six men – the paying customers? How could they divide the $20 windfall so that everyone would get his ‘fair share’?
They realized that $20 divided by six is $3.33. But if they subtracted that from everybody’s share, then the fifth man and the sixth man would each end up being paid to drink his beer.
So, the bar owner suggested that it would be fair to reduce each man’s bill by roughly the same percent, and he proceeded to work out the amounts each should pay.

And so:
The fifth man, like the first four, now paid nothing (100% savings).
The sixth now paid $2 instead of $3 (33%savings).
The seventh now pay $5 instead of $7 (28%savings).
The eighth now paid $9 instead of $12 (25% savings).
The n inth now paid $14 instead of $18 (22% savings).
The tenth now paid $49 instead of $59 (16% savings).

Each of the six was better off than before. And the first four continued to drink for free. But once outside the restaurant, the men began to compare their savings.

“I only got a dollar out of the $20,”declared the sixth man. He pointed to the tenth man,” but he got $10!”

“Yeah, that’s right,” exclaimed the fifth man. “I only saved a dollar, too. It’s unfair that he got TEN times more than I!”

“That’s true!!” shouted the seventh man. “Why should he get $10 back when I got only two? The wealthy get all the breaks!”

“Wait a minute,” yelled the first four men in unison. “We didn’t get anything at all. The system exploits the poor!”

The nine men surrounded the tenth and beat him up.

The next night the tenth man didn’t show up for drinks, so the nine sat down and had beers without him. But when it came time to pay the bill, they discovered something important. They didn’t have enough money between all of them for even half of the bill!

And that is how our tax system works. The people who pay the highest taxes get the most benefit from a tax reduction. Tax them too much, attack them for being wealthy, and they just may not show up anymore. In fact, they might start drinking overseas where the atmosphere is somewhat friendlier.

Ok. There are several problems with this.

The first problem, when you try to apply it to the national tax system, is that the bartender isn’t giving anybody a break. Instead, he’s increasing his rates. And we’re all demanding tax relief in the face of increased spending! So who’s paying for the extra $700Bn bailout, or the $600Bn+ we’ve spent in Iraq? If our government were indeed shrinking, this might be an apt metaphor–but it’s not. It’s growing. The question isn’t “how do we split the savings fairly,” it’s “who should pay for the increased cost?”

Secondly, where would the rich guy go drink? Of the developed countries, we have some of the most advantageous arrangements out there for the wealthy. Much of Europe has a more socialist system, and tax higher incomes much more than we do. China? You run the risk of being nationalized. I guess India might be a good place, if you really wanted to be a cheapskate and keep your relative wealth intact. Or Dubai.

A counterpoint

What we choose to tax says a lot about who we are and what we value. Our income tax system is progressive, because it taxes higher incomes at a higher rate, and below a certain level, there’s no tax at all. A Sales tax isn’t particularly progressive or regressive–it just taxes consumption, which in this age of waste probably isn’t a bad thing. A lottery is regressive, since lower income people tend to see them as their only path to success.

But there are other taxes that have a much bigger impact on our society than these. Payroll taxes are regressive, since they tax up to a certain level, and then no more. Business and Occupation taxes (which we have here in Washington) penalize small businesses that do not encompass their entire supply chain under a single corporate entity. Capital Gains taxes tax profits realized from changes in the value of something over the time you’ve owned it.

I’d argue that Washington State has a strong economy in spite of its tax policy, not because of it. Our strong economy is due to our abundance of natural resources such as hydro-power, agriculture, and natural beauty that makes it a place creative and entrepreneurial people want to live.

So what would I do? I’d look at the larger system, and the larger problems we face. We have a lot of unemployed/underemployed people. It’s very expensive to hire people, because of payroll taxes and the heavy burden of health insurance. Instead of taxing those things, we should eliminate the payroll tax and make it easier for businesses to hire good people. And provide health care to lower the burden on our businesses, and good education so that we have talent worthy of hiring. The current system is stacked in favor of large corporations who have the margins to support funding these things–but these same corporations have shown no sense of responsibility in doing so, and would sooner chase lower wages anywhere else in the world to improve their bottom line.

We also are facing major climate issues, national insecurity due to dependence on foreign oil, and congested traffic. All of these issues would be helped with a strong consumption tax on oil. We have a gas tax, but it’s nowhere near enough to encourage people to get out of their cars. Forget cap and trade policies–we need a carbon tax.

So I’d probably keep the current sales and income taxes, but change the tax policy away from penalizing those who provide good jobs here, and towards those who consume, exploit, and waste our natural resources.

First impressions of Intrepid Ibex

October 26th, 2008

Ubuntu is about to release a new version of their operating system, code-named Intrepid Ibex. It’s due this coming Thursday, October 30.

I’ve got a list of niggling things that have been bothering me about the current Hardy Heron release. Since the biggest of these issues are related to hooking up a projector or external monitor, and I’m giving a guest lecture Wednesday evening, I decided to test-drive the Intrepid release candidate to see if they’ve resolved these issues.

It turns out, the answer is yes.

I’ve been running it for a few hours now, and I have to say, I’m finding a lot of nice little improvements. If you’re new to Linux, please forgive the technical nature of a few of these notes… just some random unedited thoughts. Here are some things I’m really liking right now:

  • External monitors. Finally, after being promised for the past three releases, I can add an external monitor and configure it through a GUI, without needing to edit a configuration file. I can extend the desktop across both monitors, or clone the screen. For the past year, I haven’t been able to do this at all without the video display locking up. Now it’s working great. Fantastic!
  • Broadband card support. My USB Verizon broadband card works in Network Manager. All I have to do is tell it to connect, and it does–no configuration necessary. Previously I was using gnome-ppp, which took a lot longer to make the connection, and took some configuration.
  • Appointments show up in the panel with the right colors. I’ve used Evolution for appointments for years. I have a bunch of different calendars loaded–different ones for work and social events, and the calendars of my employees. In Evolution, I set each calendar to a color so I can easily see which calendar an event is on. However, until Intrepid, these colors did not get used in the Gnome display–that used some random set of colors. Now they match. Small, but much appreciated improvement.
  • Suspend/Resume is much quicker. While suspending the machine has worked pretty well for quite a while, under Hardy there was a lot of load that kept you from getting to work right away. If you had a few applications running, it could take 10 minutes before it was usable again! Under Intrepid, you can start using the applications immediately after starting up. I see that the system is under high load for a similar period of time, but the user interface is no longer sluggish at all, and the load seems to drop much quicker.
  • Avant Window Navigator plugins work. I’m hooked on this little launcher utility, but the one available in the Hardy repositories didn’t work with any plugins. With Intrepid, they’re all there and work great.
  • Firefox with Flash doesn’t crash so much. Okay, this isn’t anything to do with Intrepid, so much as tracking down the nspluginwrapper package, which allows Flash to crash without taking the browser down with it. I found this based on a how-to on getting Flash sound to work.

Which brings me to the problems. I’ve hit two pretty substantial problems. Both of them are more of a nuisance than any sort of show-stopper, but they are the kind of nuisance problems that might keep some people in Windows:

  1. Sound did not work correctly out of the gate. I first noticed this in a flash video. Here it is the second release with Pulse Audio, and it still doesn’t work correctly without some manual configuration. To get it working, I followed a how-to on the Ubuntu forums, basically installing libao, padevchooser, and some other libraries, removing previous config files for alsa and pulse from my profile, and making libao use pulse by default. This only took a couple minutes, but for somebody unfamiliar with Linux, this might be a big barrier.
  2. Bluetooth. I have a bluetooth mouse, and hooking it up was a piece of cake. However, it doesn’t remember the connection. I have to delete the bluetooth profile, and re-pair it every time I shut off the mouse or suspend the computer. I’m sure there’s a pretty simple fix by editing a couple configs, but the point is, it should just remember that I’ve paired this device and not bother me again.

Those are the only two new issues I’ve seen appear in this release, so far. And I really only see one other major issue: I’m still seeing memory usage of Xorg creeping up as I use the system, especially after a suspend/resume cycle. It’s currently up to 835M, which seems like an obscene amount of RAM for the graphical environment. I saw this same type of memory leak under Hardy, under similar conditions, but to Intrepid’s credit, the system seems completely responsive and speedy. So it looks like I’m going to continue needing to log out and back in every couple days to free up the memory consumed by X.

Overall, I’m quite impressed, and not seeing any downsides to this release compared to Hardy, which was already pretty great.

Ask Freelock: What’s the scoop on mobile devices?

September 26th, 2008

First, a disclaimer. I use a $20 Samsung as my day-to-day phone. It does text messaging. It has a lame WAP web browser. It makes phone calls. It has a few games. That’s about it. I’m a bit of a Luddite around smart phones, for a variety of reasons.

That said, I’m as interested in getting a smart phone device as anyone. I carried a Palm V for years, until it would no longer hold a charge. I’d like to have instant access to my schedule, address book, and time management tools–which are now all online. I miss carrying a tide prediction tool in my pocket to know when there’s the right amount of sand to swim our Labs at the local beach.

The mobile landscape is a mess. There’s tons of one-off devices, each locked down with a small set of software, and most offering few options for adding new applications beyond what’s available through tightly controlled vendor channels. For its entire history, the mobile industry has done its best to control everything, charge for everything, and lock in their customers. But cracks are starting to appear in the armor.

Stephen J. Vaughan-Nickels misses the point in a recent article about the new Google Android phones coming out next month, The Android phone is here! So what?. He writes:

Now, what does Android have to offer that’s different [than the iPhone]? Well, it’s an open platform and open source so it will be easier for developers to write program for it. But will they?

After all, it all comes down to how many people will actually buy Android-powered phones. If you don’t have enough users, it’s not worth a developer’s time to make applications for them.

The point is that Android may be the first platform ready for prime-time, ready for general non-technical users, that is not locked to a single vendor on either the hardware or telecom level.

You can argue that the Apple iPhone has created a revolutionary platform, and with all the 3rd party applications now available through its store, that anything else is just a Johnny-come-lately to the party. But the Apple iPhone store is successful only because there’s no competitor–yet–that is ready for prime time. That changes with the release of Android, and again if/when the OpenMoko project gets its legs, and again if they add cell phone capabilities to the Maemo platform.

The problem with the iPhone is that it hasn’t changed a thing about vendor lock-in. There’s only one manufacturer for the iPhones, Apple. And there’s only one carrier (in each country) for the service–AT&T in the US. While people have hacked the iPhone to use it with other carriers, the new iPhone 3G makes you pay for AT&T anyway. While the iPhone may have provided better access for developers to create new applications than they’ve had in the past, that’s not saying much. And they haven’t done a thing to break down the vendor lock-in issues. And developers are chafing at Apple’s control over its iPhone store, with many useful applications getting rejected because they compete in some way with Apple’s own software, especially if they do a better job. This cartoon expresses the sentiments of many iPhone developers.

To paraphrase Jim Zemlin, Apple is like a 5-star hotel you can never leave.

Most interesting mobile platforms
So what are the alternatives? Skipping the one-off devices like the LG Dare, the T-Mobile Sidekick, the obsolete Palm Treos and the reviled, buggy, Pocket PC phones, there’s several platforms to consider, either now or on the horizon:

  • Blackberry. Blackberries are still doing quite well, and have quite a bit of power. While they are offered through many carriers, there is still only one manufacturer. I don’t know that much about their technology, but if you’re writing an application you need to consider them. I do think they’re a solid choice for consumers looking for a do-it-all mobile device.
  • Apple iPhone. In spite of its anti-developer stance and its extreme vendor lock-in, the iPhone is quite cool and very usable. I won’t buy one because of these reasons–I have no interest in supporting the monopolistic practices of Apple–but I can understand why people do, and if you’re developing an application, having a good story for the iPhone may get you a bunch of technophile users
  • Google Android. While the name on this package is Google, what’s new about this effort is the number of vendors participating in the effort. Google created a consortium of a few dozen manufacturers and carriers to create a common standard they could all use. Since Google is behind it, it’s particularly well integrated into Google applications–Gmail, Google Calendar, Google Maps, etc. While not all of the stack is open, much more of it is open than the iPhone. Developers will be able to release their own applications. Users can install any application they want, without having to go through a single central store. And while the first device is coming out from T-Mobile, you can get an unlocked phone, and in a very short time, have choices of hardware and carriers all supporting the same platform. Much like the IBM PC overtook the Apple Mac in the 80s by democratizing manufacturer access to the design, I think the iPhone will quickly get eclipsed by a more open standard.
  • OpenMoko. I’m an early follower of OpenMoko, watching them for nearly 2 years now. I purchased the first public release the day it was available. It has all the promise of Google, and more, because the entire stack is open. The problem is, they didn’t get a solid working stack created before shipping. So for the past 14 months I’ve had a pretty slick GPS that could sometimes make phone calls but never last longer than 4 hours without a charge. I think they’ll eventually eclipse the iPhone, too, though Android will be tougher competition with all of that industry backing. The OpenMoko folks have been making great strides lately, and I’m still hoping my device will be usable as an everyday phone before next year. If they can create a usable enough device for mainstream users, it will become a contender.
  • Maemo. Maemo is another Linux-based platform, designed for Nokia Internet tablets and available for their N770/N800/N810 devices. These devices have Wi-Fi, a touch screen, and depending on which, GPS, FM radio, slide-out keyboard, and other niceties. They ship with Skype and standard VoIP clients, you can do video calls on them, and there’s a huge developer community making great applications for them. What they don’t have is a cell phone connection, though there are rumors they may release one soon.

So what should I buy?
Those are the exciting platforms on the mobile landscape these days. What do I recommend? Depends a bit on what your needs are, but for people who are looking for a cell phone with PDA functionality (appointments, calendar, tasks), mapping, web browsing, and email, here’s what I’d suggest today:

  • Get a cheap phone and a Nokia N810, and carry two devices. Do you really need your cell phone to do everything? The Internet tablets are small, slick, powerful, and usable, and work great today.

In a month, when the first Android phones hit the market, that might be a great alternative, and slightly cheaper, though the first one won’t have a GPS and is missing some other features.

What about developing applications?
By far the most cost effective strategy for making an application to reach the most people, is to simply make it a web application. 4 or the 5 platforms above (all but Blackberry) ship with a web browser. In fact, those 4 all can use the same browser engine, WebKit, which also powers Apple’s Safari browser and the new Google Chrome.

Make a web application, and you don’t have to choose which device to support, you can support all of them.

What have I missed?

I’m no expert in the mobile space. These are just my observations, based on reading and hearing reviews of various devices and helping clients connect to our email services with them. If I’m overlooking some major area, or you disagree with something I’ve written, please add a comment!

Business Social Networking Geography: Yes Location matters

August 23rd, 2008

Esther Schindler wrote a thought-provoking column on CIO.com last week, Business Social Networking Geography: Does It Matter Where My Contacts Are?

Although the Internet is global, and you may do business with people anywhere in the world, most people tend to look for people-networks close to home. Or do they? Should they? If the point of social networking is to connect with other people, ought it to matter where we are?

At Freelock, we have a handful of remote clients, but upwards of 90% of our clients are local. I founded the business on the assumption that people want to know who they’re doing business with, be able to see them face to face, and grow to trust them over time. Nothing breaks the ice like talking about a project in person, over a coffee or better yet, a margarita.

Good or bad, business gets done through personal relationships. How many deals have been cemented on the golf course? It’s a lot harder to say no in person, than it is with a quick dismissive email. So much communication happens non-verbally, through body language, tone of voice, and other channels that just aren’t available online. A video conference is a poor substitute for a face-to-face meeting.

I’ve gotten quite a bit of help from IRC. We have a private company jabber server so when we’re not in the same room, we can still have the feel of a team. We’ve had people helping us out from Bellingham, 120 miles north. The Internet enables some amazing things, and I definitely think it’s possible to work effectively at a distance. Many professions, including writing and coding, can be done quite effectively by individuals working by themselves, anywhere in the world.

But you can’t directly diagnose a connectivity issue in an office in Bellevue when you’re in India, or replace a hard drive. You can’t assemble a car from the other side of the world. And even for creative types who can work effectively on their own, relationships and trust only truly get cemented by meeting their editors, testers, or project managers in person.

Another founding principle of my business is that it’s much easier to ensure quality by having people work in person. If team members can do impromptu code reviews of each other’s work, quality goes up. The solitary developer working late at night may bang his head for hours against a problem that a colleague could solve in a 5 minute conversation. Having a team of people with complementary talents and different strengths working in one place leads to better results.

Once you’ve established that level of trust, remote work becomes more effective. You know when somebody’s cracking a joke, and it doesn’t sound so strange. You’re more likely to ask a quick question in a chat when you can preface it with a comment about an outside shared interest.

Yes, location matters. It’s not everything, and the Internet makes it possible to work together from a distance–but it still matters.

SOAP, Web Services, and PHP

August 23rd, 2008

One of my projects in the past few weeks has been to put together a SOAP server for a client. So suddenly I’ve had to learn a lot of the nitty gritty details about what works and what doesn’t…

While they’re fresh, let me jot them down here. WARNING: Extremely technical content ahead.
Read the rest of this entry »

Interesting Juxtaposition: John McCain is concerned about “piracy,” while his campaign commits it

August 16th, 2008

I generally try to stay out of politics on this blog, but couldn’t help it today when I ran across two stories today.

First, McCain has released his technology platform, which among other bits states his support for protecting the recording industry from piracy. Meanwhile, the Ohio Republican party used Jackson Browne’s “Running on Empty” in a commercial without permission.

John McCain 2008 – John McCain for President:

John McCain Will Protect The Creative Industries From Piracy. The entertainment industry is both a vital sector of the domestic economy and among the largest U.S. exporters. While the Internet has provided tremendous opportunity for the creators of copyrighted works, including music and movies, to distribute their works around the world at low cost, it has also given rise to a global epidemic of piracy. John McCain supports efforts to crack down on piracy, both on the Internet and off.

Wired Magazine – First Paris, Now This: Jackson Browne Sues John McCain

Indeed, some irony lies in a candidate who is running a law-and-order campaign being sued for intentional copyright infringing and appropriating someone else’s identity without their permission.

Apparently Browne is a well-known Obama supporter.

Random thoughts on OSCON08

July 24th, 2008

This week I’m at the Open Source Convention in Portland, aka OSCON. First impression, before showing up: it seems all focused on big business. Big ticket price. Lots of enterprise-related topics, and sponsors. Not really the meeting of geniuses and thought leaders as years past–or so I thought.

Second impression: Tim O’Reilly asking Brian Aker and Monty Widenius about the importance of various proprietary companies: Sun, Adobe, Microsoft. Their answer to Microsoft? Irrelevant. And Tim came back apologizing to the Microsoft sponsors. This just after the presentation that talked about the open source “tribe”, and introducing Tim as the leader of the cult. Was feeling a bit like I may have made a mistake, plopping down cold hard cash to support the cult of O’Reilly.

Fortunately, that thought was momentary. The rest of the event has been extremely rewarding, and very worthwhile.

At home, in my usual networks, I’m the token Linux guy. Beyond our company and some family I’ve converted to Linux, almost none of my friends use open source, and in business circles, I’m the resource for not just Linux, but web technologies, programming, system administration, and most anything computer related. I come to OSCON and I’m a mere end user, still damp behind the ears. There is true genius wandering the convention center. And suddenly, I’m one of the least technical people in the room, though still listened to for my experience trying to bring these projects to the small business world, identifying pitfalls and areas for improvement.

A few years back, I came to OSCON and it seemed that the worse dressed a person was, the higher up in the ranks of alpha geek he was. This year people looked much more presentable. That might be as far as the influence of corporate culture went.

I met R0ml at that previous OSCON I attended, at a BOF session led by Doc Searls. A “BOF”, if you’re not familiar with software conferences, is a “Birds of a Feather”, a mini, informal discussion about a particular topic led by anybody who puts an idea for one up on a bulletin board. I doubt R0ml remembers me, but it was an interesting discussion we had that evening that paralleled his talk today about elevating open source development from the realm of Techne to Praxis–from mere “making” of stuff to “doing” something to influence and lead people. He took issue with the assertion in an earlier keynote about Franklin and Jefferson being our founding geeks–mainly because while everybody needs a geek these days to make computers do their bidding, that’s a useful, technical, thing that puts us squarely in the realm of Techne. What Jefferson and Franklin really were, according to R0ml, were Polymaths, and that is also a better description of open source practitioners. We’re Renaissance people.

More later…

TLLTS vs. TWIT: Linux support slam-a-thon

July 13th, 2008

The Linux Link Tech Show (TLLTS) has a great segment dissecting the criticisms/wild flames put forth on a series of shows on the TWIT network. Wanted to add a couple comments missing from their discussion.

First of all, the Mac Break Weekly show apparently spends some time bashing the open source community, calling out Drupal, and how difficult it is to solve “simple” problems like uploading images for blog posts. In practically the same breath, the hosts claim that the open source community never has any innovation behind it. Irony drips:

  • In the world of content management systems (CMSs), most of the innovation starts in open source projects these days, and Drupal is at the cutting edge of this with its powerful system of taxonomies, and hundreds of add-ons freely available.
  • I can think of a grand total of 2 proprietary CMSs that have anywhere near as widespread use as most of the open source CMS systems. One has turned open source itself: Movable Type. The other is Sharepoint, and it’s widespread because Microsoft has shipped it out on lots of its server products.
  • Complain about usability all you want, but name a proprietary product as powerful as Drupal, that’s easier to install, administer, and configure.
  • The TWIT.tv site itself is running on Drupal.

So let’s talk a little about innovation. While Photoshop may still dominate the world of graphic design, but the lines aren’t so clear when it comes to animation. The Blender project recently released its second short animated film, Big Buck Bunny. While you might argue about the strength of its story, you cannot deny that the technical effects are as stunning as any major animated film coming out from the big studios. And it was created by 7 people in 9 months, using open source software. Even the big studios like Pixar, Dreamworks, and Industrial Light and Magic rely on open source software to deliver their magic, such as CinePaint, POVray, and several others.

On the subject of innovation, KDE4 is breaking new ground and stirring up controversy, laying a bedrock that promises the ability to do things beyond the standard “Desktop” paradigm that was invented over 30 years ago and we’ve all used ever since. Meanwhile, the GNOME team is working on creative ways to embed web applications into your desktop.

But the real innovations of the open source community are all a few layers deeper in the application stack, all the plumbing that powers the Internet. Microsoft itself borrowed its early networking stack from BSD, one of the earliest open source operating systems. Domain Name Service (DNS) and email were first implemented on the Internet using open source software (BIND and Sendmail).

The open source community tends to snicker whenever Apple claims to be innovative. Its core “innovations” were all invented somewhere else:

  • The Mac Desktop interface borrowed heavily from Xerox PARC labs
  • OS X uses BSD under the hood
  • “Spaces” were in use in Unix systems for a decade before they arrived on the Mac
  • The “Time Machine” functionality in Leopard is standard in many source code management tools

To its credit, Apple polishes these features better than anybody else, making them easier to find and use by normal people. But many, if not most of its innovations come from somebody else.

Read the previous post for more discussion about Linux support.

How Open Source support is different

July 13th, 2008

I started writing a response to a discussion in the latest “Linux Link Tech Show” episode, but ended up with something far too long, so I’ve split it up into 4 posts. The next post is about the TLLTS vs TWIT debate, and introduces this set of post. The previous two are about open source support–a true story of a support incident I had, and the unwritten rules of open source support. In this post, I analyze the fundamental differences between Windows, Apple, and Linux when it comes to support.

Dann and Linc had a quite spirited debate about the merits of having a company hire low-end tech support with scripts (Dann) versus having an experienced, savvy, tech professional able to really solve the user’s problem (Linc). Dann’s point was that it can easily be more cost-effective for both the support company and the end user to go straight to reinstalling a system if rebooting doesn’t solve the user’s problem, while Linc seemed to think a savvy tech person could get to the root of the issue much quicker, and brought up the point that there’s a cost to the frustration of users being put through the whole front-line support nightmare.

I’d suggest the situation is even more complex than that, but it also differs greatly between the open source projects and proprietary operating systems. First, let me make a bold statement:

Linux support is far better than Windows or Mac.

But it also has a completely different set of rules. Learn those rules, and you’ll be able to solve your problems more satisfactorily than it’s possible to do in the proprietary world. Let’s talk about these differences, looking specifically at a who, where, what, and how long.

Who can help with your problem?

Let’s take a look at who can help with your problem:

Level of support Windows Mac Linux
Very basic help, no charge Friends
Family computer guy
Newspaper columnists
Web Forums
Friends (fewer than Windows)
Family computer guy
Mac User groups
Web Forums
Friends (if you know any)
Local Linux User groups
Web forums
Mailing lists
Developers on main applications or distributions
Paid support Local IT consultant
Franchises like Geek Squad
Microsoft, application companies
Mac consultant
Apple Genius Bar
Linux consultants (like Freelock)
Distribution companies (Red Hat, Novell, Canonical, others)
Linux support companies (SpikeSource, SourceLabs, etc)
Application companies (SugarCRM, MySQL/Sun, Command Prompt)
Developers

The bottom line here is that while you probably know fewer people personally who can help you with Linux, there are more options for commercial support, and you can reach people who can do more to solve your problem for free, than you can with either Mac or Windows.

The fundamental reason for this is that anybody can read the raw source code of any open source product out there, and with enough skill and talent, can solve your problem without needing to pay anybody for the right to do so. In the proprietary world, only one company can help beyond a certain point: for Windows problems, that’s Microsoft. For problems in an application, it’s the application developer.

So the next question is:

Where can you get help?
Again, let’s compare the options:

Type of problem Windows Mac Linux
Very basic usage help Google
Friends/family
Forums
IT consultants
Seminars
Paid support from vendor
Google
Friends/family
Forums
Mac consultants
Seminars
Paid support from vendor
Google
Friends/family
Distribution Forums
Distribution mailling lists
IRC
Linux consultants
Seminars
Paid support from dozens of companies
Hardware problems Google
IT consultants (may or may not be able to help)
Microsoft
Hardware vendor
Google
Mac consultants (may or may not be able to help)
Apple
Hardware vendor
Google
Linux consultants (may or may not be able to help)
Distribution paid support (Red Hat, Novell, Canonical)
Hardware vendor (support for many vendors is improving)
Kernel developer
Linux users with the same hardware
Application developers for applications that use that hardware
Bug in operating system Microsoft Apple RedHat
Novell
Canonical
IBM
HP
Sourcelabs
Many other independent developers
Bug in application Application vendor Application vendor Linux consultant
Developer
Application vendors (often more than one can help)
Bug in interaction between applications You’re screwed. Report it to both vendors and hope they will work it out. You’re screwed. Report it to both applications, and get guidance on how to address the issue.
Hire a developer to create a workaround.
Hire somebody to work with each application to integrate a real fix.
Help switching to another application Application vendor (and you may have to pay them dearly) Application vendor (and you may have to pay them dearly) Application vendor, either old or new
Any application that uses the same open format
Any developer with knowledge of the underlying format

The main point of the table above is that in the proprietary world, the harder your problem is to solve, the fewer people can help you solve it. You quickly get down to one place to go, and if it’s in the operating system, it might be expensive or not possible to fix. In the open source world, it’s nearly the opposite case–it can be harder to find the simple quick answer to your question, but the harder and deeper your problem, the more places you can go to get help.

Where do you look for help first? This is the single stumbling block for most otherwise tech-savvy users new to Linux. To learn Windows or Mac you can take a class, talk to neighbors and friends, and find lots of very low-end help that way. For Linux, unless you’re friends with some hard-core geeks, you need to go online to find help. Once you’re there, it really depends on where your problem lies.

For just figuring out how to use a system, go to the forums for your distribution. The Ubuntu forums are a great place to ask general questions. Be specific about what you’re trying to do and you’re more likely to get help. Remember that this level of support is free, and people helping you are volunteering their time and knowledge. While you’re there, see if you can answer somebody else’s question–the more help you give, the more you’ll get in return.

The other fantastic place to go for help, especially for quick questions, is IRC. IRC is a system that provides chat rooms and instant messaging. Most open source projects with any community behind them have a chat room on irc.freenode.net. Install an IRC program like Chatzilla, Konversation, Pidgin, or any number of others, connect to irc.freenode.net, pick a nickname to use, and join the channel for the program or distribution you’re having trouble with. Ask your question nicely, and if you don’t get a response immediately, keep your chat program open for a few hours–not everybody is watching the channel every minute.

What kinds of problems can you solve?
Let’s look at the same types of problems as before, and look at the resolutions:

Type of problem Windows Mac Linux
Very basic usage help or problems Reboot.
Lots of good help available: documentation, classes, seminars, tutorials, books
Some help available: documentation, classes, seminars, tutorials, books Same types of help available, but far less widespread.
In many cases, the software interfaces aren’t as polished, and the help content is more menu- and feature-oriented than task-oriented–they explain the options, without telling you how to do what you’re trying to do.
Hardware problems Obtain driver from the vendor, and install.
Hardware vendors almost universally provide support for Windows.
If it’s supported by Mac, install the driver. If it’s not supported, you’re out of luck. Most external devices are supported on the Mac. Internal devices, you have far less choice than Windows or Linux. More and more devices have manufacturers providing Linux support. Many devices have solid drivers written by the Linux community, without help from manufacturers. A few devices have no Linux support whatsoever. Usually if you can’t get it working in Linux, it’s either brand new, or there’s a legal reason it hasn’t been done yet. Do your homework before you buy, and only buy hardware others have gotten working in Linux.
Bug in operating system Wait for a patch or service pack, cross your fingers and hope they fix it
Get a premium support contract, and pay Microsoft to fix your bug (note: even with the best support package, they may not do this for you)
Wait for a new release of the Operating system Report a bug, wait for the next release
Hire a developer to fix it
Find other people affected by the bug, and pool your resources to fix it
Bug in application Report it to application vendor, wait for them to fix it (or pay them to fix it) Report it to application vendor, wait for them to fix it (or pay them to fix it) Report it to application vendor, wait for them to fix it (or pay them to fix it)
Hire a developer to fix it yourself
Bug in interaction between applications You’re screwed. You’re completely at the mercy of one or both vendors. You’re screwed. Report it to both applications, and get guidance on how to address the issue.
Hire a developer to create a workaround.
Hire somebody to work with each application to integrate a real fix.
Help switching to another application Pay the company for access to your data
Pay a developer to reverse-engineer the data formats and extract it
You may be screwed–Apple has a reputation of making it really difficult to get your data back out of any of its applications Open source applications usually use open data formats. You may have other options that require no changes to your data. Anybody with knowledge can help.

What’s the key thing in this section? Addressing actual problems is within your control, when you’re working with open source. In the proprietary world, you’re entirely at the mercy of a single software vendor. If your problem is in the interaction between two different applications, you’re really stuck — there’s nothing you can do.

But in the open source world, there’s always something you can do. You can hire anybody with the skills to solve your problem, and fix it in the software itself. You don’t need any blessing from any single software vendor.

Open formats are perhaps more valuable than open source software, for most businesses. Because this is such a compelling advantage of open source software, many proprietary programs are beginning to open up their formats to allow other software to read them–their customers are demanding it.

How long will it take to solve your problem?
I’m not going to bother with a table for this one. The answer is nearly always “too long,” regardless of the operating system.

Actually, that’s not quite always the case–it depends on whether somebody has already solved the problem or not, as well as whether the solution is a fix or a workaround.

Many, many problems in Windows are not really fixes, they’re just workarounds. The only real “fix” for a virus-infected machine is the workaround of reinstalling your operating system. The only fix for lots of other minor issues that cause your system to slow down over time is to reboot. These are not fixes, they’re workarounds.

Real fixes take a lot longer, and need acknowledgment that the problem is real. Workarounds are band aids to get you through until there’s a real fix. And there are some real differences between the entire approaches of each operating system around these fixes.

Windows is chock-full of workarounds. Because Microsoft has gone to great lengths to maintain backwards compatibility of just about everything that’s been released for Windows since Windows 95, it’s full of workarounds to keep the old behavior. Rather than fixing behavior that might really be undesirable, they’ve had to patch it with workarounds because too many existing applications turned out to depend on that bad behavior. That, fundamentally, is why Windows is so big, bloated, slow, and painful to work with.

Apple suffers a different problem: changing their closed libraries too quickly for external developers to keep up. Each release, they break lots of things, and don’t always tell 3rd party developers ahead of time. This means the number of third party developers of Apple software is shrinking–they’ve managed to alienate quite a few. So their polish and high quality comes at the price of having a healthy thriving developer community outside the walls of Apple. There’s little transparency in this process, so developers outside Apple are always playing catch-up, and having to work around these changes in behavior.

Linux has its share of problems, too. Linux does not attempt to maintain “binary” compatibility between versions, though it does its best to maintain compatibility in source code. There is endless debate about the “correct” way to fix a problem, and competition between fixes. The challenge of this is that it can be hard for application developers to keep up, especially if they want to keep their source code closed and only ship software in binary form.

But the process is completely, utterly transparent. Anybody can see the progress on any fixes to any part of the system, and can jump in with their own solution at any time. It’s a true meritocracy, with those doing the actual work and providing the best solutions winning out over time.

The whole open source ecosystem is nimble enough to provide real fixes to technical problems, rather than just simple workarounds. If the source of the problem is design, it can take a long time to get the right design in place and resolve all the issues that changing the design causes in other applications. But when a bug gets fixed, it’s really fixed and usually doesn’t appear again.

An example of open source support

July 13th, 2008

In my early Linux system administration days, when I was first trying to set up a mail server with spam filtering, I ran across a really puzzling bug in Dspam, the software I was trying to get working. While all the other users of the software were getting great results, with Dspam catching 99%+ of all their spam, it was only catching about 70% of my spam after quite a bit of training.

I posted my results, and confusion, to the Dspam mailing list. The original developer of this software (which has thousands of users), Jonathan Zdziarski, responded that that did not sound right. He asked if he could log into my server and see what was wrong.

I created a test account for him, and logged in to the same screen so I could watch what he was doing. As I watched, he put debugging messages into his code, ran several tests, and within 10 minutes had identified the problem: the 19-digit number he put into the database (MySQL) was different than the 19-digit number he got out. It was a storage error in somebody else’s software causing the problem, a rounding error. He filed a bug in MySQL, and it was fixed within a month or two. But he also had a workaround for me: change the data type to a set of characters instead of an integer. Problem solved.

The unwritten rules of open source support

July 13th, 2008

What’s extraordinary about the open source community is that this level of support happens all the time, every day, without charge, in hundreds, thousands of projects out there. People that can get to the bottom of a problem and fix it at the source, not just provide a workaround, are directly reachable and motivated to see their software work as well as possible. They’re not hidden away from the public behind a large corporation, unreachable with layers of clueless support script readers stuffed between you and them. Here are some rules for getting open source support directly from the projects:

  • Before asking anybody, do your homework. Use Google, read the project FAQ, make some attempt to learn the basics without pestering people with questions they’ve already answered hundreds of times. Nine times out of ten, your problem has already been encountered and somebody has figured out a workaround.
  • Limit the scope of your question to the fundamental problem. Get to the point. I’m obviously guilty of being tremendously long-winded at times, but unless your question is right at the top and asked directly, you’ll probably get ignored. Developers are busy, they don’t want to read a novel, but they’re usually happy to answer a question.
  • Provide supporting details after asking your question. Many programs will create a log with lots of information that can help somebody diagnose your problem. Find what looks relevant in the logs. Specify what version of operating system, distribution, application, etc. Specify what you were trying to do, what you expected, and what really happened. But provide this stuff after asking your initial question–people aren’t going to wade through a long email to find your question.
  • Contribute something. The easiest way you can contribute is by answering other people’s questions. The whole thing works because people help each other, and this help goes both ways. If you always ask questions and never answer anybody else’s, or provide any other sort of contribution, you’ll eventually start getting ignored.
  • Always, always, be positive, respectful, and polite when asking your questions. Developers have a lot invested in their project, and insulting it won’t gain you any favors. Developers are under no obligation to help you either–you haven’t paid for it. Common courtesy is valuable. Complements are welcome.
  • Be patient. Sometimes the person who has the answer to your question is away from the computer. Usually you’ll get your problem solved quicker than you would calling some tech support line, but there are times it’s going to take a while. If you don’t get any response in a reasonable period of time (judged by how active the list or forum is, reasonable could be a couple hours or a couple days), there are several likely reasons: You haven’t been specific enough in your question; you’re in the wrong forum (e.g. users when it’s a developer question); nobody else is trying to do what you’re doing (in which case you may need to hire someone with the right skills); the project is dead (it happens sometimes–find another one); or the developers are swamped (give them more time, or come up with a new scenario that sheds light on your problem in a different way).

That list describes how we get open source support at Freelock. Aside from a couple unsupported hardware devices, or issues with proprietary programs, we have yet to get stumped, in over 6 years of extremely heavy Linux and open source use. We’ve never paid a dime for this support, though we have provided help to many others in return.

What’s git, and why do you use it?

June 30th, 2008

At Freelock, we’re always trying to figure out ways to do things better. Recently I started digging into a developer tool that’s making, as Bryan over at the Linux Action Show would say, my head explode.

For a long time, we’ve managed our custom code projects and business documents in a central repository, called Subversion (also known as svn). Subversion is relatively easy to understand–it’s like having a library of files you can check a copy out of, do some work on it, and then check it back in. Subversion is the librarian that tracks who has copies of what, and when they checked it out. So if Erik checks in changes to a brochure, and then Jill goes to submit changes to the same document, Subversion will say “hey wait a minute, that document has already been changed–you need to make sure you put Erik’s changes in your document before I’ll let you put in your document.”

This is great for managing conflicts between people working on a single team, or for code that is being developed in relative isolation from the rest of the world.

The problem is, we’re doing more than that–we’re taking code from various open source projects and either customizing it or building new applications on top of it. And so when the outside projects get updated, we need to manually update anything we’ve written that depends on that code. There is no longer a single repository where we control our code–there is our code library, plus another one for every project we use.

This makes managing add-ons for projects like Joomla or ZenCart quite challenging, because our add-ons get scattered throughout the filesystem to be able to hook into the right place. And if we have to touch a core file, we’re going to end up needing to re-implement our change with any update to that core file.

There are other issues we run into, managing our code and hosting, all of which take fairly time-consuming, manual intervention. Here’s the list:

  • Since we host and provide security updates for Joomla, Word Press, Zen Cart, Drupal, and others, we need to upgrade dozens of installations any time there’s a new release that has a fix for a security vulnerability. With Joomla this has happened quite a lot, and every Joomla installation needs to be upgraded individually–and tested. And since each installation is slightly different, we can’t manage them easily within a single repository, while updating the underlying code.
  • Templates, modules, components, blocks, themes, plugins, and whatever. Developing these types of add-ons are our bread-and-butter. But code for these often get scattered across an installation, making it quite difficult to manage just our add-ons while we develop them, or roll back to earlier versions if there’s a problem.
  • The Dojo Toolkit, and builds. We’re doing a lot of development with Dojo right now, to add desktop-like functionality such as trees, sortable tables, right-click menus, animations, and lots of other really cool things. However, if you don’t “build” the code after you write it, it’s painfully slow in a web browser. And due to the nature of how Subversion works, you can’t easily store a built Dojo tree if you ever want to change it again. Which means you’d need to build it every place you deploy it. And on some computers, it can take a long time to build–on our demo server, one of our projects currently takes 8 minutes.
  • As we get more directly involved with open source projects like LedgerSMB, we’re finding the need to change core files while we hack away at some particular feature. To do this, you create a branch of the code, work on your feature, and then merge your changes back into the “trunk.” If you don’t have access to save directly to the project repository, doing this gets a lot more complicated.

Git to the rescue. Git solves all of these issues. Read on for a technical discussion of how.
Read the rest of this entry »

Microsoft breaks WebDAV in Windows XP, Vista

June 30th, 2008

Unbelievable. Microsoft was one of the first places to support WebDAV, and after a little investigation, looks like they’ve completely changed how they support it–with security implications, and an amazing amount of brokenness…

At Freelock, we’ve used WebDAV to allow our clients to access to our servers since day 1. FTP is fundamentally unsecure, and as business level hosts, we refuse to allow that. SFTP is a really good option, but it does require us to set up local user accounts on the server and allow a higher level of access–something we would prefer not to do on our shared servers. WebDAV has long been the clear answer to this, supported by every major operating system with no extra add-ons, and also supported by most web development tools natively. That is, until last year, when Microsoft completely changed the way they do WebDAV. It even breaks compatibility with their own Sharepoint software!

Without testing this fully, this appears to be the situation, version by version:

* Windows 98, 2000, XP (does this still work in SP2/3? Dunno):
- Use Internet Explorer. Go to the File -> Open dialog, check the box to open as web folder, enter the WebDAV URL, and open.
This works really well, though if you bookmark it, it will open it as a web page, no longer a web folder.

* Windows XP SP2:
1. Apply a registry hack to enable basic authentication
2. Open Windows Explorer, and go to Tools -> Map Network Drive
3. Enter the path to the drive (you cannot use https unless you have Office installed) and a drive letter to map. Alternatively, use NET USE on the command line.

* Vista:
1. Apply registry hack to enable basic authentication (or set up server to use Digest authentication, and strip domain name out of user credentials)
2. Set up server to not reject requests to anywhere in the path for OPTIONS and PROPFIND requests

Read on for more details.
Read the rest of this entry »

Developing a Simple Workflow within SugarCRM

June 27th, 2008

Packtpub is running a sample from a developer’s guide for customizing SugarCRM. The author describes how to set up hooks for particular modules to build a custom workflow.

Custom workflows are a feature that is limited to the proprietary version of SugarCRM–they have not been available in the open source version. With custom development using techniques illustrated here, you can add your own workflows.

This looks to me like it’s written specifically for versions of SugarCRM before version 5. I haven’t had a chance to find out whether the same basic techniques would apply–SugarCRM 5 changes a lot of things from earlier versions, primarily with email handling and storing customizations in the database rather than scattered around files. The basic approach should work, however…

Developing a Simple Workflow within SugarCRM

Ten fantastic keyboard shortcuts in OpenOffice.org

June 27th, 2008

Some handy tips for users of OpenOffice.org, looking to get away from the mouse…

Ten fantastic keyboard shortcuts in OpenOffice.org

Top 10 reasons why you should buy Office 2007

June 16th, 2008
  1. You want to make sure nobody will be able to read your documents in 10 years
  2. You want to help your buddy who works for Microsoft have enough income to buy a private island in the Carribean, because maybe he would invite you to come for a weekend
  3. You feel sorry for the PC on the Mac commercials
  4. Your buddy is buying it for you from the Microsoft company store, so you’re actually saving hundreds of dollars! You can’t get those types of deals on free software.
  5. You hope that the extra emails it takes between you and your customers, partners, and vendors to get formats that they can open will improve your relationship with them
  6. Having the newest software from Microsoft makes you cool
  7. You want to extend Microsoft’s monopoly on the desktop, it’s just easier that way
  8. You have a big technology budget, and can’t think of any better way to spend those dollars
  9. You already spent the money on it, may as well force others to pay their Microsoft tax, too
  10. You’re a big fan of Survivor, and like being dropped into an unfamiliar environment and having to figure out all over again how to do the things you need to survive
  11. (Bonus!) You don’t know a better solution exists

If your reason for purchasing Office 2007 is #11, drop us an email and ask us how open source software can make your business run better.