Required tools for playing around with memory:
hexdumpobjdumpreadelfxxdgcore
| require 'pry' # gem install pry | |
| # Pass in an enumeration of data and | |
| # (optionally) a block to extract the grouping aspect of the data. | |
| # | |
| # Optional: sort_by lambda (operates on group key and count) | |
| def puts_hist(data, sort_by:nil, &blk) | |
| data = data.map(&blk) if blk | |
| counts = data.each_with_object(Hash.new(0)) {|k,h| h[k]+=1} |
| # 2.4.2p198 on MBP 2017 i7 | |
| user system total real | |
| -- YAML size=86 delta_vsz=0 delta_rss=2092 | |
| 17.730000 0.060000 17.820000 ( 17.851288) | |
| -- JSON size=83 delta_vsz=0 delta_rss=4 | |
| 0.850000 0.000000 0.870000 ( 0.892370) |
| #!/usr/bin/env bash | |
| declare -i last_called=0 | |
| declare -i throttle_by=2 | |
| @throttle() { | |
| local -i now=$(date +%s) | |
| if (($now - $last_called >= $throttle_by)) | |
| then | |
| "$@" |
| [passenger_*] | |
| user root | |
| command /root/.rbenv/shims/ruby %c | |
| env.passenger_status /root/.rbenv/shims/passenger-status | |
| env.passenger_memory_stats /root/.rbenv/shims/passenger-memory-stats | |
| env.graph_category Passenger | |
| env.PASSENGER_INSTANCE_REGISTRY_DIR /tmp/aptmp |
| #!/bin/bash | |
| # /etc/crontab | |
| # 0 8 * * * root update_blogs.sh >> /var/log/update_blogs.log | |
| [email protected] | |
| blogs=`ls -d /var/www/{blog1,blog2,blog3}` | |
| update_wp(){ | |
| blog=$1 |
| // | |
| // Based on https://quinesoft.de/2016/05/23/swift-enumerate-iterate-enum/ | |
| // | |
| // Usage: | |
| // | |
| // public enum Pies: Int, EnumerableEnum { | |
| // case apple | |
| // case strawberry | |
| // case chicken | |
| // } |
| import { Directive, forwardRef, Attribute } from '@angular/core'; | |
| import { Validator, AbstractControl, NG_VALIDATORS } from '@angular/forms'; | |
| // variation from https://plnkr.co/edit/KgjSTj7VqbWMnRdYZdxM?p=preview | |
| @Directive({ | |
| selector: '[validateEqual][formControlName],[validateEqual][formControl],[validateEqual][ngModel]', | |
| providers: [ | |
| { provide: NG_VALIDATORS, useExisting: forwardRef(() => EqualValidator), multi: true } | |
| ] |
| function s3size() { | |
| for path in $*; do | |
| size=$(aws s3 ls "s3://$path" --recursive | grep -v -E "(Bucket: |Prefix: |LastWriteTime|^$|--)" | awk 'BEGIN {total=0}{total+=$3}END{printf "%.2fGb\n", (total/1024/1024/1024)}'); | |
| echo "[s3://$path]=[$size]"; | |
| done; | |
| } |
| require 'mina/bundler' | |
| require 'mina/rails' | |
| require 'mina/git' | |
| task :deploy_prod => :environment do | |
| set :rails_env, 'production' | |
| set :restart_workers, true | |
| set :branch, 'master' | |
| set :deploy_to, '/path/to/PROD/rails/root' | |
| set :test_url, "http://www.example.com" |