<commit_before>---
time: "Mar 26, 2018"
version: 1.0
description: |
  Hi there, you're reading this email on our new BetterDev platform. Once we wrap things up, we will open source the whole codebase.
  In this issue, we have some good reads on database optimization as well as DB migration.
draft: false

links:
  - url: https://www.imperva.com/blog/2018/03/deep-dive-database-attacks-scarlett-johanssons-picture-used-for-crypto-mining-on-postgre-database/
    title: "Why Scarlett Johansson’s Picture Got My Postgres Database to Start Mining Monero"
    description: |
      By just having access to a database, someone can create creative payload to download a picture that embed shell code and trigger database to execute it to mine monero.

  - url: http://allyouneedisbackend.com/blog/2017/09/24/the-sql-i-love-part-1-scanning-large-table/
    title: "Efficient pagination of a table with 100M records"
    description: |
      A nice series about interesting problems and solutions with SQL.

  - url: https://tapoueh.org/blog/2018/03/database-modelization-anti-patterns/
    title: "Database Modelization Anti-Patterns"
    description: |
     Looks into three classic anti-patterns: the infamous EAV, using multiple values in a single column, and how using UUIDs might be an anti-pattern too.

  - url: https://engineering.squarespace.com/blog/2018/building-on-solid-ground-getting-postgres-foundations-right-with-pgbedrock
    title: "Building On Solid Ground: Getting Postgres Foundations Right With pgbedrock"
    description: |
      Managing user permissions in databases is hard. Developers can come and go. Other teams need to access the data for analytics and other purposes. This can quickly make permissions management a mess and no one dares to delete anything. Squarespace built a solution by syncing a YAML config to database permissions.

  - url: https://dev.to/tomerbendavid/git-configurations-2ngi
    title: "Oh git configurations! Let's simplify"
    description: |
      Git is complex. This article focuses on three Git config layers: system, global, and local.

  - url: https://mzucker.github.io/2016/09/20/noteshrink.html
    title: "Compressing and enhancing hand-written notes"
    description: |
      How can we use Machine Learning in daily life? The example this article uses is cleaning up scans of handwritten notes while simultaneously reducing file size.

  - url: https://begriffs.com/posts/2018-03-20-user-defined-order.html
    title: "User-defined Order in SQL"
    description: |
      This article looks into different way to implement user-defined order (such as a list of items where users can re-order them or insert new items).

  - url: https://blog.manifold.co/migrating-to-kubernetes-with-zero-downtime-the-why-and-how-d64ba9a92619
    title: "Migrating to Kubernetes with zero downtime: the why and how"
    description: |
      If it ain't broke, why fix it? We'll get to see the motivation on why manifold did that. The process and challenges are explained very well, plus we see some nice kops tips.

  - url: https://www.sqreen.io/checklists/saas-cto-security-checklist
    title: "The SaaS CTO Security Checklist"
    description: |
      If you're building a SaaS, look into this checklist. It's designed to fit into many stages: seed, series A and post-series A.

  - url: https://vincent.bernat.im/en/blog/2018-systemd-golang-socket-activation
    title: "Integration of a Go service with systemd: socket activation"
    description: |
      Socket activation listens on behalf of an application on incoming traffic, starting the application, and passing down the socket handler. We can restart the service while keeping socket around, therefore achieving zero downtime.

  - url: https://medium.com/@mccode/understanding-how-uid-and-gid-work-in-docker-containers-c37a01d01cf
    title: "Understanding how uid and gid work in Docker containers"
    description: |
      Understanding how usernames, group names, user ids (uid) and group ids (gid) map between the processes running inside a container and the host system is important to building a secure system.

  - url: https://hackernoon.com/the-best-architecture-with-docker-and-kubernetes-myth-or-reality-77b4f8f3804d
    title: "The best architecture with Docker and Kubernetes — myth or reality?"
    description: |
      Do Docker and Kubernetes deliver on their promise - simplifying how we run applications? I think it's an open-ended question that depends on your perspective.

  - url: https://samsaffron.com/archive/2018/03/22/managing-db-schema-changes-without-downtime
    title: "Managing DB schema changes without downtime"
    description: |
      Database migration is one of the most common reasons for outage or scheduled downtime. Sam, Discourse co-founder, shares techniques to mitigate.

