lunes, noviembre 21, 2016

el amor en el post capitalismo

"¿Que tu empresa necesita que te marches por unos años al culo del mundo? No problem, te despides fácilmente y sin traumas para nadie y también fácilmente construyes nuevos vínculos. ¿Que estás en el paro por un tiempo? Pues te adaptas también fácilmente porque, piensas: mira qué bien, voy a tener tiempo para disfrutar del amor y del sexo. Si además tus amores te ayudan a mantenerte pues mejor que mejor, así ni das la lata con reivindicaciones políticas ni robas y no amenazas la propiedad privada de nadie. ¿Que entonces un días encuentras trabajo que te requiere gran parte del día? No problem, tanto tú como tu red de afectos os adaptaréis fácilmente a tu nuevo estado de “no tengo tiempo más que para un polvete al mes”. ¿Que ahora tu trabajo exige estar continuamente viajando por el mundo? Sin problemas, te construyes una red de afectos a medida."

See more at: http://www.pikaramagazine.com/2015/09/no-eres-tu-es-la-estructura-desmontando-la-poliamoria-feminista/#sthash.oWOFaKTy.dpuf

jueves, noviembre 10, 2016

Setting timezone in debian

Setting timezone in debian:

dpkg-reconfigure tzdata

el cual nos mostrará una interface ncurses para seleccionar la zona correspondiente


Digitalocean debian droplet issue with locale

The issue message when installing something with apt-get:
(maybe is the same for ubuntu, son of debian)

Can't set locale; make sure $LC_* and $LANG are correct!
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_CTYPE = "UTF-8",
LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("en_US.UTF-8").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory

SOLUTION:

edit /etc/default/locale with your locale settings, for example:

LANGUAGE=es_MX.UTF-8
LANG=es_MX.UTF-8
LC_ALL=es_MX.UTF-8
LC_TYPE=es_MX.UTF-8

save and reboot.


miércoles, noviembre 09, 2016

Digital Ocean :: Floating IPs

Entendiendo que es y para que nos puede servir.
 
"A floating IP is a static IP address that points to one of your Droplets. It allows you to redirect network traffic to any of your Droplets in the same datacenter. For instance, if your primary Droplet goes offline, you can point your floating IP to a backup Droplet. Floating IPs are tied to datacenters."

El IP flotante lo que nos permite es que nuestro registro DNS apunto a dicho IP, y que si tenemos que cambiar el servicio de una droplet a otra en el mismo data center lo podamos hacer SIN necesidad de hacer un cambio en el registro DNS.

Es decir es un mecanismo de poder cambiar el droplet que da servicio sin tener que cambiar el DNS.

Lo único gacho es que tiene que ser todo en el mismo data center, pero es gratis y presenta la ventaja de ahorrar el cambio de DNS y su tiempo de propagación.


Ahora bien recordemos que hay muchas formas de hacer balanceo, ya sea desde el mismo registro DNS hasta redirects.

CONCLUSIÓN:
"Para poder cambiar la instancia del droplet que da servicio en el datacenter sin tener que afectar el registro DNS".

Comparación entre ubuntu y debian para máquinas virtuales de digital ocean (droplets)

Comparación entre ubuntu y debian para máquinas virtuales de digital ocean (droplets)
Noviembre 9, 2016

===== DEBIAN =====================================================

Linux cnmx1 3.16.0-4-amd64 #1 SMP Debian 3.16.36-1+deb8u2 (2016-10-19) x86_64 GNU/Linux
root@cnmx1:~# free -m
             total       used       free     shared    buffers     cached
Mem:           494        106        388          0         12         54
-/+ buffers/cache:         39        455
Swap:            0          0          0

root@cnmx1:~# df -m
Filesystem     1M-blocks  Used Available Use% Mounted on
/dev/vda1          20029  1059     17931   6% /
udev                  10     0        10   0% /dev
tmpfs                 99     1        99   1% /run
tmpfs                248     0       248   0% /dev/shm
tmpfs                  5     0         5   0% /run/lock
tmpfs                248     0       248   0% /sys/fs/cgroup

42358 paquetes en el repositorio preconfigurado.
521 paquetes preinstalados.


===== UBUNTU =====================================================

