Engine Yard Blog RSS Feed

Building a Better PHP — Part 1: HHVM and Hack

Note: This is part 1 in our HHVM/Hack series, read part 2, part 3

With the official release of Hack for HHVM today by Facebook, we thought it would be a good idea to take a look at HHVM, and Hack in detail.

Facebook is [probably] the largest PHP installation on the planet, and yet in more recent years, they have turned away from PHP5 in favor of home-grown solutions.


The New Rubygems Index Format

Note: Here's another guest post from André Arko, who leads the Bundler core team and builds web applications for clients at Cloud City Development in San Francisco.

This post is a part news, part technical documentation, and part request for comment. I'm going to explain the technical nitty-gritty details of the planned next generation index that allows Bundler and Rubygems to know what gems exist and how to install them.

The current index is a mishmash of different files that were created at different times to serve different needs. I'll walk you through the reasons that each of the current index files exists, and then explain how the new index plans to handle all those needs at the same time, in a simple and fast way.


Configure Before You Boot

server-cows

In the previous post in this series, we learned how the pets vs. cattle metaphor teaches us a new way of approaching cloud server architecture. Instead of unique pets which require constant, individual care, we focus instead on cattle which are identical, homogenous units that can be added en masse and removed with ease. Cattle servers are, in other words, fungible resources.


Writing PHP Extensions with Zephir

PHP would not be as popular today if it was not for its extension system. Developers for PHP have created extensions that hook into just about everything, and by that token end-users can turn around and use systems that are not natively in PHP.

A good example is the database drivers. Many new developers may not realize it right away, but PHP does not natively support all of its databases in core. Things like Firebird, Oracle, and MSSQL are provided as extensions to the core system.


Discovering Our Community Work

A few weeks ago, I published a post called An Open Source Grant with a Difference, in which I announced that we are using Gittip to donate $10,000 to the community.

If you haven't read the post yet, it contains some interesting stuff. I explain what motivated us to use Gittip, especially in how it facilitates our funding goals for this year, and why I think that more people ought to use Gittip in general. The post was received really well.