Skip to content

Instantly share code, notes, and snippets.

@artjomb
artjomb / gist:a84e915f05b03cf19bdc
Created November 25, 2014 14:00
nightmareDownload.js
var useOldDownloadWay = false;
var Nightmare = require('nightmare');
new Nightmare()
.goto('http://eprint.iacr.org/2004/152')
.evaluate(function ev(old){
var el = document.querySelector("[href*='.pdf']");
var xhr = new XMLHttpRequest();
xhr.open("GET", el.href, false);
if (old) {
@bvaughn
bvaughn / overview-for-angular-apps-with-roles-and-permissions.md
Last active April 28, 2017 11:51
RE: Reddit Angular JS question "Advice on separating the logical parts of an application"

This gist is in response to a question asked on the Reddit Angular JS forum about how to structure an Angular app with roles and permissions.

There are many ways to approach this, but I'll share one that I've used before and maybe it will give you an idea. I'd combine all of the above into a single app and control who gets to see what using permissions. There are a few components to this approach...

A local session service

First off I'd advise creating some sort of local session management service. This should be able to track whether you have an authenticated user and- if so- what types of permissions that user has. (Lots of ways to manage permissions. I'll assume your user object has either a 'role' enum or something simple like an array of string permissions.) You could roll your own session service or you could check out something like satellizer.

Let's assume yo

@macabreb0b
macabreb0b / meetupMassUnsubscribe
Last active October 24, 2022 21:18
Unsubscribe from all group notifications on Meetup.com
// Tired of getting Meetup.com notifications? Me too.
// 1. Navigate to: http://www.meetup.com/account/comm/ (you must be logged in!)
// 2. Open your browser's console, and paste in the script below:
$('.commSettings').each(function(idx, item) {var $item = $(item);var boardId = $item.attr("id").split('_')[1];var url = $item.children('form').attr('action');var params = {evRemind:1,mailing_list_status:0, submitButton:'Save Settings', submit:'submit'};params['board_' + boardId] = boardId;$.ajax({data: params, url: url, type: 'post'});});$('.generalEmailSettings').find('input[type="checkbox"]').prop('checked', false);$('.generalEmailSettings').find('input[type="submit"]').click();
@janoskk
janoskk / couchclone.sh
Created May 28, 2014 22:27
Create (if necessary) and replicate all databases from a couchdb server to another one
#!/bin/sh
#
# Janos Kasza (@janoskk)
#
# Creates (if necessary) and replicates all databases from a couchdb server to another one
#
if [ -z "$2" ]; then
cat <<EOF
Usage: $0 <sourceUrl> <targetUrl>
@auser
auser / app.js
Last active January 26, 2021 01:59
angular.module('myApp',
['ngRoute', 'myApp.services', 'myApp.directives']
)
.config(function(AWSServiceProvider) {
AWSServiceProvider.setArn('arn:aws:iam::<ACCOUNT_ID>:role/google-web-role');
})
.config(function(StripeServiceProvider) {
StripeServiceProvider.setPublishableKey('pk_test_YOURKEY');
})
.config(function($routeProvider) {
var jasmineNG = {};
//set $q in your test
jasmineNG.$q = null;
//Could make similar to test a failing promise
jasmineNG.createPromiseReturningSpy = function() {
var deferred = jasmineNG.$q.defer();
// Use .andReturn to simply return a promise
var spy = jasmine.createSpy().andReturn(deferred.promise);
// Add resolve and reject functionalities
spy.andResolveWith = function(val) {
@clouddueling
clouddueling / confirm.js
Created August 14, 2013 16:57
confirm directive angularjs
directives.directive('confirmButton', function($document) {
return {
restrict: 'A',
link: function(scope, element, attrs) {
var buttonId, html, message, nope, title, yep;
buttonId = Math.floor(Math.random() * 10000000000);
attrs.buttonId = buttonId;
@jed
jed / how-to-set-up-stress-free-ssl-on-os-x.md
Last active May 30, 2026 13:44
How to set up stress-free SSL on an OS X development machine

How to set up stress-free SSL on an OS X development machine

One of the best ways to reduce complexity (read: stress) in web development is to minimize the differences between your development and production environments. After being frustrated by attempts to unify the approach to SSL on my local machine and in production, I searched for a workflow that would make the protocol invisible to me between all environments.

Most workflows make the following compromises:

  • Use HTTPS in production but HTTP locally. This is annoying because it makes the environments inconsistent, and the protocol choices leak up into the stack. For example, your web application needs to understand the underlying protocol when using the secure flag for cookies. If you don't get this right, your HTTP development server won't be able to read the cookies it writes, or worse, your HTTPS production server could pass sensitive cookies over an insecure connection.

  • Use production SSL certificates locally. This is annoying

@harperreed
harperreed / DownloadStationAPI.py
Last active September 10, 2024 20:07
example script to sync/download/etc put.io downloads to your synology download station
import time
import requests
import json
class DownloadStationAPI():
def __init__(self, host=None, username=None, password=None):
self.name = 'DownloadStation'
@niquola
niquola / controller.coffee
Last active September 22, 2023 21:10
Progress indication in angularjs, while promises :)
MyController = ($scope, $resource)->
$scope.items = $resource.query()