Linux cnmx1 4.4.0-45-generic #66-Ubuntu SMP Wed Oct 19 14:12:37 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
root@cnmx1:~# free -m
              total        used        free      shared  buff/cache   available
Mem:            488          30         320           2         137         428
Swap:             0           0           0

Filesystem     1M-blocks  Used Available Use% Mounted on
udev                 237     0       237   0% /dev
tmpfs                 49     3        47   6% /run
/dev/vda1          20030  1105     17894   6% /
tmpfs                245     0       245   0% /dev/shm
tmpfs                  5     0         5   0% /run/lock
tmpfs                245     0       245   0% /sys/fs/cgroup
tmpfs                 49     0        49   0% /run/user/0

54231 paquetes en el repositorio preconfigurado.
467 paquetes preinstalados.

miércoles, agosto 17, 2016

Windows 10 HD usage | Espacio en disco usado por Windows 10

Acabo de instalar Windows 10 en forma nativa en una MacBook Pro 13.3 usando el asistente para bootcamp, y me sorprende bastante que Windows ocupe nada más que

21.6 Gb

Aquí les anexo la imagen de prueba:




miércoles, mayo 25, 2016

como crear una cuenta linux que solo permita sftp en un directorio específico

Y que no permita al usuario andar curioseando por los archivos del sistema o de otros usuarios:

Es posible realizar esto y para ello es necesario realizar lo siguiente:

*Todos los comandos aquí descritos se ejecutan como root...

Primero configurar el ssh server, se requiere versión OpenSSH 4.8p1 o posterior.

Editar /etc/ssh/sshd_config:

1. Tenemos que especificar que se use el built-in sftp server:


Subsystem sftp internal-sftp

2. Y usamos la directiva Match para indicar que usuario o grupo van a estar restringidos en este caso vamos a restringir al usuario a que solo pueda hacer sftp:

Match user uploader
        X11Forwarding no
        AllowTcpForwarding no
        ForceCommand internal-sftp
        ChrootDirectory /home/uploader/chroot

Listo ahora para aplicar reiniciamos el servicio

/etc/init.d/ssh restart

Ahora la parte del usuario y los directorios:

Creamos un grupo sftponly

groupadd sftponly

Y el usuario que vamos a usar, por ejemplo lo llamaremos uploader

useradd -g sftponly uploader--shell /bin/bash

Creamos su home

mkdir /home/uploader
mkdir /home/uploader/chroot

Con permisos adecuados

chmod 755 /home/uploader
chmod 755 /home/uploader/chroot

Asignamos un password al uploader si así nos interesa:

passwd uploader

Y como queremos que se pueda autenticar usando llaves y no solo password se requiere ponerlas en el archivo /home/uploader/.ssh/authorized_keys

mkdir /home/uploader/.ssh
chmod 700 /home/uploader/.ssh
chown uploader:sftponly /home/uploader/.ssh


touch /home/uploader/.ssh/authorized_keys
chmod 600 /home/uploader/.ssh/authorized_keys
chown uploader:sftponly /home/uploader/.ssh/authorized_keys

OPCIONALMENTE
{

En el cliente se crean las llaves para el cliente mediante el comando ssh-keygen y se deja el pass phrase en blanco (útil si se va a usar en un proceso automático), esto genera un archivo en el home .ssh/id_rsa.pub que contiene la linea de la llave que hay que agregar.

Una vez que nos hacen llegar el archivo id_rsa.pub del cliente lo añadimos

cat id_rsa.pub >> /home/uploader/.ssh/authorized_keys

}

Ahora bien dado que /home/uploader/chroot, es lo que aparece como / al cliente cuando se conecte y no puede ver el sistema de archivos original, pero dado que pertenece a root, solo va a poder escribir en los subdirectorios que le dejemos en su custodia dentro de este directorio, así que le hacemos los que necesite y se los asignamos por ej.

mkdir /home/uploader/chroot/music
mkdir /home/uploader/chroot/videos
mkdir /home/uploader/chroot/books

chown uploader:sftponly /home/uploader/chroot/music
chown uploader:sftponly /home/uploader/chroot/videos
chown uploader:sftponly /home/uploader/chroot/books

Cuando el cliente se conecte por sftp solo vera el arbol de directorios

/music
/videos
/books

