Archive for the ‘General’ Category

Network neutrality or bulk rate discount?

Friday, 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

Wednesday, 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?

Monday, 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

Tuesday, 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

Tuesday, 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.

Business Social Networking Geography: Yes Location matters

Saturday, 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.

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

Saturday, 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

Thursday, 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

Sunday, 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

Sunday, 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

Sunday, 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

Sunday, 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?

Monday, 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.
(more…)

Microsoft breaks WebDAV in Windows XP, Vista

Monday, 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.
(more…)

Update

Tuesday, May 27th, 2008

It’s been a while since I posted here, but it’s not for lack of things to write about. There’s plenty going on, and I have several blog posts/rants/articles pretty much ready to post. Just haven’t had time to get them up.

We’ve got a bunch of irons in the fire, and have much of the hard work done. That means I’m going to be writing more, letting the world know about some of the cool stuff we’re doing over at Freelock Computing. Top of the list is Project Auriga, which is quickly becoming a really cool time-tracking, billing, project management application that highlights the Dojo Toolkit to do all kinds of fun stuff right in the browser.

After a year of not getting why I should, I’ve started Twittering as an experiment in transparency and an exercise in posting more regularly.

We’re working on a major overhaul of the main Freelock.com web site, moving it from Joomla to Drupal. We may also move this site to Drupal, and turn it into more of a directory of open source applications, along with discussions about the various solutions so that people can find straightforward information about the state of open source business software.

Finally, I do plan to blog on a more regular basis going forward. And I’d like to make this a useful resource for people looking for answers. So if you have a question about using open source in small business, please post a comment or email me at john at freelock.com, and I’ll do my best to answer them…

The EU crashes Microsoft’s party

Monday, March 3rd, 2008

A couple weeks ago, the EU slapped Microsoft with a $1.35B fine, less than a week after Microsoft had made a big fanfare about their new “open” policies.

Todd over at Napera asks,

Certainly the terms Microsoft has been offering companies since the EU decision in October 2007 are extremely reasonable. Given Microsoft’s new open protocol documentation and their patent pledge for open source developers, what’s not to like?

I haven’t seen any pundits or commentators in the US defending the EU decision. If they are, what are their substantive points?
Napera Networks » The EU crashes Microsoft’s party

Hmm. Let me see if I can shed some light…

First of all, Microsoft wants you to believe that open source developers are all a bunch of hobbyists creating code for no pay. Their recent pledge is to not sue open source developers developing non-commercial systems.

Boy, what a deal that is… Microsoft gets all this open source development for free, right? And they can still charge anybody who dares to compete with them commercially? Great deal–for Microsoft.

The reality is, a great number of open source developers engage in commercial activity. Many successful open source projects are backed by commercial companies. OpenOffice.org, JBoss, SugarCRM, MySQL, PHP, the list goes on. By definition, open source means you can use and redistribute software for any reason, including commercial activity–by excluding commercial entities from patent protection, Microsoft is making a marketing play without making any real concession.

Their real agenda here is to give the illusion of openness so they can get their OOXML format approved as an open standard, without giving up any control over the format. Never mind that they were part of the committee developing the ODF standard and didn’t bother to contribute. Microsoft has no interest in working with other companies to develop an open standard–they want to be proclaimed the standard so they can demand “reasonable royalties” from everyone else, and all the rest of this is just marketing spin to try to put one past the EU, who so far have managed to see through all this bull.

Secondly, Microsoft seems to think the only healthy software marketplace is one that revolves around it. It got where it is by using all sorts of unethical, hardball business practices to drive its competition out of business. This is classic anti-competitive behavior, and is the reason it’s been the target of so many actions.

Microsoft has built a large ecosystem of developers and service providers all gathered around the MS stack. Yet you look at the stack and there’s not all that much vibrant activity, at least not compared to the open source bazaar. Take content management systems as an example. In the Microsoft world, you’ve got Sharepoint. You’ve got a couple of ASP.net open source projects like Dot Net Nuke. And that’s about it.

On the open source side, you’ve got overwhelming choice, and some of them quite great. Instead of one size fits all, you can go shopping for just the features you need, and get it all for a great price–free, if you have the technical ability to make them work. Joomla, Drupal, Plone, MediaWiki, Typo3, Postnuke, Word Press, Serendipity, several hundred different options for you to choose from. Which looks like a more vibrant marketplace, with more competition and more choice?

