-->

miércoles, 27 de noviembre de 2019

Genexus: Proveedor Externo de Almacenamiento

Esta entrada muestra un paso a paso para configurar la propiedad Storage Provider en GeneXus v16 u5, utilizando el servicio S3 de Amazon Web Services (aws de aquí en adelante).

Pasos para habilitar S3

Crear la cuenta en aws

Seguramente una de las razones de la popularidad de aws es que la cuenta gratuita da acceso a una gran cantidad de servicios. Existen varios que son gratuitos de por vida y otros que son gratuitos durante 12 meses. La verdad es que la cantidad de servicios disponibles puede desorientar a primera vista, por lo que en entradas posteriores iré detallando mejor los que vaya usando.

Para la creación de la cuenta simplemente se sigue el paso a paso que muestra la página:
  1. Cuenta de correo y contraseña
  2. Tipo de Cuenta (Profesional/Personal)
  3. Información de Pago
  4. Confirmación de Identidad
Crear Cuenta en AWS Información de Contacto Información de Pago Confirme su identidad
En el paso 4 tuve problemas, nunca me llegó el mensaje con el código de verificación por lo que me puse en contacto con soporte técnico vía chat y luego de explicarles el problema me llamaron al número que registré en la confirmación. Luego de algunas preguntas de verificación me ayudaron habilitando la cuenta y el acceso a la consola.

Empezando con S3

La primera vez que se accede al servicio S3 se puede seguir el tutorial Cómo realizar copias de seguridad de archivos en Amazon S3 el cual muestra de forma detallada los pasos a seguir para utilizar el espacio de almacenamiento.

Información S3 en Capa Gratuita
Información de las características gratuitas de S3

Para el uso del ejemplo, se configuró el bucket (contenedor en el que almacena los archivos) de la siguiente forma:

  1. Nombre y Región: el nombre del bucket debe ser único entre todos los nombres de Amazon S3. En la documentación de aws se puede revisar a detalle las consideraciones a tener en cuenta, una de las más importantes es que no se debe colocar . (punto) en el nombre del bucket si se desea que el acceso SSL quede habilitado (lo comprobé con el primer bucket creado).
    En cuanto a la región, es recomendable seleccionar una que se encuentre lo más cerca posible al lugar desde el que se realizarán las peticiones. Guiándome en el Mapa de Cable Submarino, decidí seleccionar São Paulo.

  2. Nombre y Región

  3. Configurar Opciones: En esta sección se definen las características principales del bucket.
    Control de Versiones, si se desea almacenar los cambios de los archivos (no aplica para el caso de uso).
    Registro de acceso al Servidor, es una característica interesante ya que permite tener el registro de las solicitudes realizadas al bucket. Como se van a almacenar archivos blob para visualización en diferentes opciones, puede resultar útil. Tener en cuenta la nota que se encuentra en la documentación con respecto a los costos, habilitar el registro no genera cargos adicionales, pero los archivos generados se totalizan en el uso del almacenamiento.
    El resto de características las dejé sin marcar.


  4. Establecer permisos: la sugerencia es que se deshabilite el acceso público al bucket y luego de crear le bucket se pueden definir los usuarios con acceso. Si no se habilita el acceso público al bucket, el momento de confirmar una transacción con BlobFile se presenta un error en la aplicación.


  5. Revisión: simplemente muestra un resumen de las características del bucket.
Revisión

Crear usuario y habilitar acceso

Para poder hacer uso del almacenamiento de S3 es necesario habilitar un usuario y configurar sus credenciales. Para esto se utiliza el servicio Identity and Access Management (IAM).

Dentro de IAM se accede a la opción usuarios, añadir usuarios y se sigue el asistente.
  1. Ingresamos el nombre de usuario y el tipo de acceso (para el ejemplo Acceso Mediante Programación)
  2. Con la opción Asociar directamente las políticas existentes y buscando S3, se despliegan las opciones de acceso disponibles. Para el ejemplo se seleccionó AmazonS3FullAccess.
  3. Etiquetas, lo dejé en blanco
  4. Revisar, muestra el resumen de los datos del usuario.
  5. Credenciales, en este paso se debe descargar el .csv o copiar el ID de clave de acceso y la Clave de acceso secreta, ya que indica que luego no se puede acceder a esos datos.

 

Configurando GeneXus