Y solo podrá subir archivos a esas carpetas que es parte del objetivo que se quería alcanzar, además no podrá ver nada del sistema de archivos original lo que es genial para aislar esa cuenta del resto del sistema.

VARIANTE
{

Si desearamos que pudiera modificar y añadir llaves al authorized, simplement usamos el mismo home para que sea la carpeta chrooted en la directiva Match del sshd_config:

        ChrootDirectory /home/uploader/

y creamos los directorios que va a usar dentro de /home/uploader.

}

Deja tu comentario si te ha servido.

Referencias:

http://undeadly.org/cgi?action=article&sid=20080220110039

https://debian-administration.org/article/590/OpenSSH_SFTP_chroot_with_ChrootDirectory


viernes, mayo 06, 2016

Notes on Data Visualization

  • One of the most important (and least technical) skills in understanding data is asking good quetions. An appropiate question shares an interest you have in the data, tries to convey it to others, and is curiosity-oriented rather than math-oriented. Visualizing data is just like any other type of communication: success is defined by your audience's ability to pick up on, and be excited about, your insight.
  • A proper visualization is a kind of narrative, providing a clear answer to a question without extraneuos details. By focusing on the original intent of the question, you can eliminate such details because the question provides a benchmark for what is and is not necessary.
  •  

jueves, octubre 01, 2015

Como estirar campos de manera dinamica con el contenido en ur reporte de jasper

Ejemplo:


isStretchWithOverflow="true"
> stretchType="RelativeToTallestObject"
x="220" y="0" width="120" height="20" />


<![CDATA[ $F{referencia} ]]>


Basicamente si queremos que el campo (textField) se estire de acuerdo al tamaño del contenido usamos la propiedad:
isStretchWithOverflow="true"
>
Pero si solo queremos que se ajuste este elemento para estar a la par de la altura del elemento más alto en la banda usamos:
stretchType="RelativeToTallestObject"

viernes, agosto 28, 2015

Sobre meditación

Si realmente queremos aprender una habilidad importante, necesitamos perseverancia, paciencia y un ejercicio sistemático.

Vipassana "ver las cosas como realmente son".

La atención plena nos ayuda a desarrollar la quietud en medio de la actividad.

La atención plena nos enseña a estar más despiertos y presentes ante todo lo que nos encontremos.

Meditar significa contemplar de un modo amable y bondadoso nuestra vida y descubrir la manera de despertar y liberarnos. Todos albergamos numerosas ideas y creencias sobre nosotros mismos. Son muchas las historias que contamos acerca de quiénes somos, lo que queremos, nuestra inteligencia y nuestra amabilidad.

Pero éstas, con mucha frecuencia no son más que ideas limitadas y ajenas que acabamos asumiendo e interiorizando acríticamente como propias. Meditar es descubrir nuevas posibilidades y despertar la capacidad de vivir de un modo más sabio, amoroso, compasivo y pleno.

Si te gusta lo que estas leyendo intenta con:

Kornfield, Jack: Meditación para principiantes. Ver en Amazon

martes, agosto 18, 2015

Como generar un resumen de mensaje (hash) con openssl

Los message digest o resumen de mensaje o hash, como se los conoce comúnmente sobre una cadena de bytes nos permiten calcular un resumen sobre un mensaje el cual nos puede servir para validar la no modificación del mensaje, por ej. si bajamos un archivo de internet, que se haya descargado correctamente o que no haya sufrido una modificación.

Conociendo el tamaño del mensaje y su hash, es posible verificarlo, ya que los algoritmos para la generación del hash garantizan que es muy difícil generar otro mensaje del mismo tamaño y que al calcular el hash este sea el mismo del mensaje original.

Hay diferentes algoritmos para obtener el hash, entre los más conocidos: md5, sha1, sha256, sha512.

Mediante el uso de openssl podemos generar el hash para un mensaje o cadena de texto:

ejemplos:

echo -n "este es el mensaje" | openssl dgst -md5
273413cf8c45230add58d6f4ca0ab467

echo -n "este es el mensaje" | openssl dgst -sha256
ccf7dcbc6bac2e645f895440b9f0be1c6083ba9299ef352bc97514bb5988dd87

echo -n "este es el mensaje" | openssl dgst -sha512
10ffd258a8dfd95bd97cd6d8a336dc906d3401df6476fd211a55e89096f075a39c8e4cd42c5bd3151ba465194e2b13b918cd33057b0c346139e9d428113fedaa

