Skip to content

Instantly share code, notes, and snippets.

View feliperohdee's full-sized avatar
🚀
Going High

Felipe Rohde feliperohdee

🚀
Going High
View GitHub Profile
package main
import (
"bytes"
"encoding/base64"
"errors"
"github.com/aws/aws-lambda-go/lambda"
"github.com/disintegration/imaging"
"github.com/nickalie/go-webpbin"
"io/ioutil"
@feliperohdee
feliperohdee / GraphQLMux.js
Last active January 31, 2018 12:18
Multiplex many GraphQL requests
/*
Usage:
const http = json => fetch('http://yourGraphQLEndpoint.com', {
method: 'POST',
cache: 'no-store',
headers: {
'content-type': 'application/json'
},
body: JSON.stringify(json)
@feliperohdee
feliperohdee / Events.js
Created January 24, 2018 19:23
cool events
import filter from 'lodash/filter';
import forEach from 'lodash/forEach';
import isFunction from 'lodash/isFunction';
import isString from 'lodash/isString';
export default class Events {
constructor(persist) {
this._fns = [];
}
@feliperohdee
feliperohdee / getSet.js
Created January 21, 2018 20:11
safe get/set properties
export function get(fn, defaultValue = null, args) {
try {
const result = fn(args);
return result !== undefined && result !== null ? result : defaultValue;
} catch (e) {
return defaultValue;
}
}
@feliperohdee
feliperohdee / object.js
Last active November 30, 2017 13:01
Safe object manipulators and observable pattern store
// safe object getter setter
// get({}, ['prop1', 'prop2], [])
// set({}, ['prop1', 'prop2], [])
const isString = path => typeof path === 'string';
export function get(object, path, defaultValue = null) {
const string = isString(path);
const length = path.length;
@feliperohdee
feliperohdee / geometry.js
Last active September 2, 2017 17:21
Set of useful analytic geometry equations I usually use
import _ from 'lodash';
export const degToRad = x => {
return x / 180 * Math.PI;
};
export const radToDeg = x => {
return x / Math.PI * 180;
};
@feliperohdee
feliperohdee / md.js
Created June 21, 2017 23:51
lightweight MD like parser
const regex = {
headline: /^(#{1,6})([^#\n]+)$/m,
hr: /^(?:([*\-_] ?)+)\1\1$/gm,
style: /(?:([*_~]{1,3}))([^*_~\n]+[^*_~\s])\1/g
};
export default function(str) {
let stra;
/* headlines */
@feliperohdee
feliperohdee / u1.RANDOM-INCREMENTAL:THRESHOLD=1
Created June 16, 2017 16:24
movielens recSys THRESHOLD=1
{"user":1,"assertiveSize":8,"assertiveRatio":7.207,"recsSize":138,"testSize":111}
{"user":2,"assertiveSize":2,"assertiveRatio":10,"recsSize":149,"testSize":20}
{"user":3,"assertiveSize":0,"assertiveRatio":0,"recsSize":150,"testSize":14}
{"user":4,"assertiveSize":1,"assertiveRatio":10,"recsSize":151,"testSize":10}
{"user":5,"assertiveSize":9,"assertiveRatio":17.308,"recsSize":145,"testSize":52}
{"user":6,"assertiveSize":9,"assertiveRatio":10.465,"recsSize":143,"testSize":86}
{"user":7,"assertiveSize":15,"assertiveRatio":8.427,"recsSize":127,"testSize":178}
{"user":8,"assertiveSize":3,"assertiveRatio":11.538,"recsSize":148,"testSize":26}
{"user":9,"assertiveSize":1,"assertiveRatio":10,"recsSize":150,"testSize":10}
{"user":10,"assertiveSize":9,"assertiveRatio":10,"recsSize":144,"testSize":90}
@feliperohdee
feliperohdee / u1.RANDOM-INCREMENTAL:THRESHOLD=2
Last active June 16, 2017 16:22
movielens recSys THRESHOLD=2
{"user":1,"assertiveSize":8,"assertiveRatio":"10.13%","recsSize":138,"testSize":79}
{"user":2,"assertiveSize":1,"assertiveRatio":"8.33%","recsSize":149,"testSize":12}
{"user":3,"assertiveSize":0,"assertiveRatio":"0.00%","recsSize":150,"testSize":5}
{"user":4,"assertiveSize":0,"assertiveRatio":"0.00%","recsSize":151,"testSize":8}
{"user":5,"assertiveSize":2,"assertiveRatio":"8.00%","recsSize":145,"testSize":25}
{"user":6,"assertiveSize":7,"assertiveRatio":"10.94%","recsSize":143,"testSize":64}
{"user":7,"assertiveSize":13,"assertiveRatio":"9.63%","recsSize":127,"testSize":135}
{"user":8,"assertiveSize":2,"assertiveRatio":"9.09%","recsSize":148,"testSize":22}
{"user":9,"assertiveSize":1,"assertiveRatio":"11.11%","recsSize":150,"testSize":9}
{"user":10,"assertiveSize":8,"assertiveRatio":"9.76%","recsSize":144,"testSize":82}

Hey man!

I just have created a small POC (proof of concept) of a simple API to create scheduled triggers and receive postbacks with their relative payloads. I'll explain how it works and afterwards, I want to heard your opinion, ok?

The API is pretty simple and straighforward,

	//resources
	POST https://apis.smallorange.co/cron/triggers
	PUT https://apis.smallorange.co/cron/triggers/:id