# Why Nonviolent Communication?

To improve communication quality by valuing everyone’s needs. Judgments and violence are tragic expressions of unmet needs.

# What NVC is not

  • NOT about being nice.
  • NOT about making them to do what we want. It’s about mutual understanding.

# Ways to enhance connection & understanding:

  1. vulnerably express our feelings & needs
    • conciousness of the ongoing feelings & needs
    • vulnerability of exposing feelings & needs
  2. empathically listen to the feelings & needs ofthe other.
    • Qualities of empathic listening: presence, focus, space, caring, verbal reflection of feelings & needs
    • NOT advising, fixing, consoling, story-telling, sympathizing, analyzing, explaining, …
    • No matter what is said, hear only feelings, needs, observations & requests

e.g. Are you feeling … because you need …?

# Ways to alienate us from one another

  • Diagnoses, judgments, labels, analysis, criticism, comparisons, etc.
  • Deserve thinking (i.e. that certain behaviors merit punishment or rewards)
    • Demands (denial of other person’s choice; intention to punish those who don’t do it)
    • Denial of choice or responsibility (had to, should, supposed to, they made me do it, etc.)
  • CAC: Customer Acquisition Cost is the cost to convert a customer to buy a product/service.
  • LTV: Lifetime Value is the estimated net profit we can make from a customer.
  • PBP: Payback Period in capital budgeting refers to the period of time required to recoup the funds expended in an investment, or to reach the break-even point. An ideal PBP is about 1 year.

# LTV:CAC Ratio

LTV:CAC Ratio helps you determine how much you should be spending to acquire a customer, so that you can achieve sustainable growth.

  1. 1:1 = lose money the more you sell
  2. 3:1 or better = good.
  3. 5:1 or higher = under-investing in marketing

Skiplist

793 2018-10-09 12:39

A skip-list is essentially a linked list that allows you to binary search on it. The way it accomplishes this is by adding extra nodes that will enable you to ‘skip’ sections of the linked-list. Given a random coin toss to create the extra nodes, the skip list should have O(logn) searches, inserts and deletes.

Usecases

  • LevelDB MemTable
  • Redis SortedSet
  • Lucene inverted index

Bloom Filter

788 2018-10-09 12:39

A Bloom filter is a data structure used to detect whether an element is in a set in a time and space efficient way.

False positive matches are possible, but false negatives are not – in other words, a query returns either “possibly in set” or “definitely not in set”. Elements can be added to the set, but not removed (though this can be addressed with a “counting” bloom filter); the more elements that are added to the set, the larger the probability of false positives.

Usecases

  • Cassandra uses Bloom filters to determine whether an SSTable has data for a particular row.
  • An HBase Bloom Filter is an efficient mechanism to test whether a StoreFile contains a specific row or row-col cell.
  • A website’s anti-fraud system can use bloom filters to reject banned users effectively.
  • The Google Chrome web browser used to use a Bloom filter to identify malicious URLs.

Public API Choices

1531 2018-10-04 01:38

JSON RPC

GraphQL

REST

gRPC

Usecases

Etherum

Github V2, Airbnb, Facebook

BFF / API Gateway

Swagger

High performance, Google

Single Endpoint

Yes

Yes

No

Yes

Type System

Yes

No uint64

Yes

No uint64

Yes w/ Swagger

No uint64

Yes,

has uint64

Tailored Results

No

Yes

No

No

Batch nested queries

No

Yes

No

No

Versioning

No

Schema Extension

Yes, w/ v1/v2 route s

Field Numbers in protobuf

Error Handling

Structured

Structured

HTTP Status Code

Structured

Cross-platform

Yes

Yes

Yes

Yes

Playground UI

No

GraphQL Bin

Swagger

No

Performance tracing

Apollo plugin

caching

No or HTTP cache control

Apollo plugin

HTTP cache control

Native support not yet. but still yes w/ HTTP cache control

Problem

Lack of community support and toolchain

Barrister IDL

42.51 kb client-side bundle size

Unstructured with multiple endpoints. awful portability.

Grpc-web dev in progress

140kb JS bundle

Not all places support HTTP2

© 2010-2018 Tian
Built with ❤️ in San Francisco