Lo que se imprime es la representación hexadecimal de los bytes que forman el hash, pero si necesitamos guardar a un archivo el valor en binario de dicho resultado o pasarlo en binario a otro programa es posible hacerlo mediante el flag -binary

echo -n "este es el mensaje" | openssl dgst -sha256 -binary > sha256.bin

El comando anterior manda el hash al archivo sha256.bin, dado que 256 bits / 8 = 32 bytes, podemos comprobar que el archivo pesa 32 bytes

ls -lh sha256.bin
-rw-r--r-- 1 user user   32 2015-08-18 18:23 sha256.bin

De la misma forma podemos calcular el hash a un archivo, por ejemplo:

md5sum iprules.sh 
726c99a062d2dc23e8b836c2221ef25c  iprules.sh

cat iprules.sh | openssl dgst -md5
726c99a062d2dc23e8b836c2221ef25c

sábado, julio 18, 2015

Formas de mejorar tu productividad

  • Eliminar compromisos que tenemos por solo alimentar el ego. Por ejemplo si te tardas 30 minutos arreglando tu peinado o escogiendo tu ropa, es tiempo que puedes aprovechar más productivamente, a menos que tu trabajo este completamente basado en tu imagen.

  • No te enfoques en mejoras marginales que requieren un esfuerzo muy grande, por ejemplo si ya eres rápido escribiendo en el teclado, ya no gastes horas practicando para ser más rápido cuando ya aunque inviertas horas solo podrás obtener unos cuantos tipeos más, es decir cuando el rendimiento marginal es muy poco es mejor aprovechar mejor tu tiempo, ya no vas a lograr mucho extra y si vas a gastar mucho esfuerzo.

  • Utiliza la regla del 20-80, es decir por ejemplo si tienes que aprender una tecnología, aprende ese 20% que te permite realizar el 80% de las tareas.

  • Aprende a decir no, es decir no aceptes más trabajo del que puedes realizar en la jornada laboral, cualquiera puede tomar más trabajo pero esto significa sacrificar el tiempo personal para no quedar mal.

  • Establece bloques de tiempo para realizar una actividad, por instinto, cuando realizamos una actividad dejamos que tome todo el tiempo que sea necesario, pero hay actividades que pueden tomar todo el tiempo disponible y no terminarse, ya que son flujos casi ilimitados, por ejemplo revisar las novedades en la redes sociales, así que la mejor forma es definir una ventana de tiempo para dedicar a esta actividad, por ejemplo establece 15 minutos al día para dedicar a consultar las redes sociales y solo dedica ese tiempo, no hagas trampa.
En concreto fíjate ventanas de tiempo para realizar una actividad, si no se concluye en dicho tiempo, interrumpe y toma tiempo para revaluar prioridades y decidir si asignar más tiempo o descartar la conclusión.

  • Establece una rutina, por ejemplo dejar siempre las llaves y la cartera en el mismo lugar, preparar la ropa del día siguiente, desayunar y dirigirte a tu trabajo de manera estable y predecible te permite no generar estrés innecesario por ir con el tiempo medido.

  • Analiza que actividades te permiten generar ingresos, y dedica más tiempo a ellas, paga a otros para realizar las actividades que no te generan ingresos, así ellos pueden usar el dinero y tu el tiempo, por ejemplo paga alguien para que corte el pasto, lave los platos sucios, saque la basura o ponga la ropa sucia a lavar, o incluso haga la mecánica de tu coche.

  • Actividades pequeñas es mejor realizarlas de inmediato, por ejemplo agendar un evento o pagar la tarjeta de crédito, es mejor no postergar actividades que toman unos minutos pero que acumuladas generan inestabilidad mental.

  • Enfócate en una sola actividad a la vez, sobre todo cuando es compleja, el multitasking reduce la productividad ya que hay una pérdida de tiempo y energía para cambiar de contexto, es algo similar a como funciona el LASER, toda la energía se enfoca en la misma dirección aunque solo sea luz, pero la diferencia es que esta va en todas direcciones y no tiene el mismo efecto.


miércoles, julio 08, 2015

confusiones del lenguaje

ti nunca lleva acento

  • Compre un pastel para ti
  • Hoy por ti, mañana por mi
  • Muero por ti

