@roamhacker @codexeditor IMVHO (that's My Very Humble opinion—I have no credentials in CS or professional experience coding, just amateur self-education) it's very important to distinguish "data structure" from "data model."

Often people SAY the former and seem to MEAN the latter.
@roamhacker @codexeditor I HIGHLY recommend this video about RISC-V from this one YouTuber with a Swiss Accent:

It's colossally insightful, both about chip architecture specifically and structured thinking/processing more broadly.

Below is a highlight from that video:
@roamhacker @codexeditor Andreas makes some observations about the bare concept of a "technology stack."

Tech stacks are valuable because they allow us to decouple implementation from higher-level function.

E.g.: If you use a PC, whether your processor is Intel or AMD shouldn't change your experience. Image
@roamhacker @codexeditor This next insight from Andreas blew my mind when I first encountered it: in a given stack, Flexibility at one level of a stack REQUIRES Standardization at the next layer down.

He unpacks this very helpfully with examples—again, highly recommend the whole video. Image
@roamhacker @codexeditor Here's how this applies to the "Data Structure" vs "Data Model" distinction.

We talk about "data structures" like there are lots of them, each with different advantages and trade-offs. And like we can borrow the "data structures" from one context for application to another.
@roamhacker @codexeditor But I'm starting to think that "data structure" should be on the layer BELOW industry/application-specific insight.

"Data Structure" should be standardized. "Data MODEL" should be what encodes the unique way of thinking distinctive to a specific context.
@roamhacker @codexeditor At the end of the day, the purpose of data STRUCTURE is just to map keys to values. A data MODEL tells you how those values are organized. When we make one encoding carry both, we sacrifice both Standardization and Flexibility by conflating two separate layers of the stack.
@roamhacker @codexeditor E.g., the way JSON is often implemented in industry. JSON usually carries BOTH key-value pairs AND a representation of how those values are structured together. This is an anti-pattern because it makes one structure do double duty.
@roamhacker @codexeditor @codexeditor preaches all the time the benefits of standoff annotation for markup—this is that exact concept but applied to data itself and how programs interact with it.
@roamhacker @codexeditor In this conference talk from Clojure Conj 2018, Rich Hickey talks about how Clojure grapples with this in spec (and all the same thinking applies to Datalog/Datomic):
@roamhacker @codexeditor I think Clojure/Datalog/Datomic gets it right—the purest form for data-as-values to take is a really long series of tuples (in Datalog/Datomic's case, a five-value tuple but there's more than one way that this can be done).
@roamhacker @codexeditor Bottom line: If we're sufficiently distinguishing between a) data as the info itself and b) data model as the info's shape, then I'm not sure it makes sense to talk about taking the "Data Structures" from one context to another.

Soapbox rant over, thanks for your patience 😁

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Caleb Figgers

Caleb Figgers Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @CalebFiggers

22 May
Most of the time when I want to make two pages into aliases/synonyms, what am I *actually* trying to do?

I'm trying to say, "These two page titles *are* different (different enough not to rename to be identical), but for some purpose I'm TREATING THEM as the same."
In what context does it MATTER that two pages are associated that way?

I want to argue, it's NOT when I'm WRITING notes. That's not when aliasing matters.

Aliasing matters when I'm trying to resurface connections BETWEEN notes.
Read 12 tweets
24 Dec 20
@syncretizm @codexeditor I find indentation very, very important. In fact, I would say indentation is the primary reason to consider @RoamResearch a "Tool for Thought" rather than a basic memo taking machine.

I think indentation is at least AS important as backlinks.

A 🧵👇
@syncretizm @codexeditor @RoamResearch Here's the big idea: Indentation neatly models three of the most important features of how human thought works. These are:

Decomposition
Association
Abstraction

Let's look at each.
@syncretizm @codexeditor @RoamResearch Decomposition is the human cognitive ability to separate a complex thing into constituent parts.
Read 25 tweets
9 Nov 20
I am a Christian. I believe that God is real. I believe that the Christian scriptures (aka, "the Bible") contain God's actual writings. I believe God wants humans to know about and believe the message that is in his book.
The Bible teaches that all humans are born with a terminal disease. All except three, that is—but two of those three were Patients 0 and 1, respectively. Their names were Adam and Eve.

The disease is not genetic. But it is hereditary, and there is no natural cure.
This illness has a 100% mortality rate, and YOU have it, because your parents had it. The presenting symptom: *not wanting to get better.*

This disease is called Sin.
Read 20 tweets
10 May 20
The true killer feature of @RoamResearch that I wouldn't be able to leave behind is the Daily Notes page. Roam made me realize that the one truly universal index for all my thoughts is Time.
Having everything indexed by time means that my thoughts are, at minimum, never LESS organized in my db than they are in my brain (but maybe more so). If there is a useful or insightful additional dimension to index along, I can add that WITHOUT destroying the time index.
"Non-hierarchical" is not as accurate as "Multi-hierarchical" for describing most of the concept spaces I work in.
Read 15 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!

:(