Skip to content

Instantly share code, notes, and snippets.

@tr4g
tr4g / sample_Controller.java
Last active Sep 1, 2015
el juego de la verda
View sample_Controller.java
package sample;
import javafx.scene.control.Button;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import java.util.Random;
public class Controller {
public Button nop;
@tr4g
tr4g / hook.md
Last active Sep 4, 2015
Hook para automatizar publicación de repositorio Git en un servidor web
View hook.md

El siguiente archivo recibirá las peticiones desde el proveedor del repositorio git (como github, gitlab o bitbucket)

Para que todo esto funcione, la cuenta de usuario desde la que se ejecuten los scripts debe usar SSH key hacia el repo.

gitHook.php

<?php
/**
 * gitHook.php
@tr4g
tr4g / s3.md
Last active Sep 4, 2015
Usando s3 sync
View s3.md

Cómo usar el CLI de AWS para sincronizar una carpeta local con un bucket de S3:

  • Instalar el CLI de AWS (está hecho en Python, se instala facilito con pip, después de instalar pip con easy_install)

  • Configurar el entorno usando aws configure (pedirá datos de IAM q se crean en dos tiempos en la página de AWS)

  • Crear un bucket en S3 en la página de AWS y no darle ningún permiso en particular

  • Al usuario de IAM hay que darle permisos sobre el Bucket para que pueda leer, escribir, borrar (ver mi gist de IAM)

  • Listo para sincronizar usando aws s3 sync . s3//blah

Formas de uso:

@tr4g
tr4g / iam.md
Last active Sep 4, 2015
Dar permiso a usuario de IAM que vea un Bucket
View iam.md

Aquí el Bucket no tiene ningún permiso y por lo tanto esta policy de IAM será la que los dará.

Con esto le estoy dando sólo permisos de Listar(List), Descargar(Get) y Subir(Put) a un Bucket particular llamado sebpaldos y sus subcarpetas.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
@tr4g
tr4g / gist:b06bd53898b3001cce82
Created Aug 17, 2015
configuracion nginx server interno global
View gist:b06bd53898b3001cce82
server {
root /var/www/cloud;
server_name default;
location / {
#con esto funcionan URLs amigables y formato index.php/asdads/dfdsf
try_files $uri $uri/ /index.php?$query_string;
}
@tr4g
tr4g / gist:e489fffe87d5e5620333
Created Aug 12, 2015
borrar output de un curl
View gist:e489fffe87d5e5620333
añadirle esta línea al archivo, esto lo usé en mi script llamable desde bash
esto borrará las últimas 3 líneas impresas en el terminal
printf "\r\e[K\e[1A\e[K\e[1A\e[K">> index.html
View gist:97e594c651751756ccf6
// Place your key bindings in this file to overwrite the defaults
[
{ "key": "ctrl+r", "command": "workbench.action.gotoSymbol",
"when": "editorFocus" },
{ "key": "ctrl+p", "command": "workbench.action.showCommands" },
{ "key": "ctrl+o", "command": "workbench.action.quickOpen" },
{ "key": "shift+alt+c", "command": "editor.action.commentLine",
"when": "editorTextFocus" },
{ "key": "ctrl+shift+c", "command": "editor.action.commentLine",
@tr4g
tr4g / gist:59c7931c585a734bfa71
Last active Sep 4, 2015
Cómo compilar node-opencv
View gist:59c7931c585a734bfa71

Copia exacta, a modo de respaldo, del tutorial de Jason Dalton

So for a week now i've been trying to get node-opencv to work on my Mac. I kept getting the dyld: lazy symbol binding failed error when I tried to run the examples. This is how i solved it on my machine. So i'm on OSX 10.8.5.

The first step was to get the latest xcode and xcode command line tools for me this was version 5.1. Next setp is to download the latest cmake. The version I download was 3.0.1. Now I used brew to install opencv. Here are the steps.

@tr4g
tr4g / gist:f82f5da6115226ab179c
Last active Sep 4, 2015
Usar kdiff3 como mergetool en Git
View gist:f82f5da6115226ab179c
git config --global mergetool.kdiff3.path "/Applications/kdiff3.app/Contents/MacOS/kdiff3"
git config --global merge.tool kdiff3
@tr4g
tr4g / gist:dde4dd712be4d776b3db
Created Jun 15, 2015
Para que no haya página web en SailsJS
View gist:dde4dd712be4d776b3db
El problema:
SailsJS es tanto un servidor de APIs como un servidor Web, por lo tanto soporta rutas que son controladores JSON y rutas que son simples archivos HTML, y sólo las primeras se pueden controlar mediante reglas. Esto significa que si un atacante se pone a probar comandos en la API, eventualmente va a recibir códigos 200 o 404, lo que le facilitará pruebas de fuerza bruta. Debería haber una forma de desactivar totalmente el comportamiento de "servidor web" y que solamente retorne respuestas JSON y códigos de error relacionados al uso de la API.
Solución rápida:
Eliminar el contenido del archivo "layout.js" dentro de "views".
Con eso no habrá nunca HTML, pero igual se eviarán códigos 200 y 404 para las rutas que no sean de la API.
Solución larga:
Crear alguna policy o middleware que envíe siempre el mismo código de error (400?) cuando las rutas no sean de la API.
Con eso se podría engañar a un posible atacante dificutándole el abuso de las rutas.