tu ó tú

  • tu camisa
  • tu casa
  • Alguien como tú
  • Tú eres especial
  • Tienes que hacerlo tú

haz ó has

  • haz la tarea
  • haz lo que tengas que hacer
  • siempre has llegado tarde
  • a veces has llegado a tiempo
  • siempre has sido bueno programando
  • siempre has querido leer El Quijote

ves o vez

  • fijate, ¡que no ves!
  • miras y no ves
  • si ves bien por la ventana, encontrarás lo que buscas<1i>
  • esta es la última vez que te dejo entrar
  • se me llenan los ojos de lágrimas cada vez que la veo
  • érase una vez el hombre

jueves, julio 02, 2015

¿quieres saber a que velocidad puedes escribir?

Y ver tus resultados como en la imagen:

Prueba tu velocidad con el siguiente link

http://bit.ly/1GRhUb0

jueves, junio 25, 2015

Como diagnosticar problemas de red en linux

1. Verificar la conectividad FISICA, generalmente el router tiene un LED y la tarjeta de red de la máquina también, debemos verificar que se encuentren encendidos ambos. A veces hay dos LEDs uno naranja que indica están conectados y uno verde que se prende cuando se están transmitiendo datos.

2. Verificar la configuración de red, es decir tenemos que tener una dirección IP que nos ha sido asignada automaticamente por el router, para ello abrimos una linea de comandos ¿como abrir una línea de comandos? En la linea de comandos usamos el comando ifconfig para ver la configuración de red, puede que en algunos casos no encuentre el comando porque no este en el PATH pero podemos ejecutarlo dando toda la ruta completa /sbin/ifconfig.

A continuación un ejemplo de la salida del comando, lo ejecutamos con el parametro -a para que muestre todas las interfaces de red, aún cuando no estén en uso:

/sbin/ifconfig -a

A primera vista parece algo dificil de descifrar, pero no es así, primero antes que nada hay que entender como se llaman en linux las interfaces de red. Hay de varios tipos:

eth
Esto hace referencia a las tarjetas que se conectan por cable de red ethernet
wlan
Estas hacen referencia a las tarjetas de red inalambricas para conectarnos al wifi
lo
Esta es una interface de red simulada para cuando el sistema hace uso de la red pero se comunica dentro del mismo equipo, consigo mismo
tun
Estas son interfaces para hacer tuneles
tap
Estas son interfaces para hacer puentes

En todos los casos el identificador de la tarjeta esta dado por los nombres anteriores y un número, así la primera tarjeta ethernet es eth0 y la segunda eth1 y si tenemos una tercera eth2 y así sucesivamente.

La primera tarjeta de red inalambrica se llama wlan0

Luego la siguiente información nos muestra:

Como abrir una linea de comandos en linux

Existen varios métodos como los de menu que no voy a explicar ya que son visuales, aquí explico los métodos por teclado.

En primer lugar hay que saber que hay varios emuladores de terminal y que podemos usar cualquiera de ellos indistintamente, todo depende de tus gustos y preferencias, a final de cuenta estamos corriendo un interprete de comandos dentro de esa ventana, del cual también hay varios, pero por lo general estamos corriendo el famoso BASH

Para abrir el programa emulador de terminal en la mayoría de las distrubiciones mediante las teclas Alt+F2 nos muestra una mini linea de ordenes, como se muestra en la foto:

Dentro de las opciones que tenemos se encuentran las siguientes más utilizadas:

xterm
Esta es la más tradicional, fue de las primeras en existir, pero una ventaja es que es bastante ligera, aunque no hace monerias graficas como las más nuevas (fondo transparente o cambiar tipo de letra). Sin embargo si podemos ajustar el tamaño de la letra.
gnome-terminal
Esta es la que hicieron especificamente para el manejador de ventasas gnome, pero se puede usar con cualquier manejador de ventanas.
konsole
Esta se hizo para el manejador de ventanas KDE pero se puede usar en cualquiera
terminator
Esta tiene la particularidad de que podemos dividirla y tener más de un interprete de ordenes en la misma ventana, y mandar comandos a solo uno o varios, útil para cuando tenemos que ejecutar el mismo procedimiento en varios equipos, o para consultar la documentación en una mitad y dar comandos en la otra.