Ah, but then you ask about standards–isn’t it great that Microsoft makes it so simple for you to do what you need to do? You don’t have to make all those choices. Soviet bakeries were so much better than American supermarkets, too, huh?

Oh, but wait. Who invented http, rss, the world wide web, email, the spreadsheet, the database, the word processor, or anything else we use our computers for? Hint: not Microsoft. And the first few things in that list were created in universities and other open source, collaborative environments.

Finally, to speak directly to the EU’s decision, how does letting Microsoft get away with their monopolistic, anti-competitive behavior help the EU in any way? By protecting their software industry from Microsoft, they’re fostering an environment that can lead to a much more competitive, fertile ground to grow their own software industry.

No other industry (other than possibly the utility companies and the railroads) have had a single company that so dominates the industry like Microsoft dominates software. How can that be a good thing? I know from personal experience a half a dozen companies that Microsoft crushed, and for the most part their technology with them. This mono-culture of software has led to all the trouble with spyware and botnets and through them, spam. I don’t think we’re better off with our Redmond overlords.

I for one was happy to hear about the EU’s decision, glad they were able to stand up against monopolistic practices and do something to actually help their software industry thrive.

On Vendor Lock-in

Saturday, January 19th, 2008

I was listening to the latest episode of LugRadio the other day, and they had a discussion on vendor lock-in by open source distribution companies. I think they missed the point about vendor lock-in: that it locks users into a particular vendor, usually through some means that makes it hard to switch to a better solution later. So I wrote up a reply to send to them that I’m posting below, slightly edited. There is also an ongoing conversation about the topic at the LugRadio forum, and I see several posters are making the same points that I do here.

Open source business is the antithesis of vendor lock-in. Vendor Lock-in is when a vendor uses some sneaky, underhanded, unadvertised method to make it impossible to recover any of your original investment if you ever decide to go with a different system. Vendor lock-in is accomplished by using all the dirty tactics the proprietary software world has used for ages–closed systems that lock away your data, hidden undocumented features, patents, and sneaky licenses.

What you described on the show was not vendor lock-in. It’s called healthy competition, and it’s how open source software innovates. How is optimizing your client OS to work with your server OS vendor lock-in, if anybody else can see what you’re doing and do the same thing? Furthermore, how is it different than competition between KDE and Gnome, or vi and emacs, or any other of the many long-term competitions in the open source world?

Any distribution that is not looking for ways to improve their users’ experience is on the fast track to irrelevance. Take a look at some recent examples you should’ve used in your discussion:

* Xgl vs Aiglx: Novell went off and created Xgl, while Red Hat essentially recruited a bunch of other projects to do the same thing in a different way. Different distributions became real-life test beds for real innovation, and the better technology won.

* Xen. Novell and Red Hat have a great lead over Ubuntu on management tools for Xen. You could’ve accused either of those companies of trying to provide better experiences for their users, but that’s just good business, not vendor lock-in. Ubuntu may be behind, but they’re able to pick and choose their approach to managing Xen–nothing Red Hat or Novell has done is keeping their technology out of Ubuntu or any other distribution looking for enterprise customers. Neither Red Hat or Novell has achieved any kind of lock-in with enterprise customers–what they’ve achieved is leadership.

* Upstart. Here’s an area Ubuntu pioneered, and others are adopting.

* LTSP, K12LTSP vs Edubuntu.

I could go on and on. So I will. Distributions are always trying to shine at some particular set of features. Users decide which ones are appropriate for their needs. This is a fantastic thing. If Ubuntu weren’t trying to make their servers work particularly well with their desktops, they open an opportunity for another distribution who would. As long as a distribution can stay ahead of the competition technically, they deserve all the success they get–they’re pioneering the way, and the whole open source community benefits.

Okay. Now here is what would be vendor lock-in. If Canonical created some tricky way of making their servers talk to their clients, and then patented it so they could sue anybody else who tried to do the same thing, THAT would be vendor lock-in. If Red Hat embedded some private key on their commercial server that unlocked some turbo-samba supercharger, and encrypted their algorithm so nobody else could see it, and then put the key to unlock that speed in their desktop, THAT would be vendor lock-in.

