Skip to content

Instantly share code, notes, and snippets.

View javierav's full-sized avatar
😎

Javier Aranda javierav

😎
View GitHub Profile
@javierav
javierav / run-elasticsearch.sh
Last active October 1, 2021 11:22
Run elastic search single node in docker
#!/usr/bin/env bash
docker run \
-d \
--name "elasticsearch" \
--restart unless-stopped \
-p 9200:9200 \
-e "discovery.type=single-node" \
-e "cluster.name=elasticsearch-rails" \
-e "cluster.routing.allocation.disk.threshold_enabled=false" \
@javierav
javierav / split_datetime.rb
Last active September 8, 2021 13:06
Ruby module for split a datime field into date and time fields
module SplitDatetime
extend ActiveSupport::Concern
module ClassMethods
def split_datetime(*attributes)
attributes.each do |attribute|
class_eval <<~METHOD, __FILE__, __LINE__ + 1
def #{attribute}_date=(date) # def start_at_date=(date)
@#{attribute}_date = date # @start_at_date = date
_set_#{attribute} # _set_start_at
@javierav
javierav / aws_for_apps.md
Last active August 14, 2021 15:18
Despliegue de aplicaciones en AWS

AWS for Apps

Se trata de un servidor VPS fácil de usar. Se paga mensualmente. Es como un EC2 pero mas light, más sencillo de configurar pero con menos opciones de personalización. Tu te encargas de la seguridad, configuración, actualizaciones y de instalar todo

#include <SoftwareSerial.h>
SoftwareSerial other_serial(2, 3); // RX, TX
uint8_t entries[17];
void printHex(uint8_t num) {
char hexChar[2];
sprintf(hexChar, "%02X ", num);
class ApplicationService
include Callable
include Publishable
end
@javierav
javierav / vps-dokku.md
Last active December 30, 2021 11:20
VPS + Dokku

VPS + Dokku

  • Run this recipes under unprivileged user but with sudo capability, i.e. ubuntu.

common

apt packages

$ sudo apt update
@javierav
javierav / dates.md
Last active December 7, 2020 18:21
Trabajando con fechas en Rails

Trabajando con fechas en Rails

  • Lo habitual es trabajar con Time, ya que esta clase representa una fecha y una hora.

  • En Rails por defecto las fechas se guardan en UTC en la base de datos con Active Record.

  • En Rails por defecto la zona horaria de la aplicación es UTC. Se puede cambiar estableciendo en la configuración la opción config.time_zone = 'Madrid'.

  • Podemos obtener un listado de las zonas horarias que acepta el método anterior escribiendo en la consola rails time:zones:all. Para formularios Rails tiene helpers específicos para devolver este listado en modo de select.

@javierav
javierav / openswift-ftp.md
Created August 17, 2020 07:30
Acceso FTP a un contenedor OpenSwift

OVH tiene una pasarela que permite acceder al contenido de un contenedor de Public Cloud Storage / Archive mediante diversos protocolos, entre ellos FTP. Es muy útil si queremos almacenar copias de seguridad.

Acceso

Los datos de acceso habituales son:

  • Hostname: gateways.storage.gra1.cloud.ovh.net
  • Username: pca
  • Password: OS_TENANT_NAME.OS_USERNAME.PASS
@javierav
javierav / rails-config.md
Created August 17, 2020 07:30
Configuración de Ruby on Rails

En esta guía vamos a conocer como se podemos hacer uso de la base de datos PostgreSQL en nuestro proyecto Ruby on Rails.

Lo más habitual es que cuando comencemos un proyecto, desde el departamento de arquitectura nos faciliten ya el esqueleto montado de nuestra nueva futura aplicación molona con todo lo que necesitamos para comenzar a trabajar, pero también se puede dar el caso de que por nuestra cuenta queramos ir aprendiendo a usar ActiveRecord si todavía no estamos en un proyecto que tenga la suerte de usarlo, por lo que a continuación veremos como hacerlo desde cero.

Si queremos tener un proyecto de referencia podemos usar el generador ns_cli para genera un proyecto Rails que por defecto está configurado con PostgreSQL.

Generando una nueva aplicación

@javierav
javierav / factory-bot.md
Created August 17, 2020 07:28
FactoryBot

En esta guía vamos a aprender a usar factorías con FactoryBot para generar modelos con datos de prueba para nuestros tests o entornos de desarrollo.

Esta guía no deja de ser un resumen de la documentación oficial que podremos encontrar aquí.

Instalación

Normalmente ya la tendremos instalada en nuestro proyecto, pero si no lo está, debemos añadir a nuestro Gemfile del proyecto la siguiente línea: