Home
Front end
-
Twitter Bootstrap
-
CSS Grid framework plus jQuery plugins used to create this web site
-
Handlebars.js
-
A logicless templating system used to keep code separated (HTML/CSS/JS)
-
jQuery 1.7.2
-
This replaces the default version of jQuery only on front facing pages, while admin pages use legacy jQuery
-
Module Pattern
-
A JavaScript Module Pattern (inspired by Douglas Crockford) was used to develop the Ajax system for the front end
-
Web Fonts
-
Google Web Fonts are being used for the fonts on this site.
Back end
-
Pressflow 6
-
A backport of Drupal 7, includes all of the code performance boosts with none of the bloat
-
Varnish HTTP Accelerator
-
A super fast reverse proxy server to serve up cached pages as static HTML
-
APC
-
The Alternative PHP Cache (APC) is a free and open opcode cache for PHP.
-
Memcache
-
This caches SQL queries into memory for a huge performance boost
-
Apache Solr
-
Apache Solr was used to index this site and is much faster than the default drupal search
-
Drupal Modules/Theme
-
The custom theme and custom modules for this site were developed by me
Security
-
DenyHosts
-
Blacklists IP Addresses that try to brute force my SSH and automatically reports them to their ISP
-
Fail2ban
-
Scans logs of other services for suspicous behavior and bans an IP Address for a set amount of time
-
Tiger auditing/intrusion detection
-
Tiger scans the system looking for ways to increase security and detect intrusions
-
Mod Security
-
An Apache application firewall that protects against malicous attacks
-
Mod Evasive
-
Helps protect apache from a DDoS attack
SEO
-
Site Map XML
-
You can specify which types of content go into your site map and submit them to the major search engines
-
Global Redirect
-
When the site is queried for a file that wasn't found, it smartly searches for broken alias and does a 301 redirect
-
Content
-
The navigation bar is at the bottom of the page, moving the more relevant content in the page to the top of the code
-
Best Practices
-
I always use WWW in my domains (to not split your ranking between 2 domains), I use heading tags to specify more important content, I use targeted keywords, I submit my site to all the major search engines, etc.
Server
-
Linode
-
Hosting is setup through linode.com, allowing me to configure the VPS however I want
-
Ubuntu 12.04 LTS
-
It was either Ubuntu or Fedora/CentOS, I would have loved to get my hands on a copy of Red Hat
-
Apache2
-
Web server with very custom configuration
-
Git
-
Git is being used as the version control for this site
-
Postfix
-
A mail server I setup for this domain (still working out some kinks)
-
Dovecot
-
IMAP/POP3 server for storing emails
Performance
-
Server Upgrades
-
Pressflow, Varnish, Memcache, APC and potentially Akamai give the site the ability to scale extremely well
-
Fast 404
-
In a normal Drupal project, a 404 page invokes Drupal without any caching (very bad) but we return a fast, simple 404 page
-
Authcache
-
Not really necessary for this site, but if we supported Drupal Users Autchcache would be critcal since Drupal Users bypass all caching (very bad)
-
Scaling Modules
-
I get crazy looks when I say this but I don't use Views (and many other commonplace modules) simply because they do not scale well
Mobile
-
Responsive Design
-
As the width of your monitor gets smaller, this website responds by stacking the columns of the site on top of each other
-
Fluid Layout
-
When between different resolutions this design will stretch to fit the screen no matter the width
-
Mobile Site
-
Try viewing this site on your mobile device, and you'll get an experience optimized just for you
Validation
-
W3C
-
This site's HTML validates against the W3C Validator
-
JavaScript
-
All JavaScript passes JSLint code quality
Business
-
Agile/Scrum
-
I typically use Agile/Scrum, but this site is just a personal project and doesn't need it
-
Rapid Development
-
Using these frameworks allows me to do development rapidly and meet deadlines
-
JIRA/Confluence
-
Any bug tracking system will do, but JIRA is really nice, especially when backed up by confluence