Install Postgres 10, and then:
sudo pg_dropcluster 10 main --stop sudo pg_upgradecluster 9.6 main sudo pg_dropcluster 9.6 main
|token <- rtweet:::check_token(NULL)|
|dsw <- GET(url = "https://api.twitter.com/1.1/lists/members.json?slug=women-in-data-science&owner_screen_name=becomingdatasci&cursor=-1&count=5000&skip_status=1", token)|
|map_chr(content(dsw)$users, "screen_name") %>% sort %>% cat(sep = "\n")|
Concurrency is a domain I have wanted to explore for a long time because the locks and the race conditions have always intimidated me. I recall somebody suggesting concurrency patterns in golang because they said "you share the data and not the variables".
Amused by that, I searched for "concurrency in golang" and bumped into this awesome slide by Rob Pike: https://talks.golang.org/2012/waza.slide#1 which does a great job of explaining channels, concurrency patterns and a mini-architecture of load-balancer (also explains the above one-liner).
Let's dig in:
A checklist for designing and developing internet scale services, inspired by James Hamilton's 2007 paper "On Desgining and Deploying Internet-Scale Services."
Ideas are cheap. Make a prototype, sketch a CLI session, draw a wireframe. Discuss around concrete examples, not hand-waving abstractions. Don't say you did something, provide a URL that proves it.
Nothing is real until it's being used by a real user. This doesn't mean you make a prototype in the morning and blog about it in the evening. It means you find one person you believe your product will help and try to get them to use it.
I have some early benchmark results for our work on a high performance NATS server in Go. Quick Summary: We can process ~2M msgs/sec through the system, and the ingress and egress are fairly well balanced. The basics of the architecture are intelligent buffering and IO calls, fast hashing algorithms and subject distributor/routing, and a zero-allocation hand-written protocol parser. In addition, I used quite a bit of inlining to avoid function overhead, no use of defer, and little to no object allocation within the fast path. I will share more details and the code at a future date.