Using the Javascript Module Pattern, and more modern JS practices, with Drupal

The JavaScript Module pattern uses immediately-invoked functional expressions (IIFE) that return objects, that include closures. This provides a way of wrapping various public and private methods and variables in a "module". This prevents them from "leaking" into the global name scope and cluttering it up or worse, colliding with other code. With this pattern only a public "API" is returned, while maintaining privacy on everything else. Additionally, I'll discuss how to split up and organize your js files for maintainability and reuse.

What's your plan when DAILY BACKUPS AREN'T ENOUGH?!

You just got hacked.  You just wiped your main database on accident.  You pushed that one button you weren't supposed to push in the adminstrative interface.  Your hosting server suffered an outage.  Whatever it is, the time has come to invoke emergency protocols, and you need to restore your website from the backups.  Unfortunately, you are most likely only on daily backups and as a result have lost over 24 hours of data.  No biggy if you only have 1 user.  But what if you have hundreds or even thousands of active users in that 24 hour period.  Then what?

Disposable Designs

Designs carefully crafted to impress the client can leave developers struggling to understand the underlying structure. How can we avoid making throwaway deliverables?

After (hopefully) having doing site audits, content strategy and a functional spec the foundations are laid for a solid website plan. These plans don't make great or convincing client deliverables, so designers need to make high fidelity previews to get their ideas across. This can range from glossy photoshop comps to mock sites using Reflow, Macaw or UXPin.

Configuration Collaboration

The Drupal community is great at collaborating on code; we're not so great at collaborating on configration. We've struggled with both the tools and the community processes necessary to work together on configuration as effectively as we work on code. Drupal 8 gives us a solid configuration management platform on which we can build better collaboration tools. With a common configuration API in both PHP and YAML, we now have a shared vocabulary for configuration.

Now we need to build better collaboration tools and also adjust our community process.

Git, beyond the basics

You've been storing your development work in git version control as long as you can remember, but have you learned more than the basics? Time to learn about rebasing commits, using feature branches, and creating pull requests. It's all coming to and is already supported by many SaaS hosting environments. Learn how and why to not commit to master, why you almost never want to use "git pull", and how to avoid those terrible messy merge commit conflicts.


HHVM: Upgrading PHP for Fun and Performance

HHVM is a drop-in replacement for the PHP runtime, initially built by Facebook but now sporting a wide community of contributors as an open-source project. HHVM greatly improves performance and scalability and introduces the possibility of new code features to PHP. Written in C++, HHVM uses a just-in-time compiler to optimize the performance of normal PHP code -- leading to performance gains of anywhere from 50-75% in concurrent requests per second.


Subscribe to RSS - Intermediate