Moving On

So the official word is out, and I can say that as of the first of July, I will no longer be at Forum One.

I’ve been there an eternity in the tech world: ten years and nine months. I arrived there from a startup, in which in four short months I went from a web developer to managing the team. At Forum One, the same ascent took me five years. Along the way I worked on a hundred or so different websites, went through two recessions, three US Presidents, and innumerable Yuenglings.

I hired everybody on the current software team and became interested in career development: how to find good people, what makes a good developer, how to make a junior developer into a senior developer, and how to assess progress.

I also worked on a product and found it increasingly rewarding compared to the chop and change of consulting work. I’d always had an interest in the entire software development process, from strategy through information architecture, design, and deployment. I also got to pick up a lot of business considerations, both for the company and for our clients (though they cringe at calling anything they do “business”).

Seeing different organizations and how they work is interesting, but the similarities begin to feel like routine and the nonprofit world is a conservative place for all their lefty leanings. There’s more scope to do your best work and employ best practices, without having a client force something substandard for political reasons.

So I wanted a change from project work, and moving to a different consultancy just wouldn’t give me enough of a change. So when a former colleague approached me about an idea for a startup, I was severely tempted. I was also cautious, as I am no longer as footloose and fancy free as I was a decade and change ago; 60 hour work weeks aren’t really my idea of fun. I’ve learned a lot about how I want a company to run, and getting that right was very important.

But the idea was compelling, our ideas of how a company should run were compatible, and I was able to shape both. So on July first I’m going to be working full time on a startup I’m cofounding, and we’ll see if my vision for shaping products and running a company works in practice.

While I don’t want to say too much about the new startup, I can say that it uses the experience I’ve gained in seeking, hiring, managing, and promoting developers and other technical types to address something that’s completely lacking right now.

The company will be called MojoLive, and we’ll be providing a revolutionary—and I’m not using that word lightly—approach to career management. It’s a really exciting opportunity, and it gives me a new role and a new title: Chief Product Officer. I’m going to be using the skills I’ve picked up outside pure development to ensure the product has a constant vision, taking into account competitiveness, marketing, design, and of course development. And of course at first I’m going to be helping develop this application. I hope to have some exciting news about that soon.

I’ll still be heavily involved in the open source community, and in fact I’ll be broadening my involvement beyond networking and recruiting, and beyond PHP. I’ll even get involved in proprietary communities, as our product will be useful for anyone involved in technology as a career.

So to my Forum One friends, I say thanks for all the opportunities and experiences. Stay in touch; I’m working from home, just down the street. For everybody else, I’ll be seeing you and saying more as time goes on. I’ll even blog more, as I’m no longer working on this in my spare time after hours.

Those of you who know me know I don’t often gush or get excited easily. This is something I’m genuinely excited about and can’t wait ’till we have something to show you. In the meantime, I’ll be helping transition my role to the really capable team I’m leaving at Forum One.

Watch this space; I think this is going to be a lot of fun.

In Favor of Network Neutrality Regulations

I just posted the following as a public comment to the FCC’s proposed rulemaking to ensure neutrality of internet network services: Unless and until broadband providers are forced to provide real competition by providing best-service sharing of the last mile infrastructure at cost to competitors with separate divisions to handle technical service, there can be no real competition in broadband services. Each technology has its own local, government-created monopolist who has extracted rents from the American public through the value of a government-enforced monopoly on last mile infrastructure for that given technology.

Since each technology effectively creates a new tier of service (DSL at the bottom, Cable in the middle, and, where not blocked from negotiating a new franchise with a locality by pressure from an existing monopolist, fiber at the top), the competition among them is not apples-to-apples. Beyond the limit for DSL, only cable and fiber can even service some areas. Satellite can only provide download speeds and the nature of network applications make the POTS (Plain Old Telephone Service)-based outbound channel unsuitable for the kinds of interactive applications expected by consumers. These, quite frankly, are apples-to-oranges “competition”, no matter what certain network providers would like the FCC to believe.

Until Congress moves to undo the harm it did to broadband competition, the FCC has no choice but to issue reasonable regulations to ensure that any packet of IP information is treated the same as any other packet, with appropriate exceptions for calls on wireless telephone networks and emergency information, or for packet-neutral limitations on individual use for purposes of quality-of-service assurance.

