Today is a good day to code

Google’s Vision of the Future is Correct… But They May Not Be The Ones Who Implement It

Posted: January 8th, 2011 | Author: | Filed under: Companies, Google, Lifestyle | Tags: , , , , , , , , | No Comments »

On a drive from Colorado to Las Vegas this past week my daughter and my son were in the back seat of our car using my daughter’s netbook, she has recently turned 7 years old so I bought her a netbook and I am starting to teach her how to code.  My son wanted my daughter to change the video that they were watching and she began to explain how the internet works to him.

She told him that all of her stuff was on the internet ( emphasis mine ) and that the movie that they were watching was the only one that was on her netbook, she explained how her computer was barely useful without the internet, that the internet came from the sky and her computer needed to have a clear view of the sky to receive the internet.  In addition she said that since we were in the car and the roof was obscuring said view that they couldn’t get the internet, and couldn’t change the movie.

Listening to this conversation gave me a bit of pause as I realized that to my children, the internet is an etherial cloud that is always around them.  To me it is a mess of wires, switches and routers with an endpoint that has limited wireless capabilities.  When I thought through it, however, I realized that my kids had never seen a time when someone had to plug in their computer to get to the web.  Plugging in an ethernet cable is as old school as dial-up.

Once that sunk in, I understood that the Cr-48, Google’s Chrome OS netbook is a step in the right direction, and while I am very enthusiastic about several aspects of Google, and in all fairness others’ vision of a web based future, I do not feel that the current approach will work.

A centralized system where all of users’ data lives, and all communications go through is not an architecturally sound approach.  As the number of devices that each user has goes up, the amount, size and types of connections is going to stress the servers exponentially.

It is already incredibly difficult to keep servers running at internet scale, we need entire redundant data centers to keep even small and simple web scale endeavors running.  When you take a step back you realize that a system like Facebook is barely working, it takes constant vigilance and touching to keep it running.  It isn’t like a body where each additional bit adds structural soundness to the overall system, instead each additional bit makes the system more unwieldy and pushes it closer to breaking.

Google is another example of a system that is near the breaking point, obviously they are struggling to keep their physical plant serving their users, and like Facebook they are so clever that they have always been able to meet each challenge and keep it running to date, but looking at the economics of it, the only reason this approach has been endorsed is because of how wildly lucrative mining usage patterns and the data generated by users has been.

I don’t think this will continue to be the case as the web reaches ever larger and larger groups of people. I don’t think any particular centralized infrastructure can scale to every person on the globe, with each individual generating and sharing petabytes of data each year, which is where we are going.

From a security and annoyance perspective, spam, malware, and spyware is going to be an ever increasing, and more dangerous threat.  With so much data centralized in so few companies with such targeted reach, it is pretty easy to send viruses to specific people, or to gain access to specific individuals’ data.  If an advertising company can use a platform to show an ad to you, why can’t a hacker or virus writer?

The other problem that is currently affecting Google severely, with Facebook next is content spam.  It is those parking pages that you come across when you mistype something in Google.  Google should have removed these pages ages ago, but their policy allows for them to exist.  Look at all of the stack overflow clones out there, they add no real value for themselves except for delivering Google adsense off of creative commons content.  What is annoying is that because of the ads, they take forever to load.  Using a search engine like Duck Duck Go things are better, but this is likely only because it is still small.  DDG also says that it will not track its users, that is awesome, but how long will that last?

It is possible for a singly altruistic person to algorithmically remove the crap from the web in their search engine, but eventually it seems that everyone bows to commercial pressure and lets it in in one fashion or another.

Concentrating all of the advertising, content aggregation, and the content in a couple of places seems nearsighted as well.  The best way to make data robust is to distribute it, making Facebook the only place where you keep your pictures, or Google, or Apple for that matter is probably a bad idea, maybe it makes sense to use all three, but that is a nuisance, and these companies are not likely to ever really cooperate.

It seems to me that something more akin to diaspora, with a little bit of Google wave, XMPP, the iTunes App Store, and BitTorrent is a better approach.  Simply, content needs to be pushed out to the edges with small private clouds that are federated.

This destroys most of the value concentrated by the incumbents based on advertising, but creates the opportunity for the free market to bring its forces to bear on the web.  If a particular user has content that is valuable, they can make it available for a fee, as long as a directory service can be created that allows people to find that content, and the ACLs for that content exist on, and are under the control of the creator, that individual’s creation can not be stolen.

Once the web is truly pervasive then this sort of system can be built, it will, however, require new runtimes, new languages, protocols, and operating systems.  This approach is so disruptive that none of the existing large internet companies are likely to pursue it.  I intend to work on it, but I’m so busy that it is difficult.  Fortunately, however my current endeavor is has aspects that are helping me build skills that will be useful for this later, such as the Beam/Erlang/OTP VM.

