Skip to content

Instantly share code, notes, and snippets.

View radiosilence's full-sized avatar
🔥

James Cleveland radiosilence

🔥
View GitHub Profile
fs = require 'fs'
{exec} = require 'child_process'
util = require 'util'
browserify = require 'browserify'
colors = require 'colors'
UglifyJS = require "uglify-js"
mold = require 'mold-source-map'
path = require 'path'
jsRoot = path.join(__dirname)
@radiosilence
radiosilence / Cakefile
Last active December 20, 2015 16:39
Some useful stuff for CoffeeScript/LiveReload, etc.
fs = require 'fs'
{exec} = require 'child_process'
util = require 'util'
browserify = require 'browserify'
colors = require 'colors'
UglifyJS = require "uglify-js"
mold = require 'mold-source-map'
path = require 'path'
jsRoot = path.join(__dirname)
http = require 'http'
util = require 'util'
net = require 'net'
pg = require 'pg'
conString = "postgres://qrs:qrs@localhost/qrs"
httpServer = http.Server (req, res) ->
pg.connect conString, (err, client, done) ->
@radiosilence
radiosilence / gist:6780195
Created October 1, 2013 15:24
How do I make callback chaining/injection happen in a cleaner/testable way?
var
http = require('http'),
async = require('async'),
printIP = function(cbs, data) {
console.log("Your IP address: " + data.ip);
},
yellIP = function(cbs, data) {
console.log("OI!!! IP!!! " + data.ip);
},
@radiosilence
radiosilence / 1-vanilla.coffee
Last active December 24, 2015 09:59
Three ways of chaining callbacks that are dependant on the previous one. In CoffeeScript.
http = require 'http'
yellIP = (callbacks, data) ->
console.log "OI!! YOUR IP IS #{data.ip}!!!"
printIP = (callbacks, data) ->
console.log "Your IP address: #{data.ip}"
parseJSON = (callbacks, string) ->
callbacks.shift()(callbacks, JSON.parse(string))
@radiosilence
radiosilence / chains.coffee
Last active December 24, 2015 11:39
A faster pattern of doing chained/changeable sequences and flattening out callback hell.
module.exports =
errback: (cargs..., {callbacks, error: [eb, args...]}) ->
eb(args..., cargs..., {callbacks: callbacks, error: [eb, args...]})
callback: (cargs..., {callbacks, error}) ->
[cb, args...] = callbacks.shift()
cb(args..., cargs..., {callbacks: callbacks, error: error})
http = require 'http'
pg = require('pg').native
Promise = require 'bluebird'
reportError = (res, err, chains) ->
res.writeHead 500,
'content-type': 'application/json'
res.write JSON.stringify err
@radiosilence
radiosilence / beautiful.sql
Last active August 14, 2016 11:16
Django Raw Annotations. I wanted to add some complex aggregates, but .extra(select=) adds your raw SQL to GROUP BY, which doesn't work for aggregates. So, I trick the annotate() function by creating my own class that pretends to be an aggregate, but really just dumps SQL. Do not use for user inputted data.
SELECT "businesses_business"."id", "businesses_business"."user_id", "businesses_business"."slug", "businesses_business"."name", "businesses_business"."business_type_id", "businesses_business"."street", "businesses_business"."additional", "businesses_business"."town", "businesses_business"."county", "businesses_business"."postcode_id", "businesses_business"."phone_number", "businesses_business"."fax_number", "businesses_business"."email", "businesses_business"."website", "businesses_business"."strapline", "businesses_business"."description", "businesses_business"."active", "businesses_business"."deleted", "businesses_business"."activation_code", "businesses_business"."created_on", "businesses_business"."account_confirmed", "businesses_business"."preview", "businesses_business"."paid", "businesses_business"."last_updated", "businesses_business"."copy_id", "businesses_business"."logo", "businesses_business"."security_reference", "businesses_business"."video", "businesses_business"."embed_url", "businesses_busine
<html>
<head>
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootswatch/3.0.3/cosmo/bootstrap.min.css">
</head>
<body>
<div id="container" class="container">
</div>
<script asrc="http://code.jquery.com/jquery-2.0.3.min.js"></script>
<script asrc="//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
<html>
<head>
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootswatch/3.0.3/cosmo/bootstrap.min.css">
</head>
<body>
<div id="container" class="container">
</div>
<script asrc="http://code.jquery.com/jquery-2.0.3.min.js"></script>
<script asrc="//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>