we’re moving towards a world that is increasingly connected to the internet.
your phone, your car, your watch, your insulin pump, your garage door opener, your dog’s collar, your water bottle, your coffee maker, your sunglasses, your refrigerator—more and more, everyday objects are coming online.
and if you’ve ever tried to spec out a smart home setup, or connect Alexa to your doorbell, or pair an Apple Watch to an Android phone, then you probably already know what I’m about to tell you:
all of this technology sucks.
it’s almost as if tech companies are going for maximum irony here, because we’ve never been more connected—and yet nothing works together.
I could gab for hours about how capitalism has pretty much shit the bed in this regard: walled gardens stifle innovation, concentrate power, and I think their best argument (it leads to a refined user experience) isn’t just wrong, I think it’s corporate gaslighting.
¯\(ツ)/¯
but this post isn’t about that.
this post is about data structures.
because they’re kickass and I like ‘em.
if you didn’t know, the word “data” is a plural noun (singular: datum). that means I should be saying “data are” instead of “data is.”
but saying “data are” hurts my head and makes me feel like an ass.
so I’m not gonna. fight me.
moving on!
or, rather: the lack thereof.
because the problem here is that (the royal) you has not been fighting for them.
but thankfully, someone has.
it’s the single most ungodly abomination I’ve ever fallen in love with (myself included), but Ceramic is a fucking treasure.
there are literally so many moving parts that I don’t even know where to start with this.
Ceramic ties together:
all in the same package.
trust me when I say that it. is. a. monster.
but if you’re able to push through its absolutely mind-numbing complexity, you start to see how elegant it is. in fact, Ceramic might be the most powerful storage network on the planet.
and it’s all thanks to schemas.
my watch tracks my heart rate. Strava handles GPS. and Spotify’s bumping tunes the whole time.
and I’m having the time of my life (or whatever runners say).
then I get home, and I’m clearly a total nerd, so I flip on the computer and start loading up data about my run into my favorite runner’s analysis program.
and let’s also imagine this hypothetical run (as all of mine are) happened in a slightly more magical world where 2Pac and Biggie never got shot.
what I mean is: all these rivals and competitors actually work together, instead of killing each other for supremacy.
imagine this:
if you’ll notice, none of these things are trying to communicate.
but for the magic to happen, all these apps have to do is 1) agree on who you are, and 2) agree on how to record time.
a schema is a set of rules for structuring data.
in this example, “how to record time” is our schema.
so I’m back at my computer. and I’ve got some kickass software for analyzing my runs.
I import my heart rate, my GPS path, AND my music history. and because they all use the same schema for timestamps, the program has no problem doing just a little bit of comparison and spitting out some pretty clear (and potentially concerning) observations.
they just need to use Ceramic, and I can integrate them myself.
and Ceramic, by its nature, enforces schemas, so I can be certain that my data will always play nice.
big picture, this means that any data that uses the same timestamp schema can be connected to my joggers’ analysis tool. stuff like: the weather, the moon, the air quality, etc. can all be used natively in my program, without needing to convert or mangle it beforehand.
plus, thanks to native DID integration, all that data is mine. I can use it for whatever I want, wherever I want, however I want.
instead, that honor goes to (say it with me): schemas.
because it’s actually quite easy to make your data accessible.
but it’s another thing to make it compatible.
and if my therapist has taught me anything, it’s that to really make something magical happen…
…you’ve gotta be compatible.