Skip to content

Instantly share code, notes, and snippets.

@campaul
campaul / tilt_eq_frequency.py
Created August 27, 2014 06:17
Calculate the Pivot Frequency of a Tilt Equalizer
from math import pi, sqrt
# Part labels based on the schematic from
# http://www.edn.com/design/analog/4368935/Implement-an-audio-frequency-tilt-equalizer-filter
RF = float(input('RF: '))
P1 = float(input('P1: '))
C = float(input('C: '))
R = float(input('R: '))
pivot = sqrt(P1 + 2 * RF) / (2 * pi * C * sqrt(RF - R) * sqrt(P1 * (R + RF) + 2 * R * RF))
@campaul
campaul / gist:d15833a5a5f0f5712ac3
Created November 4, 2014 17:25
Enabling interrupts without an interrupt enable instruction
push INTENABLE
icall
push DONE
ret
INTENABLE:
iret
DONE:
@campaul
campaul / octave-isa
Last active August 29, 2015 14:08
Octave ISA
========
Core ISA
========
000 : Jump MEM[RS] NZP (previous operation)
This is a relative jump.
0010 : LoadIH R0 <- I (Load 4 bit immediate into R0 lower bits)
0011 : LoadIL R0 <- I (Load 4 bit immediate into R0 upper bits)
0100: Add RD <- RD + RS
@campaul
campaul / gist:71f32a577fe39c388c31
Last active August 29, 2015 14:09
Potential Octave Stack Operations

Interrupt State

000 00 : HALT (wait for interrupt)
000 01 : IDT[HIGH] <- R0
000 10 : IDT[LOW] <- R0
000 11 : IENABLE <- R0 // 1 bit for each device, so IENABLE 0 disables interrupts

Function Operations

001 00 : CALL
001 01 : RET
001 10 : TRAP

@campaul
campaul / gist:56ec0703428e5f644291
Created December 10, 2014 00:06
Potential Distro JSON Format
distros = {
'Ubuntu': {
'12.04': {
'Desktop': {
'i386': {
'DVD': {
'torrent': 'foo',
'magnet': 'bar',
'direct': 'baz',
'project': 'quux'
@campaul
campaul / gist:983ce9daee4b6fb1057a
Created January 10, 2015 05:08
What the import function looks like now
def import_photos(self, path, notify=None, imported=None,
copy_photos=True, delete_originals=False):
photo_list = self.discover(path)
progress = Progress(len(photo_list))
for photo in photo_list:
if notify:
notify(os.path.basename(photo.raw_path))
## this...
original_filename = os.path.basename(
os.path.splitext(photo.raw_path)[0]
)
file_ext = os.path.splitext(photo.raw_path)[1]
## could be...
file_name, file_ext = os.path.splitext(os.path.basename(photo.raw_path))
Python 3.4.2 (default, Jan 12 2015, 11:38:40)
[GCC 4.9.2 20141224 (prerelease)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> def foo(x=[]):
... x.append('1')
... return x
...
>>> foo()
['1']
>>> foo()
@campaul
campaul / game.go
Created March 6, 2015 04:42
Centered player example
package main
import (
"fmt"
"github.com/nsf/termbox-go"
)
func tbPrint(x, y int, fg, bg termbox.Attribute, msg string) {
for _, c := range msg {
termbox.SetCell(x, y, c, fg, bg)
@campaul
campaul / mason_jar_port_tube.js
Last active August 29, 2015 14:17
Mason Jar Port Tube
function main() {
return union(
// The tube
difference(
cylinder({r:16, h:28, fn:100}),
cylinder({r:15, h:28, fn:100})
),
// The flange
difference(
cylinder({r:20, h:2, fn:100}),