La información oficial de GeneXus se la puede revisar en la wiki, ahí se especifican los parámetros propios de cada proveedor. Para el caso de Amazon S3 se deben configurar las siguientes propiedades:

Bucket name pruebagxs3
Folder Name blobS3 (si no existe en el bucket, es creado por la aplicación)
Storage Access Key ID la generada en el último paso del asistente de IAM
Storage Secret Access KEY la generada en el último paso del asistente de IAM
Storage Region South America (São Paulo)
Storage Endpoint Standar

Para probar si todo funciona, definí una transacción llamada Archivo, con id automático, un campo de nombre y el contenido de tipo BlobFile


Luego de hacer un rebuild all y ejecutar la aplicación, se crea un registro al que se le agrega un pdf de 18mb. Se puede comprobar que la tabla sigue con un tamaño de 208KB y al acceder al bucket de S3 se encuentra el directorio creado y el archivo subido.

propiedades de la tabla archivo
Tamaño de la tabla luego de cargar pdf de 18 mb
archivo cargado a S3
Archivo de 18mb cargado a S3

Con esta funcionalidad se libera a la base de datos del almacenamiento de los archivos y se agiliza la presentación de los mismos, ya que las peticiones son realizadas al S3 de Amazon y no al servidor de aplicaciones.

Para conocer de forma general los principales servicios disponibles en aws recomiendo los programas 9 y 17 de Full Stack Podcast (increíble programa sobre desarrollo) y para profundizar en el manejo de S3 (y el resto de servicios) se puede revisar la documentación propia de Amazon.

martes, 12 de noviembre de 2019

Hablemos de GX

Quiero que esta entrada sea el punto de inicio de una nueva locura: un podcast sobre GeneXus

Por que? desde hace tiempo tengo ganas de grabar algo y publicarlo, pero no encontraba el tema apropiado. Aprovechando que estoy enfocado en mejorar mis habilidades como desarrollador decidí hablar de la herramienta que más utilizo.

Además, busqué y no existe otro. No me extraña, ya que GeneXus no se caracteriza por su masificación, es una herramienta que ha estado orientada a un nicho empresarial principalmente.

Tengo algunas ideas, primero debo aprender la mejor forma de grabar el audio, escoger al menos los primeros diez temas, armar una lista de deseos de colegas del sector que me gustaría incluir, etc.

De ninguna forma considero que sea un experto en GeneXus, de hecho hasta hace un año trabajaba con una versión muy por detras de la última lanzada y desde la salida de la versión 16 decidí actualizarme junto con mi equipo de desarrollo, para conocer todas las novedades y sacarle el máximo provecho.

La idea principal del podcast es dar a conocer la herramienta, contar novedades, experiencias, casos de uso y cualquier tema que surga en el día a día.

Logo GeneXus

domingo, 3 de noviembre de 2019

Como si no hubiera mañana

La idea es aprovechar al máximo el tiempo y por eso he decidido retomar algunos de mis hobbys:
  • Programar:  aprender nuevos lenguajes, mejorar el conocimiento de los que ya utilizó y estar al día en los tendencias y nuevas herramientas.
  • Blog: retomar el blog (ya le hice un cambio de diseño) y el plan es publicar al menos una entrada a la semana. También está en planes construir páginas para consolidar links a sitios de interés
  • Ejercicios: no quiero dejar de lado este aspecto, voy a organizarme para realizar no menos de 30 minutos 5 días a la semana de actividad física.
  • Idiomas: quiero completar los cursos que tengo abiertos en Duolingo, me falta poco para terminar el de Portugués y luego de eso retomar el de inglés.
  • Linux: desde que conocí la filosofía detrás de este sistema operativo, siempre me ha llamado la atención y por temporadas le he dedicado más tiempo. Quiero volver a utilizarlo con más frecuencia y por ese motivo todos los cursos que realice van a ser sobre linux y de ser posible, en una distribución diferente.
  • Leer: es un tema fundamental y mi plan es leer un documento técnico a la semana. Aprovecharé la subscripción a TradePub que tienen una gran cantidad de recursos.
Seguro de que mi capacidad de aprendizaje y obsesión por aprender de todo me ayudarán a cumplir con mis objetivos.


domingo, 20 de octubre de 2019

Quiero ser Desarrollador

