Skip to content

Instantly share code, notes, and snippets.

View JoshMock's full-sized avatar

Josh Mock JoshMock

View GitHub Profile
@JoshMock
JoshMock / backbone-socket-event-server.js
Created November 27, 2013 17:57
Fire Backbone model/collection events via websockets using Socket.io. Client code depends on RequireJS for AMD and Cocktail (https://github.com/onsi/cocktail) to apply websocket functionality as a mixin. Assumes views are listening to model/collection changes and updating the DOM accordingly. Some cruft may be specific to the project I'm working…
module.exports = function (io) {
"use strict";
// set up websockets
io.sockets.on('connection', function (socket) {
var eventTypes = [
'Backbone.Model.change',
'Backbone.Collection.add',
'Backbone.Collection.remove',
'Backbone.Collection.sort'
function myFn1 (arg1) {
var var1 = doSomethingWith(arg1), // set breakpoint here
var2 = doSomethingElseWith(var1);
_.each([1, 2, 3], function (val) {
doAnotherThingWth(var2); // var2 is still available in dev tools here, but var1 is not
})
};
@JoshMock
JoshMock / gist:9842601
Created March 28, 2014 20:44
keybase.md
### Keybase proof
I hereby claim:
* I am joshmock on github.
* I am joshmock (https://keybase.io/joshmock) on keybase.
* I have a public key whose fingerprint is 7DE2 6FB1 0244 C3B7 5796 6A96 A0D0 224E 2C14 6AE2
To claim this, I am signing this object:
@JoshMock
JoshMock / unused_functions.sh
Created April 16, 2014 18:52
Unused functions
# A terrible attempt at listing function names that appear to not be used. Lots
# of false positives, especially for functions whose names are used as
# callbacks into other functions.
codepath=/path/to/javascript
tmpfile=/tmp/allfunctions
tmpfile2=/tmp/filteredfunctions
# search for function names
ack --type=js --output='$1' -h "(\w{3,})\:\s*function" $codepath > $tmpfile
@JoshMock
JoshMock / username.js
Created June 6, 2014 16:31
Get process's username
function getUsername () {
var homeDir = process.env['HOME'].split('/');
return homeDir[homeDir.length - 1];
}
(defn calc-height-step [height current-step]
(if (= 1 (mod current-step 2))
(* height 2)
(+ height 1)))
(defn calc-height []
(def steps (Integer/parseInt (read-line)))
(println (reduce calc-height-step 1 (range 1 (+ steps 1)))))
(def t (Integer/parseInt (read-line)))
@JoshMock
JoshMock / startup_mailer
Created October 27, 2014 15:21
Get an informative email when your Raspberry Pi starts up
#!/usr/bin/python
# put this in in a file in your Pi's /etc/init.d/ directory
import urllib2
import subprocess
import smtplib
from email.mime.text import MIMEText
import datetime
@JoshMock
JoshMock / index.html
Last active July 9, 2016 10:51
Infinite scrolling CompositeView
<!DOCTYPE HTML>
<html>
<head>
<style type="text/css" media="all">
#main {
width: 300px;
height: 400px;
overflow: scroll;
}
@JoshMock
JoshMock / .babelrc
Last active December 2, 2015 16:45
Webpack + ES6 + JSX using Babel 6
{
"presets": ["es2015", "react"],
"ignore": ["node_modules"]
}
@JoshMock
JoshMock / README.md
Last active December 7, 2015 20:59
How to generate random tweet strings using your Twitter archive
  1. Log into Twitter and go to your settings
  2. Request your Twitter archive
  3. Download and unzip the archive file
  4. Put tweets.csv in the same directory as this gist's package.json and markov-tweets.js files
  5. Run npm install to install dependencies
  6. Run node markov-tweets.js to generate some strings!

Running the script may take a few seconds depending on the size of your archive CSV. When it's done it will log out 20 random strings based on the Markov chain generated.