Imagine for a minute that you’ve just bought a new stove. The old stove just wasn’t doing all you needed so you’ve bought a new German-engineered stove. It’s Saturday morning and you’ve managed to get the stove in place, it looks like it fits perfectly but you can seem to get the gas line connected. Your Langstrom 7″ wrench just doesn’t seem to fit on the socket. You’ve read the manual three times and can’t see what’s wrong. You spend the whole day sweating over the installation but nothing seems to work.
Just then the phone rings. You answer and the person on the other end says “Hi, this is Jo-Philipp Wich calling from Germany. I am the designer of that stove and I couldn’t help but notice you were having trouble installing the stove I designed. The problem you’re having is that the manual actually says ‘sprocket’ not ‘socket’.” Dumbfounded you hang up the phone, turn back to your stove and low and behold you have it installed in about 5 minutes.
Sounds a bit crazy doesn’t it? Except that on the Internet, this happens every day.
It happened yesterday in the Village Telco community. Terry Gillett, who has been doing amazing work in developing a drop-dead easy-to-use firmware for the Mesh Potato (and increasingly for some other OpenWRT-based devices) was stuck on the implementation of a secure interface to the web configuration page. Without the ability to offer a Secure Sockets Layer (SSL) connection to the configuration interface on a Mesh Potato, potentially anyone could eavesdrop on the configuration of the device and take it over. Unfortunately the webserver (uhttpd – a lightweight http server for OpenWRT) crashed every time it was launched in secure mode. Terry, Keith Williamson, and Elektra traded ideas on debugging it and started developing some workarounds for the problem.
It was after about five days of back and forth looking for the root of the problem, when this message appeared on the development list:
Hi, I'm the author of uhttpd and stumbled over this thread by accident. The libssl issues you see seem to be the result of a miscompilationThe current uhttpd-mod-tls package in OpenWrt lets you choose between either libopenssl or libcyassl as crypto backend, default is cyassl. If uhttpd-mod-tls depends on libcyassl but demands libssl.so then it was linked against the wrong library during compilation, so the most clean solution would be to rebuild it. I am afraid that the symlink workaround does no good as cyassl and openssl have different abis, so any attempt to use such a "faked" library most likely results in a segmentation fault. Regards, Jow
The message was from Jo-Philipp Wich, the author of the uhttpd server. He was able to suggest the correct solution immediately when in retrospect is fairly straightforward but everything looks straightforward in retrospect. Had the Village Telco development community not been an open and transparent one with searchable archives on the Internet, this would never have happened.
This may seem like trivial example but in fact I think it is one of the most significant illustrations of the power of the Internet and the what the birthday paradox really means. Someone out there has the key to what you need to do next. It might be the answer or just a clue to think about things differently but chances of someone out there having the key to your next step, whatever you happen to be working on, are pretty good.
That’s why it is so important to live out loud on the Internet, to leave a breadcrumb trail while you work, because you just never know who is going to find your work valuable or who is going to have the answer to your problem.
Interestingly, this is surprisingly hard. Bill Tucker is a computer science professor at the University of the Western Cape. I was chatting with him and some of his grad students last week who are working on some mesh networking projects related to Village Telco. They are doing some really excellent work and I urged them to share what they were doing in the online development communities they were working in. They acknowledged it as a good idea but I could tell they weren’t completely convinced it was a good idea. I mean who wants to look like an idiot? Worse what if someone calls you an idiot? The Internet is not without its share of trolls.
It dawned on me then that I still find it hard to live out loud. I founded Village Telco and I often feel intimidated suggesting things within the community that fall on the edge of or fully outside my area of expertise. The same goes for this blog. Every post I write, I have to overcome a sensation that this post might be so obvious, so trivial or so wrong that I will be subject to abject humiliation by posting it. It’s irrational as that has never happened in four years of blogging but there it is.
If I feel intimidated as the founder, it must be much harder for newcomers. Not for everyone of course. Some people are lucky enough to have grown up fully confident in themselves and some are just natural extroverts. That’s great but if we are going to solve the challenges that face world today whether poverty, injustice, or climate change… we need everyone. We need to leverage the power of the birthday paradox and get everyone leaving breadcrumbs on the Internet that will create non-linear innovation such as we have never seen.
So get out there. Share your idea, your problem, your expertise. We need all of us.