Skip to content

Instantly share code, notes, and snippets.

View hawkins's full-sized avatar
☃️
baking holiday goodies with all this time i saved switching to serverless

Josh Hawkins hawkins

☃️
baking holiday goodies with all this time i saved switching to serverless
View GitHub Profile
@hawkins
hawkins / git-php-webhook.php
Last active April 25, 2022 13:30 — forked from marcelosomers/git-php-webhook.php
A basic webhook for deploying updates to repos on Github to your local server
<?php
/**
* This script is for easily deploying updates to Github repos to your local server. It will automatically git clone or
* git pull in your repo directory every time an update is pushed to your $BRANCH (configured below).
*
* Read more about how to use this script at http://behindcompanies.com/2014/01/a-simple-script-for-deploying-code-with-githubs-webhooks/
*
* INSTRUCTIONS:
* 1. Edit the variables below
* 2. Upload this script to your server somewhere it can be publicly accessed
# From http://stackoverflow.com/questions/2569459/git-create-a-branch-from-unstaged-uncommited-changes-on-master
#include <stdio.h>
#define ANSI_COLOR_RED "\x1b[31m"
#define ANSI_COLOR_GREEN "\x1b[32m"
#define ANSI_COLOR_YELLOW "\x1b[33m"
#define ANSI_COLOR_BLUE "\x1b[34m"
#define ANSI_COLOR_MAGENTA "\x1b[35m"
#define ANSI_COLOR_CYAN "\x1b[36m"
@hawkins
hawkins / pyfi.py
Created August 21, 2016 22:11
Python CLI for managing WiFi connections with NMCLI
#!/usr/bin/python
import os
import click
@click.group()
@click.pass_context
def cli(ctx):
"""The CLI for PyFi"""
pass
@hawkins
hawkins / screen.js
Created January 16, 2017 06:22
Node.js blessed screen - keep your output separate from your input!
/*
* I've used blessed to create a textbox at the bottom line in the screen.
* The rest of the screen is the 'body' where your code output will be added.
* This way, when you type input, your program won't muddle it with output.
*
* To try this code:
* - $ npm install blessed --save
* - $ node screen.js
*
* Key points here are:
@hawkins
hawkins / canary.js
Created June 6, 2017 20:12
Canary.js - Chirp til you drop
const { readFile, appendFile } = require("fs")
let logfile = "canary.log"
const now = () => new Date().toISOString()
const sleep = ms => new Promise(resolve => setTimeout(resolve, ms))
const appendFileP = (filename, data) =>
new Promise((resolve, reject) => {
@hawkins
hawkins / tools.md
Created October 2, 2017 22:57
CTF Suggested Tools for Getting Started

Suggested tools notes

From 10/2/2017

Evan McBroom talked about some of his favorite tools for use in CTF. Myself and others in the audience also suggested some.

Reverse Engineering

Tools

@hawkins
hawkins / webz.md
Created October 15, 2017 07:50
CTF Introduction to Web Security Resources

Web Security Introductions

This is a list of a few resources a friendly hacker at MSU shared with me during my junior year. They're catered toward experienced web developers looking to learn a little bit more about web security (ala me). I thought a friend on Twitter could use them, so I'm sharing them for anyone else who may be in that position :)

Resources

Begin quote from friend's DMs

This is what helped me get me feet wet with web security problems: http://overthewire.org/wargames/natas/

@hawkins
hawkins / simple-server.py
Created July 19, 2019 14:44
Python 3 simple HTTP server to print post data
#!/usr/bin/env python3
from http.server import BaseHTTPRequestHandler, HTTPServer
class S(BaseHTTPRequestHandler):
def _set_headers(self):
self.send_response(200)
self.send_header('Content-type', 'text/html')
self.end_headers()
@hawkins
hawkins / autoexec.cfg
Created April 25, 2020 04:12
CSGO autoexec.cfg
// Knife switch bind!
alias +knife slot3
alias -knife lastinv
bind q +knife
// Scoutzknivez scroll jump and crouch
// Leave key configs the same in settings; space=jump, ctrl=duck
bind mwheeldown +jump
bind mwheelup +duck
import time
from config import config
from train_board import TrainBoard
from metro_api import MetroApi, MetroApiOnFireException
STATION_CODE = config["metro_station_code"]
TRAIN_GROUP = config["train_group"]
REFRESH_INTERVAL = config["refresh_interval"]