The FCC must do this to support existing legislation designed to guard against fraudulent advertising. “Internet service” inherently assumes that all services are equally available at the access levels sold to the consumer. This means that a broadband provider may advertise 5 megabit download speeds as long as all internet-protocol-based services receive that 5 megabit capability from the broadband provider. Anything else may be electronic network access, but it is not “internet” access and should be forbidden starting on these grounds. Additionally, such regulation should enforce transparency so consumers know exactly what restrictions and realistic expectations of service they may be purchasing.

The broadband providers should not be prevented from creating alternate, private, non-internet networks to which they may sell access and manage under any terms they see fit. But if they are to sell “internet” access, they must abide by the principles that caused the Internet to win out over the private networks such as CompuServe, AOL, or Prodigy in the early 1990s.

These regulations themselves should be as simple and neutral as possible to ensure a level playing field for all entrants to the internet service or provider market. Additionally, the FCC should recommend legislation to Congress establishing ways to: 1) either break up local last-mile technology monopolies or enforce equality of access and equality of cost so competing providers are not second-class citizens on a given technology, 2) ensure standardized and rapid franchise agreements for new entrants with new or existing broadband technology, and 3) ensure any limitations on service are clearly communicated to consumers so they may know what they can reasonably expect from the service in day-to-day operation, as well as any quality-of-service actions the access provider may undertake.

Above all, any regulations should ensure that no provider may, under cover of “network quality of service management,” manage their network in a way that favors a service owned or somehow affiliated with themselves over a competing service unaffiliated with that provider, nor may they impede access to any legal service with whom they may have a dispute or with whom they disagree.

Eclipse Works With Preexisting Code, But Not Well

[Cross-posted from the Forum One Tech Blog]

I recently upgraded Eclipse PDT to the most recent version, and I decided to figure out something that had been bugging me: why couldn’t Eclipse use a project I’d already checked out via the command line to the same workspace?

A colleague suggested that I could indeed do it, and that I just needed to start a new project but check “Create project from existing source.” This does work, but it has a couple of restrictions that explain why I was having so many problems and why it’s kind of useless for me.

  1. Projects from existing sources cannot be in your workspace. I have no idea why this restriction exists. I could understand why starting a project inside another project would be bad, but all Eclipse has to do is add a couple of extra files to a directory. Nonetheless, all the sites I’d set up in my workspace and had been using other text editors to edit were unusable. Coda, by contrast, will happily take over an existing project, no matter where it is or what is in it. Interestingly, you can set up a workspace inside another workspace, so I could get around this by creating another workspace that pointed to a subfolder of my current workspace that contained the source code I wanted to use.
  2. If using subversion, Subclipse will not be able to work with your checked out copy if the versioned files are in a subdirectory of your project. This is also strange to me. In Drupal, for example, we only version the sites/all directory and use Drush to update the main application. In other projects, we have versioned code outside the public root and create the public root from a tarball we keep in the repository. Since these files have configurations that shouldn’t be versioned, I want to be able to edit them in Eclipse while using Subclipse to control the versioned part. Sadly, this restriction means I can’t do that.

So my workflow is still to create subdirectories, including a public root, in my workspace by hand, and then importing the project from Subversion with Eclipse’s Import function. These seem like pointless restrictions to me. If anybody knows a workaround, I’d be grateful.

CodeWorks 09 DC

CodeWorks 09Thought I’d give a few overall impressions from CodeWorks DC while they’re fresh in my mind.

The community

What really impressed me was just how great the PHP community is. There were some Big Names there, but everybody was really approachable and happy to share what they knew and ready to listen to others. They were really friendly, and I had some great conversations in the hall and after hours, both with other attendees and with speakers and staff. Get a sense of this over at Dawn Casey’s blog.

The tutorials

I had expected the tutorials to be somewhat interesting, but otherwise expected the meat to be on the second day with the more traditional talks.


The code review I attended in the morning was very educational, and Keith Casey was quite sporting about letting his project be dissected by ze Germans, as they came to be known. Best line: “Well, think of how many people are in this room, multiply it by our billing rate, and see how much it cost us just to figure out what the hell this piece of code does.” But the Advanced OO Design talk was really valuable. The lower crowd size coupled with the length of the presentation made it very easy to ask substantive questions and get serious responses. It helped me get over a number of mental blocks I’d been having with the implementation of MVC in web apps and better ways to do Dependency Injection.

None of this takes away from the second day’s talks. I’ll highlight some of them in coming blog posts. But the tutorials were an unexpected gem.


Microsoft appears to be making a really big effort to reach out to the PHP community, and I appreciate it. They were a big sponsor of the event, including an open bar the second night. I also appreciate what they’ve been doing to improve PHP’s performance on IIS. I hope they follow this effort up by taking steps to make themselves really interoperable with other systems, so it doesn’t feel like going Microsoft is an all-or-nothing choice.

