Skip to content

Instantly share code, notes, and snippets.

View futureperfect's full-sized avatar

Erik Hollembeak futureperfect

View GitHub Profile
@futureperfect
futureperfect / absorber.py
Created March 21, 2025 00:55
Simple metrics endpoint collecting cpu, memory, and disk utilization statistics and reporting via an HTTP endpoint
"""
Collect host CPU, memory, and disk utilization metrics minutely
and report them via an HTTP endpoint
"""
import time
import os
from textwrap import dedent
import threading
@futureperfect
futureperfect / async_app.py
Created March 16, 2025 20:43
Silly async/await program to sort a list of numbers using workers and a shared resource
import asyncio
import bisect
import logging
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
logger = logging.getLogger(__name__)
async def sleep_and_sort(n, lock, result_list):
try:
logger.info(f"Sleeping for {n} seconds before doing work")
@futureperfect
futureperfect / logs.txt
Created June 11, 2018 21:21
PySpark Reduction
py4j.protocol.Py4JJavaError: An error occurred while calling o90.save.
: java.io.IOException: Failed to open native connection to Cassandra at {<Redacted>}:<Redacted port>
at com.datastax.spark.connector.cql.CassandraConnector$.com$datastax$spark$connector$cql$CassandraConnector$$createSession(CassandraConnector.scala:168)
at com.datastax.spark.connector.cql.CassandraConnector$$anonfun$8.apply(CassandraConnector.scala:154)
at com.datastax.spark.connector.cql.CassandraConnector$$anonfun$8.apply(CassandraConnector.scala:154)
at com.datastax.spark.connector.cql.RefCountedCache.createNewValueAndKeys(RefCountedCache.scala:32)
at com.datastax.spark.connector.cql.RefCountedCache.syncAcquire(RefCountedCache.scala:69)
at com.datastax.spark.connector.cql.RefCountedCache.acquire(RefCountedCache.scala:57)
at com.datastax.spark.connector.cql.CassandraConnector.openSession(CassandraConnector.scala:79)
at com.datastax.spark.connector.cql.CassandraConnector.withSessionDo(CassandraConnector.scala:111)
@futureperfect
futureperfect / demo.p8
Created March 6, 2018 08:24
PICO-8 Demo of a ball moving with arrow keys
pico-8 cartridge // http://www.pico-8.com
version 16
__lua__
-- move an ball on-screen
-- by erik hollembeak
SCREEN_WIDTH = 128
SCREEN_HEIGHT = 128
-- Ball definition
@futureperfect
futureperfect / fork_fd_test.c
Created January 13, 2018 20:53
How do concurrent writes by parent and child processes behave with a shared file descriptor?
/* Write a program that opens a file (with the open() system call) and then
* calls fork() to create a new process. Can both the child and parent access
* the file descriptor returned by open()? What happens when they are writing to
* the file concurrently, i.e., at the same time? */
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
@futureperfect
futureperfect / gist:066c6c320c9d0930fe648990a86ba4f4
Created January 9, 2018 03:41
A couple handy idioms for exploring ruby classes/objects and the methods they implement
# What methods does a class implement?
> Time.methods
=> [:!, :!=, :!~, :<, :<=, :<=>, :==, :===, :=~, :>, :>=, :__id__, :__send__, :allocate, :ancestors, :at, :autoload, :autoload?, :class, :class_eval, :class_exec, :class_variable_defined?, :class_variable_get, :class_variable_set, :class_variables, :clone, :const_defined?, :const_get, :const_missing, :const_set, :constants, :define_singleton_method, :deprecate_constant, :display, :dup, :enum_for, :eql?, :equal?, :extend, :freeze, :frozen?, :gm, :hash, :include, :include?, :included_modules, :inspect, :instance_eval, :instance_exec, :instance_method, :instance_methods, :instance_of?, :instance_variable_defined?, :instance_variable_get, :instance_variable_set, :instance_variables, :is_a?, :itself, :kind_of?, :local, :method, :method_defined?, :methods, :mktime, :module_eval, :module_exec, :name, :new, :nil?, :now, :object_id, :prepend, :private_class_method, :private_constant, :private_instance_methods, :private_method_defined?, :private_methods, :protected_
// https://tour.golang.org/methods/22
package main
import "golang.org/x/tour/reader"
type MyReader struct{}
func (reader MyReader) Read(b []byte) (int, error) {
count := 0
for i, _ := range b {
@futureperfect
futureperfect / stripes.asm
Created September 14, 2017 02:45
Atari 2600 - Draw colored stripes to screen
; stripes.asm
;
; Example Atari 2600 program - paints
; colored stripes to the screen
;
; dasm stripes.asm -f3 -ostripes.bin
;
;
processor 6502
@futureperfect
futureperfect / Gemfile
Created August 17, 2017 00:48
Trapping Rain Water
source "https://rubygems.org"
gem "minitest"