How to build a custom keyboard
The more I used the computer, the more I realize we all have different workflow and habit, yet I used a pre-built keyboard. I know Chefs that like to have their own custom build knives, I would like to build my own keyborad, custom to what I need, write my own firmware for it. This is a serie with 5 articles.
Data Science at the Command Line
This is the website for Data Science at the Command Line, published by O’Reilly October 2014 First Edition. This hands-on guide demonstrates how the flexibility of the command line can help you become a more efficient and productive data scientist. You’ll learn how to combine small, yet powerful, command-line tools to quickly obtain, scrub, explore, and model your data.
Patterns of Distributed Systems
Distributed systems provide a particular challenge to program. They often require us to have multiple copies of data, which need to keep synchronized.
This article recognizes and develops these solutions as patterns, with which we can build up an understanding of how to better understand, communicate and teach distributed system design.
Entropy Explained, With Sheep
Sometime on Linux when you are generating password, it said something like generating entropy, or not enough entropy. Entropy is a key of randomess. In this we will learn about them
from a different angel, using sheep to help visualize them for easily understanding.
Faster Performance with Unlogged Tables in PostgreSQL
Time to time I want to have a table with fast write and I’m ok if I lost data of that table, I don’t want it to be corrupted(such as violation constraint) but losing data of that table
if database is restarted is ok, then unlogger table is an option. It skips write ahead log.
Internal anycast at wikimedia
There is no doubt WikiMedia receives a massive amount of traffic. The awesome of making change and see it reflect immediately at that scale are amazing.
This article describe two major changes to their infrastructure. Firstly, servers that used to be fronted by LVS for load balancing are now peering directly with our routers. Secondly, we have started using IP anycast for a highly critical service: recursive DNS.
Know About Encodings And Character Sets To Work With Text
If you are dealing with text in a computer, you need to know about encodings. In a world where UTF-8 is everywhere, understand that string is an array of bit is important. How it appears on screen or deserialize are depend on a few layer of abstraction.
TCP window scaling, timestamps and SACK
The Linux TCP stack has a myriad of sysctl knobs that allow to change its behavior. This includes the amount of memory that can be used for receive or transmit operations, the maximum number of sockets and optional features and protocol extensions.
lethe: a tunnable delete-aware LSM engine
LSM is famous for MyRock, LevelDB, Cassandra. LSM-trees write the incoming key-value entries in an in-memory buffer to ensure high write throughput, and uses in-memory auxiliary data structures (such as Bloom filters and fence pointers) to provide competitive read performance. While LSMs are great for writes and reads in general, we show that all state-of-the-art LSM-based data stores perform suboptimally in presence deletes in a workload
Code to read
an open source static analysis tool we’ve built to detect and prevent security and privacy issues in Python code. Read the companion post
git cli(not the server part) in Rust. It’s written to optimize the user-experience, and perform as good or better than the canonical implementation(which is C)
A web browser for the space age 🚀. Of course I’m not going to use it on my daily web usage, but I would peek to see how this can be done given its current state is still small enough for me to understand
Reimplement Redis in Ruby
This website is a free, “online book” about attempting to rewrite Redis™* in Ruby. It has 5 chapters righ now. You will learn how to implement a TCP servers, understand Redis protocol so I say that is a lot to learn and super helpful
lightweight, high-speed immutable database for systems and applications. you can track changes in sensitive data in your transactional databases and then record those changes permanently in a tamperproof immudb database. This allows you to keep an indelible history of sensitive data, for example debit/credit card transactions
Give you a SQL interface to your Git repository. You can query lots of interesting thing about your Git repo using SQL you known.
a high-performance protocol-native connection pool for PostgreSQL.
a linter tool for language PL/pgSQL (native language for PostgreSQL store procedures).
a script written in Perl that allows you to review a MySQL installation quickly and make adjustments to increase performance and stability.
an open source, high-performance, event collection service. Capture all events your application generates and stream to your preferred Data Warehouse with current support for RedShift and BigQuery. Support one click deploy to Heroku
a keyboard firmware. Useful if you like to build DIY keyboard.
Split your file into encrypted horcruxes so that you don’t need to remember a passcode
an application that automates the lifecycle of servers
That's it for this round, have a great day! If you like this newsletter, please tell the world, or
tweet about this