Seguramente hoy en día no llama la atención, ya que en muchos sitios se menciona que la programación es la carrera del futuro y que todo el mundo debería aprender a programar.

Lo gracioso es que he trabajado más de 10 años en una empresa de consultoría informática y desarrollo de software. Pero recientemente decidí ver más allá del día a día y conocer un poco más de las tecnologías actuales.

Todo empezó cuando descubrí el Web Developer Roadmap ahí me dí cuenta que si bien había escuchado muchos de los términos, no tenía un conocimiento solido en ninguno y que había muchos otros de los que no tenía las más mínima idea.

Creo que la causa es que durante mis años como desarrollador solo me enfoqué en utilizar GeneXus, el cual es tremendamente útil para realizar aplicaciones de misión crítica de una forma acelerada, pero por el concepto que maneja (basado en conocimiento) abstrae al desarrollador del conocimiento específico de la tecnología para que se concentre en la reglas del negocio. Esto no es malo, de echo ayudó a mi empresa a desarrollar un ERP completo contando con recursos limitados, pero en mi caso me alejó de las bases al punto de no conocer ningún lenguaje específico.

Así que enfocado en convertirme en Full Stack Developer, he comenzado a revisar los recursos disponibles en línea, que son casi ilimitados y una gran cantidad de los mismos son gratuitos. Ya empecé en el camino y cuento con mis primeros certificados:
  • Scrum: curso gratuito de Udemy para entender la filosofía, conceptos y acercarse a la dirección de proyectos. Me queda pendiente terminar el libro Scrum y XP desde la trinchera y profundizar en los conceptos.
  • Python: curso de la Pontificia Universidad Católica de Chile que me dió las bases de este lenguaje que se encuentra tan de moda. Tengo pendiente hacer alguna pequeña aplicación para poner en práctica lo aprendido y revisar alguno de los cursos gratuitos para aplicarlo en análisis de datos.
  • FrontEnd: empezando por las bases, estoy siguiendo un curso de HTML+CSS y en paralelo las certificaciones de FreeCodeCamp
  • GeneXus: no pienso dejarlo de lado, más ahora que siento que se han puesto serios con las opciones disponibles y está casi a la par con la tecnología de punta. Para esto he revisado las charlas de los dos ultimos eventos (GX28 y GX29) con el objetivo de tratar de dominarla.
Como eje transversal está Linux, para volver a familiarizarme con sus particularidades decidí que los cursos que haga los realizaré en una distribución diferente. Así que para el curso de Python monte el ambiente de desarrollo en Debian 10 y el de HTML+CSS lo estoy haciendo sobre Manjaro. Para el de java tengo pensado montar el ambiente en Fedora, para los de seguridad seguramente Kali Linux y OpenSuse si es necesario más.

Así que veamos como me va en este camino a convertirme en Full Stack Developer, pero de verdad, es decir conocer los cinco componentes principales (Backend, Frontend, Mobile, Infraestructura y Gestión)

jueves, 17 de octubre de 2019

Reactivando el blog

Luego de varios años sin publicar nada, decido retormar este espacio para compartir contenido.

En esta nueva etapa estará enfocado principalmente a programación, desarrollo web, linux y temas varios sobre tecnología.

También habilitaré páginas para consolidar links de interes agrupados por temántica.

Veamos como va...

miércoles, 25 de noviembre de 2015

Corro por que puedo

Como dice el título, porque puedo!

Todo empezó en agosto de 2013, por pura curiosidad. A la fecha he participado en 10 competencias de diferentes tipos y  distancias: 7, 8, 10, 15 y 21 en asfalto y 8 en sendero. Desde la primer 10k (Nike We Run 2013) finalizada en 55:30 hasta la última (Ruta de las iglesias 2015) finalizada en 49:56, he mejorado el tiempo en poco más de 5 minutos.

Fríamente suena poco, pero en realidad con el tiempo uno se da cuenta que cada segundo que se gana requiere de un esfuerzo importante y cada minuto es un logro que anima a continuar.

De momento retomando los entrenos, ya que me tomé un descanso obligatorio por molestias en las rodillas, fruto de malos hábitos muy comunes: no calentar apropiadamente, sobre entrenarse, no avanzar de forma progresiva en las distancias y no realizarse un chequeo periódico para comprobar el estado físico.


