Oddbean new post about | logout

Notes by mleku | export

 my new personal swear at the moment is "bosch"

mostly because it's adjacent to "bozhe" the eastern european vocative form of "bog" which means God

i'm saying it a lot at the moment because my left ... idk even what it is... the muscle between the hip bone and the upper thigh that you stretch when you do that arch over to the side stretch

and honestly, at this point, i'm already looking at finally getting off my arse - and laying down and doing the 100 situps program, because of the lower back pain that i know is because my abs are weak, i'm liek, ok. lol... i bet i can rustle up a clear memory of the awesome stretch routine i used to do, and at least do situps first thing tomorrow morning and then follow it up with this stretch routine

the routine kept me limber and actually it was only about 3 years ago i stopped being able to touch my toes, which was when the peripheral neuropathy really kicked in - yes it had been slowly fading in for about 4 or 5 years before that but in 2021 i started to frequently get the cramps and muscle weakness, and then shortly after that, slow healing tendon/bone injury recovery and what tipped me off that it was "type 2 diabetes" or what i consider to be early stage kidney/spleen disease - persistent skin infections

i had already been doing back-of-the-calf stretches because when you climb a lot of slopes/stairs the back of your lower leg gets really tight and sore, and literally to get through a walk sometimes i am doing the classic forward cat stretch every 5 minutes to get through it

well, BOSCH, it is time for me to start doing this fr fr 
 oh, ok, i can substitute lifting my legs up to strengthen my abs? i'll combine tho, but that's an easy one on my standing desk

i don't need practise with stability, i can stand on one leg for several minutes while doing all kinds of things with my feet and legs 
 and, oh yeah... i have DMSO/magnesium spray... just covered my legs... man, this stuff is kinda nasty... gonna stand with it for a bit longer then i'm gonna hose it down in the bathroom lol

and yeah, really really, tonight is a threshold moment... from tomorrow i have to start doing a regular basic exercise regime... the pain in my lower back was one thing but tonight my left hip went spazz and i'm over it... i know i can make this happy

and i'm in my hermitage now, fuck you all, all i have is canaries and blackbirds and tick tick birds (aka washer woman birds) and the odd madeira hawk cooing, and the sound of rain on my metal roof and the power literally just going ought temporarily just now because it's raining hard and there is some good lightning

i might actually shut all this down lol 
 Are we where we are because God has willed it so, or because He has allowed it? 
 definitely just allowed, because we need to see it 
 You'd have to be using a very different definition of "custodial" to come to this conclusion.

no... 
 i think it's just a docker image with LND and some nodejs web app? 
 i don't think they get to control, only to restrict, there's a difference, and if they do that too much they risk losing your subscription

same with the cloud VPS and same with the DNS registrar, and same with the ISP - ok, in some places all of these things have a high cost to give the old provider a GFY but when you get mad that is worth the price of the fuck you money and well that's part of why bitcoin anyway 
 my VPS in bulgaria also restricts port 25 but i have zero interest in doing SMTP service anyway... my workaround for this specific case would be that the middleware or client side would have a wireguard extension to access a private network for this, and that would satisfy the auth requirement that is the reason for this restriction

SMTP is broken, utterly, it's the main reason why google has monopolised email 
 a burnt offering to my lady the local fluffy red and black girl-kitty from next door

https://cdn.satellite.earth/20ef001f44c9eb4290cf5b82d6ec69e47a35b1d2584a7802bb52b73ddb8b2c23.jpg

#cat #beef #espetada #bbq #madeira

obviously not actually bbq kitty lol 
 haha yeah, this place was cheaply constructed but it's also mild climate here and i appreciate the sound of rain on my roof 
 fluffy, medium hair... i'm pretty sure it's female because only females have black and red colour (the color is carried in the X chromasome only), i'm kinda fond of that whole black and red thing, in dogs it's called brindle

i left some snacks out for her the other day and i guess it was her because she came back when she smelled bbq so she's learning that bbq means generous human with beef offerings may offer beef

