Skip to content

Instantly share code, notes, and snippets.

View robbie01's full-sized avatar
🗿
bruh

Robbie robbie01

🗿
bruh
View GitHub Profile
@robbie01
robbie01 / vman.pl
Last active December 27, 2021 01:44
void+sndio volume controller and manager script
#!/usr/bin/perl
# i wouldn't recommend using this in its current state. because it uses sndioctl instead
# of using libsndio directly, there's pretty much no way to detect server restarts &c.
# this will be rewritten as a small C program soon.
# this is intended to be run as a per-user service
# https://docs.voidlinux.org/config/services/user-services.html
use strict;
@robbie01
robbie01 / thxsound.py
Created June 6, 2018 18:50
the thx sound generated with scipy square waves
import numpy as np
from random import uniform
from scipy.signal import square
from scipy.io import wavfile
samplerate = 44100
startlength = 8
chirplength = 4
endlength = 16
@robbie01
robbie01 / lineart.html
Last active April 23, 2018 21:07
kinda like lineart-svg
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>Line Art</title>
</head>
<body>
<canvas id="c"></canvas><br>
<label for="r">Radius</label>
@robbie01
robbie01 / dissecting-the-state-monad.md
Last active February 3, 2018 23:23
Dissecting the State monad with Operational and Free monads

The original article can be found here

@robbie01
robbie01 / emojify.js
Created April 5, 2017 01:04
Convert text into emojis
/*
emojify.js 1.0.0
by robbie0630
Description:
converts text into Discord-compatible emojis
PLANNED FEATURES:
* needs more ES2015
* needs more ES2016
@robbie01
robbie01 / reload.js
Last active March 30, 2017 19:44
Reload the page without reloading the page (uses Fetch API and ES6)
fetch(window.location.href).then(res =>
res.text().then(text => {
let domParser = new DOMParser()
let newDoc = domParser.parseFromString(text, res.headers.get('Content-Type').split(';')[0])
let newNode = document.importNode(newDoc.documentElement, true)
document.replaceChild(newNode, document.documentElement)
})
)
@robbie01
robbie01 / lsdradixsort.py
Last active January 7, 2017 22:03
LSD Radix sort implemented in Python 3 using base 10 (but can be easily modified to use any base)
base = 10
def radixsort(list):
maxPlace = max(len(int2base(i, base)) for i in list)
list = [(0, i) for i in list]
for i in range(1, maxPlace + 1):
list = [(FindInPlace(j, base, i), j) for _, j in list]
newList = []
for j in range(base):
newList += [k for k in list if k[0] == j]
@robbie01
robbie01 / shellsort.py
Last active December 30, 2016 23:09
Shellsort implemented in Python 3 using various gap sequences
from math import floor
def shellsort(list):
gaps = gengaps(len(list))
for gap in gaps:
for i in range(gap, len(list)):
temp = list[i]
j = i
while j >= gap and list[j-gap] > temp:
list[j] = list[j - gap]
@robbie01
robbie01 / heapsort.py
Last active December 31, 2016 23:31
Heap sort implemented in Python 3
from heapq import heapify, heappop #is this cheating?
def heapsort(list):
heap = heapify(list)
newList = []
while heap:
newList.append(heappop(heap))
return newList
if __name__ == '__main__':
from sys import argv
@robbie01
robbie01 / timsort.py
Created December 30, 2016 05:44
Timsort implemented in Python 3
if __name__ == '__main__':
from sys import argv
from random import shuffle
list = list(range(int(argv[1])))
list.sort() # ;)
print(all(list[i] <= list[i+1] for i in range(len(list)-1)))
# seriously though timsort is really weird