brief:
  - url: https://www.citusdata.com/blog/2016/03/30/five-ways-to-paginate/
    title: "Five ways to paginate in Postgres, from the basic to the exotic"

  - url: https://behind.pretix.eu/2018/03/20/high-available-cdn/
    title: "Building a high-available file storage with nginx, haproxy and lsyncd"

  - url: https://realpython.com/python-speech-recognition/
    title: "The Ultimate Guide To Speech Recognition With Python"

  - url: http://www.sheshbabu.com/posts/tips-for-using-eslint-in-a-legacy-codebase/
    title: "Tips for using ESLint in a legacy codebase"

video:
  - url: https://www.youtube.com/watch?v=Yd3j3ZEx6DU
    title: "On Writing Software Well: Move the specifics down as far as it'll go when evolving codebase"

  - url: https://courses.knowthen.com/p/elm-for-beginners
    title: "Elm for beginners"

  - url: https://www.youtube.com/watch?v=U2mpUQTWRhI
    title: "Become a hacker: Read CVE and write Go code to exploit"

  - url: https://www.youtube.com/watch?v=uolTUtioIrc
    title: "gRPC Basics: learn how to define API on protobufs"

  - url: https://www.youtube.com/watch?v=UOn0b5kn3jk
    title: "Using Chrome’s ‘Local Overrides’ to Test Performance Hypotheses"

  - url: https://knowthen.com/ramda/
    title: "Ramda: A Functional Programming Library for JavaScript"

  - url: https://www.youtube.com/watch?v=NQta2urK3zk
    title: "10 tips for React Redux At Scale "

read_code:
  - url: https://github.com/markstory/lint-review
    title: "lint-review: bot to run linting on PR and make inline comment"
    category:
      - Python

  - url: https://github.com/oclif/oclif
    title: "oclif: The Open CLI Framework from Heroku"
    category:
      - TypeScript

  - url: https://github.com/JoshuaWise/better-sqlite3
    title: "The fastest and simplest library for SQLite3 in Node.js"
    category:
      - JavaScript
      - C++

  - url: https://github.com/anaskhan96/litfs
    title: "litfs: A FUSE file system in Go extended with persistent file storage"
    category:
      - Go

  - url: https://github.com/QyuTeam/qyu
    title: "Qyu: Distributed task execution system for complex workflows"
    category:
      - Ruby

tool:
  - url: https://github.com/pascalw/dashbling
    title: "Hackable React based dashboards for developers, inspired by Dashing"
    category:
      - TypeScript
      - ReactJS

  - url: https://gokrazy.org/
    title: "gokrazy: a pure-Go userland for your Raspberry Pi 3 appliances"
    category:
      - Golang

  - url: https://github.com/appbaseio/dejavu
    title: "dejavu: The Missing Web UI for Elasticsearch"
    category:
      - JavaScript
      - ElasticSearch

  - url: https://github.com/marktext/marktext
    title: "marktext: Markdown editor build with Electron and Vue"
    category:
      - JavaScript

  - url: https://github.com/mlabouardy/komiser
    title: "komiser: a nice dashboard to inspect your AWS environment"
    category:
      - Golang
      - TypeScript
      - DevOps

  - url: https://github.com/iawia002/annie
    title: "annie:  A fast, simple and clean video downloader"

  - url: https://github.com/mkearney/botrnot
    title: "botrnot: R package for detecting Twitter bots via machine learning"

  - url: https://github.com/soccerties/cassandra-monitoring
    title: "Cassandra monitoring with Prometheus and Grafana"

  - url: https://github.com/kubeapps/kubeapps
    title: "kubeapps: a dashboard to deploy k8s app in a single click"
    category:
      - Golang

  - url: https://github.com/lileio/lile
    title: "Easily generate gRPC services in Go"

  - url: https://github.com/vmware/tern
    title: "keep track of what installed in docker to meet open source compliance"
    category:
      - Python
<commit_msg>Dev tools link<commit_after>---
time: "Mar 26, 2018"
version: 1.0
description: |
  Hi there, you're reading this email on our new BetterDev platform. Once we wrap things up, we will open source the whole codebase.
  In this issue, we have some good reads on database optimization as well as DB migration.
draft: false

links:
  - url: https://www.imperva.com/blog/2018/03/deep-dive-database-attacks-scarlett-johanssons-picture-used-for-crypto-mining-on-postgre-database/
    title: "Why <NAME>’s Picture Got My Postgres Database to Start Mining Monero"
    description: |
      By just having access to a database, someone can create creative payload to download a picture that embed shell code and trigger database to execute it to mine monero.

  - url: http://allyouneedisbackend.com/blog/2017/09/24/the-sql-i-love-part-1-scanning-large-table/
    title: "Efficient pagination of a table with 100M records"
    description: |
      A nice series about interesting problems and solutions with SQL.

  - url: https://tapoueh.org/blog/2018/03/database-modelization-anti-patterns/
    title: "Database Modelization Anti-Patterns"
    description: |
     Looks into three classic anti-patterns: the infamous EAV, using multiple values in a single column, and how using UUIDs might be an anti-pattern too.

  - url: https://engineering.squarespace.com/blog/2018/building-on-solid-ground-getting-postgres-foundations-right-with-pgbedrock
    title: "Building On Solid Ground: Getting Postgres Foundations Right With pgbedrock"
    description: |
      Managing user permissions in databases is hard. Developers can come and go. Other teams need to access the data for analytics and other purposes. This can quickly make permissions management a mess and no one dares to delete anything. Squarespace built a solution by syncing a YAML config to database permissions.

  - url: https://dev.to/tomerbendavid/git-configurations-2ngi
    title: "Oh git configurations! Let's simplify"
    description: |
      Git is complex. This article focuses on three Git config layers: system, global, and local.

  - url: https://mzucker.github.io/2016/09/20/noteshrink.html
    title: "Compressing and enhancing hand-written notes"
    description: |
      How can we use Machine Learning in daily life? The example this article uses is cleaning up scans of handwritten notes while simultaneously reducing file size.

  - url: https://begriffs.com/posts/2018-03-20-user-defined-order.html
    title: "User-defined Order in SQL"
    description: |
      This article looks into different way to implement user-defined order (such as a list of items where users can re-order them or insert new items).

  - url: https://blog.manifold.co/migrating-to-kubernetes-with-zero-downtime-the-why-and-how-d64ba9a92619
    title: "Migrating to Kubernetes with zero downtime: the why and how"
    description: |
      If it ain't broke, why fix it? We'll get to see the motivation on why manifold did that. The process and challenges are explained very well, plus we see some nice kops tips.

  - url: https://www.sqreen.io/checklists/saas-cto-security-checklist
    title: "The SaaS CTO Security Checklist"
    description: |
      If you're building a SaaS, look into this checklist. It's designed to fit into many stages: seed, series A and post-series A.

  - url: https://vincent.bernat.im/en/blog/2018-systemd-golang-socket-activation
    title: "Integration of a Go service with systemd: socket activation"
    description: |
      Socket activation listens on behalf of an application on incoming traffic, starting the application, and passing down the socket handler. We can restart the service while keeping socket around, therefore achieving zero downtime.

  - url: https://medium.com/@mccode/understanding-how-uid-and-gid-work-in-docker-containers-c37a01d01cf
    title: "Understanding how uid and gid work in Docker containers"
    description: |
      Understanding how usernames, group names, user ids (uid) and group ids (gid) map between the processes running inside a container and the host system is important to building a secure system.

  - url: https://hackernoon.com/the-best-architecture-with-docker-and-kubernetes-myth-or-reality-77b4f8f3804d
    title: "The best architecture with Docker and Kubernetes — myth or reality?"
    description: |
      Do Docker and Kubernetes deliver on their promise - simplifying how we run applications? I think it's an open-ended question that depends on your perspective.

  - url: https://samsaffron.com/archive/2018/03/22/managing-db-schema-changes-without-downtime
    title: "Managing DB schema changes without downtime"
    description: |
      Database migration is one of the most common reasons for outage or scheduled downtime. Sam, Discourse co-founder, shares techniques to mitigate.