i hope to have her wandering in and out at some point, i'm not gonna own a cat until i own the land the cat is attached to but i can at least charm one that is attached to the land nearby 
 rain on roofs is beautiful like well tuned church bells 
 that sounds like a typical russian blue cross

i had one like that, he had a lot of white, and silver, and grey, i called him "Hochi" and he was born in my apartment as i brought the mother in knowing she was pregnant and she was half or quarter russian... this was not long after a lot of ukrainians had showed up in Varna when i was there

i decided to leave Hochi to the neighbourhood also... his two siblings both died very early because i didn't know how important it was to keep them warm, i could have i just didn't know, i was too nervous about mamma being anxious but ... oh well... the two carcasses got stuck in the freezer and when solid were sent out to a sailor's grave in the black sea, poor dears

russian blue cats are a distinct colour but it is a variant of grey, there is also many multicolour breeds, but mostly black and red is definitely almost always female, same as your classic tourtoiseshell 
 haha, are the wallnuts the kind that turn black and kinda stain things? 
 i had two little helpless animals basically die of hypothermia in my house two years ago, and that was 6 months after having a cat die next to me while i was trying to keep it alive after a paralysis tick

i refuse to die, at this point, and so when things seem rough, i try to chuckle, and when things are ok, i make wry jokes and see the irony in everything

gonna try to do my best to be a joker anyway, i was quite proud to get on a list called "jester" recently... people like to read my stuff because in between the wtf is lots of silly lols 
 
nostr:nevent1qvzqqqqqqypzqnyqqft6tz9g9pyaqjvp0s4a4tvcfvj6gkke7mddvmj86w68uwe0qyghwumn8ghj7mn0wd68ytnvv9hxgtcpzamhxue69uhk6mr9dd6jumn0wd68yvfwvdhk6tcqyqwj7rk9fcy077x8d5hhukdy3t248qxay8wkz20qzqu58qp929pvkmququn 
 also this is why the inventor of #nostr is a #golang programmer

because fiatjaf already understands the fact that Go apps are faster and less painful to build 
 also just want to mention

rust and its bastard children do have garbage collectors

the biggest difference (aside from OOP data model) between #golang and #rust is that rust forces the programmer to explicitly state where a variable is in scope, the so-called "escape" problem

Go's GC uses a heuristic to try and (conservatively) pick memory allocations that are stale or definitely not in scope whereas Rust forces the programmer to stipulate when a variable is in scope

this lets Rust apps squeeze a little more performance, in the same way as C++, at the expense of high complexity of compilation (read memory and time cost for developers) and a longer test/edit cycle (because of that)

the margin is no more than about 5%

it's not worth it when you consider that it doesn't actually matter that much, 5% better performance, when it costs $5/month for the basic VPS and that means 10 cents saving versus if you wrote your shit in Go, which saves you 5% on the cost of your programmers 
 
nostr:nevent1qvzqqqqqqypzqnyqqft6tz9g9pyaqjvp0s4a4tvcfvj6gkke7mddvmj86w68uwe0qyghwumn8ghj7mn0wd68ytnvv9hxgtcpzamhxue69uhk6mr9dd6jumn0wd68yvfwvdhk6tcqyqwj7rk9fcy077x8d5hhukdy3t248qxay8wkz20qzqu58qp929pvkmququn 
 #realy now has a tested working garbage collector functionality, previously it was scratched in from previous work but i wrote a revised tester that fits in with the new schema of everything in realy

it is the afternoon and i have a little work to do now to update an Internet Computer #layer2 eventstore implementation, that allows relay operators who somehow like ICP to run a relay that uses a sharded blockchain database to store events

it is of course of interest to said shitcoiners, and good for them, and you know what i mean when i say good for you

my life would be misery without my bad jokes so also, good for you, directly

but it's also nice for people who want to run a plain and simple realy instance, now you can contain the event storage with typical low/high water mark cache management options and your specified gigabyteage with just one little .env file

and did i mention that it's also got the fastest JSON encoder and event store database out there?

some day in the future, when i have more time on my hands, i will build a test rig that lets me really see realy head to head with #strfry and i'm almost certain that realy is not gonna be far behind it, and probably, on a parity hardware basis, better

