Skip to content

Instantly share code, notes, and snippets.

View alesanabriav's full-sized avatar
🗺️

Alejandro Sanabria alesanabriav

🗺️
View GitHub Profile
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://APP_PRIVATE_IP_ADDRESS:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
'use strict';
var mysqlBackup = require('./mysql-backup');
var schedule = require('node-schedule');
schedule.scheduleJob({ hour: 22, minute: 0 }, mysqlBackup);
@alesanabriav
alesanabriav / iptables.sh
Last active August 29, 2015 14:26 — forked from sandcastle/iptables.sh
Default firewall configuration using iptables for a fresh Ubuntu 14.04 server.
#!/bin/sh -x
# ==================================
# iptables default configuration script
#
# - this locks down our servers port access
# ==================================
# install fail2ban
sudo apt-get update

Advices for you reader coder

Simpler is usually better

Don't be clever.

Don't try to write complicated code on purpose to show how smart you are.

SRP (single responsibility principle)

"Clean Code" by Uncle Bob

'use strict';
var watchify = require('watchify');
var browserify = require('browserify');
var gulp = require('gulp');
var source = require('vinyl-source-stream');
var buffer = require('vinyl-buffer');
var gutil = require('gulp-util');
var sourcemaps = require('gulp-sourcemaps');
var lodash = require('lodash');
var reactify = require('reactify');
@alesanabriav
alesanabriav / api.js
Last active July 30, 2016 22:05
quick api with express & mongoose.
'use strict';
import _ from 'lodash';
export default function api(model) {
return {
all(req, res) {
let populate = req.query.populate ? req.query.populate : '';
let find = req.query.find ? JSON.parse(req.query.find) : {};
let sort = req.query.order ? JSON.parse(req.query.order) : {};
function observable(value) {
let listeners = [];
let notify = (newValue) => listeners.forEach((listener) => listener(newValue));
function accessor(newValue) {
if(arguments.length && newValue !== value) {
value = newValue;
notify(newValue);
}
@alesanabriav
alesanabriav / js-observables-binding.md
Created June 23, 2016 02:24 — forked from austinhyde/js-observables-binding.md
Vanilla JavaScript Data Binding

Observables

You don't really need a framework or fancy cutting-edge JavaScript features to do two-way data binding. Let's start basic - first and foremost, you need a way to tell when data changes. Traditionally, this is done via an Observer pattern, but a full-blown implementation of that is a little clunky for nice, lightweight JavaScript. So, if native getters/setters are out, the only mechanism we have are accessors:

var n = 5;
function getN() { return n; }
function setN(newN) { n = newN; }

console.log(getN()); // 5

setN(10);

var fs = require('fs');
var exec = require('child_process').exec;
var Promise = require('promise');
var folder = __dirname + '/admin-react/experiences/';
fs
.readdir(folder, function(err, files) {
files.map(function(file) {
@alesanabriav
alesanabriav / snippets.cson
Created June 28, 2016 15:59
snippet react component
'.source.js':
'React component':
'prefix': 'rc'
'body': """
'use strict';
import React from 'React';
export default React.createClass({
render() {
return (