Remodeling Four Kitchens: A look inside our new brand
With the additions of Advomatic and Manatí, we’ve had an exciting few years at Four Kitchens. While we’ve remained fundamentally the same organization, we’ve also been evolving into something new. It’s time for our brand to catch up.Learn more
A more modern, sustainable approach to higher ed websites with YaleSites
A higher ed website is a product, not a project. Learn about Yale’s sustainable approach to digital development and how your team can do the same.Learn more
News and insights from the Web Chefs
Filter by topic
Filter by type
Drop that cron! Use Hudson instead
For years, I used cron (sometimes anacron) without asking questions. The method was simple enough, and every project requiring cron-related capabilities documented the setup. There is a much better way, and it involves Hudson.
Initial impressions of HipHop PHP and porting Pressflow
I spent most of the weekend porting Pressflow to HipHop PHP. Josh Koenig from Chapter Three was also kind enough to spend much of his Saturday working with me. Pressflow doesn't quite run on HipHop yet, but we're working on it. Building HipHop PHP and Pressflow Getting a good build of HipHop was quite a challenge. However, if you're on 64-bit Ubuntu 9.10, you just have to follow our build instructions.
The CAP theorem is like physics to airplanes: Every database must design around it
Back in 2000, Eric Brewer introduced the CAP theorem, an explanation of inherent tradeoffs in distributed database design. In short: you can't have it all. (Okay, so there's some debate about that, but alternative theories generally introduce other caveats.)
Making Drupal and Pressflow more mundane
Drupal and Pressflow have too much magic in them, and not the good kind. On the recent Facebook webcast introducing HipHop PHP, their PHP-to-C++ converter, they broke down PHP language features into two categories: magic and mundane. The distinction is how well each capability of PHP, a dynamic language, translates to a static language like C++. "Mundane" features translate well to C++ and get a big performance boost in HipHop PHP. "Magic" features are either unsupported, like eval(), or run about as fast as today's PHP+APC, like call_user_func_array().
Anticipage: scalable pagination, especially for ACLs
Pagination is one of the hardest problems for web applications supporting access-control lists (ACLs). Drupal and Pressflow support ACLs through the node access system.
Intelligent memcached and APC interaction across a cluster
Anyone experienced with high-performance, scalable PHP development is familiar with APC and memcached. But used alone, they each have serious limitations: APC Advantages Low latency No need to serialize/unserialize items Scales perfectly with more web servers Disadvantages No enforced consistency across multiple web servers Cache is not shared; each web server must generate each item memcached Advantages Consistent across multiple web servers Cache is shared across all web servers; items only need to be generated once Disadvantages High latency Requires serializing/unserializing items Easily shards data across multiple web servers, but is still a big, shared cache Combining the two Traditionally, application developers simply think about consistency needs. If consistency is unnecessary (or the scope of the application is one web server), APC is great. Otherwise, memcached is the choice. There is, however, a third, hybrid option: use memcached as a coordination system for invalidation with APC as the main item cache. This functions as a loose L1/L2 cache structure. To borrow terminology from multimaster replication systems, memcached stores "tombstone" records.
Making the web a better place to teach, learn, and advocate starts here...
When you subscribe to our newsletter!