lunes, octubre 02, 2017

Rosario está harto de Litoral Gas

Es deber de la clase política, que adquiere su poder con el voto de sus representados, mejorar la calidad de vida de la sociedad sobre la cual gobierna. Ese poder le da la potestad de de controlar y moderar los abusos hechos por empresas de servicios a sus clientes. En especial la atención y respeto a los clientes. Este no es el caso de la empresa Litoral Gas, empresa prestadora del servicio de distribución del gas natural en la provincia de Santa Fé.
Desde el accidente ocurrido en agosto de 2013, la empresa de controles laxos a ser una verdadera sucursal de la Gestapo con acciones autoritarios e inhumanas a sus clientes. Dentro de las cuales está el corte de servicio por el sólo hecho de sospecha de fuga de gas. Peor resulta si la instalación es mayor a 20 años, como sucede a edificios enteros que deben gastar fortunas en reacondicionar la instalación, y peor aún soportar mas de un año sin el servicio con personas mayores en épocas de frío donde no pueden acceder a una ducha caliente.
También corre la misma suerte los usuarios de viviendas, tal como me ha ocurrido. Ante una leve perdida del flexible externo me fue cortado el suministro, en una semana donde las temperaturas fueron invernales, y rehabilitarlo cuesta del orden de los 295 u$ (lo pongo en dólares para que sea una referencia acorde)
Yo me pregunto: que intereses tiene la clase política gobernante en la empresa para no limitar los abusos y deja desprotegido a los usuarios? Se merecen perder las elecciones como le sucedió en las PASO. Es todo una vergüenza la inacción del estado provincial.

viernes, septiembre 01, 2017

Es una vergüenza los que quieren derrocar al gobierno de Macri


Al mejor estilo de la comienzos de la década de los 70, cuando los grupos montoneros y la ERP intentaban derrocar por la fuerza al gobierno de Isabel Martinez de Perón. En la Facultad de Ingeniería de Rosario, están apareciendo carteles y panfletos con el uso político de la desaparición de Maldonado, por parte de un minúsculo grupo de personas del centro de estudiantes de la facultad (pertenecientes a la JUP y la TUPAC). Los cuales pregonar el derrocamiento del gobierno de Macri, que lo consideran una dictadura, y el retorno del gobierno populista de CFK.

Es una vergüenza lo como se está empapelando la facultad de ingeniería de Rosario con carteles como estos y como se hace uso político de este hecho (sin pruebas) para justificar derrocar el gobierno de Macri por medio de la fuerza por parte de un grupo minoritario de personas del centro de estudiantes de mi facultad. Si bien minoritario hacen mucho ruido.

lunes, agosto 28, 2017

Experimentos con Docker y TensorFlow

En este primer post, explico una receta de como instalar Docker en un linux que corre en un VPS con un cuadcore x86 (64 bits). Como toda receta puede haber métodos mejores, pero para lo que necesito es suficiente. En este caso en la puesta a punto de un servidor LAMP en un contenedor.

Lo primero es instalar el Docker, en su versión mas moderna de mantenimiento. Para ello ejecutamos:

  1. sudo apt-add-repository 'deb https://apt.dockerproject.org/repo ubuntu-xenial main'
  2. sudo apt-get update
  3. sudo apt-get install docker-engine

Para saber si Docker está corriendo como servicio, basta con usar:

sudo systemctl status docker

Que nos devolverá algo parecido a esto si el servicio está funcionando

docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: e
   Active: active (running) since vie 2017-08-25 16:12:09 ART; 2 days ago


Por otro lado al hacer un ifconfig debe aparecer el bridge

docker0   Link encap:Ethernet  direcciónHW 02:42:04:ec:36:db 
          Direc. inet:172.17.0.1  Difus.:0.0.0.0  Másc:255.255.0.0
          Dirección inet6: fe80::42:4ff:feec:36db/64 Alcance:Enlace
          ACTIVO DIFUSIÓN FUNCIONANDO MULTICAST  MTU:1500  Métrica:1
          Paquetes RX:50356 errores:0 perdidos:0 overruns:0 frame:0
          Paquetes TX:58643 errores:0 perdidos:0 overruns:0 carrier:0
          colisiones:0 long.colaTX:0
          Bytes RX:3011512 (3.0 MB)  TX bytes:401585916 (401.5 MB)


Luego para evitar usar el comando sudo de manera seguida asociamos el usuario administrador al grupo docker con:

sudo usermod -aG docker $(whoami)

para saber si no necesitamos usar mas el sudo, probamos ejecutar la imagen Hola Mundo con:

docker run hello-world

Lo que nos devolverá algo parecido a esto:

Hello from Docker!
This message shows that your installation appears to be working correctly.


con

docker pull ubuntu

descargamos la imagen (en realidad es una plantilla) de un sistema base en la última versión de Ubuntu. Para ver la imagen basta con ingresar:

 docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              latest              ccc7a11d65b1        2 weeks ago         120MB
hello-world         latest              1815c82652c0        2 months ago        1.84kB

Luego con:

docker run -it ubuntu bash

creamos el conteiner si no existe y entramos por una terminal vt220 de manera interactiva usando bash como shell o interprete. lo que vamos a ver es esto:

root@035244c70483:~#

Siempre ingresamos como root, y el hostname del sistema es el ID del contenedor es decir 035244c70483 para instalar apache2, mysql y phpmyadmin; primero hay que hacer un apt update!! pues como dije es una plantilla y está desprovisto de cosa superfluas. Tampoco tiene nano, ni VIM. Entonces los pasos dentro del container son, en resumidas cuentas:
 
  1. apt update
  2. apt install nano, vim, apache2, mysql-server, etc, etc.
  3. apt clean
  4. service apache2 start
    service mysql start

