https://databass.dev/links/1 -> https://issues.apache.org/jira/browse/CASSANDRA-2494
https://databass.dev/links/2 -> https://github.com/apache/cassandra/blob/7df67eff2d66dba4bed2b4f6aeabf05144d9b057/src/java/org/apache/cassandra/service/reads/repair/RowIteratorMergeListener.java
https://databass.dev/links/3 -> https://github.com/lasp-lang/partisan
https://databass.dev/links/4 -> https://github.com/helium/plumtree
https://databass.dev/links/5 -> https://dev.mysql.com/doc/internals/en/transaction-management.html
https://databass.dev/links/6 -> https://www.postgresql.org/docs/9.3/sql-prepare-transaction.html
https://databass.dev/links/7 -> https://docs.mongodb.com/v3.6/tutorial/perform-two-phase-commits
https://databass.dev/links/8 -> https://fauna.com
https://databass.dev/links/9 -> https://github.com/cockroachdb/cockroach
One of my favorite comments on abstraction and parametricity ..
Parametricity can be thought of as the dual to abstraction. Where abstraction hides details about an implementation from the outside world, parametricity hides details about the outside world from an implementation.
When using OCaml as the implementation language, you abstract using ADTs (Abstract Data Types) and make your abstraction parametric using functors. And bind all of the algebras together using Modules.
Majority of the resources I used to build Tucan, my toy optimizing compiler in Rust. This list is not complete but most of the things listed here are things I really read through and used.
- Engineering a compiler (I use this a lot! For SSA, dominance and optimizations)
- [Static Single Assignment Book][ssabook] (I use this a lot!)
- Types And Programming Languages
The following are examples of the four types rate limiters discussed in the accompanying blog post. In the examples below I've used pseudocode-like Ruby, so if you're unfamiliar with Ruby you should be able to easily translate this approach to other languages. Complete examples in Ruby are also provided later in this gist.
In most cases you'll want all these examples to be classes, but I've used simple functions here to keep the code samples brief.
This uses a basic token bucket algorithm and relies on the fact that Redis scripts execute atomically. No other operations can run between fetching the count and writing the new count.
This is a plain-text version of Bret Victor’s reading list. It was requested by hf on Hacker News.
Highly recommended things!
This is my five-star list. These are my favorite things in all the world.
A few of these works have had an extraordinary effect on my life or way of thinking. They get a sixth star. ★
These resources (articles, books, and videos) are useful when you're starting to learn the language, or when you're learning a specific part of the language. This an opinionated list, no doubt. I've compiled this list from writing and teaching Clojure over the last 10 years.
- 🔴 Mandatory (for both beginners and intermediates)
- 🟩 For beginners
- 🟨 For intermediates
See also List of materials about Software Design in Haskell
| Junior | Middle | Senior | Architect | |
|---|---|---|---|---|
| Haskell level | Basic Haskell | Intermediate Haskell | Advanced Haskell | Language-agnostic |
| Haskell knowledge scope | Learn you a Haskell | Get programming with Haskell | Haskell in Depth | Knows several languages from different categories |
| Get programming with Haskell | Haskell in Depth | Functional Design and Architecture | ||
| [Other books on Software Engineering in Haskell](https://github.com/graninas/software-design-in-haskell#B |