Git

How to specify which Node version to use in Github Actions

When you want to specify which Node version to use in your Github Actions, you can use actions/setup-node@v2. The alternative way is to use a node container. When you try to use a publicly available node container like runs-on: node:alpine-xx, the pipeline gets stuck in a queue. runs-on is not …

AWS

Using semantic-release with AWS CodePipeline and CodeBuild

Here is the usual pattern of getting the source from a git repository in AWS CodePipeline. In the pipeline, we use AWS CodeStart to connect to a repo and get the source. Then, we pass it to the other stages, like deploy or publish. For some unknown reasons, CodePipeline downloads …

DBA

mysqldump Error: Unknown table ‘COLUMN_STATISTICS’ in information_schema (1109)

mysqldump 8 enabled a new flag called columm-statistics by default. When you have MySQL client above 8 and try to run mysqldump on older MySQL versions, you will get the error below. mysqldump: Couldn’t execute ‘SELECT COLUMN_NAME, JSON_EXTRACT(HISTOGRAM ‘$”number-of-buckets-specified”‘) FROM information_schema.COLUMN_STATISTICS WHERE SCHEMA_NAME = ‘myschema’ AND TABLE_NAME = ‘craue_config_setting’;’: Unknown …

AWS

What You Need To Know About SAM Templates

AWS SAM template is a thin abstraction of a CloudFormation template to develop and deploy lambda by a AWS tool, SAM (Serverless Application Model). It has shorter syntax compared to writing infrastructure as code with CloudFormation. We still do a little bit of learning when it comes to writing SAM …

AWS

AWS re:Invent 2020 Keynote by Andy Jassy

AWS re:Invent is always exciting and inspiring. Because of the pandemic, this year’s re:Invent is 100% online. I watched the keynote speech and took a memo. There is no mind-blowing new services this year (like the equivalent of announcing Lambda or SageMaker). It feels like they are building more capability …

Infrastructure

Getting Started with Lisp

There are good reasons why you want to learn Lisp. As Paul Graham said, the reason why you want to learn it is the same as the reason why you want to learn Latin. You probably won’t use Latin. But, the knowledge will enrich your experience with the language you …

Git

Should We Use Squash and Merge Option?

When we merge PR into the base branch, we have an option to do Squash and Merge. My preference is to use it all the time. Let’s talk about why this is the case. First of all, what do we want from our commit history? We want to have a …

Infrastructure

The Most Frustrating Thing About Being a Cloud Native Developer

Being a cloud native application developer requires access to cloud resources. I have been a cloud native developer, building applications in AWS. To be an effective cloud native developer, we need access to the cloud environment. In every company I’ve worked so far as a cloud native developer, I first …

Infrastructure

ETL Developers are Dead

I remember when I was a DataStage developer in circa 2014. All I did was making DataStage jobs. I was working on an enterprise data warehouse. In that company, they were using it for batch integration between systems. So, I also maintained those jobs. It was my first ETL development …

Infrastructure

Tips to Be a Good Code Reviewer

# Tips to Be a Good Code Reviewer Reviewing other people’s code is an important skill as a software engineer. Here are some tips to be a good code reviewer. General Rule Generally speaking, we should prioritise PR over your task if you are assigned as a reviewer. Any lingering …