Skip to content

Instantly share code, notes, and snippets.

Keybase proof

I hereby claim:

  • I am JosephCatrambone on github.
  • I am josephcatrambone (https://keybase.io/josephcatrambone) on keybase.
  • I have a public key whose fingerprint is E974 FC47 9D86 9756 4EE7 C912 2D23 E135 F6F0 661B

To claim this, I am signing this object:

@JosephCatrambone
JosephCatrambone / Projection Issue
Created October 20, 2018 18:37
Trying to debug an issue with point projection.
import numpy
import math
def make_sphere(steps=512):
points = list()
colors = list()
for s in range(steps):
y = math.sin((8 * s / float(steps)) * 2 * math.pi)
x = math.cos((32 * s / float(steps)) * 2 * math.pi)
@JosephCatrambone
JosephCatrambone / depth_guess.py
Created December 22, 2018 20:02
A quick and dirty Python file for loading and training on the NYU depth dataset.
#!/usr/bin/env python
from PIL import Image
from glob import iglob
import h5py
import tensorflow as tf
import numpy
import logging
import itertools
@JosephCatrambone
JosephCatrambone / 10958Search.py
Created February 8, 2019 15:43
Searching for a solution to the 10958 problem.
# -*- coding: utf-8 -*-
"""
(c) 2019 Joseph Catrambone, Xoana LTD. Releasewd under MIT License.
"""
# Create 10958 using, in order, 1, 2, 3, 4, 5, 6, 7, 8, 9.
# Let's phrase this as a search problem.
# Concat only applies if the underlying operands are digits, not products. I.e, one could go concat(1, 2) -> 12, but not concat(1+2, 3) -> 33.
@JosephCatrambone
JosephCatrambone / unionfind.rs
Created October 5, 2019 06:04
Disjoint-Set / Union-Find - A simple
/*
UnionFind.rs
A simple single-file UnionFind/Disjoint-Set implementation.
AUTHOR: Joseph Catrambone <jo.jcat@gmail.com> (c) 2019
LICENSE: MIT
/// Example Usage:
///
/// ```
/// let uf = UnionFind::<char>::new();
@JosephCatrambone
JosephCatrambone / lineseekablefile.py
Created December 4, 2019 23:13
A simple file wrapper to allow seeking to specific lines at random.
class LineSeekableFile:
def __init__(self, seekable):
self.fin = seekable
self.line_map = list() # Map from line index -> file position.
self.line_map.append(0)
while seekable.readline():
self.line_map.append(seekable.tell())
def __getitem__(self, index):
# NOTE: This assumes that you're not reading the file sequentially. For that, just use 'for line in file'.
@JosephCatrambone
JosephCatrambone / sketch_artist.py
Created December 15, 2019 04:23
The Raspberry Pi code running my mom's Christmas present.
import numpy
import picamera
import picamera.array
import random
import RPi.GPIO as GPIO
from time import sleep
camera_width = 320
camera_height = 240
arma_pin = 32
@JosephCatrambone
JosephCatrambone / CameraController.gd
Created April 7, 2020 05:48
Godot Orbital Camera Controller
extends Camera
export var follow_target_path:NodePath = ""
var follow_target:Node
export var follow_distance:float = 5.0
export var follow_height:float = 1.0
export var mouse_sensitivity_x:float = 0.005
export var mouse_sensitivity_y:float = 0.005
var last_mouse_delta:Vector2 = Vector2()
@JosephCatrambone
JosephCatrambone / gan.py
Created September 7, 2020 18:57
Cleaned PyTorch GAN Code
import numpy
from pathlib import Path
import sys
import torch
from torch import nn
import torchvision
from torchvision import datasets
from torchvision import transforms
@JosephCatrambone
JosephCatrambone / owa.tracker-combined-latest.minified.js
Created February 5, 2021 05:43
owa.tracker-combined-latest.minified.js - The Great Suspender Breakdown
(function(exports) {
if (!this.JSON) {
this.JSON = {};
}
(function() {
"use strict";
function f(n) {
return n < 10 ? "0" + n : n;
}
if (typeof Date.prototype.toJSON !== "function") {