# I am the Watcher. I am your guide through this vast new twtiverse.
# 
# Usage:
#     https://watcher.sour.is/api/plain/users              View list of users and latest twt date.
#     https://watcher.sour.is/api/plain/twt                View all twts.
#     https://watcher.sour.is/api/plain/mentions?uri=:uri  View all mentions for uri.
#     https://watcher.sour.is/api/plain/conv/:hash         View all twts for a conversation subject.
# 
# Options:
#     uri     Filter to show a specific users twts.
#     offset  Start index for quey.
#     limit   Count of items to return (going back in time).
# 
# twt range = 1 434
# self = https://watcher.sour.is?uri=https://sunshinegardens.org/~xjix/twtxt/tw.txt&offset=434
# prev = https://watcher.sour.is?uri=https://sunshinegardens.org/~xjix/twtxt/tw.txt&offset=334
To many liberals, the gravest crime committed is not the heinous acts their leaders or system undertake, but rather forcing them to be aware of those acts
A KGB spy and a CIA agent meet up in a bar for a friendly drink

I have to admit, Im always so impressed by Soviet propaganda. You really know how to get people worked up," the CIA agent says.

"Thank you," the KGB says. "We do our best but truly, its nothing compared to American propaganda. Your people believe everything your state media tells them.

The CIA agent drops his drink in shock and disgust. Thank you friend, but you must be confused... Theres no propaganda in America.""
"
"
"

The first lesson a revolutionary must learn is that [she] is [doomed]. Unless [she] understands this, [she] does not grasp the essential meaning of [her] life.
everything under heaven is in chaos, the situation is not particularly excellent but nonetheless ww3 was started at a rave
ᛟ᛫​ᛗᛖᛋᛁᚷ᛫​ᛏ᛫​ᚩ‍ᚩᛚ᛫​ᛒᛁᚳᛟᛉ᛬᛫​ᛈᛚᛇ‍ᛇᛉ᛫​ᛋᛟᚱ‍ᚱᚠ‍ᚠᚫᛡᚠ‍ᚠ
𐑩 𐑥𐑧𐑕𐑦𐑡 𐑑 𐑷𐑤 𐑚𐑦𐑗𐑩𐑟: 𐑐𐑤𐑰𐑟 𐑕𐑼𐑝𐑲𐑝
the leftists are telling me 2+2=4. the right wingers are saying its 10. so as a reasonable centrist its clear to me that the real answer is 7
Unless your new years resolution is to fucking kill capitalism -- before the death of 99& of this epoch's biomass -- by any means necessary, youre just rearranging deckchairs on a Titanic that already hit the iceberg.
i always thought that i needed geodns to make a multi-region setup work at all, but it turns out all we really need is one rfc https://datatracker.ietf.org/doc/html/rfc8305 and its not even rare to see implemented on clients
No person is inherently evil by nature, and yet most white people still choose to uphold racist violence across the globe.
A R C O N 1 T E A R C O N I T E A R C
R C O N 2 T E A R C O N I T E A R C 0
C O N 8 T E A R C O N I T E A R C 0 N
a new emmanation of my trusty old vim config, now available as a home-manager nix module. now i can track my dependencies with nix instead of using git subtree and it makes installing backend programs like language servers and such way easier. https://src.ix.cyb.red/pe-vim/
thinking about ebt on zmq http://czmq.zeromq.org/czmq4-0:zgossip https://asc.di.fct.unl.pt/~jleitao/pdf/srds07-leitao.pdf
feeling sad and depressed? you might be suffering from capitalism
all of the software sucks, but i have a solution! we'll write even more software! get more people involved, make it the Ideal Career, then we can write AL̵L̴ O̵F TH̨E ̧C̀ODE̷S. mountains of shitty garbage that kind-of does the thing. software will still suck, but T͜HE̕N oh then we can write compilers that let us run the old shitty code inside of our mountain of new shitty code. now all of the code is in a giant pile and we're using it to control space ships that definitely never crash. the more code the better! we can represent NaN easily in undefined systems! developers aren't particularly bright, so the language is simple and easy for them to understand. we know this, that's why it was made this way. the͡ moun͢tain ͠m̵us͜t ͠nȩver̢ ̴wa̡ve̴r̵. the more code the better. so instead of writing the code manually we c̴ómpilę t͞or̸t̕u͜red so̷u͜ls ͏i͞n͞to͝ ͟nice ͢b̀l̷oxe̡ls ̸of͠ ̸t̶an̡g͜l̀ed ͞n̢eu͏ra̡l͠ ̕ne̢t͏w͟orkś.̸ w̨e d͠on't́ know how i̵t ̷w͟ork̡s, ̴but ̷t̴he model̢ ̶is̛ 5̛0GiB ́s̶o ͟i͞t s͞e͘rve͟s ̴tḩe̛ purpośe. WE̕ M͠US̴T B͢U̢ILD ͝T͞HE MO͝UN̶T̨A̵IN.
feels like my brain works again
tbh i mourn most days, but tomorrow i will specifically mourn the souls lost to the white devil.
getting ready to mourn tomorrow https://www.cnn.com/2021/11/25/us/national-day-of-mourning-race-deconstructed-newsletter/index.html
¯\_(ツ)_/¯¯\_(ツ)_/¯¯\_(ツ)_/¯¯\_(ツ)_/¯
but for real, i really want that sword and I'm perfectly content running my daily dev stuff using an rpi. i actually used to do client work on an old rpi laptop kit, i only stopped using that baby because the battery controller let the battery go flat.
https://src.cyb.red/pkgs/minibase/commit/?id=d4aa2eaf7055aac47bae93be7c9561682233272d
Poor design sets people up for failure. But it’s not their failure. https://quinnkeast.com/writing/stop-blaming-people-its-a-design-problem
i wish nixos had a more recent version of badwolf, maybe i'll just package it myself
i'm overworked and undersexed
Liberals appropriate and include leftist language into their cultural hegemony therefore subsuming it into the empire- that is their job and function. They will always do this.
next up, decomissioning this nice ass laptop so i can sell it on ebay and buy a sword.
i dont have them handy, but the demographics of the fediverse dont lie.
its important to see clearly: the rejection of mastodon for bluesky is not a rejection of the desire to be free of our corporate overlords; its a rejection of white bros controlling digital spaces. sit with that

