Skip to content

Instantly share code, notes, and snippets.

View Synchro's full-sized avatar

Marcus Bointon Synchro

View GitHub Profile
#!/bin/sh
#Provides add-apt-repository
sudo apt-get install -y python-software-properties
#use jtimberman's chef ppa for installation
sudo add-apt-repository ppa:jtimberman/opschef
sudo apt-get update
sudo apt-get upgrade -y
#This step asks for a chef server url to put in /etc/chef/client.rb
sudo apt-get install -y chef
@Synchro
Synchro / gist:1139429
Created August 11, 2011 11:29
PHP Base-62 encoder/decoder
<?php
/**
* This is an example of a practical encoder and decoder for base-62 data in PHP
* It differs from the majority of examples in that it's fast enough for moderate data sizes, unlike multiprecision converters
* To be practical, base-62 encoding needs to use internal chunking and padding because base-62 does not fit exactly into any integral number of bits
* This means the output is not quite compatible with multiprecision conversions,
* but the encoded data retains all the desirable properties of base-62, so (unlike any base-64 encoding) it's URL, DNS, email address and pathname safe
* @author Marcus Bointon <[email protected]>
* @copyright 2011 Marcus Bointon
* @license http://www.opensource.org/licenses/mit-license.html MIT License
@Synchro
Synchro / Premailer.php
Created September 8, 2011 21:48
PHP interface class for the Premailer API
<?php
/**
* Premailer API PHP class
* Premailer is a library/service for making HTML more palatable for various inept email clients, in particular GMail
* Primary function is to convert style tags into equivalent inline styles so styling can survive <head> tag removal
* Premailer is owned by Dialect Communications group
* @link http://premailer.dialect.ca/api
* @author Marcus Bointon <[email protected]>
*/
@Synchro
Synchro / index.php
Created November 21, 2011 11:06
FatFree config for files outside web root
<?php
/*
Folder structure:
/lib (fatfree files in here)
/temp
/ui (view templates)
/web (Doc root, static files and index.php)
If you're not using a .htaccess file, I found the default rewrites don't work in a vhost, had to change it to this:
@Synchro
Synchro / gist:3749394
Created September 19, 2012 12:31
PHP script to report and/or extract sections from apache and icecast log files by date ranges
#!/usr/bin/env php
<?php
/**
* Extract a section of an apache or icecast log file between two dates
* Assumes that log lines are in chronological order
* Start and end dates can be in any format that strtotime can handle
* Reads from stdin, outputs to stdout, stats to stderr
* @author Marcus Bointon <[email protected]>
* @link https://gist.github.com/3749394
* Example usage. Report the range of dates in a log file
@Synchro
Synchro / Generic logstash init script
Last active December 19, 2015 02:09 — forked from jippi/rc.d
Rather than copying and editing an `init.d` file simply to point it at a different config file, you can have it work it out from the filename, so you can use the same init file for all your logstash agents. The filename must follow the established convention for logstash and it splits on the dash in the name, so names like `logstash-indexer`, `l…
#! /bin/sh
### BEGIN INIT INFO
# Provides: logstash-shipper
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: Enable service provided by daemon.
@Synchro
Synchro / gist:5917252
Last active March 18, 2016 16:59
Logstash config for parsing drupal watchdog log entries. Greps the syslog_program source first to check it's logged by drupal, then takes apart the watchdog log pattern. See: https://api.drupal.org/api/drupal/modules!syslog!syslog.module/function/syslog_watchdog/7
grep {
type => "syslog"
match => [ "syslog_program", "drupal" ]
add_tag => "Drupal"
drop => false
}
grok {
type => "syslog"
tags => [ "Drupal" ]
match => [ "@message", "^https?://%{HOSTNAME:drupal_vhost}\|%{NUMBER:drupal_timestamp}\|(?<drupal_action>[^\|]*)\|%{IP:drupal_ip}\|(?<drupal_request_uri>[^\|]*)\|(?<drupal_referer>[^\|]*)\|(?<drupal_uid>[^\|]*)\|(?<drupal_link>[^\|]*)\|(?<drupal_message>.*)" ]
@Synchro
Synchro / lockmonitor.php
Last active December 19, 2015 10:19
Simple PHP MySQL slow query (i.e. most likely stuck waiting for a lock) monitor.
#!/usr/bin/env php
<?php
$mysqli = new mysqli('localhost', 'user', 'pass');
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
$out = false;
$output = array();
@Synchro
Synchro / gist:42288e72af89fb7d0c1e
Created September 29, 2014 13:16
Homebrew php 5.6 failing to run
brew rm php56 && brew deps php56 | xargs brew rm
Uninstalling /usr/local/Cellar/php56/5.6.0...
Uninstalling /usr/local/Cellar/freetype/2.5.3_1...
Uninstalling /usr/local/Cellar/gettext/0.19.2...
Uninstalling /usr/local/Cellar/zlib/1.2.8...
Uninstalling /usr/local/Cellar/icu4c/53.1...
Uninstalling /usr/local/Cellar/jpeg/8d...
Uninstalling /usr/local/Cellar/libpng/1.6.13...
Uninstalling /usr/local/Cellar/libtool/2.4.2...
Uninstalling /usr/local/Cellar/unixodbc/2.3.2...
@Synchro
Synchro / gist:f2e4d63b7ca5b92bee1c
Created September 29, 2014 13:20
brew doctor output
$ brew doctor
Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don't worry and just ignore them. Thanks!
Warning: Unbrewed dylibs were found in /usr/local/lib.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.
Unexpected dylibs: