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
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
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
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
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
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
#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
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
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
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?
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
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
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
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
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
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
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
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
@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
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
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
Notes by mleku | export