ssh reverso

November 11th, 2015

Esto es muy útil cuando tenemos un linux con ip privada y queremos accederlo desde afuera de una nat o router. En el servidor bateado debemos poner:
ssh -R 19999:localhost:22 root@(IP del server) -p (puerto del server)

Y luego en nuestro servidor real (con ip pública) sólo hacemos:
ssh localhost -p 19999

Y listo. Para evitar las contraseñas lean mi post de public key.

Saludos a todossss

Compilando el kernel at rpm’s way

September 15th, 2015

Bueno esto está muy tratado en varios post, pero justo necesito agregar un módulo y me di cuenta que en centos (y fedora) hay que instalar el src.rpm, acostumbrado a mi viejo slackware y al linux tradicional me empecé a fijar como hacerlo. Y bueno les dejo acá los comandos sin explicar mucho, en mi caso necesitaba agregar el módulo crc32c. Vamos!

Read the rest of this entry »

Trigger de intersección calles en Open Street Maps

August 20th, 2015

Hace unos años bastante extenso sobre intersecciones que se llamaba un poco de postigs, en este caso voy a intentar hacer lo mismo pero usando OSM, espero lo disfruten, a por ello!!!.

Read the rest of this entry »

Primer lenguaje de programación

November 18th, 2014

Hace poco tuve un intercambio de ideas con estudiantes de sistemas sobre qué lenguaje de programación era el mejor para empezar a programar. Ellos defendían fuertemente python, mientras que yo por el contrario, defendía pascal. Y pensé en hacerles un post pequeño para explicarles a todos el porqué. En pascal cuesta mucho programar mal por su fuerte estructura, y listo. Sólo eso. Los que piensen en que perderán tiempo usando pascal, están equivocados. En el transcurso de sus vidas, quienes se dedican a sistemas, deben saber al menos 10 lenguajes de programación al mismo tiempo. Yo en este mismo momento programo en, C, C++, Php, bash, perl, java, vb6, R. y seguro que alguno más. Y seguramente, dentro de 10 años habrá otros lenguajes. Así que a fin de cuentas, todos los lengaujes de programación son expiables en el tiempo.

Read the rest of this entry »

6 Reglas para programar correctamente en java

November 13th, 2014

Bueno, últimamente me tocó trabajar con código tan, pero tan mal, que decidí hacer un post sobre como codificar bien (es válido para otros lenguajes OO) con la esperanza que me pase menos. Hace poco me encontré en una esquina con mi amigo de la facultad Ariel Palma, sólo para sacar el cuero a la gente que en lugar de hacer una clase bien utiliza parche sobre parche. A toda esta gente les digo “Lo barato, cuesta caro”. El tiempo que te tomará escribir bien el código es ínfimo comparado al que te tomará hacer un debug un par de meses después. No me da el tiempo de hablar de conceptos como acoplamiento y cohesión, para quien sabe lo que es no hace falta que lea esto. Es simplemente para que programadores con poco nivel entiendan como programar decentemente.

Read the rest of this entry »

Redireccionar puertos

August 29th, 2014

Buenas gente, acá les dejo un mini script para redireccionar puertos a otra ip. Para que funcione primero tiene que hacer:
sysctl net.ipv4.ip_forward=1
Acá va el script:

#!/bin/bash
[ $# -eq 0 ] && { echo "Usage: $0 puertoPrincipal puertoSecundario IP"; exit 1; }
iptables -t nat -A PREROUTING -p tcp --dport $1 -j DNAT --to-destination $3:$1
iptables -A FORWARD -p tcp -d $3 --dport $1 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A PREROUTING -p udp --dport $1 -j DNAT --to-destination $3:$1
iptables -A FORWARD -p udp -d $3 --dport $1 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A PREROUTING -p udp --dport $2 -j DNAT --to-destination $3:$2
iptables -A FORWARD -p udp -d $3 --dport $2 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
exit 0

Cambiar SRT a xml con inicio y duración

August 22nd, 2014

Bueno, se me presentaron dos problemas:
1) pasar subtítulos SRT a xml y
2) pasar el inicio – fin de los subs por inicio y duración

Funciona así, uno pone el SRT en el index.html y devuelve un xml. Hubo un problema en windows por lo cual cambie el encoding.

Read the rest of this entry »

Postgresql Conocer el tamaño de la DB y el total

August 22nd, 2014
SELECT pg_database.datname, pg_database_size(pg_database.datname), pg_size_pretty(pg_database_size(pg_database.datname)) FROM pg_database ORDER BY pg_database_size DESC;

SELECT pg_size_pretty(sum(pg_database_size(pg_database.datname))::bigint) FROM pg_database;

A buen entendedor pocas palabras 😉

Resetear el password de chamilo

May 8th, 2013

Me extrañó lo poco documentado que está esto, y lo sencillo que es. Pero bueno este post les evitará browsear en el código. Hay 3 posibilidades:

Texto plano)
update user set password = ‘051195’ where user_id =1;
MD5)
update user set password = md5(‘051195’) where user_id =1;
Sha1) Obvio que está era la mía
update user set password = sha1(‘051195’) where user_id =1;

Muy sencillo. Saludos a todos.

Google storage

April 10th, 2013

Hola a todos, nos estabamos quedando sin espacio de disco para una empresa editorial para la que trabajo, y buscando algún servicio de almacenamiento di con GoogleStorage, realmente es muy barato y nos deja almacenar todo lo que querramos. Una vez que instalamos la aplicación sólo tenemos que crear la nueva carpeta:

gsutil mb gs://nuevacarpeta

y subir los archivos:

gsutil cp -R -n -c * gs://nuevacarpeta/

A mi me sirvió para dejar nuestros discos a un 90% de su capacidad retirando proyectos que ya no necesitaremos. Espero les sirva a ustedes, yo lo recomiendo.

Saludos