- CRDTs
- What are CRDTs?
- Vector clocks
- How do these related to dotted version vectors?
- Causal consistency
- CAC proof
- Rack awareness and multi-data center deployments
- What is this?
- Why is this important?
- Wait-free synchronization
| #include <stdio.h> | |
| #include <stdlib.h> | |
| #include <stdint.h> | |
| #ifdef _MSC_VER | |
| #include <intrin.h> /* for rdtscp and clflush */ | |
| #pragma optimize("gt",on) | |
| #else | |
| #include <x86intrin.h> /* for rdtscp and clflush */ | |
| #endif |
| Originally from: http://erlang.org/pipermail/erlang-questions/2017-August/093170.html | |
| For a safe and fast Erlang SSL server, there's a few | |
| configuration values you might want by default: | |
| [{ciphers, CipherList}, % see below | |
| {honor_cipher_order, true}, % pick the server-defined order of ciphers | |
| {secure_renegotiate, true}, % prevent renegotiation hijacks | |
| {client_renegotiation, false}, % prevent clients DoSing w/ renegs | |
| {versions, ['tlsv1.2', 'tlsv1.1']}, % add tlsv1 if you must |
| const immutableJSFormatter = { | |
| header(x) { | |
| if (x && x.toJS) return ['span', {}, x.toString()]; | |
| return null; | |
| }, | |
| hasBody(x) { | |
| return x && x.toJS; | |
| }, | |
| body(x) { | |
| return ['span', {}, JSON.stringify(x.toJS(), null, 2)]; |
| (ns whatever.cljs | |
| (:require [cljs.compiler :refer (munge)]) | |
| (:refer-clojure :exclude (munge defonce))) | |
| (defmacro defonce | |
| [vname expr] | |
| (let [ns (-> &env :ns :name name munge) | |
| mname (munge (str vname))] | |
| `(when-not (.hasOwnProperty ~(symbol "js" ns) ~mname) | |
| (def ~vname ~expr)))) |
| Equal | |
| SameQ | |
| MatchQ | |
| MemberQ | |
| Take | |
| Drop | |
| Head | |
| Most | |
| Rest | |
| Part |
| #### ALL CLASSES | |
| # Unsorted at the moment | |
| |===========================|======|==================|====================|=================|========|==================| | |
| | CLASS | TYPE | ATTRIBUTES | PROPERTIES | FONT.PROPERTIES | LAYERS | LAYER.PROPERTIES | | |
| |===========================|======|==================|====================|=================|========|==================| | |
| | auto_complete | | | row_padding | | layer0 | tint | | |
| | | | | dark_content | | | opacity | | |
| |---------------------------|------|------------------|--------------------|-----------------|--------|------------------| | |
| | auto_complete_label | | | fg | | | | | |
| | | | | match_fg | | | |
A friend asked me for a few pointers to interesting, mostly recent papers on data warehousing and "big data" database systems, with an eye towards real-world deployments. I figured I'd share the list. It's biased and rather incomplete but maybe of interest to someone. While many are obvious choices (I've omitted several, like MapReduce), I think there are a few underappreciated gems.
###Dataflow Engines:
Dryad--general-purpose distributed parallel dataflow engine
http://research.microsoft.com/en-us/projects/dryad/eurosys07.pdf
Spark--in memory dataflow
http://www.cs.berkeley.edu/~matei/papers/2012/nsdi_spark.pdf
| -module(bench). | |
| -export([run_suite/3, run/1]). | |
| run_suite(Name, Passes, Messages) -> | |
| Results = run_suite1(Passes, Messages, []), | |
| Avg = lists:sum(Results) / Passes, | |
| StdDev = math:sqrt(lists:sum([math:pow(X - Avg, 2) || X <- Results]) / Passes), | |
| Summary = [{avg, Avg}, {stddev, StdDev}, {min, lists:min(Results)}, | |
| {max, lists:max(Results)}], |
RapGenius has an interesting post about Heroku's randomized load balancing, complaining about how random placement degrades performance compared to prior omniscient approaches. RapGenius ran some simulations, including an experiments with a "Choice of Two" method:
Choice of two routing is the naive method from before, with the twist that when you assign a request to a random dyno, if that dyno is already busy then you reassign the request to a second random dyno, with no regard for whether the second dyno is busy
This differs subtly but substantially from the standard "Power of Two Choices" randomized load balancing:
each [request] is placed in the least loaded of d >= 2 [Dynos] chosen independently and uniformly at random
Take a look at the difference in queue lengths below, for 200 Dynos, 100