But any open source company that tried such a tactic would be instantly cut off from the rest of the community–and they would probably have to violate a bunch of GPLd software to do so…

The competition between distributions make all of them better. While we’re all racing each other to see who can innovate faster, we still get the benefits of each other’s code, and Microsoft and Apple are starting to disappear in the dust in our rear view mirrors.

One other point I’d like to make: the earlier an open source project tries some new tactic to improve computing, and commits code to a repository the whole world can see, the better. Prior art is the key to defeating all the frivolous patents companies are taking out. If somebody tries something really inventive to eke out a bit more performance, I want that in a public Subversion revision associated with a date and a free license–it’s the best insurance we’ve got against a broken patent system.

On Patents and Free Software

Saturday, January 19th, 2008

I’ve spoken with a lot of entrepreneurs around Seattle, who have a misconception that using open source might somehow force them to give away their intellectual property. Intellectual Property is a hot topic around here, and entrepreneurs are told regularly how they need to have some to get funded. Yet they often think they can add their patented idea to free software and lock up their core idea. It’s a bit funny how they want to have their cake and eat it too.

I’m talking specifically about patents here. My understanding of the intent of patents is to give the originator of an idea a legal monopoly that allows them to invest large amounts of capital to bring a new innovative product to market, for the benefit of the rest of us. In an industrial age, patents make a lot of sense–building an assembly line takes a lot of capital, and if you have a bunch of competitors, nobody would make the investment to build the infrastructure, if they couldn’t lock up the market and get paid back for their investment.

Now, I won’t go into the social ramifications of this arrangement, but I’d like to make two arguments about patents in the age of software here:

  1. The cost of building a distribution and manufacturing network for a software idea is pretty much nil.
  2. Very few software ideas are non-obvious and innovative, or worthy of patent protection.

On the first point, if you had to build or buy your whole set of tools to run your application–compilers, web servers, operating systems, text editors–then yes, maybe you need some sort of way of protecting your investment in all that infrastructure. But with free software, you get all of this for free and have it deployed today on a $600 computer. Your next dollar spent is in your time getting your application actually written. The individual craftsman working from home after hours can develop software in his spare time that can rival anything coming out of a venture-funded startup or a multi-million dollar corporation with the help of all of this free software. Why does the startup need protection from a solo garage programmer? The only reason I can think of is to keep free-market economics from harming the investors, and profits going into the pockets of the entrenched players.

Patents take time and money to obtain. In the world of free software, programmers are far better served creating their idea and bringing it to market first, rather than wasting time and money on patents. Developing a solid program quickly and accumulating a base of customers for your service is going to be the best way to stay ahead of your competition.

So the big question I have for startups is, why should you get all the benefits of Free software with no financial outlay and ability to bypass all sorts of startup cost, and then keep your invention protected by patent? If patents protect a large capital investment necessary to bring a product to market, but then suddenly there is no large capital investment necessary to do so, why should you still need a patent? You can bring a product to market today with a few hundred dollars and a lot of elbow grease.

Of course, you might still be trying to get fabulously wealthy by locking up your idea so nobody else can use it. Fine. Take out your patent. Buy licenses from all the proprietary vendors to use as a platform for your idea. Don’t use software covered by the GPL, because you would not be able to protect your patent when you distributed your product–the GPL is incompatible with your patents, and you would lose your license to use the GPL software. Pay a whole lot more for startup costs, all to protect your fine idea… and then you’ll run up hard against the second point I’m making here: lots of other people have the same idea as you.

Our patent courts are getting inundated by suits from patent “trolls” who have purchased patents from inventors or researchers, and then sit on those patents purely for the purpose of suing others for profit. The targets of their lawsuits almost always had no awareness of the patent they’re being sued for violating–they came up with the same idea independently. Why on earth would we reward the person who filled out a bunch of paperwork to take out a patent, and punish the person who actually brought it to market so the rest of us could benefit?

Patents are supposed to be innovative, and non-obvious. The fact that many different companies come up with the same ideas independently all the time should indicate that those ideas are obvious to people in the field. Because the cost of bringing these ideas to market have dropped to virtually nothing, software companies do not need patent protection–there is very little capital outlay necessary to protect. Our current patent system punishes innovation, instead of promoting it.

