Skip to content

Instantly share code, notes, and snippets.

View BerkeleyTrue's full-sized avatar
💭
Baby Yoda is my spirit animal

Berkeley Martinez BerkeleyTrue

💭
Baby Yoda is my spirit animal
View GitHub Profile
@BerkeleyTrue
BerkeleyTrue / serializeForm.js
Created September 18, 2016 18:11
serialize a form element
export function serializeForm(form) {
const data = [].filter.call(form.elements, node => !!node.name)
.reduce((data, node) => {
data[node.name] = node.value;
return data;
}, {});
return JSON.stringify(data);
}
const logoutTime = 15* 60;
const warningTime = 14 * 60;
function createLogoutActionStream() {
return Observable.merge(
Observable.of({ type: 'showLogoutMessageWarning' }).delay(warningTime * 1000),
Observable.of({ type: 'logOut' }).delay(logoutTIme * 1000)
);
}
mouseEventStream
function(cb) {
$.ajax()
.then(() => {
// do test
cb();
});
}
var fs = require('fs');
var emailName = process.argv[2];
var percent = process.argv[3];
var emails = require('./' + emailName + '.json');
var newEmails = emails.slice((emails.length * (percent / 100)));
console.log(
'Do emails end the same? %s',
emails[emails.length - 1] === newEmails[newEmails.length -1]
);
// add the custom static method to the Loopback User model
// note the dollar sign here indicatest to the user this function
// returns an Observable
User.getPointsById$ = function getPointsById$(id) {
return Observable.create(observer => {
let isDisposed = false;
// Here we tap into mongodb method
// safe ObjectID creation
// MongoID(id: ObjectID|String) => ObjectID
// MongoDB requires id's to be of type ObjectID
@BerkeleyTrue
BerkeleyTrue / deserializer.js
Last active April 13, 2016 05:14
Free Code Camp's new deserializer
const fields = {
progressTimestamps: false,
completedChallenges: false,
challengeMap: false
};
passport.deserializeUser((id, done) => {
// We use a combineLatest here to run both of these
// database request in parallel
Observable.combineLatest(
// `findById$` notice the dolar sign?
@BerkeleyTrue
BerkeleyTrue / deserializer.js
Last active April 13, 2016 00:37
Loopback's default deserialization
passport.deserializeUser(function(id, done) {
// DB query 1:
// Find the user in the database
// This is where the largest amount of data is sent
// back form the database
self.userModel.findById(id, function(err, user) {
if (err || !user) {
return done(err, user);
}
// DB query 2:
@BerkeleyTrue
BerkeleyTrue / restart_bluetooth.sh
Created April 9, 2016 18:30 — forked from nicolasembleton/restart_bluetooth.sh
Restart Bluetooth Daemon on Mac OS X without restarting
#!/bin/bash
sudo kextunload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport
sudo kextload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport

You'll need node, npm, and bower installed globaly. As well as MongoDB set up and all the .env keys set up according to the contributing guidlines

I'd also recommend using node 4.x LTS which is what we use on our servers but I've heard it runs fine using node 5

  • NODE_ENV=development npm install
  • bower install
  • npm run once
  • npm run build
function completedChallenge(req, res, next) {
const { user, body } = req;
// mutates user object
const { alreadyCompleted } = updateUserProgress(user, body);
/ sends entire user object to database
return saveUser(req.user)
.subscribe(
() => {},
next,
function() {