beep
hi?
oh hi!!
hihiii
awaaaa
*boops*
the awawers have arrived
indeed

‮
damn
‮
dolls? in my shitpost project? it's more likely than you think
sadge, no utf8
cant even <3
OH YOU CAN
the &apos-er
hm i should maybe fix that apostrophe rendering bug
<i>hi</i>
im guessing matrix notifications are fucked but you should check your kofi lmao :3
genuinely considered doing it before realizing you did it first and that it does not have enough to send rn
wait who should?
you$erin should check your$erin kofi
beep
stella/ we will invent our own sender identification
but what if we refuse?
7: was waiting for someone to do it
stella/ quote "damn. 27 lines. rust could never. no binaries."
erin is kind of obsessed with tiny node programs
ask it about its webring server
stella/ it is veru succint
7: i love the webring server
e> i am a normal web developer please disperse
7: convinced me to finally write my own lol
s/ uh huh
hmmm . . . now wondering if we could use long-polling or server push to make this more realtime
oh wait i like the >
/ atp we can drop the letters/numbers, given we all use our own separators
7> do it mv.c v0.1.1
anyway my phone stopped letting me hotspot my laptop as soon as i finished deploying this and wow a refresh of 30s is a pain when typing on mobile
no <3
gserver-push is interest
~# sure, i'll use this for now
/ ^
e> i should maybe have listened to that accessibility note on mdn 
~# bleh, apos is a mess
s> oh?
e> re: more realtime, i considered making the chatlog a separate iframe with a refresh of 1s
~# that could work
e> i'll fix apostrophes in a sec i just goes set up the ssh host on my phone
s> erin the unclosed tags hurts this one severely but it understands why...
7: i think the most important change would either be making it reverse chronological or fixing the inpuit box lol
~# also maybe add some css so the chatlog can't make the page scroll or something
e> >:3
e> the chatlog becoming unusably long is a feature not a bug
s> oh yeah when it refreshes your cursor goes to the front of the box
e> uncertain whether sarcasm or not
~# oh fun
~# hmmmm chat log also needs colors
~# take the first word and hash it for a color
~# nobody will ever have two-word names, im sure
chat color based on hash of the first x characters before a separator :wooz
colors are probably not happening that sounds like parsing which i am ideologically opposed to
this is so true
e> also fuck i'm bad at remembering to tag
e> weh ok let me fix things rq
what if i cat 1mb into the box
~# clearly folks who are more used to pk will remember to proxy always
e> lol
7: erin why do you publish shit on github youre making me want to remake a throwaway github account &#128546;
s> who's the ~#?
no emojis :waa
s> did you not already make the gitted hub account
~# s>: not telling
7> no i hate github i dont wanna touch it with a 10ft pole
sob
7> actually ill just email erin patches
~# we need to use it for work still
s> yeah this one just keeps it
7> yeag :(
s> for collab stuff n whatnot
~# home stuff is . . . well it's a mess
~# need to set up a proper forge again
7> cant wait to accidentally give myself a new alter by creating a new online identity !!!
~# oh fun
~# *yawns*
e> i have my own forge but i decided to put this on github first on the off-chance it gets popular and nukes my home server
7> i suppose thats real lol
e> ill shove it there later and make the github repo a mirror and ill give yall accounts on there if theres interest
or we can all pretend that forgejo federation is happening soon:tm:
s> 2025 will be the year of forgefed
7> no 2025 is the year of the linux desktop i dont think it can fit both
e> i think my network is absolutely fucked somehow. i cannot create local commits because the 1password ssh key agent is trying to make a network request and its failing even though i otherwise have network on my laptop again
~# hey erin do i still have ssh on your computer?
e> kill all computers
~# because like, then i can just commit directly
 oh cool also <pre> doesnt wrap
e> yeah ok some css is in order
uhh you might but i dr if my pc is on rn
~# i volunteer to match your cursed js with equally cursed css
e> no its ok i promise i am more than capable of writing cursed css
~# oh i believe it
e> bro what the FUCK why are you not COMMITTING my CODE this is a LOCAL REPO
e> > Git: 1Password: agent returned an error
e> how about you die forever
~# oh it's failing to sign
7> software blue smoke
~# if git is configured to sign with ssh keys and the agent isnt working it just dies
e> --no-gpg tiem
~# yeah
e> nobody rely on this project's commits ill probably force-push over this with signed commits later
7> i should figure out how to sign commits
7> i want the silly green check
~# it is fun
e> I CAN PUSH TO GITHUB FROM HERE WHY IS 1PASSWORD UNHAPPY
~# for a while we were trying to figure out how to get the signing key to change based on pk front state
e> augh whatever i dont care
~# *pats erin*
s> bwawa
e> lmfao i cant sign into the prod server either because gueSS WHAT IDIOT PUT ALL ITS SSH KEYS IN 1P
e> maybe i should give up forever and go buy that pizza
7> i think u should get food yeah
~# oh fun
~# mmmmm i think i should sleep
s> seconded
~# also yes please get food
7> sleep is good
7> i should be doing that that but i have a paper due in -8 days
s> eepy anonymous chatter
s> ough yeah
~# sleep is good but boring
~# oh oof 
~# how long does the paper need to be?
7> 2 pages in german. an amount i am entirely capable of doing, but i got terminal eepysad syndrome
e> hey did yall know that debian boxes on digitalocean dont come with git :)
~# oh no, not the eepysa
7> what the fuck?? how
~# ouch
e> i just restarted the server is it still working
e> hey look all the apostrophes are rendering correctly now
e> also there is no automatic refresh anymore. suffer
e> ill probably redo that with the iframe method soon:tm: but this feels right for now
on desktop when the refresh happens while you're typing it just moves your cursor to the start of the input. on mobile it fucking deletes your message and that was getting old fast
s> who the fuck
s> no git??
''''''''''
s> spostrophe yipe
~# guess how long it took us to realize the auto-refresh wasn't working any more :p
lmoa
e> yeah sorry i kinda didnt warn i was doing that before
e> i think i probably have time to mess with the iframe idea before i get on this flight. we're gonna have *two whole api routes*
~# mmmmm yeah we should sleep
e> and then if i have enough room to have my laptop out on the flight i might mess with some css from there but i also might not
~# headache
e> we'll see. honestly the fact that the input is autofocused works decently well for automatically scrolling you down to the latest message
e> yeah hey you should sleep
7> yeah it took me a hot minute to realize autorefresh was off lol
~# but why?
7> sleep good ive been told
7> re: autoscroll; it does actually do a surprisingly good job lol
e> it's kind of amazing
~# *nods*
im about to make a mv.c client that readds autorefresh
~# ooh fun
i think that's a tomorrow thing though bc hhhhhhhhhhhhh
~# understandable
e> lmao
s> same yeah
s> awawaaa
e> hopefully by then it will have it back in the form of iframe hacks or maybe an optional js thing
e> we'll see how much i feel like fucking with it
real
e> i definitely will expose the raw chat log somewhere if people want to not have to parse shit out of the html response tho
s> erin when are you making it post to ntfy
ah yea
e> lmao
~# that seems unnecessary
e> so hey who remembers my last tiny node script that was just "post get request params to discord webhook"
~# i do
~# please no
7> would ntfy integration just like shoot a post to a configurable topic that anyone would just have to add?
https://ntfy.lifeless.space/SVyENMcILYiZbViQ
add message editing :trol
s> :woozy:
if someone wants to do that for some reason you have my permission to just poll my server and handle it that way i guess
e> *
~# nah editing is unnecessary if you just truncate the log to a specific length
~# we can re-send all the intermediate messages to "edit"
e> re: editing: no lol. suffer
but i wanna be able to arbitrarily edit the contents of the message history
e> i think the gate by the bench im sitting at is about to be used for an actual flight, its getting busy.
e> gonna get up and find food and sit down closer to my actual gate now i think
~# what happened to letting us edit the page source?
e> dont burn down my vps while im gone plz
~# also good luck on food
7> im so glad i havent been in an airport in so long
e> re(page source): i decided that even if i was hosting this on a throwaway box i didn't actually want to be responsible for exposing random curious ppl clicking my link to xss when i can't really moderate the chat in real time
7> the eponymous airport pizza
~# ah fair
e> egh ok one more change before i go. im setting `pre-wrap` on this fucking textbox
~# also lucky 7, we were at an airport earlier today
7> fuck i want pizza now but i dont think anyone is open
s> cant you just text/plain so it's not html?
s> same,, dining hall pizza was ass
~# but then no input
s> why is the good dining hall pizza on the hall across campus,,,
~# oh erin maybe disable autocomplete on the input form actually
~# having it suggest prior messages is annoying
s> (re: no input) for the get raw chatlog endpoint
~# ahh
~# augh okay headache is bad, gonna get ready for bed
7> gn o/
~# bye for now y'all o/
s> gn!
~# oh erin good luck with the other flight
~# in case we don't chat before
(~# okay leaving for real now ~r )
e> re(text/plain): if the chat log were a separate thing in a frame, yes. but the message box has to be somewhere and you can't put interactive elements in text/plain
e> but yes the raw chatlog endpoint will be text/plain and if i ever do the iframe thing then it will work the same way
e> re(disable autocomplete): yeah ill do that
s> maybe just a different endpoint? even with query params, just have ?raw send as text/plain w/o the interactive
e> also the wrapped messages get a hanging indent now to make it easier to tell them apart
s> ah yeah
s> ooh nice
e> ?raw could maybe work yeah. ill think about it
 did my one thing i said i was gonna do i need to get up now
e> someone also remind me to add a viewport tag later
s> who up viewing it port
~# something something fascinate a girlthing with a diagnostic port
s> awa
s> hehe
s> polling nushell code works
s> loop { curl --output - --silent https://minimumviable.chat/ | save -f /tmp/next.txt; try { diff --text --color=always /tmp/prev.txt /tmp/next.txt }; cp /tmp/next.txt /tmp/prev.txt;  sleep 2sec }
~# ooh clever
s> the so-called sleeper
~# i have to admit the jab about this chat existing and ours not definitely makes me want to actually do shit, but like for real this time
e> not me i opened the page from my phone and it physically shot me in the eye with a gun
s> wht
oh cool refreshing was cached and i replied to something old
oh cool refreshing was cached and i replied to something old
e> and... huhhh?? how did that send twice
e> weh
average GET moment
~# this is a post supremacy account
~# brb gonna get stamps to post things in the mail
7> i got foodd,,,,,
7> oughhh ffuck i love tacos
s> needs,,
7> there is a special place in heaven for night shift restaurant employees
~# ooooh tacos are good
s> site update spotted
s> the viewporter
7> what is a viewport
e> so real late night tacos go hard
e> shoutouts to my old favorite 1-3am taco bell worker i always saw when i worked overnight
s> waaah wishes it had tacos,
7> taco enchilada combo save me
e> the viewport tag makes the site not pretend to be desktop width when on a phone
ah cool ok
e> still basically sucks on mobile bc autofocus doesn't work so you have to scroll manually but yknow
7> ohh the meta tag ok yea
~# autofocus works on firefox android lol
7> re:tacos @:s; just come here then smh
s> seconded
bitte,
~# anyways we are now actually ready for bed so i'm closing the chat for real
7> hello queers in my phone
~# bye all o/
7> gn for real this time
e> i am boarding a flight with snacks
7> oh fun
e> again pls don't burn my server down while i'm gone. this flight will be a few hours
s> ofc!
s> fly
7> have fun in the sky
7> tell the pilot to not crash
e> not sure they need to be told but i'll make sure they get the message
sup everypony
e> hello there
i just woke up sick as hell 
i beat the eepy deamon but at what cost
e> imagine beating the eepy demon. it's been kicking my ass all day
source button -s
the eepy demon consumes all
\n
​
e> egh okay fine i'll give the document a charset too
there unicode support is a thing
👯
lfggggg
s> dual bunnygirl dancers
7> re: ?raw; would probably be a good idea to only return x number of lines? like /raw?lines=20
s> that's sensible^
s> a
s> waw
hhgfhgghf
s> oh
s> software is real
s> @everyone https://ntfy.lifeless.space/SVyENMcILYiZbViQ
s> it's literally a nushell script that just polls, printing a diff and posting it to ntfy if there is one
oh huh
s> yes ik it's writable
s> mvc but hosted on solarproto
7> it gets me
waff
hello waff
e> *points* tiny fox
7> omg erin real
whoa this exists
e> hello yes i exist again
r> oh there's no usernames, cool
e> im the umbreon now
r> oh
r> so minimal you can't afford a </button>
e> or a </form>
e> or a <html> for that matter
r> or html, head, or body
r> i hate that the html ends with a word
r> browsers should be allowed to attack you for this
e> they are it's called quirks mode
r> okay fair
awawawawawa
meow
Meow
how can a chat be minimum viable of our eyes arent minimum viable
r> hi cat
e> a wild kitty appears
e> oh okay that's a lot more boosts this morning hello
meow meow meow meow
cool thing that exists
nyaaaaaaaa
meow
am housecat
mi soweli!
mrow mrrp mrrrrrr
h
gm chat
7> pov you make a public post on fedi
sam> wait what the fuck how did you figure out i'm tiny from a single waff
jade> meow :3
lily> hi
jade> hi c:
how very cool
moth.monster> this is so minimal and viable. i'm chatting so hard rn
mrrp
s> hihii
beep
this sure does exist 
this will revolutionise pet chat app projects
&
s> awaw
h
jackson> -i
~# morning
~# we have awoken with a strong desire to do a slightly less minimal chat app
cat girl “meow”
s> same, but this one has other networking stuff to do first
mrow
mi ilo
rawr
~# blegh why do we need to work?
sam> simply call in sick, this is definitely a good idea
e> you fuckers have no idea how goddamn tired i am rn
~# eh we have a pretty good idea
7> the eeping comes for all
awawawa
~# evening all
7> eyoo
e> weh
s> bwawa
s> *hugs*
7> ¿por qué weh?
Hi
~# *waves*
("-")/
~# hiii
~# bleh we should sleep
~# g'night if anyone's around
meep moop
:3
abcdefghijklmnopqrstuvwxyz 
e> morny
~# morning
7> morningggg
s> gmm
~# g'day
e. i am now done being gay forever
7> no more gay? D:
s> something happen?
~# *offers hugs if wanted*
e. nothing happened i just stopped being with gf
oof
🫂
ʕ •ᴥ•ʔ
whoa, viable chat! imagine that
r waves at the bear
ʕ •ᴥ•ʔϠ
hi
7> gmm
7> i have spent unreasonably long working on my silly rust shit today
hello from curlcargo
oh oops hello cargo why are you here
vo> shoutout to Luna from mgmh for being a robot powered by emotions
e> shoutouts to emotions
7> so real
this is hopefully being sent from rust!!
let's try sending another for good measure
e> owo
chat this shit works so well it's crazy (no it doesnt)
but anyway i can do some little visual changes, send mvc messages, and the text box is actually working now !! i uh,, cant view any messages tho :3
7> wondering if i should spin up my own mvc server to test on so i dont have to keep sending things here ^^'
7> nice to see that username prefixes work good though! :3
source