Fortunately for the open source community, there are several things that make us more resistant to the patent threat than proprietary companies. We should assert these points whenever someone in the community is threatened by a patent holder:

  • No big pot of money. Because we don’t need much capital to get started, there’s not really any prize for patent trolls to go after. The patent trolls attack software companies, and their goal is not to drive the company out of business, but to profit off somebody else’s work. If there’s not enough cash in one place to provide that profit, they won’t bother to try. They’ll keep suing Microsoft and Blackberry and all those other venture-backed startups that still think the patent system isn’t broken.
  • Prior art. Here the public process of open source projects is a huge advantage. One of the best ways of invalidating a patent is to prove that there was prior art. What matters for this is the date of publication–was there prior art published before the date of the patent application? If so, and if that can be proven, it can completely invalidate the patent. Well, the Internet is nothing if not a big publishing machine. A public repository with revisions available by date seems to me like a great way of proving when an idea first entered a codebase of a particular project. Back that up with a look in the Wayback machine or a Wikipedia article, blog entries, IRC logs, and we can prove prior art with any discussions that happened before the patent application.

    Those poor, poor proprietary companies… they can’t even talk about things they’re trying to patent until they have their application in, or they might invalidate their own patent. When it comes to validating patents, the first date of publication or patent application wins.

  • The GPL. GPL v2 prevents patent holders from providing patent licenses to some recipients of the software, but not others. GPL v3 makes the rules much more specific, basically making covered software incompatible with patents. If you patent something you’ve extended from GPL v3 software, you’re violating the license and lose the right to use that software. So much for that business model.

Patents were originally designed to make it financially possible to bring innovative products to market so the world could benefit from that innovation. The current patent system, at least for the software world, does the opposite, standing in the way and penalizing innovation instead of promoting it. The Free Software movement is trying to do the same thing patents were created to do: make it possible to bring innovations to the public and protect innovators, in the face of a broken patent system. And while free software has taken away the potential for huge profits, it has also taken away the huge costs.

I was talking with a programmer last week about open source. He kept asking, “but how can I make money programming free software?” He seemed to think he was entitled to develop his idea, control it from start to finish, get venture funding, bring it to market, and everybody would buy it and make him the next Bill Gates. He kept saying that free software was not friendly to the community, because it took away everybody’s ability to make money. He seemed to think that proprietary software companies developing in a closed ecosystem was the key to developing good software, that that was the only way to make money in software, so if you didn’t work with his software community, you wouldn’t make any money.

I asked him where the money came from, and his answer was “the customers.”

Ah, so let me get this straight: customers are going to fund your closed ecosystem of buddies all trying to corner the market on particular ideas, just to keep this group of developers making money. Really? Even when there’s a completely viable alternative that does every bit as much as your system, without vendor lock-in?

Free software is, if nothing else, an advocacy group for users. Customers are the users in this case. Free software is software that users can use for whatever purpose they wish, can give to anybody they want, and change to suit their needs in any way they want–as long as they don’t restrict what other users do with it.

Free software is about community. However, in the free software world, users and customers are part of the community, not merely an external entity funding it all, a sugar daddy. In the free software community, the lines between users and contributors, between customers and vendors, become quite blurry. Doing something at the expense of part of the community, just so you can make a fabulous profit, isn’t going to keep you in business very long.

How to get the best price

Wednesday, December 12th, 2007

… but are you sure price is the most important thing?

We’ve been on the receiving end of this type of call quite a bit these days. The unfortunate part about the whole deal is that pricing often seems entirely arbitrary.

When I got the bills for surgery on my ruptured Achilles tendon, I was amazed by the difference between the original price and the final price negotiated by my insurance company. Even though I had a very high deductible and had to pay most of the bill before the insurance kicked in, just having insurance lowered the cost dramatically, in some cases more than 50%.

As a service provider with payroll, taxes, and overhead, however, I’m less inclined to negotiate. With open source products, we’re providing incredible value to our business customers. But if we don’t get fairly compensated for our services, we wouldn’t be around to help businesses negotiate the open source bazaar for very long…

So, you want a web site…

Thursday, August 30th, 2007

The first thing to ask is, why? Web sites have lots of reasons for existence, but for business purposes, we tend to see some combination of four motivations:

  • To act as an online brochure
  • To attract new customers from search engines
  • To sell things online
  • To build a community of people who might someday buy something from you

