Uncategorized

ūüĖźÔłŹ Ubuntu: Como evitar actualizar el Kernel

En linux los drivers del hardware que usas son desarrollados por la comunidad de software libre. Y como tal, pueden tener algunos bugs en su funcionamiento o pueden simplemente no ser soportados.

En alguna ocasion ( en realidad mas de una ) un hardware puede funcionar bien en una version de los drivers y en la siguiente no ūüôĀ . Y como la mayoria de los drivers vienen integrado en el kernel de linux, una actualizacion de kernel puede desactivar algun dispositivo de tu maquina.

Para prevenir eso, evito actualizar el kernel una vez que estan todos mis dipositivos funcionando. Podemos bloquear la actualizacion del kernel usando los siguientes comandos:

sudo apt-mark hold linux-image-generic
sudo apt-mark hold linux-headers-generic

Y si deseas volver a actualizarlos, pues debes desmarcarlos:

sudo apt-mark unhold linux-image-generic
sudo apt-mark unhold linux-headers-generic

‚öô Docker Compose: no module named ordered_dict

Hoy dia, fallo la ejecucion de docker-compose en uno de mis servidores.

El problema:

E ImportError: No module named ordered_dict

La solución ?

Asegurarnos de tener la version urllib3-1.22, actualmente la version en produccion es la 1.26

Para tal efecto ejecutamos los siguientes comandos

pip uninstall urllib3
pip install urllib3=1.22

#HappyCoding

Comandos para manejar npm ( parte I )

NPM es el sistema de gestion de paquetes de nodejs. Con √©l podemos gestionar las dependencias de nuestros proyectos de #nodejs o #reactnative. Tambi√©n lo podemos usar para instalar aplicaciones globales en nuestro sistema, como por ejemplo: ChromeCast ( aplicaci√≥n que te permite enviar videos a un chromecast desde la linea de comandos ūüėČ )

npm init -y

Inicializa el archivo package.json de nuestro proyecto con los valores por defecto. Usar con cuidado porque reescribe el contenido del archivo, si  ya existe.

npm home <paquete>

Abre el navegador con la web oficial del <paquete>

npm repo <paquete>

Abre el navegador con el repositorio oficial del <paquete>

npm outdated

Te indica que paquete tienes desactualizados

npm  prune

Elimina las dependencias que no se estan utilizando

npm list

Te muestra los paquetes que se usan en un proyecto ( ordenado jerarquicamente )

npm dedupe

Intenta reducir las duplicidades de paquetes en tu proyecto

npm audit

Te muestra una lista de bugs conocidos en los paquetes de tu proyecto

npm audit fix

Actualiza los paquetes de tu proyecto que tienen parches de seguridad pendientes.

 

AWS S3 Error 403 RequestTimeTooSkewed

Si el servicio de Amazon S3 en algun momento podrias haber obtenido el codigo  de error RequestTimeTooSkewed.  Este error indica que amazon detecto que el fecha hora desde donde se origino la peticion al servicio s3 no concuerda con la fecha hora del servidor s3.

En mi caso, el error se presento usando la libreria knox de nodejs y fue bastante criptico. La funcion callback de knox no generaba ningun error, es decir daba el proceso como valido, sin embargo los archivos no se estaban generando en el s3.

Para validar instale la herramienta aws-shell y ejecute la subida de un archivo con dicha herramienta.

# pip install aws-shell

 

$ aws-shell cp file s3://bucket/file

Al intentar copiar un archivo de ejemplo, ahora si se obtenia el error 403 siguiente:

RequestTimeTooSkewed type,  stating that : The difference between the request time and the current time is too large 

Para solucionarlo debes asegurarte que la fecha hora del servidor este correctamente configurada.

wget –server-response ¬†–spider ¬†http://aws.amazon.com/s3/

Puedes verificar la fecha hora los headers de respuesta de amazon, y compararlos con la fecha hora de tu sistema.

 

Como conectar tu wordpress con Mailchimp

MailChimp es una plataforma de email Marketing ( la mejor que conozco de momento ). A traves de ella puedes dise√Īar campa√Īas recordatorio a tus clientes, usuarios o visitantes. Puedes enviarles ofertas, segmentandolos por intereses, por producto, etc.

Hoy vamos a usar un plugin de wordpress para registrar en mail chimp, las personas que realizan un comentario en nuestro blog.

Vamos a la seccion de plugins de nuestro wordpress y decimos agregar nuevo. Buscamos mailchimp y lo instalamos y activamos.

Una vez activado, vamos a la seccion de configuracion donde nos pide ingresar nuestro APIKEY de Mailchimp

Para buscar nuestra APIKEY, vamos a MailChimp a la seccion de Account API https://admin.mailchimp.com/account/api/  y creamos nuestra APIKEY

Y la copiamos en la configuracion de mailchimp de nuestro wordpress. Luego nos vamos a la opcion de Integracion de MailChimp en nuestro wordpress

Ahi podremos ver todas las opciones de configuracion que vienen por defecto. En este caso configuraremos el registro en los comentarios.

Aca, activamos el plugin ( Enabled yes ).

Decidimos si registramos en mailchimp a todos los que comentan o si lo hacemos solo si desean ser agregados. En nuestro caso, a todos. ( Implicit yes )

Nos indica en que lista de MailChimp los vamos a guardar, es conveniente seleccionar una lista ya que nos permite diferenciar los contenidos que reciben los usuarios en funcion de sus intereses.

Luego nos pregunta, si el usuario debe ingresar su email 2 veces para confirmar que es correcto. ( Double opt-in )

A partir de ahora cuando alguien realice un comentario en tu blog, Mailchimp le enviara un correo de invitacion a la lista de correo que le acabas de agregar. Si acepta, estara ligado automaticamente a tu lista de MailChimp.

Happy Mailing.

 

 

 

NodeJS mySQL NOT SUPPORTED AUTH MODE

Recientemente al actualizar mi maquina de desarrollo me tope con el siguiente error desde NodeJS

Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client

Era evidente un problema de configuracion ya que dias atras la app funcionaba correctamente y no habia sido modificada.

Para solucionar este problema debes entrar en la consola de mysql:

sudo mysql -u root

Y ejecutar el siguiente comando

update mysql.user set authentication_string=password(''), plugin='mysql_native_password' where user='root';

Y luego proceder a reiniciar el servicio

sudo service mysql restart

Adios PHP5

Oficialmente a finales del 2016 se termina el soporte para PHP5 tamiflu generic. Eso quiere decir que ya no habran correcciones ni mejoras pasada esa fecha. Luego de eso habra un soporte exclusivo para fallas CRITICAS que se extendera hasta el 2018.

Lo bueno es que todos los frameworks soportan perfectamente PHP7, asi que llego la hora del adios ya no hay nada mas que hablar ?

Para mayores detalles PHP.net