master
branch is always production-ready, deployable, 100% green test suite- New development is done on feature branches, with frequent rebasing onto master
- Clean commit history by preferring to rebase instead of merge (
git pull
is configured to automatically rebase)
https://www.pivotaltracker.com/help/api?version=v3#github_hooks | |
https://www.pivotaltracker.com/help/api?version=v3#scm_post_commit_message_syntax | |
SCM Post-Commit Message Syntax | |
To associate an SCM commit with a specific Tracker story, you must include a special syntax in the commit message to indicate one or more story IDs and (optionally) a state change for the story. Your commit message should have square brackets containing a hash mark followed by the story ID. If a story was not already started (it was in the "not started" state), a commit message will automatically start it. For example, if Scotty uses the following message when committing SCM revision 54321: | |
[#12345677 #12345678] Diverting power from warp drive to torpedoes. | |
Subject: Apologies for the downtime, but we're coming back stronger.
Dear Simon,
As you may already know, BrowserStack experienced an attack on 9th November, 2014 at 23:30 GMT during which an individual was able to gain unauthorized access to some of our users’ registered email addresses. He then tried to send an email to all our registered users, but he was only able to reach less than 1% (our estimate is 5,000 users). The email contained inaccurate information, even claiming that BrowserStack would be shutting down.
When we realized this, our only concern was to protect our users. This involved temporarily taking down the service, as we scrutinized each component carefully. This inconvenienced our users for several hours, and for that we are truly sorry.
What happened?
// Copyright 2014 A Medium Corporation | |
// | |
// z-index.less | |
// Medium.com's z-index scale. Z-index values should always be defined in z-index.less. This | |
// allows us to at a glance determine relative layers of our application and prevents bugs | |
// arrising from arbitrary z-index values. Do not edit the z-index scale! Only add application | |
// scoped z-index values. | |
// Z-Index Scale (private vars) |
// jshint node:true | |
'use strict'; | |
var semver = require('semver'), | |
exec = require('exec'); | |
module.exports = function(grunt) { | |
'use strict'; | |
require('load-grunt-tasks')(grunt); |
DELIMITER $$ | |
DROP PROCEDURE IF EXISTS `CopyDB` $$ | |
CREATE PROCEDURE `CopyDB` (sourceDB VARCHAR(64),targetDB VARCHAR(64)) | |
TheStoredProcedure:BEGIN | |
DECLARE found_count,ndx,ndx_last INT; | |
DECLARE sqlcmd VARCHAR(1024); | |
SELECT COUNT(1) INTO found_count | |
FROM information_schema.tables |
This is a hands-on way to pull down a set of MySQL dumps from Amazon S3 and restore your database with it
Sister Document - Backup MySQL to Amazon S3 - read that first
# Set our variables
export mysqlpass="ROOTPASSWORD"
This is a simple way to backup your MySQL tables to Amazon S3 for a nightly backup - this is all to be done on your server :-)
Sister Document - Restore MySQL from Amazon S3 - read that next
this is for Centos 5.6, see http://s3tools.org/repositories for other systems like ubuntu etc
#!/home/ec2-user/.rvm/rubies/ruby-1.9.2-p0/bin/ruby | |
require 'rubygems' | |
require 'aws/s3' | |
require 'fileutils' | |
AWS::S3::Base.establish_connection!( | |
:access_key_id => 'access_key', | |
:secret_access_key => 'secret_key' | |
) |