good for hoyte and his C++ lunacy 
 no, the database

when you build any kind of data storage system you have to deal with limitations, let's say you rent a VPS with a 25Gb disk, and that gives you about 18gb of free space to store your relay's events

so, now, with #realy - you can set your maximum database size at 18gb and depending on how fast it adds new events, set your high and low water marks to trigger purging of events that nobody has looked at in the longest time

reduces the cognitive burden of managing a relay, and also lets you optimize the cost of running one 
 also just want to mention

rust and its bastard children do have garbage collectors

the biggest difference (aside from OOP data model) between #golang and #rust is that rust forces the programmer to explicitly state where a variable is in scope, the so-called "escape" problem

Go's GC uses a heuristic to try and (conservatively) pick memory allocations that are stale or definitely not in scope whereas Rust forces the programmer to stipulate when a variable is in scope

this lets Rust apps squeeze a little more performance, in the same way as C++, at the expense of high complexity of compilation (read memory and time cost for developers) and a longer test/edit cycle (because of that)

the margin is no more than about 5%

it's not worth it when you consider that it doesn't actually matter that much, 5% better performance, when it costs $5/month for the basic VPS and that means 10 cents saving versus if you wrote your shit in Go, which saves you 5% on the cost of your programmers 
 it keeps an record of the last time each event was returned to a client, and it removes the ones that were least recently returned to clients 
 i tried to justify not keeping this record but ultimately, events have their own "created timestamp" so that's there anyway, and you could maybe implement a GC that just purges by oldest created_at but that would not really be practical for a lot of use cases 
 i just realised something

litmus is a chemistry pH test that is either red or blue, and iirc, it's originally derived from that funny flower with the big globular clusters, i forget the name of it, but when the soil is alkaline, it makes blue flowers, and when it is acidic, it makes red flowers

someone made a first post on bluesky and used the word litmust test and it made me think of politics because supposedly Team Red had all the opinions it expressed. Not THE red as in communist, but red as in republican

and i realised that the color scheme of the two party farce of USA precisely matches the chemical properties of what a litmus test will show as red or blue

blue means alkaline, and alkaline, in extreme, is caustic... alkali dissolves proteins, alkali converts fats into soap

acids, on the other hand, tend to make things agglomerate. the basis of cheese is literally adding an acid to milk, and it causes the protein to stick together, and form curds, and the curds are what you make into cheese... mostly a glob of fats and protein

the number of analogies you can draw from this pattern are quite incredible, but it all starts with water, and whether it has an excess electron, which causes the formation of gaseous hydrogen and leaves behind an electron on the OH giving you an alkali

i could talk about how blue light also has more energy and is more likely to cause oxidation as well, to add to the caustic association of blue

really, blue is a perfect color to describe statists - they erode the environment, they are toxic to life, and promote oxidation and burning...

i already elaborated in too many ways lol. 
 HCl and HF are pretty caustic i agree... in chemistry they talk about "strong" and "weak" acids and bases, and "caustic" could probably be interpreted to indicate whether they protonate anything or only attack weak (covalent) bonds

acids actually work by reducing and bases work by oxidation so i think the analogy still holds

and yeah, it probably was not ... whatever that flower is, it just happens to express blue or red or purple depending on the pH of the water that seeps in from the soil

also, that got me thinking about how purple is neither red nor blue, but both 
 yeah, that one just hit me just now thinking it further

purple is the most energetic wavelength of visible light though, also...

oh and plants are green because both red and blue are more energetic than green

there are a few enzymes that need green light and they thus are purple 

so there's another metaphor in there too... purple also indicates a material that is reactive (derives energy) from green 
 the word "capricious" generally is used as a slur, about someone who is prone to changing their mind or being stubbornly independent

goats are far more compliant than cats, and almost every animal that is not "domesticated" is even less compliant

so really, capricious doesn't really mean completely antisocial, it just means more social than cats 
 Clients on nostr should be very easy to make. If you are spending too much time (weeks), you are ... 
 i also am a 🐐  
 personally, i find the more easy it is to deploy a GUI app to users the more likely it is to be overly complex

