"A type system is a tractable syntactic method for proving the absence of certain program behaviors by classifying phrases according to the kinds of values they compute." - Pierce, TAPL
(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
"Consensus is impossible" is a gloss for "there's always an execution that doesn't terminate".
Once you've internalized that you can't distinguish slow nodes from dead nodes, how do you deal with that?
"When you're engaged in a battle of wits with a Sicilian and death is on the line, you certainly need to think about epistemic logic."
A correct distributed program achieves (nontrivial) distributed property X. So we need to ask:
- is X even attainable?
- what's the cheapest* protocol that gets me X? (* according to some cost metric)
Inspired by "Parsing CSS with Parsec".
Just quick notes and code that you can play with in REPL.
By @kachayev
... or Why Pipelining Is Not That Easy
Golang Concurrency Patterns for brave and smart.
By @kachayev
| # List of all the valid pdf URLs ever posted to the #Clojure IRC channel. | |
| # | |
| # Many of them are interesting CS papers others are not that useful. What I've done: | |
| # | |
| # 1. crawled an IRC history archive for the channel | |
| # 2. extract pdf list in a file with: grep -riIohE 'https?://[^[:space:]]+pdf' * > pdf-links.txt | |
| # 3. remove dupes: cat pdf-links.txt | sort | uniq > pdf-links-uniq.txt | |
| # 4. filter only HTTP 200: cat pdf-links-uniq.txt | xargs curl -o /dev/null --connect-timeout 2 --silent --head --write-out '%{http_code} %{url_effective}\n' | grep "^200" > valid-pdf-links.txt | |
| # | |
| # Now your choice to download them all or not. If you want, use: cat valid-pdf-links.txt | awk '{print $2}' | xargs wget |
From a (mostly) Ruby on Rails developer.
After doing the below everything seems to work (some of it worked before doing anything), including Ruby, Gems, RVM, Homebrew, VirtualBox/Vagrant VMs, Pow, tmux, git, vim.
- Did a full-disk backup that I can restore from
- Moved out
/usr/localto avoid super slow install, per option 1 in https://jimlindley.com/blog/yosemite-upgrade-homebrew-tips/:sudo mv /usr/local ~/local - Upgraded to Yosemite
- Restored
/usr/local, per option 1 in https://jimlindley.com/blog/yosemite-upgrade-homebrew-tips/:sudo mv ~/local /usr
This blog post series has moved here.
You might also be interested in the 2016 version.