eugen and his interlocutors have had immense power with which to challenge twitter but their racial and cultural and ideological insularity prevented them from using it https://alaskan.social/@seachanger/113500023546622076
“Selfishness is not living as one wishes to live, it is asking others to live as one wishes to live. And unselfishness is letting other people's lives alone, not interfering with them.

Selfishness always aims at creating around it an absolute uniformity of type. Unselfishness recognizes infinite variety of type as a delightful thing, accepts it, acquiesces in it, enjoys it.

It is not selfish to think for oneself. A man who does not think for himself does not think at all. It is grossly selfish to require of one's neighbor that he should think in the same way, and hold the same opinions. Why should he? If he can think, he will probably think differently. If he cannot think, it is monstrous to require thought of any kind from him.

A red rose is not selfish because it wants to be a red rose. It would be horribly selfish if it wanted all the other flowers in the garden to be both red and roses.”

–Oscar Wilde, The Soul of Man & Prison Writings
for example, ejabberd, redka, and litefs. all using sqlite+litefs for their database needs allows agents to communicate over xmpp, matrix, mqtt, and sip. other applications can use sqlite for storage or speak the redis protocol to redka. ejabberd can also handle file uploads, static file publishing, identity, and various other web application services. when scaling, litefs integrates with consul to manage replication which grants the network access to service disco, encrypted mesh networking, and various other features that can be used to build secure service grids. ejabberd and redka can be scaled to multiple nodes that coordinate over the litefs replication protocol without any changes to the db storage config. other components can be configured to plug into this framework fairly easily as well. we keep the network config fairly simple by linking nodes together with yggdrasil to flatten the address space and then linking app nodes together using consul to provide secure routing for the local grid service. yggdrasil also offers utility for buliding federated networks in a similarly flat address space, for more secure communications i2p is also available in yggdrasil mode. minibase is wonderful, and we have not even started to talk about secure IoT.
i am working on very smol deployments, where a server may use two or so replicated sqlite databases instead of a db server like postgres to seamlessly move from single to multi-node arrangements as needed. there is a clear performance limit here, but the goal is not to serve a huge number of clients. just to do as much as possible with a small number of useful components that can be upgraded to handle up to medium size workloads, without difficult data conversions or migrations. scaling beyond that point should be done via federation.
overclocking more like overcocking amirite?
that is pretty neat https://skatterbencher.com/2024/11/11/3600-mhz-raspberry-pi-5-with-liquid-nitrogen/
gracias a dios es atea <3
making my own browser framework that can use something like librewolf as a web renderer and other graphical components and runtimes for other protocols. though I think that means that i'll be retiring tomo-el-fuego in favor of a different runtime architecture. there's a lot that I like about inferno, but modernizing it enough to actually use anywhere is another story. I doubt this is the end of my infernal experiments, but I can only do so much at a time innit.
i've been a ham since i was a kid, but i haven't been too active lately. i've seen some interesting signed packet radio schemes, but nothing I've taken a close look at. i've been doing a bunch of research into mesh networking protocols over the years and now that i'm approaching something worth writing i may have to get back into the hardware side of things
D+D -> H3, D+3HE -> D + 3 HE Æ p (14.7MeV) + 4 He (3.7MeV) + 18.4 MeV
i do kinda like htmx, but i might end up going my own way with my own similar library that matches better with my use patterns which are really not compatible with any extra scripting. so less flexible, but possible more powerful in the end.
if i had to make an app today, i would probably pick like phoenix, elm, and postgresql. i would want to use sqlite+litefs, but i need more experience with it.
☮ 𐑜𐑫𐑛 𐑐𐑫𐑕𐑦, 𐑜𐑫𐑛 𐑥𐑨𐑮𐑩𐑢𐑭𐑯𐑩 ☮
@prologic history is a broad subject! i think you could spend your whole life studying and discussing only the last 500 years. i've spent many nights sharing drinks and discussing the finer points of political history and theory with my uni buddies. i doubt that'll ever get old ^^
@prologic that's still a generalization. which religion, which historical trends, which extremes, &c. otherwise you aren't actually saying anything about religion, you're expressing disapproval of extremes. which is valid, but doesn't make for a substantial critique, if that makes sense.
same as you i assume. i like making my own stuff.
FoaF is just a way to crawl the network. I prefer this method because it frontloads the network traffic using a heuristic that covers most of the content i'm likely to be interested in anyway and allows for some level of discovery. Also graph traversal is fun.
@prologic both religion and politics encompass an extremely wide spectrum of ideas and behavior. we need to be specific in making a critique, otherwise it doesn't deepen our understanding of the world. though i agree that the status quo political and religious landscape is awful due to the historical context i'm talking about upthread.
i'm so glad i gave up christianity. i might be a little less glad when i get purged, but at least i won't be doing the purging. jesus of nazareth has some chill teachings, but the whole thing is poisoned by the actual history of the religion. genocide, book burnings, and ethnic cleansing are not exactly noble teachings.
due to the gemini-centric nature of my setup, I don't get webmentions. I just scrape the network and grep. maybe my aggregator will produce notifications at some point lol
@codebuzz I have some shell scripts that handle some of the log formatting details, but I mostly write my mesages by hand. Lately I've been browsing twtxt.net since they aggregate most of the known network. I have a couple of demo aggregators sitting around, but I'm in the middle of some infra rebuilds so a lot of my services are offline rn. They're both built on a simple social graph analysis that extracts urls for your direct follows the follows listed on each of those feeds (friend-of-a-friend replication). certain formatting operations are awkward with my setup, so I may write an app of some kind in the future. likely gemini-based, but I have a number of projects ahead of that one in the queue.
the bechdel test for an open source community is: two women in positions of formal authority discuss something, other than moderating a man's behavior
i'm kinda bummed that i haven't had the time/energy to get further into my media infrastructure projects. a federated tiktok with good decentralized storage would be a force to be reckoned with. i don't have to be first though. solving the fundamental problems of decentralized video streaming will make for a better experience anyway. i also have too many projects so i can't get after myself for being a little behind the curve in several areas at once lol
@movq i've wondered the same thing.. dansup can be pretty erratic and i don't really trust the guy. thankfully (at least from my perspective) he's not the only game in town. though i think going UI-first is kind of jumping the gun. the fediverse doesn't really have the infrastructure in place to support video publishing at the scale that a tiktok user might expect. based on some of dansups statements regarding palestine, i'm sure its partially an effort to control what kind of content makes it into fedi's tiktok streams for the first while.
space billionaires
it literally does, but i'll leave it as a mystery for you ponder.
its offline atm, but my usual setup basically makes my xmpp server into a bouncer (biboumi) and my xmpp client just does its normal thing to read the irc backlog as server-side message history.
the test would be: how often does unwanted content get pushed on your feed? do incongruent posters easily disrupt harmonious connections? &c. less about the community, more about how the social dynamics play out as various groups and individuals interact.
wtf shut up that's cool https://www.lilygo.cc/products/t-lora-c6?variant=44447591923893
i've observed that (decentralized) social platforms that encourage promiscuous follow behavior frequently run into this issue. there are lots of grumpy people out there and people who use social media to vent or let off steam. i know people worry about siloes, but i think that actually is an expression of FOMO and anxiety over being ignored by the 'cool kids'. what i rarely see is media platforms that embrace the reality of bubbles and give users the ability to form healthy social connections and curate content that they enjoy.
An illustration of a man in an armchair, wearing a keffiye, a Kalashnikov rifle at his side, and above him a quote by Yahya Sinwar: "Does the world expect us to be well-behaved victims while we're getting killed?.
doing less things. doing things well.
i am here to ruin your gender https://paper.wf/typhotic-iceberg/ruin-gender
thank you gemini for continuing to inspire me to think smol
i might take the plunge and rebuild my server this weekend
looking at history for context on how the UN handles apartheid: https://www.sahistory.org.za/article/united-nations-and-apartheid-timeline-1946-1994 which seems to imply that we have a difficult fight ahead without the support of the security council...
> There is a pressing need to hold Israel accountable, not only for its longstanding violations of international law, but specifically for its longstanding refusal to abide by its Charter obligations. In the face of this recalcitrance, the UN must move towards expelling Israel from the organization, not only because the UN exists to uphold international law, but also to maintain the UN’s integrity as an organization. The persistent, open violations by Israel of binding UNSC resolutions cannot go unpunished. The current situation, where Israel openly accuses the UN of bias, refuses to cooperate with the organization on multitude levels, defies binding orders of the ICJ, physically attacks UN premises and staff, and even moves towards designating a UN agency as a terrorist organization, is a clear threat to the authority of the UN – an issue which the UNSC raised explicitly in the case of South Africa. To allow the situation to continue would show that international legal norms, and rules of the UN binding member states, are applied on the basis of double standards: specifically, that states allied to powerful Western countries are afforded impunity. https://opiniojuris.org/2024/10/09/israel-must-be-expelled-from-the-united-nations/
similar to data packets in NDN, each message has multiple names. a true name, which is an encoded cryptographic hash of the file itself. we call this kind of information self-certifying. given a true name, you can find a file and verify its integrity. additionally, agents can associate a self-certifying name with a pet name or subjective label of their choosing and share it with their friends/peers. zoko's triangle can suck it. gemini://sunshinegardens.org/~xjix/wiki/cryptogen--specification/
once the minibase work is done and i have my testnet up, i can start to consider the question of brokerless pub/sub. i found state vector sync pub sub in the name-data research and i wonder what a toy version of that would look like. i started work on a demo of gemini pub/sub as a soft fork of molly-brown we we'll see where that takes me!
minibase has a network security architecture with a number of overlapping layers of protection. first, routers and discovery endpoints either require a password or an authorized public key to accept traffic. this setup restricts who can reach the endpoints to an extent, but peering with enough third parties with less restrictive policies will practically allow global routing. since this is a possible policy choice, minibase also requires internal traffic to be authenticated. overlay traffic is automatically encrypted by yggdrasil, but applications should still treat the traffic like its clearnet and use tls. currently i'm requiring a dns acme challenge to generate wildcard certs, but eventually it might make sense to scope the certificates to the specific service its associated with. we don't have much config generation in the nix modules yet, but something like this should be possible eventually. i'm working on configurations for ory oathkeeper, hydra, and kratos to provide a federated auth framework that your network services and minibase configs can integrate with.
so i learned that my vpn provider uses nftables to tag traffic for split tunnelling. so it looks like i'll be converting my iptables rules. there's some implication for docker containers that i'll have to reckon with, but i'm already nesting them inside a nixos container so i don't really need docker to touch the network at all. after that i'll be able to define some rules to allow traffic meant for the yggdrasil network to reach the tunnel. this will be important later.
freebsd makes a lovely server os, nixing it would be fucking excellent. i wonder if they ported systemd? shit's making me curious
i don't normally reach for go when starting a project, but this pubsub gemini thing seems like a great addition to ~solderpunk/molly-brown and i was already intended on adding titan support so i might as well get familiar with the codebase.
nixbsd is taking a long time to build, but that's expected. i guess a fast machine can do it in just 8h. might be about time to get my binary cache setup. my machine can only handle max-jobs=2 :(
gemini calls the request-response cycle a transaction in the spec. since trasactions are not cached, we have this problem where we can't tell if anything was updated without fetching it and we can't indicate how often a client should expect the content to be valid. the most common solution right now to just to keep requesting the resource until it changes or stops existing, which isn't ideal. this sort of update notification model is interesting because it re-frames your thinking into something more like event sourcing. you end up needing to add an event queue and dispatch to the server, which is a bit more complex on the server side than plain static files, but the client stays the same. i'm curious to see what kind of systems could be built on this gemini message queue concept.
zmq seems like an interesting tool for building task queues and other types of messaging apps. the other option i'm looking at is rabbitmq which has some interesting features like mqtt bridges and federation, but as a result involves a broker. i would like to eventually have all of the ships systems (or at least on the inter-system boundary) communicate over a brokerless messaging protocol. off the shelf env devices and trackers all communicate over an mqtt bridge so some brokering is probably unavoidable without getting into fully custom tech, but that'll blow the budget.
that's a neat solution to the dead old feeds problem. pull-once-once-on-notify seems to fit the gemini tx model better than scraping pages on a cron timer. i don't have a mechanism in my setup to produce that event yet other than the cron that rebuilds the capsule periodically, but that's just a stand-in for not having any CI rn and especially not a CI that works with fossil.
time to give nixbsd a spin
End the apartheid, End the war. #FreePalestine
FIN?
if twtxt 2 is dropping gemini support, i will probably move on and spend more time on my gemini social zine protocol instead. i think the direction of the protocol is probably fine, but for me web is a tier 2 publishing channel. if the choice is between gemini and http i'm always going to pick gemini. its been a fun ride, but i guess this is where i get off.
experimenting with litefs has been really interesting. i'm still learning about consul, so nothing distributed is happening yet. so far i have a setup that shares a virtual filesystem with a set of nixos containers running ejabberd and redka. soon some ory services for auth and security which also support sqlite will join the party, but those require higher availability that i can manage with my current deployment. the big server needs to me migrated before security can come online.
cloning nixpkgs is way too difficult, none of my local machines could even do it
decentralization of nixos https://discourse.nixos.org/t/monorepos-dont-map-to-our-social-structure/44162/5
flakes arent real https://jade.fyi/blog/flakes-arent-real/
i have been using grapheneos for a long time (maybe 7 years now?) and i would fully reccomend it to anyone who is OK with buying a new pixel device to run it on. the install instructions are really easy to follow and can be executed on any device that supports WebUSB https://grapheneos.org/install/web
afaik nobody has done this, but i really need some numbers that can indicate the relative performance of various git servers (cgit, gitea, gitlab) on comparable hardware. cgit claims to be hyperfast, but what does that mean in practice?
the first version of the minibase flake cdn is online as of today. more details on how this is populated and funded will be coming along soon. currently minibase includes a very small selection of packages, but you can install them using the experimental flakes feature today! https://src.cyb.red/
so this path *has been* trod and its bad lmao https://web.archive.org/web/20230926192451/https://gemini.spam.works/~emery/sigil-report.gmi
so it looks like genode has taken some inspiration from nix.. that's a rabbit-hole for another time https://genode.org/documentation/developer-resources/package_management
tw.txt is fun because its a hackers distributed system. simple, with lots of sharp edges to keep things interesting. i hope we don't go chasing mass-appeal because it'll make writing my own crappy tw.txt services un-fun and pointless since i can barely keep up with the current somewhat glacial pace of development.
it would be interesting to build a new nixpkgs based on a totally different base system. like, genode (sel4+) that can take the interesting security properties of nix and apply them to a non-posix secure-by-construction type of OS
capitalism does not solve poverty. capitalism creates poverty and then criminalizes it.
thinking about moving some of my services to dependable third parties.. I love to host my own stuff, but I need to have at least some backups. esp for stuff that mostly serves as an alias.
hmm seems like movim is a little too fancy to run on a shared hosting with no daemons..
I wonder if bento has slightly missed the key to being a total genius approach to host management. ok hear me out. each node periodically pulls configuration from a coordination node that hosts a binary cache. the admin may make changes and pre-build them maybe kick off an update task manually if they want, but the point is there's an automated checkin. for my case, the device I have available for coordination isn't really capable of hosting a binary cache for any of my other machines. the nix store for my dev machine is larger than the entire disk of the coordinator! and due to the yearly heat my best machine can't be reliably powered on all the time. so i started thinking to myself, "self, what if instead of having a central coordinator we fetched configuration from a reliable git mirror (maybe git+torrent some day) and consume it as a flake. the source could even be swapped out using a flake registry (so you don't even have to commit to self-hosting anything other than a json file). then managed hosts only have to be setup to consume the registry and the shared flake (which registers the update agent) and DONE?"
if you want your computer to be able to sleep, you'll need a measuring tape and a scientific calculator. first, measure each byte that you have in RAM and take the square root. add that to your total length. we'll need that number later on.
twts are immutable in the sense that a twt is its own identifier. you might think that a twt can be modified, but what's really happening is a delete and redraft operation. an edit would require you to append a special twt that says that old twt was actually meant to say this other thing, here's the twthash please hide my shame in the UI.
RT https://hispagatos.space/@argumento/113092655322062316
rm -fr, remove french-style: merciless colonizer. thief and destroyer of worlds.
maybe i'm overly restrained when it comes to making changes in a codebase, but i do a lot of the work in my head before committing to code.
running grey until after dark, it'll be around 40C until tuesday in the daytime so I can't really run the main server while I'm sat in my office. i'll have some pine quartz blades or my quattro arrays up some day to handle the lower power stuff so running grey doesn't mean the whole system is offline.
i know i can't keep living in this dead or dying dream..