The Organizers

Even though it was small enough to handle informally, CodeWorks felt very well-run. Despite a truly grueling schedule (two teams leapfrogging across the country, one day on, one day off), everybody seemed in good spirits and there was comparatively little confusion. When a mixup or a technical glitch occurred, they were able to adapt quickly, even ready to get a speaker to throw in an extra talk.

If they decide to to this again, I highly recommend this conference. If they’re in town again, I’m going to lobby to get the whole Forum One team there–it was really that good.


I have, in my career, been told many times that something will be easy; just use Plesk. Not once has it solved a problem for me. Unless that problem is, “What is something I can waste my time with until the guy at the other end discovers that ‘Plesk’ is not spelled S-S-H?”

Plesk makes easy things almost easy, hard things harder, and useful things impossible.

Take It From Me: The Idiot

Ad text: I got scammed 27 times. Avoid Online Work At Home Scams! I Will Show You The Ones That Work.Remember, friends, when looking for reliable advice on navigating the tricky waters of these here intertubes, only someone with experience should guide you. Especially if that experience is being scammed. Repeatedly. 27 times. Because if you haven’t been scammed at least 25 times, you don’t know what to look out for. That’s why only a guy who’s been scammed 27 times will be able to tell you which scams really work.

Oh, you wanted a work at home job that isn’t a scam? Well, I don’t think this guy can help you.

The Web Causes Toilet Economics to Flow Backwards?

Have you seen the ad where a guy with tiger stripe tattoos attempts to get a tattoo shop to take them off, and they tell him it’s impossible, just like they told him before? The guy objects saying, “well, now I’m on my digital phone, so…the call should go better.” He expects swapping out one technology will make everything behave differently than it did previously.

Pets.comSomething similar happened back in the days of the Dot Com boom–and subsequent bust. People imagined that a flawed business model + The Internet would mean the laws of economics could be reversed. It didn’t matter if you had a company providing a service no one was willing to pay for. This was on the Internet, dammit! Hell, a centralized pet food delivery service + The Internet = a good idea! Well, we all know how that turned out.

I suspect, based on a former colleague’s report of a Thailand conference of “social entrepreneurs”, that we’ve achieved, or in this case,

As targeted by the Millenium Development Goals, over two billion people suffer disease, water pollution, and economic woes because of inadequate sanitation. And promising solutions in some cultures and economies are inhibited from scaling larger because producing appropriate toilets takes time. Especially if we’re talking millions and millions of locally appropriate toilets!

But this group of entrepreneurs gathered in Thailand this week, sponsored by Ashoka, has a new idea: Start producing the toilet components centrally at a huge scale rather than in scattered places around the world. Then use the web to give local groups in any country access to this single global source, through a single portal or marketplace. The massive global demand channeled through a single web marketplace will justify entrepreneurial investment in the huge volume, high quality, low cost supply side to begin with., the above-mentioned poster puppet for Dot Com failure, was trying to solve the wrong problem. It assumed that the problem with pet food was that it was too hard to get, so aggregating demand would allow personalized delivery. It turns out there was a perfectly good existing model for delivering dog food. You ship them in a truck to the local grocery store, and people buy them along with their own food. The problem wasn’t on the demand side. As it turns out, there wasn’t really a problem until production was outsourced to countries with insufficient quality control to eke out a few percentage points more efficiency.

Could It Work?

So, let’s consider the problem of toilets. The first question I ask when given a new proposal is, “if this works, will it really solve anything?” There’s a reason to doubt that. Water-borne diseases arise from inadequate clean water supplies, and toilets don’t directly address this problem. Segway inventor Dean Kamen, whose entrepreneurship is of the plain vanilla variety, unmodified by the adjective “social”, does have an innovation that directly addresses this problem.

Now I’m not a water quality expert, and certainly one thing that affects water quality is keeping sewage out of it, and one component of that is to make sure that human waste goes into the sewage system in the first place, so we’ll grant that toilet availability could address one part of the problem. Though as a veteran of the concrete hole-in-the-floor style toilet in Russia, a country not known for water-borne diseases at the time, I’m not sure it’s the largest factor in disease prevention.

That’s a Lotta Water

