<bslsk05>
www.illumos.org: Bug #16087: lseek(SEEK_DATA) on ZFS races with writes and can briefly miss data before it is flushed in a txg - illumos gate - illumos
<heat>
ok, i've said this before but
<heat>
zfs codes are crappen, zfs is a crapper idea
<heat>
use ext4
<mjg>
check perf you twat
<heat>
i don't understand what any of that means, you twat
<mjg>
20% system time
<mjg>
to build the os
<mjg>
at -j 24
<heat>
coolen
<heat>
is that bad? i don't know
<mjg>
it's total dogshit
<mjg>
about 10% is tolerable
<heat>
illumos is PESSIMAL because it stopped being written by SUN ENGINEERS
Left_Turn has quit [Ping timeout: 256 seconds]
stdin has quit [Quit: 0xC0370008 STATUS_VID_PARTITION_ALREADY_EXISTS]
<mcrod>
hi
<heat>
mcrod
<mcrod>
yes
<heat>
they're trying to freebsd all over linux
<mcrod>
i saw
<mcrod>
i saw long before you did
* mcrod
point and laugh
<mcrod>
i thought it was funny
<heat>
how
<heat>
do you follow the lkml?
<mcrod>
yes
<heat>
nice
<heat>
anyway i replied to some freebsd vm shitting with some freebsd vm shitting
<heat>
as is tradition
stdin has joined #osdev
<mcrod>
yeah, you're on the front page
<mcrod>
i admire your bravery to post or respond to anything on the LKML though
<heat>
don't be a dumbass
<heat>
reply to me and shit on freebsd vm some more
stdin has quit [Quit: 0xC0000240 STATUS_REQUEST_ABORTED]
<heat>
like, shitting on OpenBSD? overdone. shitting on Solaris? was overdone in 2005.
<heat>
the freebsd people don't get enough hate
<mjg>
lol
<mjg>
i just checked the reply
<mjg>
dave miller vibes
<mjg>
heat: have you ever kissed a girl?
<heat>
yes
Left_Turn has joined #osdev
<heat>
have you?
<mjg>
yea
<heat>
a girl that doesn't use freebsd?
<mjg>
i guess in both caes it was your mother
<heat>
what
<heat>
anyway mofo don't you ever "have you ever kissed a girl" me
<mcrod>
i've kissed girls many times.
<heat>
you can't say that and go on long tirades on pessimal
<mjg>
:(
<mjg>
can i go on about SUN ENGINEERING ETHOS
<heat>
yes
<heat>
go right ahead
<mjg>
sun == great
<mjg>
if sun did something it was cause good
<mjg>
i know, i read the oslaris internals book
<mjg>
nothing but good
<mcrod>
i've looked into jobs at IBM
<mcrod>
unfortunately they're on the other side of the country
<mcrod>
so, no
<mjg>
lol
<mcrod>
why lol
<mcrod>
IBM seems cool
<mjg>
?
<mjg>
wtf
<mjg>
this channel sometimes
stdin has joined #osdev
<mcrod>
:(
<heat>
mcrod
<heat>
what do you think about AIX and OpenVMS
<mcrod>
hilariously
<mjg>
do you intend to work aix mcrod
<mcrod>
i used an AIX terminal when I worked at a hospital
<mcrod>
mjg I would have to work in india to work on AIX
<heat>
as long as you don't blow too hard in its general direction, it does the job juuuuuuuuust fine
<mjg>
ya man the image i have downloaded is perfectly stable
<mjg>
by that i mean the file has not changed one bit
<mjg>
i'm not running that lol
<heat>
skrew you
<mjg>
aight real talk for a minute
<kof123>
this is what i meant > IBM announces Global Initiative to train 30 Million People by 2030 innovation-village.com › Education Oct 14, 2021 · IBM today announced a global landmark
<kof123>
which is right in the name
<kof123>
which is just to say...there is no "india IBM" "usa IBM" etc. it is just one international business machines lol
<bslsk05>
www.theregister.com: IBM 'shifts' US AIX development jobs to India • The Register
<mjg>
heat: i recently ran into more geezer talk about programming and at this point i don't know what, if anything, can be considered safe
<mjg>
kof123: there are 2 ibms mate: profit center and cost center
<kof123>
so marketing and everything else :D
<mjg>
kof123: well 3, the last one being low cost center
<kof123>
well i wasn't criticizing so-called "internationalism" just i keep hearing "skills shortage" and then lets say 20 years later: > New IBM survey reveals the greatest perceived barrier to ... newsroom.ibm.com › 2023-02-14-New-IBM-Survey-Reveals-the-Greatest-... Feb 14, 2023 · New IBM Survey Reveals the Greatest Perceived Barrier to Professional or Technical Skill Development is that Programs are Too Expensive
<kof123>
oh, you have to pay people more if you want them .....wonder how much that cost to find out lol
<mjg>
ibm is a dying empire
<mcrod>
indeed
<mjg>
it's all grift for decades now only afloat thanks to legacy contracts
<kof123>
yes, i mean ...own worst enemy kind of
<heat>
mcrod, if you want to work for IBM why not red hat
<mcrod>
i'll never get into red hat
gog has quit [Ping timeout: 246 seconds]
<heat>
so you can be a FEDORA PROJECT MEMBER and PACKAGE SOFTWARE like you love
<mcrod>
you have to have both the C and C++ standards memorized
<mcrod>
along with a beard that goes down to your feet
<mcrod>
plus I don't like their interview process
<mjg>
??????
gog has joined #osdev
<mcrod>
resume review -> phone screen -> interview -> presentation -> panel interview -> you may or may not get in
<kof123>
> greatest perceived barrier i'm not trying to get off-topic...its not cuz education and inflation and everything else went up for decades and wages didn't keep up, no this is just a perception issue you see :D "managing expectations" :D
<mcrod>
i'm not going through all of that
<heat>
you do realize that's like
<heat>
a normal interview process
<mcrod>
no it isn't
[itchyjunk] has joined #osdev
<zid>
for bullshit tech jobs it is
<zid>
for jobs it isn't
<mcrod>
that is as far removed from a normal interview process
<mjg>
people working at red hat are mostly incredibly incompetent
<mcrod>
i had one interview and that was it
<mjg>
and most does not even know there is a standard
<mcrod>
at my old job, one interview and that was it
<heat>
you also wanted to hire a guy that did a = (1 << 0) to set a bit
<zid>
google be like "How many electrical sockets are in this building? You must challenge the owner of each room and win, to add it to your tally. Go."
<mcrod>
heat: I thought he was teachable
<mcrod>
but I ultimately voted no when it came down to it
<zid>
1<<0 isn't bad
<zid>
It documents the code without a comment
<heat>
oh yeah
<zid>
and 0b1 isn't standard
<heat>
zid note the =, not |=
<heat>
guess how he unset the bit
<zid>
pls no 0 << 0
<heat>
yep
<zid>
That's a flag, not a bit
<zid>
#define FLAG1 1
<zid>
thing = FLAG1; thing = ~FLAG1;
<zid>
1U for luck
<heat>
mcrod, point being that your interview process is LUL material
<mcrod>
don't worry
<mcrod>
the business decided to change up our process
<mcrod>
now it's no longer in our control
<heat>
while i don't advocate for fuckin leetcode interview invert 3 binary trees while entertaining my baby daughter
<heat>
1 interview with LUL questions is not it chief
<mcrod>
reality is, interviews are hard
<mcrod>
resume review -> phone screen -> interview -> presentation -> panel interview -> you may or may not get in
<mcrod>
is much worse.
<heat>
nah that's fine
<mcrod>
google is known to reject you even if you passed the interview, so you can reapply and they can be EXTRA sure
<mcrod>
sorry, I have to eat and have a roof over my head
<heat>
i haven't heard of that
<mcrod>
that's a shame.
<mcrod>
maybe you're just shielded from this knowledge
<mcrod>
that would be a blessing
<heat>
and it's also known that google's interview process is LUL material too, in the opposite end
<kof123>
that's supposedly something gates did "this is the dumbest idea i ever heard" <watches if you give up or not>
<heat>
rh's interview process sounds very average to me
<mcrod>
it's... very far removed from average
<mjg>
rh is a joke cmpany
<zid>
heat: Best interview question -> show some musl code and get them to spend 30 minutes on a patch
<heat>
but everything's written like they're code golfing
<zid>
code should go down the page not across it, were possible, this is a prime candidate for going down the page
<zid>
the amount of shit I've refactored from void f(...){ if(thing){ ... ... .. ... } } to void f(...) { if(!thing) return; ... } and unindented 800 lines is shockingly many
<heat>
(-1U/2+1)>>24
<zid>
it wasn't even a style thing for 'single return' because, goto exists anyway, they just wrote it in a silly way
<zid>
Yea I have no idea what that means
<zid>
is that.. 0x00800000? math is hard
<heat>
yeah i had to try it out in python now
<heat>
hex(int(0xffffffff/2+1) >> 24)
<heat>
'0x80'
<zid>
oh >>24 not >>8 right
<zid>
Like, you can understand l + (l+r)/2
<zid>
because it avoids an overflow, but that is just.. fuckin weird
<heat>
they need a radix tree that covers all the fd range
<zid>
That's a natural thing to want
<heat>
but instead of harcoding the top level's size as 128
<heat>
they decided to do... that?
<zid>
have they discovered 'deletion is swapping' yet?
<heat>
btw re: if (thing) {...
<heat>
that irks me so much, and i'm starting to become an 8-width tab stan because of it
<heat>
8-width tab just finds shit code so much easier
<zid>
Yea, it's a very good sign imo, when you're coding for yourself
<zid>
that when you get to the second intendation level, that you should just be calling a function
<zid>
so rather than for(a) { for(b) { } }
<zid>
for(a) { allofb(); }
<heat>
i still like two, three usually sucks but sometimes it's fine
<zid>
I still often *do* two blocks
<zid>
but when I start the second one, I consider if there's little enough local scope required
<zid>
whether I could just maek it a 1 or 2 arg helper function or not
<zid>
if yes? I often do
<zid>
I now get a free comment, and a nice and testable function that won't accidentally use the wrong variables, the code gets reduced scope and no chance to accidentally shadow, etc etc
<zid>
(free comment == name of the function)
<zid>
if nested functions were proper C I'd probably use those, not 100% sure though
<zid>
make all my one-off helpers limited in linkage to 'inside this function'
<heat>
i think nested functions would easily just clutter up the parent function
<heat>
in that case, might as well just flatten it out
<zid>
yea that's why I am torn
<zid>
it hides the decs for the params way over *there*
<gog>
hi
<zid>
can I have 3D source editors?
<zid>
so I can like, overlay it on top
<zid>
or below
<zid>
2D is too limiting for the hyperediting I need to do sometimes
<heat>
i like c++ lambdas because they're mostly terse (terser than nested functions, at least)
<zid>
heat: What about an editor that had two code columns, so my helper functions were 'along side' the main func?
<heat>
but i still find them too annoying compared to shit like "(a, b) -> a + b"
<zid>
they'd be inside the parent func lexically
<zid>
but graphically they'd be next to it
<heat>
hrm, i'm not sure that would work for me
<heat>
i would probably find the second code column distracting
<zid>
I think it'd work really well once it was "normal"
<zid>
you can style it however you want, collapsed inside the parent and you have to click +, or whatever, but it's just *not* normal atm, to have.. source files be non-linear
<heat>
yah
<zid>
a call graph view thing would be another option
<bslsk05>
github.com: edk2-platforms/Features/Ext4Pkg/Ext4Dxe/Directory.c at master · tianocore/edk2-platforms · GitHub
<heat>
is this routine ass?
<heat>
i just feel like it does too much
<zid>
all functions can be improved by more helper functions
<zid>
and that amount of locals makes me think.. maybe it needs more
<heat>
more locals? got it zid, thanks
<zid>
the fuck is 'inode' for, heat
<heat>
lol, it seems like i don't use it
<zid>
It goes right into the macro ont he line below
<zid>
so yea, just fold those two
<zid>
why is off = 0 up there? why not the line before the while? or making the while a for?
<zid>
for( UIN64 off = 0; Off < DirInoSize; Off += Partition->BlockSize) would get rid of 2 more lines
<zid>
three more
<zid>
could rename it to 'block' as well tbh, given it appears to be walking blocks
<heat>
good point
<zid>
Length is fishy too
<zid>
It's assigned to, then used as an out param for Ext4Read, but then never checked
<zid>
If it doesn't need checking, remove it, make it NULL, edit Ext4Read to do if(out) *out =
<zid>
if it doesn't already
<heat>
yeah, doesn't need checking, although i have some local changes which have axed that bit
<zid>
I'd change your style so that labels are all lowercase, personally, given the vars are like This and I'm more than happy without enclosing {} on one line if checks, re the if(!Ext4ValidDirent){ goto Out; }
<heat>
yeah, can't do that
<zid>
which one?
<zid>
both?
<heat>
both
<zid>
Shame, it'd make it better
<heat>
do you think i'm calling StrLen by choice
<heat>
or those for loops i have where I can't call the variable i, so I need to call it fucking Index
<heat>
for (Index = 0; Index < Length; Index++) { Array[Index] = 0; }
<heat>
do you realize how stupid this looks? yes, yes you do
<zid>
Off isn't even used, hrmph, it's just bounding the loop
<zid>
I'd hoist the for loop into a helper, to disambiguate that
<heat>
i need a bunch of helpers in a bunch of places, I think
<zid>
Like, Off looks like it shouldbe doing Buf + Off + BlockOffset
<zid>
it looks like you're walking the same block over and over
<zid>
having forgotten to add Off in
<zid>
(Which is actually Block but with the wrong name)
<zid>
But hey, you're not crazy, this code IS ugly
<heat>
i touched some of the code like 2 days ago, and i constantly felt confused and shit just felt off
<heat>
the style fucks with me but the code also needs some care