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
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
built-in path variables in #graph
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:
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.
Jul 26, 2021 • 9 tweets • 3 min read
Real developer problem that gets solved by #graph. Today's thread: JSON document nesting
🧵
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
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:
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.