Skip to content

Instantly share code, notes, and snippets.

View CallumHoward's full-sized avatar
💻

Callum Howard CallumHoward

💻
  • SafetyCulture
  • Australia
View GitHub Profile
@CallumHoward
CallumHoward / .tmux.conf
Created April 6, 2015 00:54
My Tmux Config file
# TMUX CONFIGURATION
# see https://github.com/tmux-plugins/tmux-sensible
set -g @almost-sensible 'on'
# configuration of the status line
set -g status-left-length 32
set -g status-right-length 150
set -g status-fg white
set -g status-bg black
void setup() {
size(800, 600);
smooth();
}
void draw() {
drawFish(50, 50);
}
// ==== Fish ====
public class Fish {
private int x;
private int y;
private color fishColor;
public Fish(int x, int y, color fishColor) {
this.x = x;
this.y = y;
int num = 50;
int[] x = new int[num];
int[] y = new int[num];
ArrayList<Fish> fishies = new ArrayList<Fish>();
void setup() {
size(500, 500);
noStroke();
fill(255, 102);
@CallumHoward
CallumHoward / try_vim.md
Last active January 24, 2018 19:42
Try Vim! - Callum Howard (2016)

image

As a programmer, your text editor is your weapon. With keyboard as conduit you manipulate what you see on screen to realise your thoughts. By honing your skill at wielding a text editor, writing code can become a more fluent process, allowing your thoughts to flow uninterrupted.

The paradigm of modal text editing with Vim is being able to edit at the speed of thought. By using compose-able hotkeys and different modes Vim allows you to move your cursor and achieve your immediate editing task in just a few keystrokes. Commanding Vim is like speaking a language. By chaining different key combos together, you can instruct Vim to manipulate the text in any way you intend - and all without using the mouse.

You may not think it, but using the mouse to edit text is awfully slow. You can think of it as an O(log n) algorithm - you move your mouse in the direction you want, and poll: "are you at the target yet?". This repeats, closing the distance each time, until finally you

# sort_sequences.py
# Callum Howard, 2017
from itertools import permutations, combinations
def compswap(swap, inputs):
if (inputs[swap[0]] > inputs[swap[1]]):
inputs[swap[0]], inputs[swap[1]] = inputs[swap[1]], inputs[swap[0]]
return inputs
#include <stdlib.h>
#include <stdio.h>
#include "list.h"
// NULL: a special value we can store
// in a pointer that indicates that
// it refers to nothing
// helper function prototypes
struct node *new_node(int data, struct node *next);
@CallumHoward
CallumHoward / ys.zsh-theme
Created June 16, 2017 07:32
modified ys theme for oh-my-zsh
# Clean, simple, compatible and meaningful.
# Tested on Linux, Unix and Windows under ANSI colors.
# It is recommended to use with a dark background and the font Inconsolata.
# Colors: black, red, green, yellow, *blue, magenta, cyan, and white.
#
# http://ysmood.org/wp/2013/03/my-ys-terminal-theme/
# Mar 2013 ys
# Machine name.
function box_name {
@CallumHoward
CallumHoward / main.rs
Created June 28, 2017 23:28
prints all directories recursively
extern crate ignore;
fn main() {
use ignore::{WalkBuilder, WalkState};
WalkBuilder::new("./").build_parallel().run(|| {
Box::new(move |result| {
let dent = match result {
Err(_) => return WalkState::Continue,