awita has quit [Remote host closed the connection]
SGautam has joined #osdev
[itchyjunk] has joined #osdev
awita has joined #osdev
awita has quit [Client Quit]
gareppa has joined #osdev
<gog>
hi
<sham1>
hi
<heat_>
hi
<Ermine>
hi gog, may I pet you
<gog>
yes
<mjg>
no fraternizing during office hours
<Ermine>
I'm on vacation
* Ermine
pets gog
* heat_
pets mjg
<mjg>
OH
* mjg
goes to HR
<sham1>
Unsolicited pets!
<heat_>
OH
<Ermine>
OH, heat_ soon will have more time for onyx!
<heat_>
i already have all the time for onyx
<sham1>
I wish I had time for programming
<sham1>
…or motivation
<Ermine>
I have enough time during holidays, but by that time I get exhausted enough to not have any motivation
<heat_>
hi ermine where's your linux bootloader
<heat_>
and where's my linux boot stub implementation?
<heat_>
cheers mate
<Ermine>
Maybe I should return to that
* gog
prr
<gog>
hi
<gog>
i'm gonna program when i get home
<gog>
i'm also programming right now
<gog>
i program for money and for fun
<gog>
i'm an anxious mess and my life has no meaning beyond code
<heat_>
grog program
<gog>
grogram
<heat_>
grogramming
<gog>
meow
<heat_>
gog you're wanted and loved
<heat_>
and you can accomplish things
gareppa has quit [Quit: WeeChat 3.8]
<gog>
thanks <3
<gog>
i had a frustrating bug i couldn't solve last night but the answer came to me in a flash of inspiration while i was on the toilet
<gog>
it reminded me that i'm not totally incompetent
<mjg>
is the solution.. shit?
<gog>
no
<gog>
but the solution is facilitated by shit
<sham1>
It's always the toilet, the shower or being asleep that gives answers
<mjg>
if in doubt, add zero-cost abstraction
<gog>
so when you're creatively constipated
<gog>
mjg: that's pessimal
<gog>
abstractions are pessimal
<sham1>
mjg: I thought you didn't like rust
<mjg>
but it is ZERO COST!!
<mjg>
next step is negative cost abstractions innit
<gog>
optimiziations are negaative cost abstractions
<gog>
or are optimizations actually concretions
<mjg>
how to optimize, geezer guide
<mjg>
1. don't do shit, claim software is fast enough
<mjg>
2. if pressed, wildly speculate what the slowdown is and patch that
<mjg>
3. DO NOT OBTAIN PROFILING DATA
<mjg>
4. watch a young person do the actual work later
<mjg>
go to 1
<mjg>
feel free to claim greatness at any point
<mjg>
if called out, claim pragmatic tradeoffs
<heat_>
damn young people
<mjg>
basically anything but admitting the code is shite
<sham1>
I see you have also worked in acadsmka
<sham1>
Academia*
<mjg>
no, but i had displeasure working with teaching assistants going into industry 'n shit
<sham1>
Uuh
<mjg>
the fact this people /teach/, when they should have never graduated, sealed my opinion on degrees as a predictor of quality
<sham1>
I work in research and I'm annoyed that I can't exactly disagree. Degrees are a bad proxy metric for software stuff
<mjg>
i know for a fact that in poland, where higher education is free (as in taxpayer subsidized) it became a business to graduate people
Burgundy has quit [Ping timeout: 246 seconds]
<mjg>
and i strongly suspect something of that sort is present in other countries
<mjg>
at the end of the day you money going in is dependent on your student head count
<mjg>
and if an idiot drops out, he may enroll elsewhere so you are giving money away
<mjg>
to the competition
<sham1>
Finland also does that. Universities get money for every student that graduates, and most people graduate to become MSc or equivalent which in turn creates degree infla5
<mjg>
there are private "universities" in poland where you have pay tuition and which are de facto diploma millas
<sham1>
Degree inflation
<mjg>
mills
slidercrank has quit [Quit: Why not ask me about Sevastopol's safety protocols?]
<mjg>
except takes years to get one
<mjg>
you need to attend classes 'n shit, but you don't need to learn anything or do almost any work
<mjg>
here is an example: there will be an exam you can take 4 times. first 3 times you get the same questions
<mjg>
idiots who still did not pass get the 4 exam, where they show up to get the passing grade automatically
<mjg>
this is literally the model, no joke
<mjg>
during the 3 times where you have to write the exam you often allowed to cheat
<sham1>
Okay yeah, that's not a proper academic institution by any metric
<mjg>
it basically takes willingness to NOT pass to not pass
<mjg>
i'm afraid this is quite widespread in poland
<mjg>
not that /every single uni/ is like that
<mjg>
but the count is high enough that ultimately if you want a degree, you can easily find a uni where you will get one by "passing" as described above
<mjg>
rendering mere fact that someone has the degree worthless
<mjg>
you can try to filter by uni, but people intentionally misrepresent what happened
<mjg>
example: there was a uni with several different departments, offering 4 separate "applied computer science" degrees
<mjg>
one of them is quit renonwed, hard to get in and demanding
<mjg>
the rest is as described above
<mjg>
so people who graduate from the 3 crappers skip mentioning the department
<mjg>
:]
<SGautam>
This is going to sound a bit of a shameless request, but have anyone of you written a VT100 emulator for the VGA 16 color backend
<mjg>
implying they passed the demanding one
<heat_>
SGautam, i have a vt100 "emulator", but not for vga
<heat_>
rather just a normal framebuffer
<SGautam>
I'm guessing at one point it must be outputting a pure text stream to a backend text buffer.
Brnocrist has joined #osdev
<heat_>
yep
<heat_>
see kernel/kernel/tty/vt/vterm.cpp in onyx
eddof13 has joined #osdev
<SGautam>
thanks
eddof13 has quit [Client Quit]
goliath has quit [Quit: SIGSEGV]
vdamewood has joined #osdev
eddof13 has joined #osdev
<mcrod>
test
<mcrod>
hi
<gog>
test
<mcrod>
oh thank god
<mcrod>
i am back on IRC from iOS
<mcrod>
i think it’s working properly now anyway
<mcrod>
gog may I pet you
<heat_>
<mcrod> i am back on IRC from iOS
<heat_>
cursed
<heat_>
ping me on imessage ok mcrod?
<gog>
mcrod: yes
<gog>
mcrod: do u have discord
* mcrod
pets gog
<mcrod>
yes
<mcrod>
mcroddev
<vai>
klange: I am adapting your ELF32 dynamic linker to a Turbo C environment (protected mode)
<heat_>
top 10 things that should never have been said
<mcrod>
i wanna go home
<gog>
i made progress on things today
<gog>
i am a competent developer
<gog>
i can be a messy bitch and a competent developer at the same time
<vai>
klange: this must be it (all dependencies besides the system headers) :: #include "../lib/list.c" & #include "../lib/hashmap.c"
<bslsk05>
'Using a 1930 Teletype as a Linux Terminal' by CuriousMarc (00:16:33)
<heat_>
today in me: we found a gcc bug in #armlinux, i found out gold is broken and was making my libc crash, i was accidentally mapping ASAN shadow over my brk
<SGautam>
I'm having a little bit of trouble visualising how a program like vim works
<heat_>
today has been a weirdo day
<SGautam>
If the tty output is just a line
<zid>
vim itself spits out a VT-100 command stream
<heat_>
everything has been fucked but nothing was my problem
<zid>
to make a physical vt-100 do the right thing
<zid>
that is, move the cursor around, display characters, etc
<zid>
that goes through the 'tty' layer, so that your terminal emulator can find the other end of the pipe, then the terminal emulator decodes the ansi commands
<vai>
my Commodore 128 used to support move screen up (PETSCII) if I recall
<zid>
and renders the text as though it were a scrolling ream of paper
<zid>
There's a wrapper library for VT-100 commands too you may be familiar with, ncurses
<SGautam>
Yes.
<zid>
mvprintf(x, y, "blah"); -> printf("\e[%d;%dH%s", x, y, str);
<zid>
terminal emulator just looks for \e and \r and \n and \t and stuff and processes them
<sham1>
<heat_>
sham
<heat_>
sham ar eyou ok?
<sham1>
no
<heat_>
ok
dude12312414 has joined #osdev
<heat_>
<zid>
<zid>
I'd just like to take a moment to appreciate the TELNET protocol btw
<zid>
I think it's quite nice
<mjg>
:[
<gog>
tell net
<heat_>
no, dont tell her anything
<gog>
i already did
<zid>
lol, friend just told us about a fire he had to put out at work today
<zid>
he works for a gambling website, some random fired up the stress testing tool they have, which creates loads of open bets and fills them and stuff as fast as it can
<zid>
..someone pointed it at the live DB
vdamewood has quit [Ping timeout: 246 seconds]
<zid>
so the website was full of open, system created bets
<nortti>
lol
<zid>
> Congratulations to the one punter that figured it out fastest and made off with £8k.
goliath has joined #osdev
<gog>
lmao
<gog>
amazing
zxrom_ has joined #osdev
zxrom has quit [Ping timeout: 272 seconds]
terminalpusher has quit [Remote host closed the connection]
nvmd has joined #osdev
nvmd has quit [Client Quit]
nvmd has joined #osdev
<gog>
hi
<mjg>
zid: sounds like at least 2 fails there
<mjg>
primary being prod db/api/whatever teh fuck reachable from test env
<heat>
io queues started as, erm, io queues, but ended up as some sort of staging branch for random crap
<heat>
the arm64 PR is pretty tidy and related to arm64, but still large because it's a brand new arch
<heat>
the ext4 stuff im basically just postponing endlessly
foudfou has quit [Ping timeout: 240 seconds]
<heat>
the other PR was a bot
<heat>
I hope you liked a tour through my PRs
foudfou has joined #osdev
<moon-child>
ohh did you implement io_uring?
<heat>
no
<heat>
far more basic
<moon-child>
:\
<heat>
currently my IO is fully synchronous, i.e you can't tell it "fullfill this request and tell me when it's done"
<heat>
this is an attempt to improve that situation
<heat>
because that obviously sucks
<heat>
ofc io_uring would depend on this queue work but i'm really far from adding that lol
<moon-child>
oh so it's just general async io
<moon-child>
that's still good
<heat>
yep
<heat>
i also need something similar for e.g NIC packet queues
xenos1984 has quit [Read error: Connection reset by peer]
<heat>
basically i went around and made everything synchronous in a lot of hardware when the optimal and more accurate way to model things would be with fully asynchronous, queued operation
heat has quit [Remote host closed the connection]
goliath has quit [Quit: SIGSEGV]
cross has joined #osdev
kerravon has joined #osdev
xenos1984 has joined #osdev
<zid>
fun, the heavens just opened out of nowhere
<zid>
silence, and then so much rain I can't hear anything else
<gog>
neat
<zid>
aand it's gone
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<zid>
rain is weird
<gog>
microburst
heat has joined #osdev
<heat>
holy shit thank god for system restore
<zid>
I've never used it
<heat>
who needs to die in linux desktop so we get this feature
<zid>
it's called "rsync /etc somewhere every day"
<heat>
so this w11 update was busted and fucked the system up
<zid>
some people keep everything in /etc in a git repo
<heat>
well, surely rsync /etc /usr/bin /usr/lib*
<zid>
meh you can just reinstall those
<zid>
from tgzes
<heat>
well, the point is that the binaries got fucked
<heat>
and i had a way out
<zid>
like if my gentoo system exploded, I could just start with a stage3, copy /etc over (including my @world set) and hit emerge
<zid>
and everything would be back to normal
eddof13 has joined #osdev
eddof13 has quit [Client Quit]
<gog>
i always keep a backup linux usb
<gog>
no muss no fuss no relying on a software solution built into the system that could itself fail
<zid>
except uefi
<zid>
thankfully uefi never fails
<zid>
right heat?
<heat>
nuh huh never
<gog>
uefi is the most stable and sensible solution ever
<heat>
fault-proof
<gog>
it's absolutely perfect in every way
<zid>
I still laugh, heat asked me one day why I used bios boot not uefi
<zid>
and I replied "I dont give a shit about secure boot and uefi only adds places for it to go wron"
<zid>
heat was vaguely dismissive
<zid>
then he blows up his uefi and I get to laugh myself to sleep
<gog>
you have to secure your boots
<heat>
well, no
<heat>
your bios boot was still uefi
<zid>
and it broke too
<kazinsal>
boot status: secure
eddof13 has joined #osdev
heat has quit [Quit: Client closed]
<gog>
boot status: doc martens
<gog>
¯\_(ツ)_/¯
<gog>
extensible footwear interface (my feet)
<zid>
uefi -> gog sends you feet pics if you ask
<kazinsal>
an unexpected kind of boot image
<gog>
if you ask really nicely i'll step on you
<kazinsal>
*goodness*
heat has joined #osdev
<heat>
gosh i fucking hate computers
<heat>
god's curse upon humanity
<gog>
yes
<gog>
it is pandora's box
<zid>
Computers are okay, it's when people try to pretend they're useful that it's a proble
<gog>
it contains the entirety of human joy and despair
<gog>
turns out there's a fuckload more despair
<zid>
they write fancy UIs and things instead of giving 14 reams of diagnostic info
<kazinsal>
99 terabytes of despair, 1 terabyte of feet pics
<gog>
yes
<zid>
It should cost at least $7 in ink to boot windows
<heat>
ok lets bisect fellas
<heat>
...is fellas a gender neutral term?
<kazinsal>
I'll grab the chainsaw
<zid>
yes, so is chaps
<zid>
and mates and blokes and bitches
<kazinsal>
and me ol' cocks
<heat>
ok so its not
<heat>
thanks
gorgonical has joined #osdev
<gog>
getting bisected in a sundress
<gog>
¯\_(ツ)_/¯
<zid>
pervert
<kazinsal>
chat kinda sus tonight, as the kids say
<bslsk05>
preview.redd.it: Reddit - Dive into anything
<heat>
ok found the bad commit
<heat>
these git fucks
<heat>
they know what they're doing
Turn_Left has quit [Read error: Connection reset by peer]
Burgundy has quit [Ping timeout: 272 seconds]
<heat>
woah, found it
<gog>
yay
<zid>
what were you even looking for
<heat>
a big fork regression
<heat>
i added "marks" to my radix tree which is kind of a tag system that gets propagated up and down the table. one of them is super important, the present tag, that allows me to traverse the whole table with bitops vs reading 64 * sizeof(long) bytes
<heat>
but i forgot to copy them when copying a whole radix tree...
<heat>
so forked vm objects (that use radix trees to store pages) would show up as empty and would re-fault a new page
<heat>
i should add a pre-push hook for CI
dude12312414 has joined #osdev
pounce has quit [Changing host]
pounce has joined #osdev
dude12312414 has quit [Remote host closed the connection]
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
vai has quit [Ping timeout: 258 seconds]
SGautam has quit [Quit: Connection closed for inactivity]
<heat>
mjg: atm my page_fault1 is the definition of "doesn't scale"
<heat>
as in it -t4 in threads = -t1 in threads
vdamewood has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
mhall has quit [Quit: Connection closed for inactivity]