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.
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.
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.
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.
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.
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.
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.
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.
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 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.
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.
If you see lots of NaN or undefined errors in JavaScript, a type checker may help you to prevent these issues in production. People started to adopt strong type in JavaScript by leveraging external tool or a different language that compiles down to JavaScript. This post compares two solutions: Flow, which is a tool to add static typing to JavaScript, and TypeScript, which is another programming language.
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.
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.
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.
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.
BetterDev Link
Every Monday