Skip to content

Instantly share code, notes, and snippets.

View ryantbrown's full-sized avatar

Ryan Brown ryantbrown

View GitHub Profile
@ryantbrown
ryantbrown / es-nested-agg-nested-query.json
Last active February 27, 2018 19:39
Elastic search nested aggregate with nested query
GET influencers/_search
{
"size": 0,
"aggregations": {
"influencers": {
"nested": {
"path": "interests"
},
"aggs": {
"names": {
@ryantbrown
ryantbrown / composer.json
Created February 21, 2018 17:18
Private composer package
// main app
"repositories" : [
{
"type": "package",
"package": {
"name": "grininc/platform-shared",
"version": "dev-master",
"source": {
"url": "git://github.com/grininc/platform-shared.git",
"type": "git",
@ryantbrown
ryantbrown / s3upload.sh
Created February 1, 2018 07:25
Bash script to Upload folder to S3
# Set AWS credentials and S3 paramters
AWS_KEY=""
AWS_SECRET=""
S3_BUCKET=""
S3_BUCKET_PATH="/"
S3_ACL="x-amz-acl:private"
function s3Upload
{
path=$1
@ryantbrown
ryantbrown / click-outside-element.js
Last active April 30, 2018 08:56
Handle a click outside of a parent element
// the parent, avoid clicks inside this element
const parent = document.getElementById('parent');
window.addEventListener('click', e => {
let elem = e.target;
// loop through the target's parent nodes to see if it matches
for ( ; elem && elem !== document; elem = elem.parentNode ) {
@ryantbrown
ryantbrown / checkbox.css
Last active August 14, 2018 10:04
SVG based checkbox
.checkbox {
height: 40px;
width: 40px;
outline: none;
cursor: default;
border: 0;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
}
@ryantbrown
ryantbrown / time-elapsed.php
Last active April 30, 2018 08:56
Get days, hours and minutes that have passed from a given date
<?php
// get interval
// format of $datetime is "Y-m-d H:i:s"
$interval = (new \DateTime("now"))->diff(new \DateTime($datetime));
// get specific times
list($days, $hours, $minutes) = explode(" ", $interval->format("%d %h %i"));
@ryantbrown
ryantbrown / Dockerfile
Created March 22, 2016 05:09
PHP Dockerfile
FROM php:5.6-fpm
RUN apt-get update && apt-get install -y git curl
RUN docker-php-ext-install -j$(nproc) pdo_mysql
RUN docker-php-ext-install -j$(nproc) mbstring
RUN docker-php-ext-install -j$(nproc) tokenizer
RUN curl -sS "https://getcomposer.org/installer" | php
RUN chmod a+x composer.phar && mv composer.phar /usr/local/bin/composer
@ryantbrown
ryantbrown / auto-validation-semantic-ui.js
Created April 16, 2015 21:51
Semantic UI - Auto Validation via Data Attrs
// form validation loaded from config
$('.ui.form').each(function(index){
var config = $(this).data('config');
if(config !== undefined) {
$(this).prepend('<div class="ui icon error message" id="form-errors"></div>');
var settings = APP.config.validation;
config.split('.').forEach(function(el, i, arr){
@ryantbrown
ryantbrown / gulp-resize-and-minify-images.js
Last active October 9, 2024 21:50
Gulp - Resize and Optimize / Minify Images
/**
* Make sure Graphicsmagick is installed on your system
* osx: brew install graphicsmagick
* ubuntu: apt-get install graphicsmagick
*
* Install these gulp plugins
* glup, gulp-image-resize, gulp-imagemin and imagemin-pngquant
*
* Group images according to their output dimensions.
* (ex: place all portfolio images into "images/portfolio"
@ryantbrown
ryantbrown / install-redis.sh
Created March 30, 2015 00:31
Install Redis
cd ~ && wget http://download.redis.io/redis-stable.tar.gz
tar xvzf redis-stable.tar.gz
cd redis-stable
make
sudo cp src/redis-server /usr/local/bin/
sudo cp src/redis-cli /usr/local/bin/
# redis is now installed but we need to proof it
sudo mkdir /etc/redis
sudo mkdir /var/redis
sudo cp utils/redis_init_script /etc/init.d/redis_6379