Skip to content

Instantly share code, notes, and snippets.

Avatar

Teddy Caddy tcaddy

View GitHub Profile
@tcaddy
tcaddy / ping_gateway.sh
Last active Sep 23, 2020
ping_gateway
View ping_gateway.sh
#!/bin/sh
# See https://serverfault.com/a/31179
gateway=$(route -n | grep 'UG[ \t]' | awk '{print $2}')
echo "Pinging Gateway IP: $gateway"
echo "Press CTRL + C to cancel"
ping $gateway
@tcaddy
tcaddy / folderify_mp3s.rb
Created Aug 20, 2020
Put mp3s in folders based on id3 tags for artist and album. Create filenames based on disk #, track #, and title from id3 tags.
View folderify_mp3s.rb
#!/usr/bin/env ruby
begin
require 'fileutils'
require 'id3tag'
require 'pry'
class FolderifyMp3s
REGEX = /\(|\)|\/|\\/.freeze
def call
@tcaddy
tcaddy / example.rb
Created Oct 25, 2019
GMail usage example
View example.rb
callback = lambda do |result, err|
if err
# handle error
else
require_relative './mail'
mail = ::CheckEmail::Mail.new(result)
end
end
View .gitconfig
# This is Git's per-user configuration file.
[user]
# Please adapt and uncomment the following lines:
name = Firstname Lastname
email = user@domain.com
[color]
ui = auto
[rebase]
autosquash = true
[alias]
@tcaddy
tcaddy / freeze_benchmark.rb
Last active Oct 12, 2017
Benchmark String#freeze
View freeze_benchmark.rb
#!/usr/bin/env ruby
# Based on http://blog.honeybadger.io/when-to-use-freeze-and-frozen-in-ruby/#reducing-object-allocations
# but for Ruby 1.9.3
require 'benchmark'
class FreezeBenchmark
NORMAL = 'NORMAL'
FROZEN = 'FROZEN'.freeze
def self.init(n = 100000)
@tcaddy
tcaddy / script.bat
Last active May 23, 2017
BAT file to copy files and make a ZIP archive
View script.bat
@ECHO OFF
SET CURRENTDIR="%cd%"
SET DIRTOZIP="%TEMP%\_A%time::=.%"
MKDIR %DIRTOZIP%
CD %DIRTOZIP%
COPY /B /V /Z "source" "destination"
set FILETOZIP="%DIRTOZIP%\*"
@tcaddy
tcaddy / aes-128-ecb.rb
Created Mar 8, 2017
Ruby AES-128-ECB encryption / decryption example. This was written to interface with a 3rd party that required string parameters to be encrypted the following way: Rinndael cipher, Electronic Code Block mode (ECB), no padding, encrypted buffer should be padded with spaces such that its length is divisible by 32.
View aes-128-ecb.rb
# setup some input parameters
encrypted_decrypted = 'some string to encrypt or decrypt'
action = :encrypt # set to :encrypt or :decrypt
secret_key = 'abc123' # define shared secret key here
# encryption / decryption code...
cipher = OpenSSL::Cipher.new('AES-128-ECB')
if action == :decrypt
cipher.key = [secret_key].pack('H*')
cipher.padding = 0
@tcaddy
tcaddy / ping_gateway.ps1
Last active Nov 30, 2016
PowerShell Script to ping the gateway constantly at intervals below 1000 milliseconds so that flaky wireless connections stay alive.
View ping_gateway.ps1
# This script will let you ping in intervals less than 1 second
$ip4_gateway = (Get-WmiObject -Class Win32_IP4RouteTable | where { $_.destination -eq '0.0.0.0' -and $_.mask -eq '0.0.0.0'} | Sort-Object metric1 | select nexthop).nexthop
$target = $ip4_gateway # target host
$interval = 200 # in milliseconds
$ping=New-Object System.Net.NetworkInformation.ping
function Ping-It() {
$success = 0 # initialize as zero
$failure = 0 # initialize as zero
$cumaltive_time = 0 # initialize as zero
View ncatfuture-fix.js
var v = [],
opts = ha31lib.ge('survey').getElementsByTagName('input'),
i;
for (i=0;i<opts.length;i++) {
var opt = opts[i];
if (opt.name == 'illbe') {
if (opt.checked) {
v.push(opt.id);
}
}
@tcaddy
tcaddy / crontab
Last active Jan 6, 2016
Linux CPU and Memory Logging
View crontab
#############################################################
# Log memory and CPU usage
#############################################################
*/5 * * * * /usr/local/bin/log_memory_usage.sh > /dev/null
*/5 * * * * /usr/local/bin/log_cpu_usage.sh > /dev/null
You can’t perform that action at this time.