i don't have the patience for dealing with too many choices of a system that is pandering to everyone

i'm glad there is people like you out there to do this stuff but i prefer the back end because there is far less options that actually are practical

UI is a combinatorial nightmare of possibilities. i mean, there is more possibilities than there is numbers in 256 bits 
 yeah, i can make a CLI client in like, 20 minutes, so long as you like reading indented JSON 
 practically now if you like bitcoin you are trad, maybe christian, anti-trans, anti woke, anti-censorship, anti corporations, anti government

yet this thing we love is number 8 asset in the world by market cap

not hard to see where this is going, is it? 
 the litmust test came out blue

caustic 
 so, i think the GC is working, i just forgot that the tester i made is constantly querying to refresh the last acces times on #realy

so that is ready to go, now i can move onto next task 
 haha just considering whether to omit the last access timestamp or not and discovered the sorter was only sorting by event serial (which is basically the sequence of insertion into the database, not the last access time lol)

o dear

well, fixed now lol 
 most of them just want to watch a show. like 90% of "users" their opinion doesn't matter because they don't express it, and mostly, don't have one 
 the real reason why #nostr #adoption is slow is because in order to enjoy nostr, for the most part, you have to be an active participant

that means nostr inherently has DAU numbers at 10% of typical (if you can believe the self reported numbers) daily user activity

the rest of the social networks wish they were as engaged per user as we are here... i'd say here there is about half the typical lurker count, because of all the bumps and scratches you have to get to be part of this community

it also makes us a lot more intransigent, nostr adoption has lindy, unlike most silo social networks... the longer you are here the less you want to be anywhere else, and the same goes for the people who follow and interact with you...

authenticity is a metric that is hard to quantify except by the stubbornness of the active users to leave the longer they are here and the lack of appeal of the TV channels called X, Threads, Bluesky, Fartcaster, Farcebook, and the rest

nostr:nevent1qvzqqqqqqypzqnyqqft6tz9g9pyaqjvp0s4a4tvcfvj6gkke7mddvmj86w68uwe0qyghwumn8ghj7mn0wd68ytnvv9hxgtcpzamhxue69uhk6mr9dd6jumn0wd68yvfwvdhk6tcqyp6qah5yp58kh4cusfxh9p655r5qavjy60hmuce9c83kyq6czhqv6hxq2v6 
 #bitcoin is totally #halal

it would be amazing if that region were to adopt

they also have the most energy, and that would give them a massive edge for subverting the OPEC cartel and making money on their actual resources, and that would also help them squash that virus infecting from the western edge of the agean 
 If you're one of the three people on here, who hasn't muted me, already, I offer the interesting ... 
 nah, i think most people are too lazy to think so they aren't jews

and i'll take that label! i'm even ... oh wait... that's mutilation 
 yeah well, i wasn't saying it was required but rather imposed upon me 
 haha

funny how if you surgically remove the same part of a female human it's called genital mutilation and it's main effect is to reduce enjoyment of sex and has a weakening effect on bonding to the partner 
 PSA: fiat is cancer 
 PSA: AI is cancer 
 oof, kinda didn't really think about how much work would be involved in actually implementing this garbage collection stuff lol

been bashing at it for about 5 hours now and it doesn't seem to be actually pruning events as i want it to, though it *says* it is, when the GC counts the data it's not finding pruned events... but this is code that has just been transplanted from an old version with lots of old things probably still in it

gonna go nap, waking up at 2am in the morning and working until 8am i've practically done a day's work and the sun hasn't popped over the mountain's edge yet lol 
 Amazon bots DOSing me by downloading all of the content in all of my public repositories. At leas... 
 maybe you want to require auth on your repos 
 AI is such cancer... i'd be blacklisting cloud service IP ranges altogether personally. Anyone who is running stuff from that in containers or whatever probably isn't nice people. actual users who like nostr and stuff will not be using google cancer or amazon cancer services 
 block che cancerbot 
 i use wireguard tunnels and my own bespoke reverse proxy... and it lets me test my stuff live on the internet from my dev box 
 yeah, i get small problems, mostly just captcha from cloudflare but my VPS seems to not be in the shitlist 
 probably because it's kinda expensive but it's quality infra, Sofia, Bulgaria, which had a huge influx of remote support service companies and an existing extensive high speed ethernet network (often strung across between buildings by gangsters back in the day, selling access to pirate movie caches), but it is on the high side of expensive

