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
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.)
Feast your eyes (and votes) on our web chefs’ tasty DrupalCon San Francisco session proposals
We are still 62 days away from DrupalCon San Francisco 2010, but in order to get truly excited about the event, you'll want to start thinking about the amazing sessions you'll attend. Beginning today, attendees are allowed to vote on those sessions they most want to see on the final schedule in April. This year, Four Kitchens is both sponsoring DrupalCon San Francisco and offering to share our experience and knowledge with the community. If you'd like to see any of the sessions listed below, please vote! (And tell your co-workers, friends, and pets to vote, too.)
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.
Update from the Drupal 7 contributed modules sprint
chx and I gathered last week in Vancouver's West End for a two-person performance sprint during the final code slush days, allowing us to finish several key improvements to Drupal's database layer. Right afterward, many more people joined us for _another_ sprint to **port key modules to Drupal 7**. People worked in-person, voluntarily over IRC, and involuntarily over IRC (lost passport). I can say -- without reservation -- that our work was successful. We kicked off the weekend with Drupal 6 versions of Coder and Views. (Though there had been a touch of prior work on the Views port to Drupal 7's new database layer.)
Making the web a better place to teach, learn, and advocate starts here...
When you subscribe to our newsletter!