A web site can do any or all of these, but generally the further down this list you get, the more the site is going to cost in terms of development cost and your time.

Web Site as Online Brochure

All businesses need a web site. It’s as crucial as having a Yellow Pages listing a couple decades ago-it’s the first place more and more people will look to find your address, phone number, and contact details. If you have nothing more than a single page with the basics about your business, it’s important to have at least that.

Your web site should not only tell your potential customers how to get ahold of you, but also why they should. What products or services do you sell? Who are your customers? Why do people buy from you instead of your competition?

A web site that answers those questions and nothing more is a sales tool. You are not likely to get new sales leads from such a basic web site, but it can help you close sales for prospects who already know who you are. When you put together such a site, you’ll need to consider your business brand, and there’s a couple of radically different schools of thought here:

  1. Brand matters
  2. Brand doesn’t matter, but personal reputation does

The old school of thought is that companies develop a brand that is supposed to represent its values. The danger of this approach is letting the trappings of a brand-the logo, the slogans, the marketing material-matter more than delivering those values. It’s like worshiping idols instead of the gods they represent-sooner or later you’re gonna get smote.

The newer school of thought is eloquently expressed in an essay called "The Cluetrain Manifesto" and espoused by many new thinkers and thought leaders, such as Seth Godin, one of our favorite current marketing writers. The gist is that graphics, logos, all the rest of these trappings are completely irrelevant, that nothing but content-your quality of service, your core products-matters. Their approach is minimalist-use freely available tools to build your web site, don’t spend on graphic design, instead just make sure you take care of your customers.

Of course, we think delivering quality service is important, but having a coherent brand can help. Especially if you’re trying to develop a consistent customer experience. Ignoring graphics, domain names, even business names, is fine for personality-driven businesses, but if you are trying to grow a business to be something more than the sum of its personalities, you need a visual identity that’s consistently expressed in your web site, your printed material, your contracts, in everything.

You can get started with a web site at your ISP, or a blog on a hosted service, for next to nothing more than a few hours of your time. We recommend that as soon as you can work it into your budget, hire a graphic designer to put together a business identity and a basic web site that incorporates it. Expect to spend around $3000 to get something unique that expresses what you want your business to represent, though this price can vary substantially depending on the web designer you choose, how well you can express your ideas to your designer, and how intricate and detailed your design ends up. You can find cheaper solutions, such as cookie-cutter designs, pre-built templates, or off-shore design to get something going for a few hundred dollars-but it will definitely show. Depending on the values you are trying to represent with your brand, this may or may not be a good thing.

Prices for web design can vary by a huge amount. We recommend finding a designer with a portfolio of designs you like, interviewing them to see how well you can work with them to make your ideas a reality, and decide what you’re willing to spend up front. Setting a budget for a web designer is perhaps the best way to go. Intricate designs take time to develop, which costs money-start with a logo and an overall concept, and refine until you’re happy or have reached your budget.

But before going crazy with design, read this post by Seth Godin for guidelines on what to put on your web site (and follow his suggestions for other places to post content).

Beyond an e-Brochure: Getting business from your web site

Just having a web site, however, does nothing to get customers beating down your doors. People need to find your web site somehow, amidst the millions of other web sites out there. For small, local businesses, they don’t find your web site online–they find it from your business card, a sign on your car, word-of-mouth, or all the rest of the traditional ways people market their business.

If you want your web site to actually generate business for you, recognize that it’s going to take a substantial investment in your time, more than anything else. The critical ingredient in getting your site noticed by search engines is content. The more, the better–especially if it’s interesting, relevant, and unique. Having new, original content on your site helps it in two ways:

  1. It’s more raw material for Google and the other search engines to index. Sheer quantity helps.
  2. If you’re a decent writer, and write something useful, people will return to your site to see what you write next, and some will link to your pages.

Google is basically a popularity contest: it places the highest value on pages with the most links coming from other sites. Create a page that people want to read, and eventually it will boost your rank on Google. Create a bunch of pages, and soon you’ll be at the top of the search engines, and start to get business over the Internet.

You can jump-start online marketing by buying advertising. Pay-per-click ads work, and don’t cost all that much. But nothing beats the organic results you get by growing your site with regular additions of new content.