still, i have 500mbit down now and i get all of that via the tunnel so i no complain 
 my friends are moving from #x #twitter to #bluesky instead of #nostr 😕😔 
 they like unicorns and rainbows and ethereum? 
 you mean consumers, not producers 
 most of them just want to watch a show. like 90% of "users" their opinion doesn't matter because they don't express it, and mostly, don't have one 
 bah... changing the event store query function to return the events serially messes with the model of how two tier (layer2) event stores work

for now, ok, going to change it to make the assumption that all events in the L2 are known about, just there is only their index and event ID stored... i think that's ok, but it is an extra overhead to consider in the garbage collector... it kinda implies that the low/high water marks need to be lower to allow space for the size of the L2 indexes

but i guess it's not that huge, i mean... ok, tags can take up a lot of space... but compared to the event as well, and the tags are just truncated 8 bytes out of 32

ah, engineering complex things is complex 
 yeah, simple... just have to make the assumption thet L1 has the index and stub of all events it might find in the L2... probably have to think later about how to deal with one-hit wonders causing lag in client requests but it is a one thing... if a pruned event is fetched, then the user has to wait a little longer for the L2 to retrieve it

on the other hand, this also means that i could make an IPFS or Blossom event store cluster store for events as well, since i'm now only searching the L2 for specific events due to this

gonna need to think on it some more...

it could spawn a background query to the L2 for the same filter anyhow, and then add the events to the local store so next query will hit them, even if the indexes fell out of the headroom space the GC allows for pruned events

i think that is better... still not perfect but L2 queries are going to always cost an extra delay time anyway, and possibly the user will refresh and by that time the event will be freshly replaced in the L1 
 ah yes, and i forgot... if the events that are found, while the query still has a standing subscription (ie, the limit was not reached, or the query was not CLOSEed) the client will receive the later-found events from the L2's background sync query... very often this will happen, and this will mean the Layer1 relay-cache is still delivering the data of the big shared event store in the same essential timeline as if the query results were always returned hot, except the order of the revived events won't be necessarily older than the ones that L1 already found...

it works, anyway. subscription model makes it workable, ultimately the concurrent channel-return model makes assumptions about time that don't need to hold for the pub/sub model... the clients don't really understand it, they just get pushed events tied to a filter that has a subscription id, they don't see the work or care about anything else, it is a channel model for the client anyway 
 First this:

BREAKING: The #Pentagon fails its seventh consecutive financial audit, unable to acc... 
 pretty sure they had one working pretty hard on 9/11 that day the rocket hit ... oh i mean the jet... and all those records disappeared about some infinity amount of money 
 yay my #xapo bank annual fee just got paid... ouch

yay for another year of low friction interfacing between #bitcoin and #fiat lol

pray for a year of zero hassles with the payment networks... reminds me.. shit, did i pay my rent lol 
 ohshit no lol i didn't

well, i'll just pay the last bit and the november in one hit at the end, i'm sure they aren't gonna be too miffed at one late month, literally cannot pay it rn lol

not the best planned finances this last two months... i really probably should not have got this fancy QD-OLED monitor lol

but fuck it... i was punctual all year long, one time late should be no problem

also reminds me i better damn well make sure i earn enough to cover this place and that place shit 
 ah yeah, i forgot i should probably get most or all of that security deposit back... i'll be fine lol 
 well that looks like a woman's legs underneath it so i have no idea

theoretically looks like some kind of very large cannon round 
 yeah, it looks like something you'd see inside a tank 
 @Nostralian did you know that the host of your profile images seems to be returning 404 for your profile image https://void.cat/d/L49Byh1N3AWtK9odnejqWy.webp