The benefit is to individuals more than it is to companies, it is similar to the concept of a decentralized power grid.  Each node is a generator and self sufficient and the system is nearly impossible to destroy as long as there is more than one node.

When is Mides Going to get its Bugs Fixed

Posted: December 19th, 2010 | Author: | Filed under: iPhone, Lifestyle, mides, Objective-C | Tags: , , , , | No Comments »

A few people have been asking me when Mides is going to get its bugs fixed.  A few others are asking about Git & Subversion, yet a few others have been asking me about code completion, syntax highlighting and shortcuts.  I thought I would take a moment to post about what I have been doing, what the future of Mides looks like, and what I hope to be doing.

A few months ago, 5 to be exact, I thought I was in a stable place, where the coding challenges were hard, but not too hard, I worked with some great people, and we were having a great time.  Well, most of that was true, unfortunately the stability thing became an issue, and I started looking for a new job.  I was contacted by an awesome founder looking for a technical co-founder to help revolutionize the concept of whiteboarding with a strong focus on usability.  I accepted, and am now the CTO and Co-Founder of ZigZag.

Since we are a lean / agile outfit, we have an iteration loop that consists of building stuff and putting it in front of customers, and repeating.  I am having so much fun, and there is so much to do that there just isn’t time to do anything else.  When I was working at my old job, the breakdown looked like this:

My Brain Capacity Before ZigZag

My Brain Capacity Before ZigZag

I just had the ability to do a ton more stuff, and one of the things that I really wanted, and still want to do, is make it possible to do serious development while mobile.  The thing is that right now I just flat out don’t have time to work on it.  My available time and space for working on other projects looks more like this now:

After starting work for zigzag

Brain Capacity After ZigZag Board

So what do I see as the future of Mides.  Well, after ZigZag gets funded, which will take a ton of work, fortunately less from me since I have a non-technical co-founder who is awesome at sales, and we can hire a few quality engineers and usability people, I’d like to come back to it.  Its a tool that I currently use for working on our RoR web stuff, and since we use GitHub, pivotal, and AWS, I’d like to build in more integration with those tools.  I originally built Mides so that I could be more efficient, and I still see it as a tool for doing that.  Some things that likely will go away are plain old FTP access.  It is too complicated to support FTP, and I can’t find a library that isn’t encumbered by the GPL, so that probably will go away since I have to write it all from scratch for it to work.

What will stay, and get added?  Some other things that I would like to add include code coloring, git and subversion, more RoR support, a shell to work in AWS, a service to compile and run code in an on-demand instance, some other goodies like that.  I am currently thinking about that kind of stuff in the few seconds between when I am hacking Erlang, and Objective-C…  Granted those seconds are precious and hard to come by, so while I am not saying that I will be dropping work on Mides entirely I am not going to be doing any sort of hard core coding on it until ZigZag Board is completely off the ground and flying, which I hope is soon, I am putting everything I have into it.

Me as the CTO of ZigZag

How I Feel Every Day I Get to Work at ZigZag

The good side is that when I do start working on Mides again, the quality of the implementation will be much higher as my Obj-C skills are improving by leaps and bounds.  I am constantly amazed by the stuff that is possible on the iPad and iPhone, not that it isn’t challenging to work with, but it is an awesome platform.

Changing jobs was a great decision for me, I am challenged by something new and different every day that I log in.  I was atrophying before, and now I find myself asking myself what is important to do right now, and what can we ship right now so we can learn from our customers.  It is a much healthier place to be in, even though it is tinged by paranoia about money.  I am becoming a much more focused developer, and working with a co-founder who can clearly articulate his vision for the product, and who is also well versed in lean / agile, is hopefully going to make me an even better leader than I have been in the past.  Unfortunately my other projects will have to take a seat way, way back in the balcony.

Plans for Mides

Future Plans for Mides

I hope to get through even some of that for Mides eventually, if I can, then my vision for Mides will be complete.  It might take a couple of years, but I still want to do it.  Building tools is extremely difficult, not the least because developers are frequently not willing to pay for tools ( thanks Sun! ), they are incredibly critical of said tools, and getting the usability story right is nearly impossible.  That non-withstanding, I have learned a bunch from people using Mides, other developers are typically very clear about bugs, and the offers of support and help have been wonderful.  Well, that’s the news, I felt I should update everyone on the status of Mides.  It is definitely a side-project, and is likely to remain one, I can’t really see any reasonable business behind it, it is fun to work on, and will continue to be.