If you need a system to make it easy to add stories to your site on a regular basis, that’s where Freelock Computing can help. We work extensively with Joomla, MediaWiki, Word Press, and Serendipity, different systems that make it simple for you to manage your own content without needing a technical background. We regularly deploy, customize, host, and provide training for these systems. Let
us know
if we can help!

Brick and Order: Selling online

Many people suggest having some sort of "call to action" on every page of your site, whether you actually sell online or not. If your web site is for a business, you almost certainly want people to take some action, some small step that might eventually lead to a sale. Even if your product or service doesn’t lend itself to online sales, your web site can help develop a relationship with potential customers, help them gain trust in your expertise or familiarity with your services.

But if your products can be sold online, you almost certainly should set up some sort of online shopping cart. The more specialized your business, the more unique your products, the more potential customers you can find online.

The Internet can put distant customers on your virtual doorstep. Having a friendly, inviting catalog online can greatly expand your customer base, and there are some great tools out there to make developing such a site affordable.

At Freelock, we recommend and deploy ZenCart for retail operations looking to open an Internet store. For people who have some products to sell but still want to have an information-rich site, we’ve deployed a Joomla shopping cart system called VirtueMart.

Growing a Community

By far the most audacious goal you might have for a web site is to make a place where people hang out and talk to each other. Many, many businesses are learning that this is a great way to cultivate a devoted following, but it takes a lot of work.

Community web sites are like gardens. It takes some fertilizer, regular watering, and someone to pull weeds to make a vibrant community grow. If your business is large enough to devote a major part of somebody’s time to keep a community site in good shape, it can pay off with enthusiastic support of your business.

Opening a web site to direct interaction with your customers can be difficult for a lot of businesses. You need to be open to criticism as well as praise, willing to allow the world to see the warts on your business. But doing so nearly always helps people trust your business, and makes them more willing to do business with you.

What sort of work is involved? Quite a bit:

  • writing stories and inviting comment on them
  • Responding to criticism and praise, both in a professional, business-like way
  • Deleting spam, or moderating posts (I recommend only moderating spam, not negative posts)
  • Generally making yourself available to your customers online

If you can’t put the time into managing such a site, I would suggest simplifying your goals, go with a marketing or an e-commerce site. Community sites are hard, and there’s not much worse for your business brand than a forum filled with spam, or negative posts that go unanswered.

But there’s not much better than having a community of vociferous fans of your business-they’ll help you with sales, marketing, and support.

We’re helping several companies put together or manage community-based web sites. Joomla has a number of common add-ons we deploy for this purpose-Community Builder and Fireboard provide a solid base of user profiles and forums. For more specialized web sites, Drupal is a more powerful content management system that makes a fine base for building entire custom applications.

Choosing a web site vendor

Lastly, a few words about hiring a web developer. There are lots of us around, with a wide range of prices. What one company can do for $2,000, another might be able to do for $10,000, and you might be able to get someone in India to do for $500. But the end result won’t be the same for any of these.

Spending more doesn’t always mean you’ll get a better result, either. Open Source software greatly lowers the entry cost to get powerful web sites, though these often result in a steeper learning curve to figure out how to use effectively.

The best way to find a good web developer is to ask people you know and trust for a recommendation. Make sure you talk to people who have worked with the web developer to get a sense for how the process went, and how satisfied they were with the results. There are two different skills used in putting together a web site: the graphical side, and the technical side. You need both, and you don’t tend to find both in the same person. Make sure your graphics person "gets" what you are trying to express, and make sure your technical person can explain things in terms you understand. These factors are far more important to the ultimate success of your web site, than the cost you pay up front.

So, here’s the final checklist of how to put together a great web site for your business:

  1. Decide upon your goals for the web site, what type of web site you want to create.
  2. Ask friends, colleagues, family members for
    recommendations to find a web designer and developer you can work
    with. You might also be able to find a developer by contacting the
    owner of a site you particularly like.
  3. Interview your potential web designer and
    developer. Ask to see samples of their work, and to talk with prior
    customers. For the designer, look for designs you like, and how well
    you connect with the designer-design can be extremely subjective,
    and you want someone who will deliver what you’re looking for. For
    the developer, make sure they’re competent, and that they can
    clearly explain what needs to be done and what your options are.
  4. Once you’ve decided upon the people,
    determine if they can do the job within your budget, and if so,
    you’re off and running!