Skip to content

Instantly share code, notes, and snippets.

@lrvick
lrvick / sync-repos.sh
Last active July 25, 2022 06:15
Locally sync all Github repos & branches for user/org
#!/bin/bash
USER='lrvick'
ACCESS_TOKEN='YOUR_TOKEN_HERE'
API="https://api.github.com/orgs"
ENDPOINT="/${USER}/repos?per_page=200&access_token=${ACCESS_TOKEN}"
FOLDER='/home/lrvick/Sources'
REPO_NAMES=$( curl -s "${API}${ENDPOINT}" | \
grep \"name\" | sed 's/ \"name\": \"\(.*\)\",/\1/g'
@lrvick
lrvick / pig.js
Created April 30, 2014 16:53
Pig Latin Translator / Mocha example
var assert = require("assert")
var pigLatinTrans = function(text){
var pigText = text.replace(/[A-Za-z]+/gi,function(word){
var letters = word.split('')
var firstLetter = letters.shift()
if (firstLetter.toUpperCase() == firstLetter){
letters.push(firstLetter.toLowerCase())
letters[0] = letters[0].toUpperCase()
letters.push(firstLetter)
@lrvick
lrvick / app.js
Last active April 26, 2024 13:06
AngularJS credit card form with validation
// MIT: http://opensource.org/licenses/MIT
angular.module('app', []);
angular.module('app').controller
( 'MainCtrl'
, function($scope,$locale) {
$scope.currentYear = new Date().getFullYear()
$scope.currentMonth = new Date().getMonth() + 1
$scope.months = $locale.DATETIME_FORMATS.MONTH
@lrvick
lrvick / angular-socket.js
Created October 18, 2013 15:53
AngularJS service to connect to a websocket server (SockJS or pure WebSocket), manage reconnection, and allow the rest of the angular application to easily send/retrieve data from an open socket.
//TODO: make this a module
/**
* # SockJS socket management service
*
* Creates SockJS socket connection to server, re-connects on disconnection,
* and exports hooks to map handlers for various data interactions.
*
*/
angular.module('app').factory
@lrvick
lrvick / sort.js
Created October 17, 2013 20:18
Comparison of integer sorting algorithms in JavaScript
function jsSort(items){
var steps = 0
items.sort(function(a,b){
steps = steps+1
return a-b
})
return [items,steps]
}
@lrvick
lrvick / angular-logging.js
Last active February 3, 2021 04:26
AngularJS - Global logging override module. Enables you to write custom hooks to intercept, display, manipulate or re-transfer $log logs as you see fit. Also allows one to easily globally disable logs application wide, useful for production.
/**
* # Global logging module
*
* This is a global set of hooks that catch all $log messages sent out by the
* application. Currently they are simply passed off directly to console.log
* but this could be updated later to allow them to be stored locally, sent to
* a server etc.
*/
angular.module('ngLogging', [])
@lrvick
lrvick / .bowerrc
Created June 18, 2013 18:32
grunt-bower-task failing testcase Fails to copy modules from a Git repository with no bower package file.
{
"directory": "app/lib"
}
@lrvick
lrvick / fetch.js
Created May 2, 2013 15:08
Angular socket data caching/retrieval pattern check service for cached data else check local storage for data (optional) else make socket request for data (optional) then create listener for data from socket save obtained data to service save obtained data to localStorage (optional)
/**
* ## Fetch Data
*
* @param {String} key Data source to request
* @param {Boolean} use_storage set/get from localStorage
* @param {Object} request JSON formatted request for server
*
* @return {Object} a $q.defer().promise for the data requested
*
*/
@lrvick
lrvick / controllers.js
Last active December 14, 2015 19:09
Websocket AngularJS controller/services pattern
app.controller( 'AppCtrl', function ($scope, socket) {
socket.onopen(
function(){
console.log('Socket is connected :D')
}
)
socket.onclose(
function(){
console.log('Socket is disconnected :(')
}
async.waterfall [
(cb) ->
if user?.id
models.execute User, 'find', user.id, (err,user) ->
cb null, err, userModel
else
cb null, null, null
(err, userModel, cb) ->