David Allen Profile picture
Director, Developer Advocacy for @grafana | Prev: @neo4j, fintech startups, @MITREcorp | community builder, people matter | he/him
Feb 8, 2023 13 tweets 3 min read
Having recently started at @grafana I just want to thread a minute about a meta-pattern I'm seeing in software communities that my graph Neo4j people might relate to 🧵 caring about community one of the things I like to look at is most viewed community posts as a broad aggregate view of what people have trouble with / what they wonder about, which I was recently doing with grafana's community site
Jan 4, 2022 18 tweets 4 min read
Back in my government consulting days we used to think about policies & laws in terms of this 4-square (with some examples). Who pays, and who benefits?

"Concentrated" means focused on an identifiable group; "diffuse" means spread out among everyone Concentrated benefits + diffuse costs are typically the easiest things to get done, and the hardest things to kill. An example is all plumbers get a $2k tax break. You have a motivated constituency who will fight HARD for it. And the cost per taxpayer might be $0.05
Jan 3, 2022 7 tweets 2 min read
Interesting stuff. Spotify track shuffle was once truly random and people complained. It didn't "feel random". So they made it not random and people were happier

medium.com/immensity/how-… I generated these random numbers online (1-5)

1 3 4 2 2 2 1 3 2 1

they don't "feel random" though because too many 2s
Oct 20, 2021 7 tweets 2 min read
The cat, as a metaphor for software engineering Sub-systems -- and "System of Systems"
Oct 18, 2021 8 tweets 2 min read
For some reason, some mutuals got me thinking about smoking

Memory: working as a teen, I knew a guy who was 100% sure that it was the glue in cigarette papers that caused cancer, not the tobacco. He smoked natural tobacco leaf-wrapped cigars, thought he was all good at the shop where I worked, there was a 90-yr old guy who walked with a cane. Was the spitting image of William S. Burroughs. Every day, he came in and got his usual, 2 packs of Lucky Strikes unfiltered Image
Oct 1, 2021 5 tweets 3 min read
#SQL vs. #Cypher for hierarchies

Recursive common-table expressions (SQL)

vs.

built-in path variables in #graph ImageImageImage This only shows part of the picture; with recursive CTEs in #SQL I believe it is the case that:

- You can constrain max recursion, but not minimum without writing extra code

Contrast to cypher:

MATCH (e:Employee)-[:REPORTS_TO*3..5]->(:Employee)
Sep 14, 2021 9 tweets 4 min read
Example thread on how to load #JSON into #Neo4j Aura -- working up from simple to more complex. Let's use the .@TheHackersNews public API to load a mini-feed of stories.

First: head endpoint with best stories, and simplest JSON load: Image the apoc.load.json call always returns "value" with whatever came back. HackerNews is sending results, an array of post IDs.

We can extract out just the post IDs with a bit of extra cypher like this. Nice clean array of long values. Image
Jul 26, 2021 9 tweets 3 min read
Real developer problem that gets solved by #graph. Today's thread: JSON document nesting

🧵 Image so it's common to have data elements like a "food" with some related information (here, it's "nutrition information"). When using a document database you basically have two choices:

- Store the two documents separately and lookup the other when needed
- Store them together
May 19, 2021 5 tweets 2 min read
A function is a DB that maps a key/input set to a value/result that's why they memoize so well

A DB is an impure function that returns a value given a particular input/query

GitHub is a database of programs

And data.gov is a program that returns DBs Streams and tables are kinda the same thing looked at through different lenses

🤯

docs.confluent.io/platform/curre…
May 19, 2021 20 tweets 5 min read
Batch vs. streaming data ingest into #graph and .@neo4j

(mini thread) So the main typical tradeoff is latency. Batch when you need fresh data in larger volumes, say once per hour/day/week/month

Stream when time value of data is high/immediate and you can't afford to be more than minutes behind
Nov 26, 2019 13 tweets 3 min read
Seems like a lot of #graph visualization stuff cues off of humans' tendency to want to reason about things in terms of either time, or space. In a force-directed layout, effectively you have an x/y axis and you're reasoning about the graph in space, where "distance" is used as a proxy for path length.
Nov 20, 2019 10 tweets 4 min read
Halin v0.12.0-beta was just published, and open source monitoring tool for Neo4j. Biggest new thing? Support for Neo4j 4.0 milestone releases! Want to know more? Thread 👇 Neo4j 4.0 is in the testing phase. You can read some more here, but 2 biggest new things are:

✅ Multi-database support
✅ Fine-grained security

neo4j.com/blog/neo4j-ent…
Jun 3, 2019 8 tweets 4 min read
Halin v0.11 was just released, with significant new stuff! Also a new UI design. Let's jump in (thread) Cluster members exist in their own slide-out menu. The "tab per member" approach wasn't working with bigger clusters. Now you have room to grow.