Infrastructure as Code with AWS CDK

In a previous article I showed you how to manage multiple lambdas in a mono repo using webpack and how to deploy them to AWS using the CLI. Of course for that deployment command to work the resources had to be previously created on AWS. Behind the curtain I created the lambdas and a REST API using API Gateway to expose those lambdas to client code using the AWS Console (web UI) but I didn’t show you how I did it.

Continue reading “Infrastructure as Code with AWS CDK”

Multi Lambda Development Workflow With Webpack

Ideally, a lambda is the glue that ties together a microservice that it’s developed in isolation from other parts of a system and it’s stored and managed in its own repository. Shared functionality between lambdas, if any, might be exposed and consumed as npm packages for further isolation.

Continue reading “Multi Lambda Development Workflow With Webpack”

Reading Data from the Ronin Sidechain

In order to automate processes related to Axie Infinity I needed to read data from smart contracts deployed to the Ronin sidechain. Because Ronin is an EVM compatible blockchain, the same tools used for Ethereum will work for Ronin. However, you still need three critical things: the URL of a Ronin RPC server, the ABI of the smart contract you want to interact with and the address it was deployed to on Ronin.

Continue reading “Reading Data from the Ronin Sidechain”

Google Apps Script Local Development Tutorial

Updated on September 20th 2021

In a previous blog post I talked about the limitations of Apps Script and its cloud editor. Today I’ll focus on showing you how to create a modern local development environment that uses Typescript and consumes libraries from npm.

For this purpose we will be using clasp, a command line tool developed by Google that will allow us to connect our local development environment with Google Drive. As an obvious first step we need to install this package globally from npm.

Continue reading “Google Apps Script Local Development Tutorial”

The Different Levels of Immutability in Javascript

Avoiding mutations in our code is becoming increasingly important in Javascript due to the principles of functional that makes our code easier to predict and to scale. This blog post can be considered a continuation of a previous one: The Limits of Object.assign().

Continue reading “The Different Levels of Immutability in Javascript”

Improving the Yeoman Generator Gulp Angular

The Yeoman generator generator-gulp-angular is a great tool for building AngularJS and in my opinion is much better than the official Yeoman generator for AngularJS (generator-angular), because it uses Gulp and not Grunt as the task runner, it has a component-like folder structure for the code instead of the “drawer” style, it uses libsass instead of compass (ruby), it supports Typescript and has a lot of options for configuration.

But there is a thing that I don’t like: how it handles bootstrap-sass.

Continue reading “Improving the Yeoman Generator Gulp Angular”

Working with Sass, Bootstrap and Gulp

For frontend developers, the days when you manually linked css files to your index.html are over. Modern workflows needs some compilation steps before having a css file that can be use in development or production. Most notably, sass has become the most important language that extends css functionalities, while gulp has won the battle on the building tools front.

Continue reading “Working with Sass, Bootstrap and Gulp”

Introduction to the Typescript Transpiler

Typescript is the new kid on the block, a newly attempt to bring order to the javascript chaos. ES6 is around the corner and is a fantastic step forward for frontend development (classes!) but it will take years to be fully implemented in all major browsers. That’s when Typescript comes to the rescue. Typescript goal is to be a superset of ES6 that, in addition to all the new stuff that the standard is defining, will add a static type system. Typescript has also a transpiler that converts our Typescript code (i.e. ES6 + types) to ES5 or ES3 javascript code so we can use it in today browsers.

Continue reading “Introduction to the Typescript Transpiler”

Abstract/Concrete Inheritance Model in AngularJS

In a previous post I showed how to create a “classic” inheritance model in AngularJS using directives. This time I will show another inheritance model: the abstract/concrete.

In OOP, an abstract class cannot be instantiated, it serves only to provide common properties and functionality to child classes. In Angular, we have to make an analogy and define that an abstract directive is one that does not have a template or a link function, only a controller. The template is provided by child directives.

Continue reading “Abstract/Concrete Inheritance Model in AngularJS”