martes, 19 de diciembre de 2017

Instalar MongoDB Community Edition en Debian 9

Deberemos instalar libssl1.0.0 la cual no se encuentra en los respositorios de Debian 9.

Ejecutamos:

$ wget http://security.debian.org/debian-security/pool/updates/main/o/openssl/libssl1.0.0_1.0.1t-1+deb7u3_amd64.deb
$ sudo dpkg -i libssl1.0.0_1.0.1t-1+deb7u3_amd64.deb
$ sudo apt install dirmngr
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
$ sudo su
# echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.6 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list
# exit
$ sudo apt update
$ sudo apt install -y mongodb*

¡Listo!

jueves, 14 de diciembre de 2017

ERROR tratando de instalar polymer-cli

Si intentaste instalar polymer-cli:

$ sudo npm install -g polymer-cli

...y obtuviste el siguiente error:

Error: EACCES: permission denied, mkdir '/usr/lib/node_modules/polymer-cli/node_modules/wd/build'

El mismo se soluciona agregando el parámetro --unsafe-perm al comando:

$ sudo npm install -g polymer-cli --unsafe-perm

miércoles, 13 de septiembre de 2017

Argentina DevDay

Se viene otra edición de Argentina DevDay. La misma está organizada por un grupo de desarrolladores y parte de Python Mendoza y Pyladies Mendoza. Python Mendoza y Pyladies Mendoza son dos comunidades voluntarias de desarrolladores que buscan llevar a cabo eventos y meetups.
  La imagen puede contener: texto y exterior 

Links útiles:

viernes, 8 de septiembre de 2017

S.P.A. en Español

Invito a toda la comunidad de desarrolladores web a unirse a mi página y grupo de Facebook.

Página: https://www.facebook.com/spa.espanol/

Grupo: https://www.facebook.com/groups/376764012741361/

Hasta ahora no existía ninguno que hablara del tema S.P.A. en general, solo habían páginas y grupos específicos sobre cada tecnología. ¡Gracias!

¿Cómo hacer un IFRAME responsive?

Este problema se resuelve poniendo un <div> como envoltorio del <iframe>, con la siguiente propiedad CSS:

-webkit-overflow-scrolling:touch;

El código nos quedaría de la siguiente forma:


.wrapper {
    -webkit-overflow-scrolling:touch;
}

<div class="wrapper">
    <iframe ... width="100%"></iframe>
</div>

sábado, 12 de agosto de 2017

Apuntar un dominio a una IP dinámica de una instancia de Google Cloud Compute

Cuando contratamos un servicio en Google Cloud Platform y creamos una instancia de una máquina virtual decubrimos que nos dan una IP dinámica. Los costos de una IP estática son elevados en este proveedor de hosting (cobro por hora). La solución es utilizar algún proveedor de DNS de IPs dinámicas.

En este ejemplo vamos a utilizar el servicio que nos brinda NO-IP. Vamos a crear un dominio en esa página y luego vamos a apuntar el dominio real que queramos utilizar a este otro mediante un registro CNAME. Una vez creado el dominio en NO-IP, ponemos la IP temporal que tengamos en ese momento apuntando a ese dominio.

El paso siguiente consistirá en bajar el software cliente de NO-IP e instalarlo en nuestra VM de GCloud. Para ello nos vamos a la sección de descarga del cliente. Les dejo el link directo de la descarga asumiendo que la instancia tiene instalado un sistema operativo Linux:

https://www.noip.com/download?page=linux

Para descargarlo directamente en nuestra instancia y no tener que hacer un posterior upload al servidor de producción, podemos ejecutar los siguientes comandos:

$ wget https://www.noip.com/client/linux/noip-duc-linux.tar.gz
$ tar xvfz noip-duc-linux.tar.gz

Ahora procederemos con la instalación:

$ cd noip-2.1.9-1
$ make
$ sudo make install

    * (Paso opcional aquí: ir)

Finalmente ejecutamos el cliente que actualizará nuestra IP cada vez que esta cambie.

$ sudo /usr/local/bin/noip2

Ahora solo resta apuntar al dominio registrado en NO-IP el dominio final que queramos utilizar en producción. En este ejemplo, voy a usar uno gratuito registrado en Freenom, el cual es más estético que las opciones que nos brinda NO-IP. Primero, nos logueamos en Freenom y nos vamos a la sección Services  My Domains. Hacemos click en Manage Domain:


