brew install gnupg, pinentry-mac(this includes gpg-agent and pinentry)
Generate a key:
$ gpg --gen-key
Take the defaults. Whatevs
Tell gpg-agent to use pinentry-mac:
$ vim ~/.gnupg/gpg-agent.conf
Jason Campbell jxson
|# In order for gpg to find gpg-agent, gpg-agent must be running, and there must be an env|
|# variable pointing GPG to the gpg-agent socket. This little script, which must be sourced|
|# in your shell's init script (ie, .bash_profile, .zshrc, whatever), will either start|
|# gpg-agent or set up the GPG_AGENT_INFO variable if it's already running.|
|# Add the following to your shell init to set up gpg-agent automatically for every shell|
|if [ -f ~/.gnupg/.gpg-agent-info ] && [ -n "$(pgrep gpg-agent)" ]; then|
- Differential Dataflow - The code is ugly Rust, but the logic and linked papers are quite interesting.
- Spinning Fast Iterative Dataflows - Flink's execution model. Also, coverage in the Morning Paper.
- Discretized Streams - Spark Streaming's model of operation.
- Google's Dataflow Model - This is now also available as Apache (Incubating) Beam.
- Kafka Streams - Kafka offers "hipster stream processing," and a nice unification between tables and streams.
Streaming More G
we've had great success building modular database stuff on top of leveldb with node, but as I have learnt more about databases it's become apparent to me that the idea of a modular database would be better implemented at a slightly lower level.
Level db provides a sorted key:value store, which, because of the sorted property, many things can be implemented on top of. For example, for replication, or for consistent materialized views, we often need a write ahead log. This can easily be implemented via a batch write to level, and writing the log into a section of the leveldb key space which is treated as append only.
What forces layout / reflow
Generally, all APIs that synchronously provide layout metrics will trigger forced reflow / layout. Read on for additional cases and details.
Getting box metrics
|The MIT License (MIT)|
|Copyright (c) 2015 Justin Perry|
|Permission is hereby granted, free of charge, to any person obtaining a copy of|
|this software and associated documentation files (the "Software"), to deal in|
|the Software without restriction, including without limitation the rights to|
|use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of|
|the Software, and to permit persons to whom the Software is furnished to do so,|
|subject to the following conditions:|