Skip to content

Instantly share code, notes, and snippets.

View cmccormack's full-sized avatar
🔍
Code Reviews

Christopher McCormack cmccormack

🔍
Code Reviews
View GitHub Profile
def calc(expr):
operators = ['+', '-', '*', '/']
stack = list()
for item in expr.split(' '):
if item in operators:
right, left = [str(i) for i in (stack.pop(), stack.pop())]
stack.append(eval(left + item + right))
else:
stack.append(eval(item + '+ 0'))
@cmccormack
cmccormack / send_message_email.php
Last active March 2, 2018 19:26
Simple PHP Contact Form
<?php
if(!isset($_POST['submit']))
{
//This page should not be accessed directly. Need to submit the form.
echo "error; you need to submit the form!";
}
$name = $_POST['name'];
$visitor_email = $_POST['email'];
$message = $_POST['message'];
@cmccormack
cmccormack / asyncletter.py
Last active March 3, 2018 00:20
Testing Python3 Threading
from threading import Thread, Lock
from random import randint
from time import sleep
class AsyncLetter(Thread):
def __init__(self, letter):
super().__init__()
self.timer = randint(1,5)
@cmccormack
cmccormack / mongoose_examples.js
Created April 16, 2018 01:14
Mongoose Query and Update Examples
// Example of a schema for a Poll document
const PollSchema = new mongoose.Schema({
createdBy: {
type: mongoose.Schema.Types.ObjectId,
ref: 'User'
},
createdTime: {
type: String,
required: true
},
@cmccormack
cmccormack / AccurateInterval.js
Created August 3, 2018 17:43
A more accurate timer to replace setInterval
class AccurateInterval {
intervalId = null
constructor(fn, timer) {
this.fn = fn
this.timer = timer
}
start = () => {
@cmccormack
cmccormack / linux_commands.md
Last active August 30, 2018 15:00
Common Linux commands with examples

tee

The tee utility copies standard input to standard output, making a copy in zero or more files. The output is unbuffered.

Example:

echo "I am the very model of a modern Major General" | tee general.txt
I am the very model of a modern Major General # Output
cat general.txt
I am the very model of a modern Major General # Output
@cmccormack
cmccormack / Linux-Notes.md
Last active August 31, 2018 20:10
Notes on Linux Systems

Linux Boot Process

Bootloaders - Starts the OS:

  • LILO - Linux Loader -
  • GRUB - Grand Unified Bootloader
    • Replaced LILO

initrd - initial RAMDisk

  • Temporary filesystem loaded into memory with helpers that can perform hardware detection and loads modules to get the filesystem mounted
@cmccormack
cmccormack / fake.json
Created October 26, 2018 17:10
Fake JSON for testing
{
"url": "https://api.github.com/gists/53e1780a5a68fe9281cfbbc9820d381f",
"forks_url": "https://api.github.com/gists/53e1780a5a68fe9281cfbbc9820d381f/forks",
"commits_url": "https://api.github.com/gists/53e1780a5a68fe9281cfbbc9820d381f/commits",
"id": "53e1780a5a68fe9281cfbbc9820d381f",
"git_pull_url": "https://gist.github.com/53e1780a5a68fe9281cfbbc9820d381f.git",
"git_push_url": "https://gist.github.com/53e1780a5a68fe9281cfbbc9820d381f.git",
"html_url": "https://gist.github.com/53e1780a5a68fe9281cfbbc9820d381f",
"files": {
"forgeLikeServerSetup.md": {
@cmccormack
cmccormack / 0-vim.md
Last active November 26, 2018 17:28
VIM Commands and Tools

Vim - Vi IMproved

Vim is a highly configurable text editor for efficiently creating and changing any kind of text. It is included as "vi" with most UNIX systems and with Apple OS X.

Vim is rock stable and is continuously being developed to become even better. Among its features are:

  • persistent, multi-level undo tree
  • extensive plugin system
  • support for hundreds of programming languages and file formats
@cmccormack
cmccormack / 0-image-webpack-loader-dependencies.json
Last active March 1, 2019 19:56
image-webpack-loader external binaries
{
"imagemin": "^5.3.1",
"imagemin-gifsicle": "^6.0.0",
"imagemin-mozjpeg": "^8.0.0",
"imagemin-optipng": "^6.0.0",
"imagemin-pngquant": "^6.0.0",
"imagemin-svgo": "^7.0.0",
"imagemin-webp": "^5.0.0",
"loader-utils": "^1.1.0",
"object-assign": "^4.1.1",