Ahora entramos en Manage Freenom DNS e ingresamos las siguientes entradas:


En este ejemplo appicar.ddns.net es el dominio registrado en NO-IP y appicar.tk, el de Freenom. Ustedes deberán reemplazar ahí por sus respectivos dominios.

Checkeamos que todo esté en orden:

$ dig www.appicar.tk


Como podemos observar, los dominios apuntan correctamente a sus respectivos blancos.

Aquí termina el tutorial básico. Si siguieron todos los pasos anteriores ya contarán con un servicio que les actualizará automáticamente el registro A del dominio que registraron en NO-IP.

Script de Logging

Durante el proceso de instalación nos preguntará si queremos ejecutar algún script cuando se realice la actualización de la IP. Yo creé un script que escribirá un log en /var/log/noip/log. Veamos el contenido del mismo:

# cat /usr/bin/noip-log

#!/bin/bash

echo $(date +"%Y-%m-%d %H:%M:%S") - IP updated: $(myip) >> /var/log/noip/log


Copien el contenido de noip-log a un archivo con el mismo nombre y denle permisos de ejecución:

# chmod +x /usr/bin/noip-log

Después tenemos que crear el archivo /usr/bin/myip que nos devolverá en la consola nuestra IP pública. Ponemos este código dentro del mismo:


#!/bin/bash

curl -s checkip.dyndns.org | sed -e 's/.*Current IP Address: //' -e 's/<.*$//'


Le damos permisos de ejecución:

# chmod +x /usr/bin/myip

Ahora lo vamos a ejecutar nosotros mismos para dejar registro de la IP actual:

# /usr/bin/noip-log
# cat /var/log/noip/log
2017-08-11 21:05:57 - IP updated: 35.196.20.137

domingo, 6 de agosto de 2017

Node.js v8 en Ubuntu y Debian

Para instalar Node.js v8 tienen que ejecutar estos comandos:

Ubuntu:

# curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
# sudo apt-get install -y nodejs

Debian:

# curl -sL https://deb.nodesource.com/setup_8.x | bash -
# apt-get install -y nodejs

miércoles, 2 de agosto de 2017

Yavide

Vim tiene un montón de plugins para desarrolladores y cuando son combinados se puede convertir en un IDE muy poderoso. La ventaja obvia es la disminución en el consumo de recursos, el cual es mínimo en comparación con, por ejemplo, Eclipse o NetBeans. También lo hace ideal para la programación remota. Yavide es un proyecto nuevo que aprovecha estos plugins y los empaca a todos juntos. También se jacta de proveer algunas características que no están disponibes en otros IDEs.



Instalación

$ sudo apt-get install build-essential vim-gnome python2.7 git libclang-dev python-dev
$ cd ~/ && git clone https://github.com/JBakamovic/yavide.git
$ cd yavide && ./install.sh

Ejecución

$ yavide

Arreglar errores de ejecución en Ubuntu




$ sudo apt install vim-gnome-py2
$ sudo update-alternatives --set vim /usr/bin/vim.gnome-py2
$ sudo update-alternatives --set gvim /usr/bin/vim.gnome-py2

lunes, 31 de julio de 2017

ERROR Error: No provider for ApplicationInitStatus!

Bueno si han venido siguiendo el tutorial de Meteor usando Angular2, una vez que hayan finalizado se van a dar cuenta que la aplicación no corre. Si inspeccionamos la consola de JavaScript del navegador nos daremos cuenta que arroja el error:


Esto es porque en el tutorial se han olvidado de agregar el módulo BrowserModule. Ubicamos el archivo app.module.ts y agregamos las siguientes líneas de código:

import { BrowserModule } from '@angular/platform-browser';

y en imports agregamos:

BrowserModule

El Código nos quedaría así:


sábado, 29 de julio de 2017

Cómo integrar CoreUI a Meteor usando React

Les comento que he subido a Github una implementación de CoreUI para integrarlo a un proyecto Meteor-React. Les dejo un par de links y espero que les guste:


Instrucciones para la instalación:

$ sudo curl https://install.meteor.com/ | sh
$ git clone https://github.com/matiasmagni/coreui-meteor-react.git
$ cd coreui-meteor-react
$ meteor npm install --no-optional

Deployment:

$ meteor

URL: http://localhost:3000/