Why your encrypted database is not secure
Databases such as MySQL and MongoDB support encryption, either storage encryption at rest or network traffic encryption with TLS. Amazon RDS makes it much more easier by simply toggling an option with RDS. However, is it really that secure? This is a good read to improve knowledge on database encryption generally.
Float or double?
In scientific computation we use floating point numbers a lot. When programming, we don’t give much thought on this, especially if we are using a dynamic language such as Ruby or PHP. This article is a guide to picking the right floating point representation for you.
Running 10 Million PostgreSQL Indexes In Production (And Counting) (2016)
Database 101 tells us that we need to use index to speed the query to avoid full table scan over all our data. However, we should not overuse them because it will affect INSERT performance and requires more memory. Hence, we need to be balance on what to index and how. In this post, Heap analytic writes about how they manage to speed up query with over 10 million indexes. It’s a good read in database engineering.
Reverse engineering guide for beginners: Methodology and tools
In software, reverse engineering can be understood as the process of disassembling a binary to understand how it works without accessing to its source code. By the very nature of this, it is usually considered a hard thing to do, however, with the right tools, a good methodology and some basic knowledge, you can get into this field.
Technical Debt: Definition and Practical Approach
This post doesn’t present anything new, and you may have read about technical debt a hundred times, but this post is focused on Technical Debt matters with the description of the practical approach we follow in Mikamai.
On-call at any size - How to Scale On-call from One Engineer to Tens of Thousands
Creating and running an on-call rotation is the very first step in building truly reliable infrastructure at any scale, but it’s far from the last. As a company grows and scales, the systems that it builds and runs grows in complexity and require more sophisticated on-call practices. While there is no universal approach, there are industry best practices for setting up on-call and incident response at any and every size.
Home Weather Display with Nerves and GrovePi
Many programmers have a Raspberry PI laying around. Nerves is a project that allows you to run Elixir on Raspberry PI. This posts will get you familar with Raspberry PI and its toolkit and reading/writing data to display/sensor. Plus, a good read on Elixir.
Most commonly used Git tips and tricks
Git is widely use nowadays, almost every company adopts it as their preferred version control. Hence, mastering Git helps you boost your workflow. This repository is a collection of useful Git tricks. They aren’t that long and you can get through them in 30 minutes.
Scaling your API with rate limiters
An API is usually used in a stateless manner, so it’s more difficult to protect from rate limiting. In a normal web app, we will have user session and a CSRF token check before it’s executed. With an API, it is a bit different, a client can misbehave and send lots of unwanted requests, for instance. In this post, Stripe shares how they do their API rate limiting.
Writing Efficient Queries
Writing efficient queries that balance performance and memory footprint is the most crucial part of writing good software. Doing this is not easy, but keeping an eye on logs and how your queries are executed under the hood will definitely help you a lot.
An Introduction to the `fr` CSS unit
Many programmers maintain a blog or a website. So even if you aren’t a front-end developer, you still likely have to work with CSS. Recently, browsers have rapidly improving support for
fr CSS length unit. Let’s take a quick look into it.
Adopting Flow & TypeScript
Time Series Anomaly Detection Algorithms
Anomaly detection is used to detect spikes or supsicious activities based on volume of certain events. In this post, Statsbot gives overview of the most popular anomaly detection algorithms for time series, and their pros and cons.
Introduction to K-means Clustering
K-means clustering is a type of unsupervised learning, which is used when you have unlabeled data. The goal of this algorithm is to find groups in the data, with the number of groups represented by the variable K. The algorithm works iteratively to assign each data point to one of K groups based on the features that are provided.
15 working examples to get you started with Deep Learning without learning any of the math.
AI, Machine Learning, Deep Learning are all common buzzwords nowadays. However, aside from the trend, it’s worth seeing what we can achieve with machine learning. A quick search of Deep Learning exposes lots of resources and you can be overwhelmed at where to start. This repository includes just that: examples with working models and scripts that to download. Follow and run experiments to see what Deep Learning can do.
Writing a MySQL storage engine from scratch
MySQL, or its drop-in replacement, MariaDB, has a concept of storage engine, which acts as an adapter to read/write data on different kind of storage. For example, in MariaDB you can use a CSV storage engine to manipulate CSV files with SQL queries. But is writing your own storage engine hard? It turns out you can get started pretty easily.
That's it for this round, have a great day! If you like this newsletter, please tell the world, or
tweet about this