Con paso lento pero seguro analizando los próximos entrenamientos, ya que hay mucho que mejorar y experimentar en este mundo del running:
- Estilo minimalista, objetivo energizer night race 2017 descalzo
- Correr más rápido, objetivo 5k sendero en 22 mins y 5k asfalto en 20
- Maratón, objetivo correr la primera y llegar a terminarla en menos de 3:30
- Media Maratón en 1:40
- Y la clásica 10k asfalto en 40 mins


Links de interés:
Correr al estilo minimalista: http://www.comocorrer.es/aprender-correr-minimalista/
Mejorar tiempos: http://www.10runners.com/formula-710-tu-maxima-velocidad-en-tus-proximos-10k/
Ejercicios: http://www.10runners.com/core-rutina-rapida-10-ejercicios/
Calentamiento: http://www.10runners.com/calentamiento-para-a-una-carrera-o-entrenamiento-de-velocidad/


miércoles, 14 de noviembre de 2012

Marilyn Manson en Ecuador


Casi 24 horas luego del concierto ya puedo emitir un comentario concreto de lo que fue el espectáculo y todo el alboroto que causó. Aclarar que todo los expresado a continuación es mí muy particular apreciación, incluso he evitado al máximo escuchar cualquier comentario al respecto para no dejarme influenciar.
 
 
Empezando por la visita a este pequeño país (ya era hora) demás está decir que imaginaba estar en uno de sus conciertos desde la primera vez que vi el Guns, God and Government, seguramente su mejor DVD y la mejor gira, incluso mejor que Rock is Dead del Mechanicals o Dead to the World del Antichrist. Seguro que hace 15 años no lo dejaban aterrizar por todo lo ‘malo’ que representaba, hace 10 volaba muy alto como para interesarse en venir a estas tierras, hace 5 andaba experimentando y tratando de reencontrar el camino (con disco emo incluido), hasta que decidió venir ahora.
 
El momento podría parecer bueno, ya que trae nuevo disco bajo el brazo que regresa un poco a su sonido clásico (hard-industrial-semigotico), por desgracia no se compara con ninguno de los de su trilogía: Antichrist Superstar, Mechanicals Animals y Holy Wood (para mí el mejor de todos), pero en realidad empieza a visitar lugares ‘nuevos’ ahora que su popularidad empieza a desaparecer y quema los últimos cartuchos que le quedan. Difícil veo que vuelva al top de los viejos tiempos. 

 
Ya en el concierto es difícil describir la sensación al escuchar los primeros acordes, un viaje instantánea al pasado, por allá a finales de los 90 cuando escuchaba una y otra vez The last tour on Earth. Por suerte de sus nuevos discos solo fueron 3 o 4 canciones que sonaron bastante bien, de los clásicos casi todas las esperadas: Disposable Teens, Personal Jesus, Rock is Dead, The Dope Show, The Beautiful People, Sweet Dreams, The Love Songs, Antichrist Superstar, mObscene, Coma White (la verdad una sorpresa). Como siempre en el set list faltaron varias The Reflecting God, The Fight Song, I don´t like the Drugs, Tourniquet, Astonishing Panorama of the Endtimes, The Death Song, etc, etc.
 
 
Hay que reconocer que la escenografía estuvo bastante bien, las luces y proyecciones acompañaron de manera perfecta la interpretación de cada tema, la indumentaria genial, el sonido muy bueno, pero nada de esto justifica la espera de más de hora y media para prepararlo. Además en muchos temas la interpretación no fue la mejor y distó mucho del mejor sonido de la banda, cuando tenían la mejor alineación de su historia: Marilyn Manson en la voz, Jhon 5 en la guitarra, Twiggy Ramírez en el bajo, Ginger Fish en la batería y Madonna Wayne Gacy en los teclados/percusión, fue notable que la nueva alineación aún no logra acoplarse del todo o intentan darle un nuevo sonido a los viejos temas.
Volverá? No lo creo y preferiría que no, estar ahí fue suficiente para cumplir con un viejo anhelo, pero a estas alturas una segunda visita sería como una mala secuela de una buena película. 
 
 
En resumen, disfrute cada instante de los clásicos: cabeceos, brincos, corear hasta quedar afónico, todo valió para sentirse envuelto por todo el poder de su música y lo que representa para mí. Sin importar lo que se diga, el mejor concierto en el que he estado.