Skip to content

Instantly share code, notes, and snippets.

View deleteman's full-sized avatar

Fernando Doglio deleteman

View GitHub Profile
@deleteman
deleteman / infinite_blinking_jquery.js
Created April 13, 2012 21:50
Infinite recursive blinking effect donde in JQuery
// I was in a hurry, so I didn't look for it on internet... thought I would share it :P
function toggleMsg(callback) {
$("#my_block").fadeToggle(
'slow', function() {
toggleMsg(callback)
});
}
toggleMsg(toggleMsg); //It's infinite!
@deleteman
deleteman / gist:51bc77ae865f38fa57a5
Created May 31, 2014 15:44
Url specific pre processors on Vatican.js
//Current solution
var Vatican = require("vatican");
var app = new Vatican();
app.preprocessor(function(req, res, next) {
if(req.url.indexOf("/auth/unregister") != -1) {
//do the checks
if(error) next(error)
}
@deleteman
deleteman / gist:2f53841314bec8ef6480
Created July 17, 2014 20:16
Download and upload into S3
function getScreenshots(urls) {
console.log("Getting screenshots for: " + urls.length + " files")
var client = knox.createClient({
key: config.s3.key,
secret: config.s3.secret,
bucket: config.s3.bucket
});
return function(callback) {
async.mapSeries(urls, function(url, cb) {
console.log("Getting: " + url)
@deleteman
deleteman / event-loops.js
Created May 9, 2018 04:43
Event loop showcase
const request = require("request"),
fibonacci = require("fibonacci"),
fs = require("fs");
process.nextTick(() => {
process.stdout.write("NT #1\n");
});
fs.readFile("./index.js", (err, data) => {
@deleteman
deleteman / worker-threads-sample1.js
Last active June 29, 2018 08:11
worker-threads-sample1
const { Worker, isMainThread, workerData } = require('worker_threads');
let currentVal = 0;
let intervals = [100,1000, 500]
function counter(id, i){
console.log("[", id, "]", i)
return i;
}
@deleteman
deleteman / worker-threads-sample2.js
Created June 22, 2018 05:24
Example of using worker threads for heavy computation while performing async operation
const { Worker, isMainThread, parentPort, workerData } = require('worker_threads');
const request = require("request");
if(isMainThread) {
console.log("This is the main thread")
let w = new Worker(__filename, {workerData: null});
w.on('message', (msg) => { //A message from the worker!
console.log("First value is: ", msg.val);
module.exports = {
firstValue: null,
sort: function(list) {
let sorted = list.sort();
this.firstValue = sorted[0]
}
}
const { Worker, isMainThread, parentPort, workerData } = require('worker_threads');
const request = require("request");
function startWorker(path, cb) {
let w = new Worker(path, {workerData: null});
w.on('message', (msg) => {
cb(null, msg)
})
w.on('error', cb);
w.on('exit', (code) => {
const { parentPort } = require('worker_threads');
function random(min, max) {
return Math.random() * (max - min) + min
}
const sorter = require("./test2-worker");
const start = Date.now()
let bigList = Array(1000000).fill().map( (_) => random(1,10000))
@deleteman
deleteman / communication.js
Created October 26, 2018 13:51
Pusher's Channels interaction
const PusherServer = require('pusher');
const PusherClient = require('pusher-js');
const express = require('express');
const router = express.Router();
const config = require("config");
const pusherServer = new PusherServer(config.get('pusher.config'));
const pusherClient = new PusherClient(config.get('pusher.config.key'), {
cluster: config.get('pusher.config.cluster')