i thought it was just next.nostrudel being unstable but that's the image it sees in your kind 0 event 
 yep i see some random pattern or nothing 
 Is it really true that Bluesky has better marketing than Nostr and is a better product than Nostr... 
 bluesky is a product... nostr is not a product, it's just a mess of stuff

there's no CEO of nostr even though some of these woke snowflake propagandists like Atlantic want to pin that on you, if you disappeared tomorrow nostr would keep ticking, it's a hydra

bluesky could be shut down with one single organisation being attacked 
 go find the VCs to pay for such a product and it can be made but literally there is nobody throwing that much money at nostr... i even do my own dev work as a hobby, a great deal of those who build for nostr are only being paid partially or very little or even nothing for it 
 Seeing how fit Tyson is at 58, kind of surprising he didn’t launch a fitness brand. Would be a ... 
 his face is on some energy drink i've seen around, maybe black energy 
 I love the feeling of sore muscles. Not that I have much muscle... But it really does feel good.  
 i have too many stories of being pulled into nightmares 
 nostr:naddr1qqxnzdenxy6nvwfsxy6rwv3nqgs06gywary09qmcp2249ztwfq3ue8wxhl2yyp3c39thzp55plvj0sgrqsqqq... 
 i also have this problem though i choose #golang

blockchain tends to help and go isn't abominably unknown, and whenever someone needs middleware or such it's the go-to

for systems programming its all rust, rust, rust, and yes, you guessed it, rust... since 2021 this is the new thing

i think you need to have a second string, and for me that is "blockchain" which is a proxy for my knowledge of distributed systems in general... i understand your love of your C but it's really hard to get serious C work out there these days and Go is a really natural move to expand a bit, you'll feel confident enough in a few days to pretend you are good at writing middlewares and they won't know the difference and the truth be told they almost never find experience, and you have quite some so actually don't be put off by the bullshit

just don't waste your time learning javascript if you are a systems programmer

worst case, you do some Rust tutorials and wing it 
 ah i didn't notice the commentary about women

ya know i have to think about that, it's kinda important if i'm gonna have one around... 

i kinda like the idea of having some deep conversations about the subject of "inside work" - the benefits of being a housewife and being able to sometimes ask for outrageous things and on a fairly regular, and unpredictable basis, being treated like a princess, with all the trimmings, fancy carriage once in a while, some special place, a few days where she does nothing but stare at the sea and get massaged by nice chinese masseuses and soak in mineral spas and such

i mean, idk how to explain it exactly, womans are not supposed to be employees

employees are slaves, wives get much better treatment, they are princesses... and heroes... 
 also, to be clear, my current paid gig has got me learning a cut down toy version of rust that is dedicated to smart contracts

why i'm feeling ok about that is because what they removed from rust to make this language Move is all the things that are wrong with Rust in a substantial way - the objects, most of the Option, almost all of the dependencies, most of the complicated types (only unsigned integers, imagine!) and i sorta understand the logic of the hand holding the GC stuff in rust 
 well, you have a specialization, low level/embedded systems programming

there is work out there, just go back to what you can get easier with your resume now and build out your transition

it just may take a lot longer to get the more interesting low level stuff in the bag so just spend a bit of time on it when you are off duty

i have been doing that with nostr, even though it has been a big part of my main gig, making useful tools builds reputation and stuff you can point to when the interview needs some spice

reality is that even though most jobs ask for oodles of experience, reality is they accept anyone with adjacent skills 
 like, right this minute, my specialised knowledge about nostr signers, nos2x and alby are coming into play... the project i've got into the periphery of is a social network that runs on a smart contract blockchain... and there is no go-to tool for them to do stuff like what we have with browser extension detached signers with permissions categories and automatic signing, with budgets

as i see it, they just need to fork their nearby onchain web wallet extension and add a "window" function in it with a signing request that has a category field and the tx hash to sign on, and it needs to have a common set of signature purposes and done

that's my task for the next few days, because i've proven myself competent at learning stuff fast and specialised in social/cryptography stuff 
 i don't mean all the time lol... sheesh