Skip to content

Instantly share code, notes, and snippets.

View josephfinlayson's full-sized avatar

Joseph Finlayson josephfinlayson

View GitHub Profile
@josephfinlayson
josephfinlayson / gist:2b8967635e7bab6a4d8d
Created July 4, 2014 11:56
Google music playlist parser
artoo.scrape('tr.song-row', {
title: {sel:'td[data-col="title"] span'},
artist : { sel:'td[data-col="artist"] span'},
album : {sel:'td[data-col="album"] span'}
}, artoo.saveCsv);
// saves google music songs/playlists
@josephfinlayson
josephfinlayson / gist:a8ffcfe9719b8a562c04
Created July 29, 2014 21:21
How to use NPM module in meteor app
Package.describe({
summary: "Meteor version of footballbot"
});
Npm.depends({'footballbot':"1.2.0"});
Package.on_use(function (api, where) {
api.add_files('server/fbot.js', ['server']);
});
@josephfinlayson
josephfinlayson / gruntfile
Created September 9, 2014 20:06
gfilediff
removed added
// Generated on 2014-09-09 using generator-angular-fullstack 2.0.13
'use strict';
module.exports = function (grunt) {
var localConfig;
try {
localConfig = require('./server/config/local.env');
@josephfinlayson
josephfinlayson / gist:4e9325465ccabf654ad7
Last active August 28, 2023 14:03
python script to access tesco API
import urllib
import json
import datetime
now = datetime.datetime.now()
outputFilename = 'tescoproduct_' + now.strftime("%Y%m%d") + '.csv'
def LoginAndGetSessionKey():
@josephfinlayson
josephfinlayson / gist:f912cde04b0fdfb25710
Last active August 29, 2015 14:06
Angular & textangular typeahead example:
//I've changed the typeahead to iterate over an array - this is the __only__ way it'll work with textangular,
// Textangular does string manipulation upon select, and cannot work with objects
//viewvalue is http://stackoverflow.com/questions/17837007/in-the-angularjs-bootstrapui-typeahead-whats-viewvalue
// ng-click should probably be typeahead-on-select()
<input data-text-angular data-ng-model="field.name" data-ng-click="itemClicked($index)" name="{{field.caption}}" data-ta-target-toolbars='toolbar' typeahead='option for option in getOptions(field.options) | filter:$viewValue'></input>
//this converts the object to an array, should be self explanatory.
// It's a really good idea to keep you logic _out of_ the html - this increases testability
$scope.getOptions = function(options) {
var arr = []
'use strict';
//gulp plugins
var gulp = require('gulp'),
inject = require('gulp-inject'),
sourcemaps = require('gulp-sourcemaps'),
coffee = require('gulp-coffee'),
sass = require('gulp-sass'),
prefix = require('gulp-autoprefixer'),
wiredep = require('wiredep').stream,
argv = require('yargs').argv,
@josephfinlayson
josephfinlayson / ngProgressUIRouter
Created November 7, 2014 15:15
Pattern to combine ngProgress and ui router
'use strict';
angular.module('something', [
'deps'
])
.config(function($locationProvider) {
$locationProvider.html5Mode(true);
})
.config(function($provide) {
return $provide.decorator('$uiViewScroll', function($delegate, $window) {
return function(uiViewElement) {
//Array of objects
{
"languages": [{
"id": "cmn",
"main_name": "Chinese",
"sub_name": "Mandarin",
"native_name": "普通话",
"speakers_native": 845000000,
"speakers_native_total": 875389400,
}, {
<script type="text/javascript">
$(document).ready(function () {
var sense;
var imageSize;
var faceConfiguration;
// check platform compatibility
RealSenseInfo(['face3d'], function (info) {
if (info.IsReady == true) {
$('#info').append('<b>Platform supports Intel(R) RealSense(TM) SDK feature</b>');
@josephfinlayson
josephfinlayson / gist:cd1e4a50909935a2b827
Created March 25, 2015 10:24
Welcome to the function factory
// private: create methods for each config to get/set
function createConfig(configObj, providerObj, platformPath) {
forEach(configObj, function(value, namespace) {
if (angular.isObject(configObj[namespace])) {
// recursively drill down the config object so we can create a method for each one
providerObj[namespace] = {};
createConfig(configObj[namespace], providerObj[namespace], platformPath + '.' + namespace);