ahora con exit salimos del container. El cual lo podemos ver con:

docker ps -a

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS                  NAMES
72f37c543cff        hello-world         "/hello"            27 minutes ago      Exited (0) 27 minutes ago                          jolly_goldstine
035244c70483       ubuntu        "bash"              1 minutes ago        Exited(0) hours                   amazing_euler
a160ebf0c908        tensorflow_2017_8   "bash"              24 hours ago        Exited (0) 24 hours ago                            quirky_almeida


con docker ps vemos los conteriner activos.

Ahora bien vamos a crear una plantilla con dicho container, para eso basta con hacer, usando el ID del container:

docker commit 35244c70483 miweb_ubuntu

Se puede verificar su creación con docker images. Ahora vamos a guardar dicha imagen para luego transportala a otro VPS que ya tiene docker corriendo. Para ello la guardamos como:

  1. docker save -o miweb_ubuntu.tar miweb_ubuntu
  2. gzip miweb_ubuntu.tar
  3. scp  miweb_ubuntu.tar.gz pepito@cosita:tmp
Luego en el VPS nuevo hacemos:

  1. gunzip miweb_ubuntu.tar.gz
  2. docker load --input miweb_ubuntu.tar 

de nuevo con docker images verificamos que esté la imagen. Para que arranque de manera interactiva, para ajustar cosas,,,

docker run -ti -p 9080:80 miweb_ubuntu bash

cuando ingresemos los servicios no arrancan automáticamente, ya que no fue creado a partir de un dockerfile! Entonces iniciamos los servicios apache2 y mysql como antes, y salimos NO CON EXIT, sino con CTRL+P+Q. Para que podamos salir y el contenedor no se detenga. Para verificar que está andando basta con hacer:

docker ps

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                  NAMES
035244c70483        miweb_ubuntu        "bash"              19 hours ago        Up 19 hours         0.0.0.0:9080->80/tcp   amazing_euler


con la opción -p 9080:80 estoy redirigiendo el puerto de salida al 9080, aunque el interno sea el 80. Esto es para evitar el conflicto de puertos con mi servidor apache que corre en el VPS.

Cabe observar que se crea un dispositivo bridge para el contenedor donde serán redirigidas las solicitudes.

veth2bc2871 Link encap:Ethernet  direcciónHW 46:c8:80:bf:fb:ae 
          Dirección inet6: fe80::44c8:80ff:febf:fbae/64 Alcance:Enlace
          ACTIVO DIFUSIÓN FUNCIONANDO MULTICAST  MTU:1500  Métrica:1
          Paquetes RX:260 errores:0 perdidos:0 overruns:0 frame:0
          Paquetes TX:348 errores:0 perdidos:0 overruns:0 carrier:0
          colisiones:0 long.colaTX:0
          Bytes RX:61744 (61.7 KB)  TX bytes:4052635 (4.0 MB)


Con :

docker cp index.html 035244c70483:/var/www/html/index.html

copio el index.html de mi VPS al directorio dentro del contenedor.

Listo para saber que funciona todo, en un navegador fuera del VPS colocamos:

http://pepito:9080

Y debemos ver la página web que hemos creado en el contenedor.

Para volver a ingresar al contendor basta con usar el ID del contendor que corre:

docker attach 035244c70483

con:

docker start ID_contenedor, se lo activa si estaba detenido
docker stop ID_contenedor, se lo suspende si estaba activo.

 Saludos.

lunes, abril 24, 2017

El Síndrome de Cronos

Según la mitología griega, Crono o Cronos era el líder, y parece ser que el más joven de la primera generación de Titanes (una raza de poderosos dioses), descendientes divinos de Gea (Tierra), y Urano (Cielo).
Cuenta la mitología que Crono, embriagado por sus sed de poder, derrocó a su padre y gobernó durante la edad dorada. Urano, su padre, antes de morir y ya malherido, le maldijo y deseó que corriera la misma suerte de manos de sus hijos, por lo que Cronos, para que no reprodujeran con él, lo que él había hecho con su padre, decidió devorarlos nada más nacer, si bien gracias a la picardía dela diosa Era, uno de sus hijos, Zeus, logró salvarse de tan desalmado destino,pero dando cumplimiento años más tarde a la maldición.
En un contexto moderno de dirección organizacional el “Síndrome de Cronos” es una “enfermedad gerencial” caracterizada por: la acción deliberada del superior de estancar a un subordinado que se destaca por temor a ser desplazado o sustituido por este.
Resultado de estos miedos patológicos, el líder que lo padece evita expresar sus emociones, exhibir sus carencias, hablar de sus temores, y por otro lado, ostentar cualquier manifestación de poder, básicamente ante sus subordinados,
para que les disuada de una, en la mayoría de las ocasiones irreal, tentativa de atentar contra su estabilidad en su puesto.

Habitualmente es fácilmente identificable por su miedo a delegar. Controlar todo es su pasión, y delegar, constituye para ellos, una posibilidad de perder el puesto que ocupa. Por lo tanto de su estrategia directiva basada en el control, se derivan unas relaciones basadas en la sumisión y el acatamiento. Intentan sin más acaparar responsabilidades, faenas, quehaceres, y asumen como obligaciones gran cantidad de funciones, que tienen como único objetivo demostrar lo imprescindibles que son en el seno de la organización para la que trabajan.

miércoles, febrero 22, 2017

Otra solución recursiva



Luego de tanto tiempo vuelvo a postear

miércoles, noviembre 23, 2016