Una vez elegida una, escribimos el nombre y presionames ENTER o el boton EJECUTAR, (puede que no tengamos instaladas todas en nuestro sistema pero se pueden añadir facilmente mediante el gestor de paquetes de linux), podemos probar con cada una para saber cuales tenemos.

Por ejemplo les muestro a continuación una imagen del xterm, mi favorita

lunes, junio 22, 2015

Hide Bash command history

Como controlar el historial de comandos de bash.

Bash guarda la historia de comandos en el archivo .bash_history ubicado en nuestro $HOME, pero ese archivo se escribe hasta el exit del bash.

Es posible mandar a escribir prematuramente el archivo de history mediante

history -w

También es posible limpiar completamente el buffer de comandos en la sesión de bash actual:

history -c

Dentro de bash podemos consultar la historia mediante el comando history la cual incluye tanto los comandos del archivo como los que hemos dado en la sesion actual.

Como corolario de lo anterior si tenemos varias sesiones de bash abiertas la salida del comando history difiere entre ellas

La variable de entorno HISTFILE indica al bash en que archivo guardar el history al salir.

Una forma de evitar se guarden los comandos en el archivo history es cambiar la variable por ejemplo mandarlo al dispositivo nulo o eliminar la variable

HISTFILE=/dev/null

O eliminando la variable

unset HISTFILE

Esto también lo podemos usar cuando queremos realizar un procedimiento especifico y documentar todo lo que hemos hecho, si todo se realiza en una única sesión de bash, entonces podemos mandar los comandos ejecutados a un archivo de registro, esto funcionara bien siempre y cuanto lo hagamos antes del exit del bash:

HISTFILE=comandos_proceso_X

Si lo que deseamos es borrar un comando especifico del history, lo podemos hacer con el número con el que aparece en la salida del comando history por ejemplo borrar el comando 325

history -d 325

El número de lineas que el archivo de historia guarda esta determinado por la variable de entorno HISTFILESIZE

El número de lineas cargadas en el buffer del comando history esta determinado por la variable de entorno HISTSIZE

Para evitar que un comando ingrese en la historia basta con comenzar el comando dejando un caracter de espacio, esto funciona aún cuando la variable de control HISTIGNORE="" (el valor por default), por lo que si no deseamos que el comando se incluya en el history basta empezarlo dejando un espacio:

echo "in history"
 echo "not in history"

miércoles, junio 17, 2015

Monkey see monkey do ...

Cuenta la leyenda que habia un zapatero y su vecino tenía un changuito

y el changuito veia como hacia zapatos con la herramienta

y cuando se iba el zapatero a su casa, se metía el chango y hacia cortes en los zapatos con la herramienta, porque intentaba hacer lo que veia

el zapatero enojado le dijo al vecino que amarrara su chango

pero este le dijo que el chango lo hacía por sí solo, que el no tenía nada que ver

así que el zapatero como sabía que el chango hacía lo que miraba

se puso un cuero grueso en la panza y con la cuchilla se daba tajos sobre la panza como cortando

entonces lo que paso es que el chango, haciendo gala de sus habilidades de repetir lo que observaba, hizo lo mismo y se corto la panza, y se murió

cuando fue a reclamar el vecino al zapatero, este le dijo que el chango lo hizo el solo, por sí mismo, que el no tuvo nada que ver, que el le advirtio que lo amarrara

y tantán este cuento se ha acabado, espero te haya gustado!!!

lunes, junio 15, 2015

Reproducir video en modo texto


Se puede hacer usando mplayer, simplemente basta especificar un driver de salida que convierta la imagen en ascii art.




En escala de grises

mplayer -vo aa video.mp4

si se quiere usar la misma terminal en la que se pone el comando (cuando estamos en modo gráfico X)

mplayer -vo aa:driver=curses x.avi



En tonos de color

mplayer -vo caca video.mp4

y en la misma terminal (en X)

export CACA_DRIVER=curses
mplayer -vo caca video.mp4

jueves, junio 11, 2015

La gente que es la gente en tratar de entenderla ...

Si no eres servil resulta que tienes mala actitud.

Si eres más inteligente que el promedio resulta que te crees mucho.

Si eres honesto resulta que eres un grosero.

No cabe duda que en este mundo la gente esta acostumbrada a los disimulados e hipocritas.