Cover Image

Unable to lock JVM Memory: error=12, reason=Cannot allocate memory

March 27, 2020 - Reading time: 2 minutes

Photo by photo hoteam on Unsplash

Yes, I'm back to Linux and this is the first issue I faced installing my all development environment, basically, the issue was happening because my elasticsearch image complaining about memory.

Luckily, the issue was solved by modifying the docker-compose.yml file, adding unlimited memory as follows:

version: '3'

services:
   elasticsearch:
        image: docker.elastic.co/elasticsearch/elasticsearch:7.6.1
        container_name: elasticsearch
        volumes:
            ...
        ports:
           ...
        environment:
            ...
        ulimits:
            memlock:
                soft: -1
                hard: -1

Also, for some reason was failing with the older version of this image, so I updated from 6.2.2 to 7.6.1


Cover Image

Enviando correos con Redmine usando AWS SES

February 25, 2020 - Reading time: 3 minutes

Photo by Adam Solomon on Unsplash

Hace algunos días decidí dejar de utilizar Phabricator para empezar con Redmine, la decisión fue meramente por el uso de recursos en mi servidor, fue un buen cambio y una agradable sorpresa porque Redmine es muy sencillo de instalar y de configurar también. No me malentienda, Phabricator es genial pero muchas cosas de las que tiene nunca las pude utilizar.

Pero algo que no funcionó tan bien desde el inicio fueron las notificationes por correo, en mi caso, estaba utilizando AWS SES y el archivo de configuración ({redmine_folder}/config/configuration.yml) no provee de un ejemplo para SES, pues bien, por que sé que esto puede ser útil para alguien más es que compartiré mi experiencia y un pedazo de código.

production:
email_delivery:
delivery_method: :smtp
smtp_settings:
address: "aws email server address"
port: 587
enable_starttls_auto: true
domain: "your custom domain"
authentication: :login
username: "username provided from smtp settings"
password: "password provided from smtp settings"

Basicamente mi problema fue que no había configurado las credenciales correctas de AWS SES, entonces estaba teniendo un error que decía:

Net::SMTPAuthenticationError (535 Authentication Credentials Invalid)

La solución es bastante sencilla, pues para arreglarlo solamente se necesita crear el usuario de AIM desde SMTP Settings en el panel de control de SES y no desde la página de AIM, y no olviden que el usuario que especifican cuando crean esta nueva configuración, no es el username que se utiliza para la autenticación, al final del proceso AWS SES les dará el usuario y password que necesitan para configurar su cliente de Redmine.


Cover Image

Sending emails from Redmine using AWS SES

February 25, 2020 - Reading time: 3 minutes

Photo by Adam Solomon on Unsplash

A few days ago I decided to stop using Phabricator and start with Redmine, the decision merely was because of the resources used on the server, big surprise because Redmine is very simple to install and set-up as well. Don't misunderstand me, Phabricator is great but has a lot of things that I never used.

But something that wasn't working at the beginning was the email notifications, in my case, I'm using AWS SES and the configuration file ({redmine_folder}/config/configuration.yml) doesn't provide an example for SES, because I know this can be useful for somebody else, I'm gonna share this piece of code.

production:
email_delivery:
delivery_method: :smtp
smtp_settings:
address: "aws email server address"
port: 587
enable_starttls_auto: true
domain: "your custom domain"
authentication: :login
username: "username provided from smtp settings"
password: "password provided from smtp settings"

My issue was that I didn't create the right credentials from AWS SES, so I was having an error saying:

Net::SMTPAuthenticationError (535 Authentication Credentials Invalid)

And basically, to fix this you just need to create the AIM user from the SMTP Settings in the SES console and not from the AIM page and don't forget the user you specify is not the user you use to authenticate, at the end of the process AWS SES will give the username and password you need to configure your client.


Cover Image

Haciendo que tu ambiente de desarrollo esté disponible en internet usando tunneling

February 23, 2020 - Reading time: 7 minutes

Imagen por Aaron Burden en Unsplash

Si has llegado hasta aquí es porque seguramente necesitas poner tu ambiente local en internet, quizás porque necesitas probar algún webhook o cualquier otro método de verificación o notificatión desde un servidor público, con suerte ya sabrás que hay servicios como ngrok que hacen esto por ti en un sencillo paso.

Pues bien, esta es la historia de como yo estaba utilizando ngrok para hacer pruebas de integración con Stripe y como necesitaba hacer algo similar con Revolut, el problema es que ngrok solamente te permite utilizar una sola conexión a la vez cuando estás en plan gratuito y con ello vienen otras limitantes, como tener subdominios aleatorios cada vez que reinicias el servicio, en fin yo necesitaba algo similar y es por ello que decidí crear mi propio subdominio el cual apunta a mi equipo de desarrollo.

Básicamente todo funciona utilizando las conexiónes de túnel con SSH, ese es el principio básico y claro en lugar de pagar $10 USD al mes por un servicio, quizás podrías pagar lo mismo por un servidor privado (VPS) y crear cuantos subdominios necesites, entonces para empezar necesitarás un VPS con Linux instalado de preferencia.

Read more


Cover Image

Create your own tunnelling like ngrok does

February 18, 2020 - Reading time: 6 minutes

Photo by Aaron Burden on Unsplash

If you're here is because you don't want to use ngrok or you are looking for an alternative to it, which is pretty valid because if somebody did that, why you don't?

Well, this story begins with me trying to make my local development environment public and here is where ngrok came to the rescue, this tool works really well, but with some limitations, like having a random subdomain every time you restart your application or using more than one connection, are the things you will need to deal with unless you don't pay for it.

So basically everything works behind ssh tunnelling connections, and if you want to create your own ngrok clone, mainly you will need a VPS server running Linux preferentially.

Read more


About

After having lost my previous blog, this is a new intent to be back to writing content for the web, this site its a place to talk about stories, experiences and how I deal with my digital life.