Este es el blog personal de las actividades de trabajo del Arquitecto de Sistemas (SA) Alfonso Baqueiro Bernal.
lunes, noviembre 21, 2016
el amor en el post capitalismo
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
dpkg-reconfigure tzdata
el cual nos mostrará una interface ncurses para seleccionar la zona correspondiente
Digitalocean debian droplet issue with locale
(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
miércoles, noviembre 09, 2016
Digital Ocean :: Floating IPs
"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)
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
21.6 Gb
miércoles, mayo 25, 2016
como crear una cuenta linux que solo permita sftp en un directorio específico
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
>
x="220" y="0" width="120" height="20" />
Basicamente si queremos que el campo (textField) se estire de acuerdo al tamaño del contenido usamos la propiedad:
>
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:
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?
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 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.






