HannahMR's avatar
HannahMR
HannahMR@primal.net
npub1tv5j...jlst
Pretty much just my shower thoughts 🚿🧠 But I do other things like... Developer Advocate at Lightning Labs | Organizer of San Juan Bitdevs | Founder of Velas Commerce
HannahMR's avatar
hmichellerose 1 month ago
The key to the whole inner peace thing is to not have any desires or attachments that your sense of self is dependent upon. 20+ years ago I spent a few weeks studying Buddhism in a world religions class at Oakton Community College. I don't remember a lot accept that I didn't like it. I'm not supposed to desire anything? What's the point of being alive then? Years latter I came to understand the concept more as you're not supposed to be attached to things and that made a lot more sense to me. ...But I am attached to things! I have to un-attach from my kids in order to have inner peace? Nah that's BS But now I get it. It goes back to this 'outcome pressure' thing that I deal with a lot and the idea of not taking on responsibility for things outside my control. It's about a sense of what you are and are not responsible for. The attachment thing is mostly right. But it doesn't mean don't care, or don't strive, it means don't lose your sense of self to an attachment to something external.
HannahMR's avatar
hmichellerose 1 month ago
“Only the people can save the people” 🫶 #NoKings image
HannahMR's avatar
hmichellerose 1 month ago
Someone: "how do you do it all?" Me: "I don't, I have a partner who does it all with me." Ladies, don't marry a man that wants a wife and kids. Marry a man that wants to be a husband and father!
HannahMR's avatar
hmichellerose 1 month ago
Sometimes I hear that macaroons are confusing, and that bums me out as I find them to be so elegant and simple. So let me see if I can effectively communicate how beautiful this little piece of tech is… Let’s imagine that you have a server that has some data to serve up and you want to gate your content and perhaps charge for it. Step one, create a secret. Here we’ll use just the word “secreto”, which is of course “secret” in Spanish. The tricky part for you is that you have to know what a hash function is, and the tricky part for your server is that it has to hold on to and protect this secret. Now perhaps you want to give your users ID’s. Something complex and official looking like “id12345678id”. To make a very simple macaroon for your user you simple hash “secreto” together with that ID “id12345678id”. You can try this yourself on the command line if you like. $ echo "secreto;id12345678id" | sha256sum The result is “55413cca2fbc3a31f5ef5ab7b18390c926dd7f9d466034ea8ec2a0867e19e26d” and congratulations you created a macaroon! (Kinda) You then hand your user this data: id12345678id 55413cca2fbc3a31f5ef5ab7b18390c926dd7f9d466034ea8ec2a0867e19e26d You don’t have to hold on to any data at all besides that secret. You can hold on to that ID data if you like. But tomorrow when the holder of this macaroon shows back up to access your services, how can you validate them? Very simply as you know the secret! You take that ID “id12345678id” and hash it together with your secret [$ echo "secreto;id12345678id" | sha256sum] to see if you get the hash that they showed up with, “55413cca2fbc3a31f5ef5ab7b18390c926dd7f9d466034ea8ec2a0867e19e26d”. If you do, then you know that your server created that macaroon and you can let them right in. Easy peasy lemon squeezy. Well, ackchyually 🤓 ... What I’ve described above is really more of an HMAC(Hash-based Message Authentication Code) than a macaroon. What macroons are really for is chaining hashes and adding attenuations. So let’s add in one more step. You don’t want this user to have access to your server forever, so you want to add an expiration date to this authentication token. Let’s say April 27th 2027. So let’s add that to our HMAC thus turning it into a proper macaroon! Right now we have: id12345678id 55413cca2fbc3a31f5ef5ab7b18390c926dd7f9d466034ea8ec2a0867e19e26d How do we add our new attenuation? With another hash of course!!! We take our existing hash, and hash it with our new data, “expires:2027-04-27”. $ echo "55413cca2fbc3a31f5ef5ab7b18390c926dd7f9d466034ea8ec2a0867e19e26d;expires:2027-04-27" | sha256sum We now have a new hash! “bf41dee1dacfe63e1d917c46d024e6ceb13506632e092fa218bd96df041f7b0e” This is now the macaroon that we give our user: id12345678id expires:2027-04-27 bf41dee1dacfe63e1d917c46d024e6ceb13506632e092fa218bd96df041f7b0e And still, only we know the secret. And so, this user can’t change this macaroon as doing so would alter that hash thus making our validation of it fail. So how can we validate it? Also, very, very simply with just that secret and a few hash functions! As we have the secret, all we need to do is recreate the macaroon and see if we get the final hash that the user showed up with. Hash together the secret with the ID. Take that result and hash it together with the expiration data. If the result is the same hash as the user presented to us then we know that macaroon was created using our secret. So either someone has stolen our secret, or we created that macaroon! Don’t trust, verify. Try it yourself on your machine. $ echo "secreto;id12345678id" | sha256sum This produces 55413cca2fbc3a31f5ef5ab7b18390c926dd7f9d466034ea8ec2a0867e19e26d. Then… $ echo "55413cca2fbc3a31f5ef5ab7b18390c926dd7f9d466034ea8ec2a0867e19e26d;expires:2027-04-27" | sha256sum Which produces bf41dee1dacfe63e1d917c46d024e6ceb13506632e092fa218bd96df041f7b0e. The hashes match, authentication complete! ...one more ackchyually. A real HMAC function is slightly more complicated than demonstrated above. HMAC functions handle the data more carefully than just taking a string, and there lots of details in formatting, and there are details on how third party caveats are added, etc. However, if you’ve made it this far, congratulations, you understand macaroons! 🥳
HannahMR's avatar
hmichellerose 1 month ago
The relationship is the prize. It’s my sincere guess about the universe that the most important things in life are…(in this order) 1. Who you are. What you chose to be. Your values. 2. Your loving connections with others. Your relationships. 3. How you impact the world. The ripple effects that your behavior has. When deciding who to deal with, who to be close with, you gotta get an idea of what they think to be the most important things in life. If fame, power, fortune, etc. are on their list then you are at risk of being used for those ends. If whoever you’re dealing with doesn’t see the relationship as the prize, then you are a tool to achieve a different prize.
HannahMR's avatar
hmichellerose 1 month ago
There is no utopia, everywhere has it's problems. You gotta pick the set of problems you prefer. ...like today, my office in San Juan is far too sunny. So sunny I put sun glasses on over my computer glasses. These are my kind of problems ☀️😎😉
HannahMR's avatar
hmichellerose 1 month ago
There is a variety of misogyny that I run into a lot in the crypto community. It's very nice sounding hippie dippie misogyny and it goes like this... male leadership is simply natural, it's what we see all throughout the animal kingdom. That's just the way nature is. Two things here: 1. This is just plain false. For example, Bonobos are one of humans closest relatives in the animal kingdom, and Bonobos are matriarchal. 2. Let's say that the animal kingdom were entirely patriarchal, do we want to be like the animals? Do we aspire to be like Chimpanzees, or do we aspire to be more enlightened creatures? And I'd argue that more enlightened creatures aren't interested in suppressing half of their species.
HannahMR's avatar
hmichellerose 1 month ago
“SaaS is dead” they say. AI killed it, we’ll all just use Claude to write our own custom apps. *ahem* Claude is SaaS.
HannahMR's avatar
hmichellerose 1 month ago
Ooo, I found the official music video, and it's stunning. Not sure why flowers and flowing fabric are so sensual, but they really, really are!
HannahMR's avatar
hmichellerose 1 month ago
Wow I need a bottle of wine and an evening that inspires me to dance to this 🍷💃🎶🥰 I must be overdue for date night… or maybe I’m ovulating. Who knows. Just dance.
HannahMR's avatar
hmichellerose 1 month ago
"The unexamined life is not worth living" - Socrates ~400BC
HannahMR's avatar
hmichellerose 1 month ago
I think most of us know it on an intellectual level. If you’ve read a shit ton of books, if you’ve done a bunch of shrooms(so I’m told), if you’ve been to therapy, then you know… You control nothing but yourself. You are not responsible for the behavior of others. You are not responsible for the outcome of a complex situation. The only things it makes sense to worry about are your own choices. Life is mostly just about deciding who you are and connecting with others. We know this intellectually, but we were born in a world that sold us a very different perspective on life. One where you must feel shame if the outcome is not what you hoped. One where life is about being above others, and having more. And removing that programming from the back of your head takes years and years of work. But everyone once in a while, I don’t just know these things, I feel them. Every once in a while I have a morning where I forget to feel shame and forget to try to be above others. And on those mornings, life really feels pretty fun.
HannahMR's avatar
hmichellerose 1 month ago
Both "woke" and "based" are cringe. Flip sides of the same political bullshit coin.