brief:
  - url: https://flaviocopes.com/chrome-devtools-tips/
    title: "A list of cool chrome devtools tips and tricks"

  - url: https://www.citusdata.com/blog/2016/03/30/five-ways-to-paginate/
    title: "Five ways to paginate in Postgres, from the basic to the exotic"

  - url: https://behind.pretix.eu/2018/03/20/high-available-cdn/
    title: "Building a high-available file storage with nginx, haproxy and lsyncd"

  - url: https://realpython.com/python-speech-recognition/
    title: "The Ultimate Guide To Speech Recognition With Python"

  - url: http://www.sheshbabu.com/posts/tips-for-using-eslint-in-a-legacy-codebase/
    title: "Tips for using ESLint in a legacy codebase"

video:
  - url: https://www.youtube.com/watch?v=Yd3j3ZEx6DU
    title: "On Writing Software Well: Move the specifics down as far as it'll go when evolving codebase"

  - url: https://courses.knowthen.com/p/elm-for-beginners
    title: "Elm for beginners"

  - url: https://www.youtube.com/watch?v=U2mpUQTWRhI
    title: "Become a hacker: Read CVE and write Go code to exploit"

  - url: https://www.youtube.com/watch?v=uolTUtioIrc
    title: "gRPC Basics: learn how to define API on protobufs"

  - url: https://www.youtube.com/watch?v=UOn0b5kn3jk
    title: "Using Chrome’s ‘Local Overrides’ to Test Performance Hypotheses"

  - url: https://knowthen.com/ramda/
    title: "Ramda: A Functional Programming Library for JavaScript"

  - url: https://www.youtube.com/watch?v=NQta2urK3zk
    title: "10 tips for React Redux At Scale "

read_code:
  - url: https://github.com/markstory/lint-review
    title: "lint-review: bot to run linting on PR and make inline comment"
    category:
      - Python

  - url: https://github.com/oclif/oclif
    title: "oclif: The Open CLI Framework from Heroku"
    category:
      - TypeScript

  - url: https://github.com/JoshuaWise/better-sqlite3
    title: "The fastest and simplest library for SQLite3 in Node.js"
    category:
      - JavaScript
      - C++

  - url: https://github.com/anaskhan96/litfs
    title: "litfs: A FUSE file system in Go extended with persistent file storage"
    category:
      - Go

  - url: https://github.com/QyuTeam/qyu
    title: "Qyu: Distributed task execution system for complex workflows"
    category:
      - Ruby

tool:
  - url: https://github.com/pascalw/dashbling
    title: "Hackable React based dashboards for developers, inspired by Dashing"
    category:
      - TypeScript
      - ReactJS

  - url: https://gokrazy.org/
    title: "gokrazy: a pure-Go userland for your Raspberry Pi 3 appliances"
    category:
      - Golang

  - url: https://github.com/appbaseio/dejavu
    title: "dejavu: The Missing Web UI for Elasticsearch"
    category:
      - JavaScript
      - ElasticSearch

  - url: https://github.com/marktext/marktext
    title: "marktext: Markdown editor build with Electron and Vue"
    category:
      - JavaScript

  - url: https://github.com/mlabouardy/komiser
    title: "komiser: a nice dashboard to inspect your AWS environment"
    category:
      - Golang
      - TypeScript
      - DevOps

  - url: https://github.com/iawia002/annie
    title: "annie:  A fast, simple and clean video downloader"

  - url: https://github.com/mkearney/botrnot
    title: "botrnot: R package for detecting Twitter bots via machine learning"

  - url: https://github.com/soccerties/cassandra-monitoring
    title: "Cassandra monitoring with Prometheus and Grafana"

  - url: https://github.com/kubeapps/kubeapps
    title: "kubeapps: a dashboard to deploy k8s app in a single click"
    category:
      - Golang

  - url: https://github.com/lileio/lile
    title: "Easily generate gRPC services in Go"

  - url: https://github.com/vmware/tern
    title: "keep track of what installed in docker to meet open source compliance"
    category:
      - Python

{'fraction_non_alphanumeric': 0.09028624513731638, 'fraction_numerical': 0.014283225918829473, 'mean_word_length': 3.336354481369587, 'pattern_counts': {'":': 0, '<': 4, '<?xml version=': 0, '>': 4, 'https://': 77, 'lorem ipsum': 0, 'www.': 18, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 6, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4699826', 'n_tokens_mistral': 5461, 'n_tokens_neox': 5082, 'n_words': 1811}