-
Netflix is responsible for about 1/3 of downstream traffic in NA
-
Responsible team in the company is called "edge engineering"
- Apart from resiliency/scaling, also cares about high velocity product innovation and real time health insights
-
Basic architecture:
- end-user devices make requests to ELBs, which delegates to zuul, which routes to origin servers serving APIs
Spurred by recent events (https://news.ycombinator.com/item?id=8244700), this is a quick set of jotted-down thoughts about the state of "Semantic" Versioning, and why we should be fighting the good fight against it.
For a long time in the history of software, version numbers indicated the relative progress and change in a given piece of software. A major release (1.x.x) was major, a minor release (x.1.x) was minor, and a patch release was just a small patch. You could evaluate a given piece of software by name + version, and get a feeling for how far away version 2.0.1 was from version 2.8.0.
But Semantic Versioning (henceforth, SemVer), as specified at http://semver.org/, changes this to prioritize a mechanistic understanding of a codebase over a human one. Any "breaking" change to the software must be accompanied with a new major version number. It's alright for robots, but bad for us.
SemVer tries to compress a huge amount of information — the nature of the change, the percentage of users that wil
| BEARER='...' | |
| def load_tweets(query,since_id=nil,lang="en",page=1,rpp=100) | |
| res=RestClient.get('https://api.twitter.com/1.1/search/tweets.json', | |
| {:params=> {:q=>query, :lang=>lang,:count=>rpp,:result_type=>:recent,:since_id=>since_id}, | |
| :accept=>:json, | |
| :Authorization => "Bearer #{BEARER}"}) | |
| puts "query '#{query}'\n since id #{since_id} result #{res.code}" | |
| return [] unless res.code==200 | |
| data=JSON.parse(res.to_str) |
Answering an Stackoverflow Question.
I am learning Neo4j and decided to take one of the sample queries and add a twist to it. I took this example http://docs.neo4j.org/chunked/stable/cypher-cookbook-co-favorited-places.html and wanted to say what if there was an additional attribute that you could use to filter the results by. My test I put together was to have tags in the graph as well and then I wanted to search by overlapped favorites desc then by overlapping tags desc.
Here is the sample data I am using:
(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.
| extension Array { | |
| func first() -> Element? { | |
| if isEmpty { | |
| return nil | |
| } | |
| return self[0] | |
| } | |
| func last() -> Element? { |
| <!DOCTYPE html> | |
| <html> | |
| <head> | |
| <meta charset="utf-8"> | |
| <title>Styled Select</title> | |
| </head> | |
| <style> | |
| * { |
JSON, MessagePack, and Google's Protocol Buffers are all awesome. Here's how they're awesome on different client environments and how to use them on your rails env.
Some links:
- JSON: http://json.org/
- MsgPack: http://msgpack.org/
- ProtoBufs: https://code.google.com/p/protobuf/
Output from Ruby Client:
- Write functions() in lower case, KEYWORDS in upper.
STARTeach keyword clause
ONa new line.- Use either
camelCaseorsnake_casefor node identifiers but be consistent. - Relationship type names should use
UPPER_CASE_AND_UNDERSCORES. - Label names should use
CamelCaseWithInitialCaps. MATCH (clauses)-->(should)-->(always)-->(use)-->(parentheses)-->(around)-->(nodes)- Backticks `cân éscape odd-ch@racter$ & keyw0rd$` but should be a code smell.
| MATCH (n1:node { n.id = "1234" }) | |
| MATCH (n0)-[r1]->(n1)-[r2]->(n2) | |
| DELETE r1, n1, r2 | |
| MERGE (n0)-[:NEXT]->(n2) |