yeah ive complained about this before
yeah ive complained about this before
@priv.merkletr.ee is back up
took me a while to figure out a weird docker build issue but you can go use the feed again
i was keeping the ingester running on the old server during the migration so there's no backfill time, you can catch up to all the posts you missed out on during the downtime now
can recommend go if you want to get a job and pull your hair out every day about how you're forced to work in such an insane language
itll be back like tomorrow probably
i wish distros used normal mechanisms for signing packages and not gpg
why does pacman-key --refresh always have to take so long
well other people blocking you is the obvious answer
but also bots or bad clients that do invalid replyrefs, or don't follow threadgates, etc
honestly i know the functions are pretty alien but I don't want to add an unnecessary -> so idk how to fix them
hopefully with documentation it's not a problem
these are also stolen from haskell tho haskell uses . as its composition operator
it's also somewhat of a feature of k but k does it a more insane way
so these would be partial application. when you use an operator with only an operand on one side it becomes a function that takes the other side
1+ being shorthand for \a{1+a}
/2 being shorthand for \a{a/2}
@ being function composition
f@g == \a{ f(g(a)) }
so that example being \a{(1+a)/2}
ofc this design card is kinda condensed in the real world it'd be formatted with more whitespace
i stole as much as possible from normal langs like python
[for(x:xs) x] is just reverse order of [x for x in xs] for consistency and preference reasons
\a -> a lambda syntax is from haskell, it's shorter than {|a|...} and there's no ambiguity and i can do the funny \[] shorthand for oop and stuff
daul v4(?); k-ish but readable for normal people? 1+2*3-4 // 3 var a = 1 // mut val b = a // const [1, 2, 3] // array ["a": 1, 2: 3] // table [3,2,1][1] // 2 [3,2,1][:-1] // [3,2] [3,2,1]@[1,2] // [2,1] // scalar extension & implicit each [0, 1] + 1 // [1, 2] [0, 1] + [2, 3] // [2, 4] [[1,2],[3,4]] + [1,5] // [[2,3],[8,9]] // functions \{ 1; 2 } // f() // 2 \a{a+1} // f(1) // 2 1+ // f(1) // 2 /2 @ 1+ // f(3) // 2 \a,b{b} // f(1,2) // 2 \a\b{b} // f(1)(2) // 2 \a[a] // f(2) // [2] \[1, 2] // f()[1] // 2 \["recursive": self] \["v":2,"m":\{self.v}] // val o = f(); o.m() // 2 // for loops work the same but val of a for loop is val of its last iter // list/table comprehensions give values of all iters [for(x:X) x+1] [for(k,v:tbl) k: v+1] // each [for(x,y:X,Y) x*y] [for(x,y,z:X,tbl) ...] // zip [for(x:X) for(y:Y) x*y] [for(x:X; y:Y) x*y] // cartesian product \f,X[for(x:X) if(f(x)) x] // filter \f,X,a{for(x:X) a = f(a,x)} // foldl k: a f/X \f,X,a[for(x:X) a = f(a,x)] // scanl k: a f\X \f,X[for(a,b:X,X[1:]) f(a,b)] // eachprior k: f':X \A,B[for(a:A) fold(+)(a*B)] // matmul k: (+/*)\:
been thinking about writing a language again
chat what do yall think of this design
fuck les caquistes nous on est kak-istes (utilisateurs de kakoune)
discover feed moment
it's optimal, in fact
function was good but this is on a whole other level
music.youtube.com/watch?v=_ITd...
when i made my list i put black hole superette as the best album of 2025 but if i'm honest i probably get a lot more enjoyment out of nitepunk's lawless ep
the nitepunk singles can be hit or miss but human was all hits and lawless is much the same
ngl bangarang the ep is all bangers i dont get why bangarang the track got all the attention
replicating mutuals behavior is probably kind of a pain since you'd have to do custom backfill (probably easiest to getRelationships and map to rows or something) but hey wouldnt be too hard to ingest all follows. the ingester is like dead simple.
this is why you use @priv.merkletr.ee i only prune old posts after you go over something like 1k in your feed
(and you have no limits if you host it yourself :+1:)
@atcute/jetstream readme says it reconnects, so i guess i assumed the connection would close with them presumably restarting jetstream, but it never did??
this is from when jetstream broke idk why but it just stopped consuming anything (cursor wasn't changing) until i restarted the process
that one mentions neither in readme nor roadmap whether it supports the edit tools. and that's like most of the point of sharex for me at this point, if it doesn't have the eraser im just gonna continue using the niri built-in screenshot tool
eh seems very claude guess we'll just have to watch and see how it goes
XerahS: A cross-platform port of the popular ShareX https://github.com/ShareX/XerahS
holy shit is it fucking happening
looks caught up to me
(after like, 20 minutes; the cliff after is the pruning)