Skip to content

Instantly share code, notes, and snippets.

View kn0ll's full-sized avatar
🏠
Working from home

Nic Luciano kn0ll

🏠
Working from home
View GitHub Profile
@kn0ll
kn0ll / keyboard.coffee
Last active December 10, 2015 22:58
a way to reflect keyboard state as a backbone model.
define [
'zepto',
'backbone'
], ($, Backbone) ->
# a singleton backbone.model whose
# attributes represent keyboard state
new class extends Backbone.Model
# bind keyboard events to model state
@kn0ll
kn0ll / backbone.layout.js
Created January 30, 2013 09:08
backbone layout manager. provides a simple method for mapping elements of a view to subviews.
Backbone.Layout = Backbone.View.extend({
initialize: function() {
// a map of selector -> view references
this.view_references = {};
// the promises for the data
// required before rendering the view
this.promises = this.data? _.map(this.data(), function(model) {
@kn0ll
kn0ll / osc.coffee
Created February 1, 2013 05:29
a demo osc gui using various backbone/osc components i've written.
require [
'zepto',
'osc/client',
'gui/range'
], ($, OscClient, RangeView) ->
osc_client = new OscClient
bar_view = new RangeView
model: osc_client
@kn0ll
kn0ll / emitter.coffee
Created February 10, 2013 03:30
event listener and event emitter classes inspired by backbone.
# event emitter is an object which is
# responsible for triggering events, and binding
# functions to those events.
class EventEmitter
# events map event names
# to functions which are bound
# to that event. calling model.on evt, fn
# will add that function to the events hash.
events: null
@kn0ll
kn0ll / class-method.js
Created February 22, 2013 00:42
Brainy collection using a class method.
define([
'backbone'
], function(Backbone) {
return Backbone.Collection.extend({
url: '/boops'
}, {
byUserId: function(user_id) {
@kn0ll
kn0ll / session.coffee
Created February 28, 2013 04:53
a session model for brainy
define [
'backbone',
'resources/user'
], (Backbone, User) ->
class extends Backbone.Model
idAttribute: '_id'
urlRoot: '/sessions'
defaults:
@kn0ll
kn0ll / backbone.layout.js
Last active December 19, 2015 00:28
simple backbone layout manager (simple subview definitions, with listener cleanup)
Backbone.Layout = Backbone.View.extend({
initialize: function() {
this.viewReferences = {};
Backbone.View.prototype.initialize.apply(this, arguments);
},
setView: function(selector, view) {
var $foundViewNode = $(selector, this.$el),
previousView = this.viewReferences[selector];
@kn0ll
kn0ll / backbone.collectionlayout.js
Created June 26, 2013 15:39
simple backbone collection layout. extends backbone.layout.js. accepts an `ItemView` and a `collection` and appends a new `ItemView` to it's parent container for each model in the collection
Backbone.CollectionLayout = Backbone.Layout.extend({
initialize: function() {
Backbone.Layout.prototype.initialize.apply(this, arguments);
this.listenTo(this.collection, 'add', _.bind(this.modelAdded, this));
},
ItemView: Backbone.Layout,
modelAdded: function(model) {
define([
'Audiolet'
], (
Audiolet
) => {
class Mixer extends AudioletGroup {
constructor(audiolet) {
super(audiolet, 1, 1);
@kn0ll
kn0ll / blurbcloud.py
Created September 12, 2015 07:19
super hacky script for taking a song off soundcloud and creating a new version where the computer incessantly reads user comments over the audio
import random
import urllib
import urllib2
import soundcloud
import subprocess
from pydub import AudioSegment
def get_track(client_id, sc_url):
client = soundcloud.Client(client_id=client_id)
track = client.get('/resolve', url=sc_url)