<bslsk05>
github.com: Windows-driver-samples/filesys/fastfat at main · microsoft/Windows-driver-samples · GitHub
<zid>
eww spaces around args
<zid>
f( x );
<zid>
the x must smell
<mcrod`>
zid: heat: fuck off :(
<zid>
hid, feat: zuck off :(
<moon-child>
zid : fuck off :(
<zid>
At least he listened to my threat to "Take my heat's name out of your mouth"
<kof123>
mamake will compile with 16-bit int by changing #define KEY(a,b,c,d) and updating the switch, and a few other minor tweaks. the 2 stragglers that may not exist are popen() and pclose(), but only needed if you want recursion.
<kof123>
i didn't go further than that, but that was my "interest" lol
<kof123>
almost c89...almost
<kof123>
or, whatever dos compiler i tried with, provided enough of the rest lol
heat has quit [Ping timeout: 245 seconds]
alice has quit [Remote host closed the connection]
zxrom_ has joined #osdev
zxrom has quit [Ping timeout: 272 seconds]
alice has joined #osdev
gxt has quit [Remote host closed the connection]
gxt has joined #osdev
[itchyjunk] has quit [Remote host closed the connection]
netbsduser`` has joined #osdev
gog has quit [Ping timeout: 240 seconds]
xenos1984 has quit [Ping timeout: 240 seconds]
netbsduser`` has quit [Ping timeout: 255 seconds]
Arthuria has joined #osdev
smeso has quit [Quit: smeso]
xenos1984 has joined #osdev
smeso has joined #osdev
netbsduser`` has joined #osdev
rustyy has quit [Ping timeout: 258 seconds]
netbsduser`` has quit [Ping timeout: 240 seconds]
Arthuria has quit [Remote host closed the connection]
netbsduser`` has joined #osdev
Gooberpatrol_66 has joined #osdev
Gooberpatrol66 has quit [Ping timeout: 248 seconds]
rustyy has joined #osdev
netbsduser`` has quit [Ping timeout: 255 seconds]
xenos1984 has quit [Ping timeout: 255 seconds]
pretty_dumm_guy has joined #osdev
goliath has joined #osdev
Matt|home has quit [Quit: Leaving]
gbowne1 has quit [Quit: Leaving]
xenos1984 has joined #osdev
danilogondolfo has joined #osdev
netbsduser`` has joined #osdev
jjuran has quit [Ping timeout: 255 seconds]
jjuran has joined #osdev
nyah has joined #osdev
valshaped7424880 has quit [Read error: Connection reset by peer]
valshaped7424880 has joined #osdev
gxt has quit [Remote host closed the connection]
gxt has joined #osdev
netbsduser`` has quit [Ping timeout: 252 seconds]
yoyofreeman has quit [Read error: Connection reset by peer]
yoyofreeman has joined #osdev
GeDaMo has joined #osdev
Burgundy has joined #osdev
yoyofreeman has quit [Read error: Connection reset by peer]
yoyofreeman has joined #osdev
yoyofreeman has quit [Remote host closed the connection]
vai has quit [Ping timeout: 255 seconds]
gog has joined #osdev
jjuran has quit [Quit: Killing Colloquy first, before it kills me…]
jjuran has joined #osdev
yoyofreeman has joined #osdev
Vercas has joined #osdev
Vercas has quit [Client Quit]
Vercas has joined #osdev
<sham1>
hi
Celelibi has quit [Ping timeout: 255 seconds]
Burgundy has quit [Ping timeout: 260 seconds]
Celelibi has joined #osdev
Left_Turn has joined #osdev
netbsduser`` has joined #osdev
Vercas6 has joined #osdev
Vercas has quit [Ping timeout: 256 seconds]
Vercas6 is now known as Vercas
xenos1984 has quit [Quit: Leaving.]
<immibis>
zid: the space is elongated because of x's musk
vdamewood has joined #osdev
Burgundy has joined #osdev
bauen1 has quit [Ping timeout: 255 seconds]
bauen1 has joined #osdev
<mcrod`>
sham1: hi
<mcrod`>
immibis: he may still have you ignored
dude12312414 has joined #osdev
<sham1>
Probably
bauen1 has quit [Ping timeout: 240 seconds]
bauen1 has joined #osdev
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
yoyofreeman has quit [Remote host closed the connection]
mkwrz has joined #osdev
bauen1 has quit [Ping timeout: 255 seconds]
goliath has quit [Quit: SIGSEGV]
heat has joined #osdev
<zid>
heat: if we buy you can r you could rename to earth
<heat>
wot
<zid>
s/can/an
<sortie>
zid, no global warming, channel policy.
<zid>
no heat -> earth? :(
<zid>
Maye we'll just steal his h and heat some tea
<sortie>
Sir breathe into this we're checking co2 levels
<heat>
literally 1984
<sortie>
heat, those digits are unthink, move along
<zid>
double plus ungood
<sortie>
in here we program in c double plus
<immibis>
increment ungood, returning new value
* jimbzy
waves
<jimbzy>
How are you all doing?
<zid>
They're busy deciding on my birthday present for tomorrow
<gog>
hi
<jimbzy>
zid, Happy early birthday!
<jimbzy>
Hi gog!
<jimbzy>
You on strike?
<gog>
no, i put in some laundry earlier
<gog>
and i'm going to sweep the floor
<gog>
technically i'm not doing any economic productivity for another 6 days
<zid>
I am on strike
<zid>
since about 2004
<jimbzy>
Nice work.
sortiecat has joined #osdev
bauen1 has joined #osdev
sortie has quit [Ping timeout: 255 seconds]
sortiecat is now known as sortie
craigo has joined #osdev
gabi-250_ has quit [Ping timeout: 256 seconds]
gabi-250_ has joined #osdev
netbsduser`` has quit [Ping timeout: 248 seconds]
netbsduser`` has joined #osdev
<jimbzy>
Dang it. I had a SPDT switch that I put up so I wouldn't lose it, and I can't remember where I put it. XD
<mcrod`>
hi gog
<zid>
You did a 'my mother' and put it somewhere safe.
<zid>
It's so safe that nobody can access it.
<jimbzy>
I don't know, and it's driving me crazy.
Mutabah has quit [Ping timeout: 258 seconds]
<mcrod`>
I’m sad
<mcrod`>
I don’t think I have any SATA power cables
<zid>
I've got a gajillion
<zid>
would you like me to email you one
<mcrod`>
sure, email me one
<zid>
sorry I'm not allowed to email strangers
Mutabah has joined #osdev
<mcrod`>
fuck your birthday :(
<zid>
and taht's why we're strangers
<gog>
hi mcrod`
<mcrod`>
i’m cold
<gog>
i just took a shower
<zid>
I put the heating on for an hour
<zid>
I do need a bath though
<gog>
it's 23°C in my house rn
<heat>
gog, you take showers??
<zid>
23C!? why!?
<heat>
get out of IRC NOW
<gog>
the thermostat is set to 21, the floor heating is set to 40
<zid>
It's 12C outside of my house.
<gog>
so the thermostat doesn't shut off until it's 21
<clever>
i just have some old telephone (4 core) wire running all over the house
<zid>
and you can maintain 5V on that?
<clever>
going back to a breadboard with an atmega
<clever>
its feeding it 5v, and it works
<zid>
I've always found 5V to drop really badly on wire runs
<clever>
i havent actually measured the voltage at the furthest branch...
<zid>
maybe they're fine on 2-5V
<clever>
depends on the current draw as well
<clever>
and these draw very little
<zid>
you end up making a voltage divider using the wire
<clever>
yeah
<zid>
so if one end has 10 ohms and your wire has 10 ohms you end up with.. 2.5V
<gog>
ohm
<zid>
so it works better for high resistance devices, but that's also the same as "low current"
<zid>
That's why I use 1 inch copper rods for all my wiring.
<zid>
I think phone lines are supposed to be like, 70V?
<zid>
They certainly taste like it.
<clever>
48vdc under normal conditions
<clever>
low voltage ac for the analog audio
<zid>
I think they change when ringing etc?
<clever>
96vac? for the ringer i think
<zid>
yea, ow
<zid>
don't lick it while it's ringing
<clever>
just a single capacitor in series, can block the 48vdc, and you can drive a pair of headphones directly off the phone line
<clever>
and then listen in on any call
<zid>
well yea, it's very old tech
<zid>
you wouldn't expect to need anything but a passive or two
<clever>
but this phone wire isnt connected to the phone system
<clever>
its a private network, just between the temp sensors and the breadboard
<zid>
yes I know
<gog>
yeah didn't they have service handsets with alligator clips you could go on to the pole and hook on to for diagnostics (or mischief)
<zid>
yea it's just.. unencrypted copper wire that carries direct audio
<zid>
not anything fancy
<gog>
yeh
<gog>
at least after the distribution box
<zid>
and then the bell/at&t protocols were fucking hilariously insecure too, hence phreaking
<clever>
and my area has upgraded to fiber
<clever>
the analog stuff, starts at the router now
<zid>
putting money in just makes certain noises, etc
<gog>
they're digging up my street to put in new fiber conduits
<zid>
all the admin/control stuff was just injecting the codes in from your end
<clever>
gog: all of my fiber is on the poles
<zid>
exploding the phone is a good read maybe I should re-read it
<gog>
this street is all serviced underground
<zid>
our fiber is in the sewer
<gog>
power, cable, fiber
<zid>
the coax is just in the pavement I think though
<gog>
they're hooking up every house preemptively too iirc
<gog>
just with dark fiber
<zid>
I am using coax
<zid>
it does gigabit so there's no pressing need to switch to fiber
<gog>
i had fiber at my old house
<gog>
got sick of spectrum
<gog>
told them to fuck off after they said i had to get a DOCSIS3 modem and that i couldn't pay the rate for the service i already had for years
<immibis>
coax gives you gigabit shared with the whole neighbourhood; fiber gives you your own gigabit; well, a lot of them use passive splitting which gives you a gigabit shared between about 10 houses
<zid>
yea they switched to docsis3 here and so we had to change modems to a new one and it fucking sucks
<clever>
immibis: yeah, thats called GPON, gigabit passive optical network
<clever>
which is what ive got
<gog>
i couldn't find a good standalone DOCSIS3 modem for home users
<zid>
ours are locked down
<gog>
it was all-in-one crap
<zid>
they don't give you the pppoe details or whatever you'd need
<clever>
originally, i had ~600mbit down, and the fiber "modem" was its own battery backed box
<clever>
it had 802.11q vlan tagging coming out of an ethernet port
<gog>
yeh that's what i had too
<clever>
1 vlan is the internet, just dhcp a pubip, and your done
<zid>
you used to be able to sniff the docsis side from the older modems
<zid>
it's getting progressively more locked down after soem german guy was hacking all the docsis systems :p
<clever>
the 2nd vlan is the iptv, dhcp gives a 10.x.y.z, dual-uplink and you have tv
<clever>
but i never got the multicast forwarding to work
<clever>
and to my surprise, the supplied router has a 3rd vlan, just bloody bridged into the private lan :P
<clever>
so an ISP tech can effectively drop a cloud vm onto my private network at any time
<clever>
but, i cant just replace the router with linux anymore
<puck>
clever: but, IGMP snooping plus DHCP static routes is usually the magic trick for TV; for phone you'd have to trick your provider to get the SIP creds
<clever>
i did try a number of multicast guides at the time
<clever>
but one thing that made testing harder, is the tricks to hide latency
<clever>
when you change channels, it initially streams over unicast tcp
<clever>
so it can get an instant keyframe
<puck>
oh that's cute
<clever>
and then after 30 seconds, it switches over to the multicast seamlessly
<clever>
except, if multicast is broken, it takes 30 seconds to know its not working :P
<clever>
i did also look into it for linux DVR purposes, its standard mpegts crypto, inside an rtp stream, over multicast
<clever>
so you need a CAM to decrypt it
<puck>
..i wonder if i can get unencrypted multicast streams for the public TV channels from ethernet
<puck>
i mean i can just plug into coax, but
<clever>
but after that 1500mbit upgrade, the "modem" and router have been fused, SFP fiber directly into the router
<clever>
so i cant just replace it with linux anymore
<puck>
yeah, xgspon kinda needs that
<clever>
i did find an ugly hack for the old setup
<puck>
KPN does a very funny thing of PPPoE over a VLAN over XGSPON
<clever>
if i mis-configure the ISP router for pppoe, then it tries to pppoe over the isp vlan
<clever>
which the isp ignores
<clever>
i then run a pppoe server, on the internet facing vlan, on the linux router!
<clever>
so the isp router, and linux router, share the internet vlan
<puck>
funnily, the ONT i have has TR-069 support
<clever>
the linux router gets internet over dhcp
<puck>
not the modem/router, just the media converter
<clever>
the isp router gets internet over pppoe, on the same vlan
<clever>
and the isp router deals with the iptv seamlessly
<immibis>
puck: if you do that, life in prison
<immibis>
one life sentence per frame for unauthorized copying
<puck>
immibis: oh it's public TV, it's fine
<clever>
and it was set as double-nat, with the isp router as 2nd
<puck>
also i can't wait to get 4Gbps PPPoE over VLAN over XGSPON lol
<clever>
but now its double-nat, with linux as the 2nd
<puck>
only to plug it directly into a Mac Classic using a PPPoE <-> serial-PPP bridge
<puck>
immibis: like it just gets piped directly into my apartment by a provider i don't have any contract with
<immibis>
obviously you never met a lawyer
<clever>
puck: back when i was looking into the DVR stuff, i found a paper on how to crack mpegts, lol
<clever>
the protocol itself, is basically a black-box of digital data, that gets fed to the CAM module
<clever>
that includes key updates, firmware updates, billing package updates, everything
<clever>
the CAM will then randomly spit out a 16bit key to decrypt the current channel
<puck>
immibis: eh, it at least won't count as hacking
<clever>
so they can re-key the channel constantly, to keep you scrambled
<immibis>
oh it will. Normal People don't know what multicast is, so you must be a hacker. straight to jail.
<clever>
the paper pointed out, h264 often results in a full packet of nulls
<clever>
known plaintext search against a rainbow table
<immibis>
lol
<immibis>
wait only 16 bits?
<clever>
it said something about 6 months to and 2tb of storage to generate the rainbow tables
<immibis>
that's not many bits at all
<puck>
immibis: the dutch law basicallly only counts it only if you have to bypass a security. plugging a cable into the wall and seeing TV should be fine :p
<clever>
immibis: but the key could be changing every 30 seconds, and if the rainbow table takes 90 to search....
<immibis>
puck: but you had to use this "empeevee", clearly a hacking tool
<clever>
immibis: but factor in modern SSD's things may not be the same.....
<zid>
clever: It'd just take a minute to 'load' after you clicked the channel :P
<clever>
zid: you would be able to play back 30 seconds of content, then it would take another 90 seconds to load the next 30 seconds
<clever>
highly unwatchable
<zid>
why? if it's changing every 30 and doesn't depend on the previous 30
<zid>
I can just buffer 3 chunks and work on them in parlalelelrlale
<clever>
enless you have 4 copies of that rainbow table, each searching the next 30 second block
<puck>
clever: i mean, binary search on SSD should be Fast
<clever>
yeah
<zid>
and get one to crack every 30 seconds
<clever>
so now you need 8tb of storage
<zid>
oh no
<zid>
that's.. still 1 drive
<clever>
your assuming 1 drive has the bandwidth to do 4 searchs at once
<zid>
doing it with 2TB drives would only be marginally more expensive
<clever>
i dont remember the bandwidth requirements of the search
<clever>
and like puck said, modern SSD's may tip the scales massively
<immibis>
cracking 2000s encryption with 2020s technology
<puck>
clever: i mean, assuming it's just "match this encrypted set of nulls exactly"
<clever>
puck: yeah, i think thats all it was
<immibis>
have you tried just brute-forcing all 65536 keys?
<puck>
though, hmmm, how could that take 90 seconds, that's like. so many seeks
<zid>
You could probably include an index
<zid>
and oracle it
<clever>
immibis: thats the part the paper claimed took 6 months
<clever>
to generate all 64k keys, and encrypt nulls with each one
<puck>
hrmm
<puck>
i bet they encrypted for each IV too
<clever>
but again, 2 decades later, computers are better
<immibis>
so that's an average time of 4 minutes per encryption
<clever>
immibis: rough numbers, i havent read the paper in 20 years
kfv has joined #osdev
<zid>
computers are barely better than they were 10 years ago nwo, but they're very better than they were 20
<zid>
so yea I'd expect it to be easy now
<clever>
also weirdly, its better for piracy then just watching
<clever>
because the time to re-crack each segment doesnt matter when its a post-processing step
<immibis>
you mean it's better for pirate recordings than pirate live streams
<clever>
yeah
<clever>
i also ran into weird issues that i think where QoS related
<clever>
when i setup dual-uplink with linux, then all http requests by the cable box, where silently ignored
<clever>
but weirdly, curl from linux could still access it just fine
<clever>
which reminds me, that http"s" was funky as hell
<clever>
it was cleartext http, with a sig/nonce in the http headers, and an encrypted+base64'd http body, lol
<clever>
what do people always say about rolling your own crypto?
<immibis>
it might come from the days before TLS. There wasn't always an obvious standard way to do things.
<clever>
the cable box also ran windows CE
<immibis>
or they might have other limitations like offline processing
bauen1 has quit [Ping timeout: 258 seconds]
<puck>
reminded of the dual-core cable box that ran eCos on one core and Linux on the other
<clever>
the "master" box was able to do DVR recordings, and included a sata hdd
<clever>
on that drive, was a fat32 fs for the recordings
<clever>
within that, was a pile of numbered 1gig files, containing a custom fs
<clever>
because fat32 cant hold large files :P
<clever>
the "slave" box lacked a hdd, and on its own could only do live tv playback
<clever>
but if a master and slave are paired on the same LAN, you can pause live (the master records, and re-streams) or do DVR tasks from the slave
<immibis>
there's lots of roll your own crypto today. basically all of it, except for TLS, can be considered RYO
<immibis>
bitcoin is RYO, signal is RYO
<heat>
isn't all crypto roll your own? :)
<immibis>
except TLS
<heat>
someone has to roll it before it's "established"
<heat>
even TLS was RYO
<immibis>
it was, now it isn't
elastic_dog has quit [Ping timeout: 272 seconds]
kfv has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
GeDaMo has quit [Quit: That's it, you people have stood in my way long enough! I'm going to clown college!]
craigo has quit [Quit: Leaving]
yoyofreeman has joined #osdev
craigo has joined #osdev
gxt has quit [Remote host closed the connection]
gxt has joined #osdev
danilogondolfo has quit [Remote host closed the connection]
Left_Turn has quit [Remote host closed the connection]
Left_Turn has joined #osdev
<geist>
the shadow stack pointer is also new
<geist>
and i suspect you have to enable that feature, and thus the TSS doesn't grow until you let it
<geist>
though i dont know that feature much off the top of my head, i wonder if it also is present on the 64bit side?
<heat>
shadow stack? yeah it's on the 64-bit side
<Ermine>
Did that #musl discussion leaked here?
<heat>
no
<heat>
SCS != shadow stack
sbalmos has quit [Ping timeout: 245 seconds]
sbalmos has joined #osdev
Left_Turn has quit [Remote host closed the connection]
Left_Turn has joined #osdev
[itchyjunk] has joined #osdev
<zid>
maan, I really want some spring rolls
<heat>
Ermine, just to be clear, the main difference is that 1) proper shadow stacks are not readable nor writable from userspace 2) they're hardware managed
<heat>
whereas SCS is just a hack that stashes the 'shadow stack' in x14 or the riscv equivalent
<heat>
but the stack is still unsafe if you know its location and can read/write to it freely
<heat>
x86 actually uses a stupid bit combination for the 'is a shadow stack': dirty | read-only
<heat>
ever since intel CET got introduced, their CPUs got really careful writing D bits back, so they won't accidentally set something as a shadow stack
gorgonical has joined #osdev
<gorgonical>
So I'm mucking around with sockets and to make sure I understand what I'm about to do. It seems that almost nobody uses the unix domain functionality of sockets. But let's say we were starting from scratch. Would there be any reason to have pipes if sockets can do both networked access as well as local ipc?
<gorgonical>
I have not given this much thought so if there's an obvious thing just point it out to me
<heat>
system services frequently use AF_UNIX
<heat>
dbus, xorg, etc
<heat>
but sure, pipes are simpler than AF_UNIX, so it's plausible that pipes would always be there
<gorgonical>
Oh. Just from blogpost writeups I got the feeling
<moon-child>
gorgonical: I can send an fd over a socket, and I can't send an fd over a pipe
<moon-child>
but a pipe can lead to the other side of a network
<heat>
?
<heat>
pipes are inherently local
<heat>
you can't send fds over pipes Just Cuz
<zid>
yea pipes and sockets both existing is a little overkill, except for that pipes will always work
<gorgonical>
heat I'm actually suggesting that if pipes are fully subsumed by sockets then you shouldn't expose pipes as a solution
<zid>
you can't fuck your network configuration and have pipes stop working :p
<heat>
that's not possible with AF_UNIX either
<zid>
I take it AF_UNIX bypasses a whole shit load of stuff
<heat>
unless you truly go ham with rmem and wmem tunables, but IIRC those have a lower bound
<zid>
like flow control and stuff
<heat>
yes
<moon-child>
I guess there's a question of what functionality you expose and what name you give to that functionality. But it's not clear to me there's a difference between 'get rid of sockets and make pipes do everything they can' vs 'get rid of pipes and do everything with sockets'
<heat>
gorgonical, right, but AF_UNIX sockets are more complex. so i don't know if there's still a place for pipes in that world
<zid>
sockets are just pipes++
<heat>
as 'sockets but dumber'
<heat>
(why? performance)
<zid>
do you want/need the overhead every time you use a pipe?
<zid>
(if it were a socket instead)
<gorgonical>
Sure if the reasoning is that sockets are lighter-weight that's an acceptable answer, as an optimization
<zid>
is the simplification of the ABI worth the added performance cost of not having a specialized solution, basically
<zid>
that's true of.. a lot of things
<heat>
to be clear, AF_UNIX sockets are still hella dumb, but they have a bunch of logic around CMSG (file descriptor passing, gc, etc)
<heat>
whereas the pipe implementations are really stupid. linux's pipe is just a ring buffer of struct page*'s
<zid>
The code complexity of having both is very minimal, imo, you're just doing .read = afunix_read; vs .read = pipe_read; and each live in their own .c file you never have to maintain once it works
<zid>
it doesn't pollute other files, is what I mean, it's just a pluggable transport
<zid>
into the existing fd methosd
<heat>
yep
<zid>
and they have different performance characteritics, so unless your design goal is "teh minimal", then having both is just fine
<zid>
and not much work
<gorgonical>
My main theoretical complaint here is that they can be used for the same thing, so which do you pick for your program?
<heat>
now that i think of it, haha af_unix really is just a pipe
<heat>
named pipes = bound af_unix sockets
<heat>
literally
<zid>
yup
<Ermine>
Why not just char[PIPE_BUF]
<heat>
where?
<zid>
you'd 'expect' the network functions to work on a socket but not a file though, and imo, semantics are important here
<Ermine>
In pipe implementation
<zid>
if you *tell* someone something is a file, they expect to do filey type syscalls with it, not networky type ones, and vice versa
<heat>
because then your pipes always take up PIPE_BUF bytes and also can't expand
<gorgonical>
zid: ??? sockets are just fds though to programs
<gorgonical>
obv the program knows its a socket, but still
<zid>
except they use totally different syscall sets
<heat>
sometimes it doesn't though
<zid>
in practice
<Ermine>
Fair enough, thank you
<zid>
they just use the same opaque handles
<gorgonical>
zid: I suppose that's a fair point
<heat>
i can dup a socket and exec
<heat>
it's now your stdin! has the same semantics too
<heat>
SIGPIPE, etc
<zid>
There's a lot of work to make them act similar, for convenience, yea
<zid>
so that I can add stdin to select() and have a local console, etc
<zid>
for my http daemon
<Ermine>
Yeah, now I see point of 'ring buffer of struct page*'
<gorgonical>
the only ipc allowed should be loan_page(). let the processes sort it out themselves
<heat>
ew
<heat>
netbsd's wet dream
<gorgonical>
Doesn't l4 do that? Or am I making that up
<heat>
netbsd's uvm has huge ideas of page loaning and how that's great. obviously it's not, though
<heat>
20 years later page loaning is PESSIMAL
<heat>
(except if you really have a lot of data to transfer)
<gorgonical>
I mean it's the foundation of like all HPC PGAS systems
<heat>
surely it's not loaning 4KiB at a time
<gorgonical>
No, not at all
<gorgonical>
But the idea of bypassing all that silly kernel ipc is
<gorgonical>
most mpi implementations are just very elaborate versions of shmem
<zid>
my cat has a sore throat
<gorgonical>
how can you even tell
<zid>
she's going Meeeehhrrgrkk
<zid>
instead of meow
<gorgonical>
poor thing lmao
<zid>
she sounds like her 2 pack a day habit is finally catching up to her
sbalmos has quit [Quit: WeeChat 4.0.5]
<kazinsal>
one of my cats growing up used to go mreeeep! mreep mreep mreep when he had a hairball
<kazinsal>
like he was meowing in reverse
<gorgonical>
strangely implying that you think a cat's meow sounds like "peerm"
<zid>
*googles for an image of a cat with a perm*
<zid>
there is apparently a variety called 'laperm'
<zid>
which is curly
<gorgonical>
oh no
<zid>
It looks worse than those naked goblin cats
<gorgonical>
For when you want your cat to look like an unbrushed fur rug
<zid>
the bitey testicles
<gorgonical>
I've always thought it would be hilarious to have a cat that looks like a huge ballsack
<zid>
Well, go buy one then
<zid>
My favourite part is the story of the testicle-cat that was sat on a glass coffee table, it got up and a loud *pop* was heard.
pretty_dumm_guy has quit [Quit: WeeChat 3.5]
<zid>
The cat had left a... kiss mark, on the glass, from where it was sat.
<gorgonical>
ewwwwwwwwwwwwwwwwww
<zid>
isn't that just a glorious story
<moon-child>
lol
<gorgonical>
I will commend it for being short and to the point in your retelling
<zid>
It's also the title of my latest book, "From whence the kiss mark come"
<zid>
It won an award, a trophy infact.
Vercas has quit [Remote host closed the connection]
Vercas has joined #osdev
Left_Turn has quit [Read error: Connection reset by peer]
dude12312414 has joined #osdev
zid has quit [Read error: Connection reset by peer]
zid has joined #osdev
ThinkT510 has quit [Ping timeout: 240 seconds]
ThinkT510 has joined #osdev
heat has quit [Read error: Connection reset by peer]
heat has joined #osdev
heat has quit [Client Quit]
heat has joined #osdev
Terlisimo has quit [Quit: Connection reset by beer]