PHP Post-Facebook

Facebook is famously built in PHP, and I think it is really interesting to watch what they are doing technically with that massive codebase. This week Facebook announced Hack, a new language that specifically targets their previously released HipHop (HHVM) project released in 2008. Facebook obviously has massive scale challenges, and they have little ability to cache content, so they are having to redefine how PHP works. So what’s interesting about this?

Compare this all to Twitter. Twitter was originally built on the very dynamic and popular Railsframework, using Ruby. Twitter had massive scaling problems with near daily “fail whales” displayed during outages. These are now a thing of the past because Twitter brought in a ton of engineering talent, and they effectively engineered Ruby on Rails out of their environment. They replaced the entire architecture with code written in much more performant environments. In short, they grew out of their house and moved to a new house. Imagine what would have happened to the Rails ecosystem if they had instead decided that they would reinvent the ecosystem to scale to what they needed?

Facebook isn’t the first huge PHP-based website of course. Wikipedia is one of the three-largest sites on the Internet and is built on PHP. All WordPress blogs are built on PHP. However, both of these examples have really good caching scenarios. Wikipedia uses Varnishto cache all requests they can and as a result they reduce their dependency on PHP greatly. WordPress uses caching in the same way. Both sites eschew calls to PHP for the vast majority of their requests by doing this. This is probably the most widely accepted pattern for scaling PHP, which doesn’t have a good track record for scaling. Just bypass PHP as much as possible. However, for Facebook this isn’t an option. They want to personalize every single request so caching just doesn’t work for them.

I find it fun to watch Facebook doing this. Internally Facebook has a focus on speed and believes that using PHP and PHP-like tools is part of achieving that. They can’t cache. So, rather than move that massive codebase they are changing what it runs in. Instead of moving to a new house, they are remodeling!

First with the introduction of HHVM, and now with Hack, they are redefining the characteristics of the platform their code runs on to achieve the performance they want. I find this interesting because it is a path so rarely taken. Certainly no small startup could (should?) do this. Their simply isn’t the time or money to do it, and it takes your focus off your main goal. You could look at Google and Go as something similar, but I don’t think their motives for making Go are anything like what Facebook is doing with HHVM and Hack.

I like to say that PHP is ”the people’s language”. It is the disdain of almost any developer you meet. It’s crufty, gross and houses some awesomely terrible code. Some of this is the languages fault, but a bunch of it is also that many people first learned to program in PHP. PHP is also the language that nearly every blog and wiki you have ever visited uses. I would go so far as to suggest that there are more page views on the Internet of PHP than any other language in existence.

Wikimedia Foundation, the non-profit that runs Wikipedia and hosts the Wikimedia engine, is running development versions of Wikimedia on the HHVM engine. Part of Wikipedia’s scaling plan is now coming from the byproduct of Facebook redefining how PHP works. That is really cool. By choosing to change their ecosystem, instead of moving to a new one, Facebook is building a path that millions of blogs and wikis may be able to follow. That is pretty interesting, and why this is a path worth watching.

Remembering Farhan Muhammad

Farhan MuhammadOn Tuesday morning I was shocked to get an email from Jennifer at ILM Professional Services informing us that Farhan Muhammad, the CEO of ILM, had passed away in his sleep on Sunday night. I see Farhan regularly and I’ve worked with him and his firm on projects for several years. To my knowledge he had no health issues and he was a mere 41 years old! Farhan and I had been emailing back and forth just days prior on a project that I was framing up to get him and his firm involved in. This news was so unimaginable it took a while to even process it.

In the past decade I’ve done several projects with Farhan over the course of three different companies. He was a true partner in every aspect of the word. I knew that if Farhan told me that the consultants he had to work on a project were great, I didn’t need to verify. I knew as a fellow technologist I could just go with what he said. He was an “ace in the hole” so to speak. When I knew I needed to extend beyond my team, and get some outside folks in, him and his firm would rise to the challenge. And, if he knew he couldn’t, he would be plain and direct and help redirect to a path that would work.

I remember on multiple occasions calling him that I needed help getting a project started, and needed to start yesterday with a solid team that could execute in weeks not months. He was always able to make magic happen.

On top of being a great business partner, he was also just an awesome guy. You couldn’t work with him long without seeing the pride and joy he had in his family. His wife and their two kids came up in conversations a lot. My heart goes out to them with this sudden and unexpected loss. Farhan was born in Pakistan and moved here straight after high school. His extended family was a big part of his life as well, and one of the drivers to extra bedrooms in their home so they could stay for weeks and months at a time.

Perhaps the most amazing thing is after a near decade of doing projects, technology projects with high risk, I don’t even remember a single time having a meeting or discussion with Farhan that was frustrating, challenging or dredging through a project gone wrong or technology poorly designed. That’s amazing!

I was right in the middle of framing up the next project I wanted to work with Farhan and his team on. I was really eager to get Farhan’s take on the approach, and we were excited to totally reinvent how this service worked and how people would engage with it. I’m really saddened to not have the opportunity to do that again.

To all of Farhan’s family, friends and coworkers I want to send my deepest sympathies and regrets. I was able to attend the funeral service today to pay my respects and it was so nice to hear from so many that had great memories of working and living with him. His impact will be felt for a very long time, and he will not be forgotten. The Twin Cities technology community lost a great technologist, entrepreneur and supporter this week.


2% Real Maple Syrup

I’ve been using only real maple syrup at home for a while. I kind of take it as a given that people know that most syrup in the store is just various corn syrups with maple flavoring. I ran into this syrup on a recent trip back home though. Doesn’t that label just make you ask what the other 98% is?

Editing a Book

I’m working on creating my very first photography book. The editing process is arduous. The light is nearing though. The book is laid out. The photos are selected and tweaked like I want. Using a great combo of fonts. I just need one more marathon push and it will be done.