Skip to content

Instantly share code, notes, and snippets.

View nicdoye's full-sized avatar
🚲
All shall be well, and all shall be well, and all manner of thing shall be well

Nic Doye nicdoye

🚲
All shall be well, and all shall be well, and all manner of thing shall be well
View GitHub Profile
@nicdoye
nicdoye / time.sh
Created August 9, 2017 15:37
Minutes and Seconds from milliseconds
# Contains a rounding error, but we didn't need the accuracy
# Check if $response is an empty string or not a number
if [ -z ${response} ] || [ $(( ${response} + 0 )) == 0 ]
then
mins=undef
secs=undef
then
else
mins=$(( ${response} / 1000 / 60 ))
secs=$(( ${response} / 1000 - 60 * ${mins} ))
@nicdoye
nicdoye / my_date.sh
Created July 31, 2017 10:43
macOS ISO8601 dates
my_date () {
local date_cmd
local date
# Check if GNU date installed as gdate
: type gdate 2> /dev/null
[ $? == 0 ] && date_cmd=gdate || date_cmd=date
# Attempt GNU date - date will be unset if this fails
date=$(${date_cmd} --iso-8601=second 2> /dev/null)
@nicdoye
nicdoye / get-ip.pl
Created July 27, 2017 10:06
Finding your IP in Perl
#!/usr/bin/env perl
use strict;
use warnings;
use feature qw/say/;
use WebService::IFConfig::Client;
my $client = WebService::IFConfig::Client->new();
say $client->get_ip;'
@nicdoye
nicdoye / IntegerDivision.pm
Last active July 2, 2017 19:51
Perl Integer Division Module
package Math::IntegerDivision;
use Carp;
use Moose;
has 'numerator' => (
is => 'rw',
isa => 'Int'
);
@nicdoye
nicdoye / tunnel.sh
Created June 15, 2017 16:12
SSH tunnel to Windows server in AWS VPC
#!/bin/bash
# SECURITY WARNING: the password will be visible in the process list on your local machine.
# Note: you need PuTTY's plink to get this to work, even on macOS
# macOS: `brew install putty`
# Windows: `choco install putty`
# Arguments:
# vpc_ip = Private IP Address of the Windows box. e.g. 172.16.1.1
@nicdoye
nicdoye / inode-remover.sh
Created June 15, 2017 13:20
Incredibly dangerous script to remove open inodes of deleted files
#!/bin/bash
while [[ $(lsof -nP +L1 | wc -l) > 1 ]]
do
pair=$(lsof -nP +L1 | tail -n 1 | awk '{print $2" " $4}')
pid=$(echo $pair | awk '{print $1}')
fd=$(echo $pair | awk '{print $2}' | sed -e 's_[a-z]__g')
file=$(mktemp)
# Race condition check on first line of lsof output
@nicdoye
nicdoye / mount-cleaner.sh
Created April 18, 2017 12:52
Unmounting installation disks on macOS
#!/bin/bash
# IMPORTANT ASSUMPTION:
# YOU DO NOT HAVE ANY OTHER DISKS MOUNTED WITH AN `s1` PARTITION!
# A better way would be to use `diskutil list --plist` and parse the
# plist using ruby/python/javascript/your-language-of-choice
for disk in $(mount | egrep 'disk.+s1' | awk '{print $1}' | sed -e 's_^/dev/__' -e 's_s1$__')
do
diskutil eject ${disk}
@nicdoye
nicdoye / config
Created March 4, 2017 17:48
A sample ssh config for bastions/gateways
# Your bastion host
Host bastion bastion.example.com
IdentityFile ~/.ssh/bastion-example-com.pem
Port 12345
User bastion-user
# Inside the VPC
Host host0.internal host1.internal
@nicdoye
nicdoye / keybase.md
Created February 20, 2017 11:00
Ignore.

Keybase proof

I hereby claim:

  • I am nicdoye on github.
  • I am nicdoye (https://keybase.io/nicdoye) on keybase.
  • I have a public key ASB0JEma1L_Ga1DDnc5C5PjOQeUqdd-te4Byt53qpDDzFAo

To claim this, I am signing this object:

@nicdoye
nicdoye / shrink-png.sh
Created February 14, 2017 10:41
Shrink a PNG file so you can make a custom emoji in Slack, using NetPBM
pngtopam -alphapam < filename.png | pamscale -xyfit 128 128 | pamtopng > filename-shrunk.png