Another question I ask is, “Is this going to create another, even bigger problem if implemented as specified?” As anyone who tried to get an old-style, flushes-for-sure toilet in recent years in this country knows, the amount of water used to flush toilets is considered a problem. With experts warning of a growing fresh water shortage and developing world water systems already not as robust as their developed counterparts, I wonder if first increasing toilet ownership won’t cause supply issues that outstrip the problems toilets solve.

So, let’s look at the proposal itself.

How Do We Make Money? VOLUME!

Remember, the problem is that “producing [locally] appropriate toilets takes time.” OK. So we have local variations on the toilet. So each culture will demand its own toilet design. That means there is a limited opportunity for standardization. When Henry Ford made the automobile affordable, he did it by standardizing the designs so they could be mass produced on an assembly line, what economists call taking advantage of economies of scale. And as far back as Adam Smith, economists have realized that by doing the same thing over and over in bigger batches, you can produce things more cheaply, be they Smith’s infamous pin factory, Henry Ford’s Model A, or the Standard company’s, well, toilets.

Yet the solution is to “start producing the toilet components centrally at a huge scale rather than in scattered places around the world.” But these toilets aren’t standard, at least not above the cultural level. So where do the economies of scale come from? There are potentially some savings in sharing common supplies (the base components for ceramic or plastics), but again, these savings are limited if there is no standardization.

If the idea is that multiple factories create redundancy, and by eliminating wasteful competition we’ll create savings, then I have to say, that idea has been tried. It was not as successful as initially hoped.

Additionally, by placing the point of production further from the point of consumption, you’re going to increase shipping costs. Now, modern shipping is very efficient from factory to customer port. Where many developing countries have problems, however, are horrific import tariffs, out and out bribery and corruption, theft, and a bad infrastructure once the goods leave the port. All of these serve to make (in some cases, by design) foreign goods vastly more expensive than domestic products. If you’re living on a few dollars a day, a foreign toilet may be simply out of reach.

This all assumes that production goes off without a hitch. But if you centralize production to one facility, you also create a single point of failure. As I indirectly referred to above, the Soviet system was noted for shortages, while basic goods are rarely in shortage in capitalist economies. The price mechanism has something to do with it, but the “wasteful competition” also creates redundancy so a work stoppage, natural disaster, or supply problem in one factory doesn’t mean production of that good completely stops. But in this case many more eggs would be in one, er, toilet bowl.

Now With More Web!

So what’s the magic incantation in this proposal? “The massive global demand channeled through a single web marketplace will justify entrepreneurial investment in the huge volume, high quality, low cost supply side to begin with.” Someone hasn’t been following the story of the One Laptop Per Child (OLPC) project very closely. It turns out, access to computing power is not the primary stumbling block or most pressing need in developing countries. First, they need reliable infrastructure, including, well, clean water supplies. The OLPC has been tough to even give away.

I’m not sure people in developing countries sit around thinking, “You know, buying a toilet is so time consuming, taking away from my busy day of walking several miles for buckets of clean water. If only there were some kind of web site I could log onto, order the toilet, and then be on my way to the next town for my turn at the water pump.”

Disintermediation was a neologism bandied about during the Dot Com boom. The idea was, you could cut out the middle man–the distributor, the guy who used to aggregate demand for certain items–and cut the cost of an item. But no one in this exercise has suggested middlemen are the problem–at least, not the kind of middlemen you can disintermediate via a website. Governments, as always, want their cut, and corrupt governments want even more. And they don’t even aggregate demand!

But as proved, even in low-tarrif, low-corruption countries, aggregating demand through a web site only achieves disintermediation savings if distributors cost more than individualized shipping. So unless Lenny at DogFoodRUs adds on more than $10 per bag of dog food, shipping direct to your door isn’t going to be a savings.

Aggregating demand, by itself, is only important if that demand is too diffuse for a distributor to be in business. Dog food demand is ubiquitous. Demands for, say Swedish progressive rock is just a little more spread out. There are professional Swedish progressive rock bands now because the Internet has given them a market for CDs and a vehicle to distribute samples to people who might come a great distance to see them play at a festival in the US.

But toilets–well, as the Japanese say, everyone poops. Demand for it isn’t scattered among a few nerdy white guys. It’s even more ubiquitous than dog food. So a website really is a solution to a problem that doesn’t exist.

Down the Drain

So, what are we left with? We’re left with an idea that may or may not address the problem it purports to solve, that may create problems as bad or worse than the problem it purports to solve, that ignores basic microeconomics, and that even gets its web strategy wrong.

I’m all for innovative solution to developing country problems, but I think this one has a potential to rival in the world of misapplied technology.