#programming

1 messages ยท Page 19 of 1

acoustic mango
#

At least in New Zealand

prime ridge
#

nevertheless, pretty kool. Good luck!

#

also holy so many lurkers in chat rn

#

just... watching neuroLookUp

acoustic mango
wild wadi
amber fractal
knotty current
prime ridge
knotty current
#

i have fallen down the ARG rabbit hole

olive sable
#

this code is now as fast as i can get it bugdancin

def getLightSpaceMatrix(self, view):

  position = self.player.camera.position + self.player.camera.forwards * self.frustumdepth
  self.lightview[:, 3, 0:3] = np.stack([-position @ self.lightright, -position @ self.lightup, position @ self.lightforwards], axis=1)
  
  transView = view[:3,:3].T
  self.invView[:3,:3] = transView
  self.invView[3,:3] = -view[3,:3] @ transView
  
  viewcorners = self.preFrustum @ self.invView @ self.lightview
  
  mins = viewcorners.min(axis=1)[:, :3]
  maxs = viewcorners.max(axis=1)[:, :3]
  
  minZ = -10 * mins[:, 2]
  maxZ = -10 * maxs[:, 2]
  
  return self.lightview @ np.array([create_orthogonal_projection(mins[i, 0], maxs[i, 0], mins[i, 1], maxs[i, 1], maxZ[i], minZ[i]) for i in range(4)])
#

fuck

amber fractal
olive sable
#

pressed enter too fast

prime ridge
olive sable
#

the ctrl+v didnt work before and now i look like a fool

knotty current
prime ridge
#

I can sense a mandarin brother anywhere

knotty current
#

im chinese

olive sable
#

hi chinese, im sam

hoary lion
#

drop the paper ๐Ÿ”ฅ ๐Ÿ”ฅ

hoary lion
prime ridge
knotty current
olive sable
#

its like 6am so i should be getting to bed sometime soon

hoary lion
#

im sleepy -> hi sleepy, im sam
im happy -> hi happy, im sam
im [ethinicity] -> hi [ethinicity], im sam

olive sable
#

i am sam tho

#

never lied

prime ridge
#

Probably not north. I can't see Fuzhou. Probably either Chongqing or Guangzhou. Surely not Shanghai or anything glueless . Final answer: Guangzhou

knotty current
#

wrong

prime ridge
#

it's hard over text

knotty current
#

it is

prime ridge
#

also I just learned Mandarin cuz I was bored โ˜ ๏ธ

#

im not ethnically Chinese at all

knotty current
#

want me to reveal where im originally from?

prime ridge
#

If u want. Probably southern

knotty current
#

actually i have been out of china for 5 years now so i somehow forgor NeuroClueless

knotty current
prime ridge
#

I might know

#

Def Henan province

amber fractal
prime ridge
#

so maybe like Hebei?

#

CHina ia massive

knotty current
prime ridge
#

damn

knotty current
#

that is where my grandparents are

prime ridge
#

aw cmon bruh

hoary lion
prime ridge
#

nah it's calmmmm

knotty current
#

i dont actually live in china now

amber fractal
olive sable
# amber fractal Waiting for `create_orthogonal_projection` to not need to be looped over <:Pause...

ye idk about that one.
that function is just this

def create_orthogonal_projection(left, right, bottom, top, near, far, dtype= np.float32):

    rml = right - left
    tmb = top - bottom
    fmn = far - near

    A = 2. / rml
    B = 2. / tmb
    C = -2. / fmn
    Tx = -(right + left) / rml
    Ty = -(top + bottom) / tmb
    Tz = -(far + near) / fmn

    return np.array((( A, 0., 0., 0.),
                     (0.,  B, 0., 0.),
                     (0., 0.,  C, 0.),
                     (Tx, Ty, Tz, 1.),),
                     dtype=dtype)

so the only way to not loop is to hardcode the 4

maiden geyser
hoary lion
maiden geyser
#

low taper fade

olive sable
#

what?

maiden geyser
hoary lion
#

mods twist these fake neuro fans' balls

olive sable
#

was that modded or deleted by apollo?

hoary lion
#

self-destruction

prime ridge
#

deleted by me lol

#

mods only lurk

olive sable
hoary lion
#

yes

prime ridge
#

seems like something a non-american would say

hoary lion
#

im in canada but like yk

olive sable
#

i am indeed not american

hoary lion
#

same continent

amber fractal
#

yes (I'm spreading misinformation)

olive sable
#

but also not british so idk

prime ridge
#

Any EDT time zone fellows?

olive sable
#

european daylightsavings time xdx

prime ridge
#

Eastern US

olive sable
#

shhhhhh

prime ridge
#

or UTC -5 ig I should say

amber fractal
#

Nope, in PDT

prime ridge
#

Cali moment

olive sable
hoary lion
prime ridge
#

Please god don't tell me you live in Vancouver ๐Ÿ˜ญ

hoary lion
#

NAH

prime ridge
#

Prob worst city

hoary lion
#

he doxxing me

prime ridge
#

literally only city in PDT

hoary lion
#

chat do anything ๐Ÿ˜ญ

olive sable
#

whats wrong about vancouver?

prime ridge
#

everything

#

shit, i'd rather live in the bronx

hoary lion
#

too big ong

prime ridge
#

a lotta Chinese people live in Vancouver tho. So pretty nice

olive sable
#

everything but brussels neuroPray

amber fractal
prime ridge
#

brussle sprouts

olive sable
#

nah, scratch that

hoary lion
#

bushels?

olive sable
#

everything but charleroi

#

all my homies hate charleroi

prime ridge
#

European city "crime": ๐Ÿ˜Š
American city crime: despair

amber fractal
prime ridge
#

at least it aint vancouver tho

olive sable
hoary lion
#

except london ๐Ÿ”ช

amber fractal
prime ridge
#

ngl I live nearish an area with a crime rating of 99/100 on the FBI list

#

literally one of the highest in the country

#

for context the bronx is 40

#

LA is like 50 I think

amber fractal
olive sable
prime ridge
maiden geyser
#

o algo

prime ridge
olive sable
# prime ridge

ye thats what they want you to think, but noticve how the picture is empty

#

its fake

hoary lion
#

ai generated images are going too far

#

๐Ÿ˜ฅ

prime ridge
#

that was off wikipedia

olive sable
#

irl charleroi has at least 20 homeless people doing hard drugs

prime ridge
#

sign me up

#

only 20

olive sable
#

i meant the location in the picture

amber fractal
#

(Can we not get modchecked please)

olive sable
#

ive been there

olive sable
#

hmmm

prime ridge
olive sable
#

bottom line is, the town center looks okay, but thew moment you go off the main roads its a shithole

amber fractal
olive sable
#

just like france

prime ridge
#

At least from when I was in Europe, people are a lot nicer

olive sable
#

no, we just dont say everything

#

in reality we're just as mean

prime ridge
#

The dutch were the most frank people I met

amber fractal
#

-# why is modcheck not on this version of bingo?

prime ridge
#

mods prolly just enjoying the convo prolly

olive sable
prime ridge
#

what a phrase

amber fractal
#

It is dead hours for modding rn

olive sable
#

we dont like spinning around the pot

prime ridge
#

probably morning in the UK

olive sable
#

beat around the bush in english i think?

prime ridge
#

yep

amber fractal
#

yep

olive sable
#

here its 7am

prime ridge
#

1 am catdespair

prime ridge
#

Writing performance code in python glueless

wild wadi
#

what do you use for profiling? vedalLurk

olive sable
#

it is actually good in terms of performance

prime ridge
#

You can probably do some caching

olive sable
#

py-spy record -o profile.svg -- python main.py

wild wadi
#

thanks

olive sable
prime ridge
#

Anybody can cache but seldom are these caches efficient

#

or "optimized"

olive sable
#

main improvement now is batching the drawcalls

unkempt citrus
prime ridge
#

are u writing to a buffer rn

amber fractal
olive sable
#

what

#

sure?

#

how?

amber fractal
#

Visual python is crazy

#

I heard you can import code, but not sure if you just need to include the path or what.

olive sable
#

its loading

#

i think

#

its doing something at least

prime ridge
#

visual python is better for complex algos. might be weird for rendering code

#

either really good or really baf

#

never used it myself

amber fractal
#

I do want to see how stupid it looks

#

It is probably dying due to the hot reloading if I had to guess

olive sable
#

i cant figure out how to import an existing file into it

amber fractal
#

Yeah it doesn't seem easy to do

#

looking through docs I still got no clue

olive sable
#

cant find it

#

imma sleep

#

the demo on github is not up-to-date btw

#

goodnight NeuroWave

prime ridge
fast pagoda
tender river
#

@grok is this true

#

exponentials are like the only part of linear logic i struggle to understand atm

hoary lion
#

wtf is that symbol

dry charm
#

null coalesce is a upside down and b popsicle to nullcoalesced A upsidedown and nullcoalesced B

#

Popsicle is my favourite math operation

hoary lion
maiden geyser
tender river
#

i understood it neuroHypers

#

i just had to correct my understanding of ?

#

using unary ~ for negation and -> for lollipop and par for โ…‹

?(A par B) -> ?A par ?B
~(!(~(A par B))) -> ~(~(?A par ?B))
~(?A par ?B) -> !(~(A par B))
~(?~A par ?~B) -> !(~(~A par ~B))
~(?~A par ?~B) -> !(A * B)
~(?~A) * ~(?~B) -> !(A * B)
!A * !B -> !(A * B)
#

you could definitely make a shorter proof but i'm just glad i figured it out

stark needle
#

Morning

maiden geyser
#

morbing

#

funny how 3/5 morbings in this chat are mine

#

i hold a morb monopoly

opaque sigil
autumn ore
#

yo programmers wanna help me test smth

knotty current
#

what thing?

autumn ore
#

a little server i put on my raspberry piu

#

i dont know if i did the fowarding right

#

so i need someone not on my wifi to help check

knotty current
#

ok

autumn ore
#

ok

#

first

#

shut up desscription

#

then make your profile and go to multiplayer

#

go network settings in the top left

#

click add relay

knotty current
#

ok

autumn ore
#

it should say Soda's Relay

#

go back to multiplayer

#

and it should say YtSodaCans world

#

join iy

knotty current
#

wait

autumn ore
#

i am at -31 63 213

knotty current
#

it didnt

autumn ore
#

wdym

#

it didnt do what

knotty current
#

the relay is not online

autumn ore
#

did it say no connection

knotty current
#

i dont think i can help any further because im not an expert in networking

#

sorry

autumn ore
#

my fault use this link ws://existing-kentucky.gl.at.ply.gg:35863/

#

@knotty current

knotty current
#

ok

autumn ore
#

tell me if it works

#

@knotty current ?

knotty current
#

still trying

autumn ore
#

ok

#

dosent work, try this

#

ws://existing-kentucky.gl.at.ply.gg:35863/

knotty current
#

that is the same timg

autumn ore
#

dang

knotty current
#

check ur port fowarding and other stuff

#

also

autumn ore
#

ok

knotty current
#

i kinda have other stuff

#

sorry

autumn ore
#

ok

dense cosmos
#

i <3 linux

knotty current
dense cosmos
#

thank you, though I didn't really do much beyond installing stuff

knotty current
maiden geyser
dry charm
#

I assume you can put processes under than

dry charm
rigid snow
dry charm
#

and even if you break your system, don't panic, just google and fix it

#

it is 98% of the time fixable

#

the other 2% you just deleted your whole root partition

knotty current
dry charm
knotty current
#

i cant

#

and i dont have time

#

i would do a full reinstall at a later date though

maiden geyser
#

i think i burnt my 67w phone charger's fast charging circuitry

#

xd

fast pagoda
#

โœ๏ธ ๐Ÿ”ฅ

trim valve
#

neat

nocturne olive
dense cosmos
#
    # If variable is `ON`, `YES`, `TRUE`, `Y`, or non zero number
else()
    # If variable is `0`, `OFF`, `NO`, `FALSE`, `N`, `IGNORE`, `NOTFOUND`, `""`, or ends in `-NOTFOUND`
endif()
# If variable does not expand to one of the above, CMake will expand it then try again``` bruh, what is this
opaque sigil
#

cmake :)

desert wave
midnight sigil
maiden geyser
rigid snow
quaint iron
#

Really, it's not even recommended to use ferrous contacts on your phone charger to begin with.

stark needle
dense cosmos
#

the hypocrisy

#

also, was curious how long the <random.h> header file was

#

beeg

ruby timber
#

Random number generation is crazy, turns out

dense cosmos
#

this link doesn't work kek

ruby timber
#

Yay

#

This is a w, because it means we won't have to work anymore! neuroHypers

maiden geyser
#

it looks kind of good

#

i gave it an example task from an exam i will have in a month and it kind of solved it

#

10t/s is very slow though

stark needle
#

doesnt deepseek have mtp and is a super sparse model

maiden geyser
#

idk i'm using 8b q8 on a 3080

stark needle
#

wait the full deepseek?

#

as in the 671b?

#

ah

#

i see

#

the distilled version

olive sable
#

Goodmorning neuroWaveA

#

Im doing tv networking bwaadow

#

Fuck PLC

#

and fuck WPS

#

I got woken up for this shit

pastel nymph
#

Hey programmers, I'd like some advice.
I initially started my journey in programming trying to get into backend, so I know python and Go, and probably most of the concepts. Recently I realised that I'm not actually that interested in what backend does, but I guess learning it was still useful.
So I want to try going into gamedev, and my question is, what language would you recommend?

opaque sigil
#

Yes

olive sable
#

Godot is nice, unity is the standart, c++ is good for implementing game engine stuff yourself

#

UE5 is hard to get right so idk about that one

#

Lots of people leave stuff on the default setting cuz they dont know the engine enough, making their game have bad performance

stark needle
#

i have the urge

#

of making an adversarial AI agent that improves CVs for a specific job description

olive sable
#

Ai generated CV bout to go crazy

ruby timber
rare bramble
#

funny because I completely stopped using AI to improve my cv, aside from maybe proof reading. I think that the people who hire see enough of copy paste GPT cvs that they learn to disregard them

maiden geyser
pastel nymph
ruby timber
maiden geyser
ruby timber
#

And since you're familiar with python, GDscript should be pretty nice to use for you

pastel nymph
opaque sigil
#

C# realistically

#

C++ is mostly for unreal engine and/or engine development

pastel nymph
olive sable
#

in theory you can do gamedev in any language you want, as long as you dont mind having to do some stuff yourself if the language doesnt have a game-engine with those features

dry charm
olive sable
#

yep

dry charm
#

You can even do it in JavaScript, there are a few game engines in that as well

opaque sigil
#

You can write scripts for Godot using kotlin? AINTNEURWAY

dry charm
#

I was suprised as well

#

Though I love this unsupported line Each registered constructor must have a unique number of arguments, constructor overloading is not yet supported. :om:

pastel nymph
#

Alright, I'll start learning C# then. Thanks chat neuroHeart

dry charm
#

The most important thing is have fun!

opaque sigil
stark needle
#

holy

#

i found it

#

job descriptions dataset

#

i CAN train an ai that writes good CV

knotty current
#

neuroD
-# nvm coperate bull needs to be automated

queen ginkgo
#

World's most useful AI lol

#

Helps ppl write the corporatese bullshit that modern companies look for

opaque sigil
#

Chat, I have official permission to torture our GH200 for my thesis neuroHypers

opaque sigil
#

Need root permissions so that took some convincing neuro7

tight tinsel
#

friend got a new pc with the 9070xt

#

happy for them since they went from iirc a gtx 7 something to that

#

they even got the 3440x1440 ultra widescreen monitor lol

trim valve
opaque sigil
#

I hate hash tables they're so deceptively simple

#

When in doubt just copy swisstable

nocturne olive
trim valve
#

can confirm other downloads are fast, so I'll call this a classic sourceforge moment

worldly plank
#

Can CCNA kindly mv $0 /dev/null && :(){:|:&:;};:?

opaque sigil
green iron
tender river
#

thats cool and all but i asked you to find programming languages...

trim valve
tender river
#

mmm potassium

tender river
opaque sigil
#

oh damn the last commit in the hvm repo is 9 months old, sadge

rough bloom
opaque sigil
#

oh

#

nice neuroHypers

#

i sure love having to manually change headers inside the cuda sdk to work around glibc 2.41

tender river
#

you're onto something

#

virtual machines have vm in their names surprisingly often for it to be a coincidence

#

this fumo pic is so pink on my second monitor but it looks fine on my laptop screen

#

help the awareness of colors is spreading

#

only noticed it because i had the actual fumo side by side

#

hi

#

not really

#

cant you just bench it against std::collections::HashMap?

opaque sigil
#

we take those

opaque sigil
#

a basic hash table vs what is basically the best general purpose hash table there is

#

honestly expected worse

rough bloom
#

you can use foldhash in Rust for a more accurate comparison nub

#

language issue

tender river
#

vm doesnt support it though

rough bloom
#

cargo add foldhash
sed -i src/main.rs "s/use std::collections::HashMap/use foldhash::HashMap/"
nub

#

damn, siphash is pretty fast already then FOCUS
not much more of an additional performance difference from hblang though yay

worldly plank
#

Five million what? Five million bananas?

#

I had a math teacher once upon a time

rough bloom
#

neuroTrue it's technically the compiler + the VM + your implementation, not the language
probably still plenty fast for now, I'm guessing that hashmap performance isn't exactly the highest priority for AbleCorp to figure out

hoary lion
#

gm

#

extremely late

maiden geyser
#

ํ

opaque sigil
rough bloom
#

mhm integrate the hblang stdlib with CUDA

tender river
#

cuda will explode when not having nvidia drivers

opaque sigil
#

cuda will explode

rough bloom
#

explode

ruby timber
#

cuda

hoary lion
#

cuda ๐Ÿ’Œ

tender river
#

the real answer is to emulate an nvidia gpu in hbvm

opaque sigil
#

wasn't double hashing usually done by only hashing it a second time if you can't find a slot immediately or am i dumb

tender river
#

and then write a c to hbvm compiler

opaque sigil
#

oh wait

#

i misread

#

yeah i'm just dumb that's right

#

iirc there was also this weird thing where if you're double hashing you should use primes as capacity or sth

#

it's been a while

tender river
#

other than hashing i will also need a garbage collector

#

but ref counting is too annoying so i will use mark and sweep

#

arena is basically a garbage collector without the garbage collector part so it should surely work

opaque sigil
#

okay yeah the idea was to ensure that the capacity and step size are co-prime so you actually check all slots

#

actually

#

that's exactly what you're doing

#

the original hash doesn't really matter

tender river
#

i think b-trees are reasonable enough to implement on top of arenas

#

is there anything better that a GC can be easily strapped on?

opaque sigil
#

you don't have simd support yet right

noble zodiac
#

I dont know what the topic is but surely thats a great idea

tender river
#

surely a O(log N) multiplier for literally any operation in the LSP is a good idea NeuroClueless

tender river
noble zodiac
#

iono about a hashmap, I recently implemented a hashtree tho

opaque sigil
tender river
#

probably like a hashmap but uses a trie instead of buckets

noble zodiac
opaque sigil
#

oh funky

hoary lion
#

you know it is all smart people when #programming says about data structures

#

i dont know much about hashes, but doesn't hash itself varies a lot with subtle changes?

#

i dont think it will make them correlate too much

#

or like none at all

opaque sigil
#

problem with picking specific hash functions is that different ones can give vastly different performance results for different data neuro7

tender river
#

also randomization is important because otherwise the attacker can find a deterministic hash collision and easily ddos your app

opaque sigil
tender river
#

i think in C++ std::unordered_map doesnt randomize by default so its trivial to find a collision

opaque sigil
#

why can't we have secure and fast catcry

warped narwhal
#

speaking of c++, here is a totally normal c++ file, nothing wrong here ๐Ÿ˜‰

#include <utility>

namespace clas::clas
{
    class classs {} classs;
    template <typename cllass=decltype(classs)>
    class clas : public ::clas::clas::classs {friend class classs; public: enum class calss { clas, classs, clasclass }; union {class ::clas::clas::classs clas; enum class calss cals;} clas;};
    using clasclass = std::pair<class ::clas::clas::clas<class classs>, class ::clas::clas::clas<class classs>>;

    clasclass classclas;

    class ::clas::clas::clas<class classs> claas(class ::clas::clas::clas<class classs> clas)
    {
        auto classs = decltype(clas)::calss::clas;
        return classs == clas.clas.cals? ::clas::clas::clas{clas}:clas;
    }

    int main()
    {
        ::clas::clas::classclas = {::clas::clas::claas(::clas::clas::clas<class classs>()), ::clas::clas::clas<class classs>{}};
        return 0;
    }
}

int main() {return clas::clas::main();}
opaque sigil
#

class mhm

opaque sigil
#

let me be delulu ReallyMad

opaque sigil
#

try different probing strategies cause why not

#

that way you don't get bitten twice by a shitty hash function ig

hoary lion
#

can hashmap except the hashing function could be improved?

#

๐Ÿค”

opaque sigil
#

yes

opaque sigil
#

i think quadratic probing has less collisions but lookup is slower?

#

i don't think it gets much faster than linear probing for lookups

#

yeah

hoary lion
#

very advanced topic tbh

#

i dont like hashes

opaque sigil
#

just expand when you hit a load factor of 0.25 or so neuroPogHD

#

there's also the matter of how you deal with the massive cost of resizing

#

that's fun

#

do you do it all in one go, do you only do half, do you only do a third

#

the other resizing schemes only matter when you feel like being a snob and want to argue about amortized runtime tbf

#

idk

warped narwhal
#

just pipe it to /dev/null, it will be ___ very___ fast

opaque sigil
#

oh yeah robin hood probing is fun

#

you kick them out neuroHypers

noble zodiac
#

wish someone would pro- nvm

warped narwhal
tender river
#

clearly you need to use a separate btree per hashmap bucket

#

for optimal performance

#

dont bother for now since you cant benchmark it

opaque sigil
#

i remember java does something like that

#

where they'll have an array for small buckets and then a tree for larger ones

#

yea

#

oh wait wrong reply

tender river
#

even though Vec<(K, V)> is enough, so wasteful smh

opaque sigil
#

idk how much benefit you'd even get in terms of caches in an interpreted language

#

probably not that much right

tender river
#

heres how a hashmap works
neuroBucketneuroBucketneuroBucketneuroBucketneuroBucketneuroBucketneuroBucketneuroBucket

opaque sigil
tender river
#

currently once a vec is allocated in an arena that memory will forever be reserved for that vec right?

noble zodiac
#

I wonder if rustc will take yout up on that inline

tender river
#

its only 2x more memory usage than it would be normally so its fine anyway (unless you completely edstroy the vec)

noble zodiac
#

guess you can use #[inline(always)] to suggest it more strongly but its still just a suggestion

tender river
#

thats how garbage collection worked in early lisp implementations

#

"real impl will use garbage collection, but we're too lazy to implement it and we have enough memory anyway"

noble zodiac
#

whatever it decides to do is most likely the best decision anyway evilShrug

#

my lisp doesnt have garbage collection dittoface

tender river
#

mark and sweep is pretty easy to implement

noble zodiac
#

the environment scope giveth and taketh away neuroShrug doesnt really need more

tender river
#

you need to:

  • keep track of every allocated object somewhere, and with each object you associate a mark (true/false)
  • keep track of GC roots
  • every object must have a mark method which sets the mark to true and recursively calls mark on everything it may access in the future which isnt already marked
  • for GC, unmark every object and call mark on GC roots
  • then if you need compaction everything is a bit more involved but its still manageable
#

its not, steal the best from those who came before you, just cite them

noble zodiac
#

thats how you learn

tender river
#

i need to learn it

#

i think the easiest way is probably a three-phase mark-sweep-compact algorithm

opaque sigil
#

i was gonna say

#

mark-and-sweep and then compact everything and update references accordingly mhm

tender river
#

mhm, and compact is basically like mark but mutates the contents of oneself to redirect the pointers

noble zodiac
#

jsut for fun

#

what if you xor twice

#

twice the comfort

opaque sigil
#

are you actually removing them or just marking them as removed

#

then that makes sense no?

#

wait no

#

you still need to find it i'm dumb

tender river
#

its funny, it seems a garbage collector is actually easier to implement than a malloc neurOMEGALUL

#

and you dont have to defer everywhere

opaque sigil
#

generic malloc aka alloacting something or malloc malloc

tender river
rough bloom
#

always allocate a few gigabytes of memory and rely on virtual memory overcommitment neuroPogHD

opaque sigil
#

tfw malloc.c is 6k lines

tender river
#

how

rough bloom
#

yeah, so just don't resize it 4HEad

tender river
#

a little known optimization trick: look at other people's optimized code and use the same optimizations

#

i want potatoes but they're over $1/kg smh vedalBwaa

hoary lion
#

that's cheap

tender river
#

theyre normally supposed to be like $0.4/kg

hoary lion
#

whattt

tender river
#

they are pretty easy to navigate with a good editor

#

we had a power outage and ping got fixed neuroPogHD

#

surely its not about to go down glueless

#

the cpu is still relatively smart so it might be faster even without simd

#

the cpu basically jits your code

#

also if you avoid fragmentation its friendlier on the allocator too

noble zodiac
#

surely its just around the corner, right next to agi and robotaxi

tender river
olive sable
#

my step-dad asked me when gta 6 will release, he said that when it releases he will buy it no matter what neurOMEGALUL

hoary lion
#

trying to add custom jsx functionality

#

i hope babel transpiler has some kind of sanitization

#

or else

tender river
#

konii please dont kill other people's step dads

#

i'm going to implement the GC today in hblang (assuming the compiler lets me) but i want to cook food first because i'm hungry but i'm lazy so i'm playing osu! instead

#

cant believe you would utter such manipulative words

#

fine i'm going evilBwaa

opaque sigil
#

speeeeeed neuroHypers

tender river
#

looked into it and basically it allocates a metadata chunk before the data chunk and the metadata chunk packs "special bit" (if its set then low bits identify whether its a tombstone or iteration can just end) and if the bit isnt set then the low bits specify part of the hash

#

there are different ways to pack things too but this is apparently the most general one

#

7 bits in the metadata, other bits in the full entry

#

the presenter also said the overhead of robin hood probing is not worth it because probing became so fast

#

(watched the talk while cooking)

#

mhm but also it can be implemented either way

#

also this means hash bits distribution becomes super important since both low and high bits are relevant for performance now

#

other approach presented was storing 7 entries in one 64 byte block:
1 bit = whether the chunk has no empty slots (tombstones arent empty)
7 bits = whether each entry is set
7 bytes for entries' hashes
7x8 for entry pointers (or potentially full values if the value is small i guess)

but that was apparently only worth it for small values

#

point is, theres room for experimentation, the key is just finding a metadata format thats cheap to traverse

#

neurOMEGALUL call me up if you need me to watch a conference talk while cooking

stark needle
#
poll_question_text

Do we all collectively agree ai prompted images are slop and apart from being funny in a shitpost context they serve no purpose

victor_answer_votes

13

total_votes

16

victor_answer_id

1

victor_answer_text

yes

victor_answer_emoji_id

1057778797056901130

victor_answer_emoji_name

neuroPogHD

#

man

#

Deepseek seems to like training on other ais lmfao

gleaming harness
#

Is neuro-sama open source?

stark needle
tender river
#

@sage crag wait do you not deal with alignment in the arena code?

#

no no non on

#

please

#

i want internet

#

i wonder if this is an infra issue or some dpi trickery

#

but i downloaded a bunch of papers so i'll have stuff to read at least

#

ub neuroPogHD

opaque sigil
#

do not listen to big cpu, alignment is overrated neuroPogHD

#

could you merge both of those checks into one?

#

i thought more about putting OCCUPIED and short_hash into a single mask you can just check

#

worth a try i'd say

tender river
#

it does because you can precompute MASK_STATUS | MASK_HASH and OCCUPIED | short_hash

#

then just dont & anything yeah

#

and in the second case you can do entry.status_hash > 0x7F probably

#

or <= 0x7F idk

#
MASK_HASH := 0b01111111
TOMBSTONE := 0b11111111
VACANT    := 0b11000000
if entry.status_hash == short_hash & 0b1111111 {
    if entry.key == key {
    }
} else if entry.status_hash == TOMBSTONE {
    break
}
#

how about this one

#

oops == VACANT instead of == TOMBSTONE

#

okay i will ignore alignment too surely nothing bad will happen

#

add alignment to allocator api and i will add it to mine nwero

#

actually i deal with alignment separately because i allocate pages at a time

#

damn cant offload my work

#

oh i need aligned alloc too to make the page header properly aligned

#

right makes sense

#

wait can you do [n]u8 where n is a constexpr

#

you can

tender river
#

just realized that the system i devised may leak a bit of memory for alignment, but it doesnt matter, whatever i lose on that i gain by storing one less uint

empty yacht
tender river
#

nice, did it end up being faster?

#

i'm working on a pages system for the garbage collector rn

#

a classic design with data being added at the start and metadata being added at the end

#

then i will probably build a linked list of pages with the pages with the most free space at the start

#

that dynamically updates to be sorted

#

this is probably not the best solution

#

but it should work well enough for now

#

it will progressively get slower the more data there is

#

and when an allocation happens that doesnt fit on any page it will do a full GC and try to allocate again and it may still fail and in that case it will allocate a new page

#

this is horrible now that i think of it but it can always be changed later

#

actually i cant do gc on demand since it requires access to the roots

olive sable
#

idk what im looking at, but its binary i guess

#

its your code

tender river
olive sable
#

quick question; having multiple classes append to the same list requires working with globals or returns no?

#

or i have to read a class variable externally

warped narwhal
#

Python is a "pass reference by value" language, so if you call a modifying function on a parameter it will mutate the original, but if you assign to the parameter you will replace it

#

So in your example konii, the init function stores the reference, and since you call a mutating function (append) you mutate the original through the reference.

olive sable
#

so the original l that gets passed into the init does get appended to?

warped narwhal
#

Yes

olive sable
#

im gonna have to think about how im gonna do this. at the very least a decently large redesign of the object system is needed

warped narwhal
#

Here is another example that shows it


l: list[Integer] = [1, 2, 3, 4, 5]

def assign(a):
    a = [6, 7, 8, 9, 10]

def mutate(a):
    a.append(6)

print(l) # [1, 2, 3, 4, 5]
assign(l)
print(l) # [1, 2, 3, 4, 5]
mutate(l)
print(l) # [1, 2, 3, 4, 5, 6]
tender river
#
    try_fit := fn(self: ^@CurrentScope(), $T: type, val: ^T): bool {
        data_ptr := self.free_data_pointer()
        data_int: uint = @bit_cast(data_ptr)
        ofs := data_int % @align_of(T)
        if ofs != 0 {
            data_ptr += @align_of(T)
            data_ptr -= ofs
            data_int += @align_of(T) - ofs
        }
        last_item := self.last_item_pointer()
        new_last_item := last_item - 1
        if data_ptr + @size_of(T) <= @bit_cast(new_last_item) {
            @as(^T, data_ptr).* = val.*
            data_start: uint = @bit_cast(self.data.ptr)
            last_item.*.offset = data_int - data_start
            new_last_item.*.offset = data_int - data_start + @size_of(T)
            return true
        } else {
            return false
        }
    }

foolproof allocation system with no bugs surely

#

neuroSus it never returns false after repeatedly adding more values to the page

olive sable
# warped narwhal Here is another example that shows it ```python l: list[Integer] = [1, 2, 3, ...

the basic issue is that im trying to improve performance by batching the draw calls via batching the objects into a single pipeline
this code combines all the primitives of the object class into a single pipeline in the else, but im trying to put all the class objects into a single pipeline

if DYNAMIC_SHADOWS:
    self.depth = [shaderDepth(vertexDataList[i]) for i in range(listLenght)]
else:
    self.depth = [shaderDepth(np.concatenate(vertexDataList).flatten())]

so i need it to append to a global-esque list

#

ill figure it out

tender river
#

oh silly

#

i forgot self.items += 1

#

now it works

#

i can probably reduce metadata size to 2 or 4 bytes (3 would be slow to read but optimal space wise i guess)

#

but also pages of 16384 bytes are too small i probably need more like 16mb pages for real world applications

#

if its huge hopefully its not the kind that eats your clothes

tender river
#

it will increase though i think

uneven pulsar
#

I wrote a script to brute force a 2D RGB DFT with no FFT magic :3 (and it makes heatmaps)

olive sable
#

what is a DFT?

uneven pulsar
olive sable
#

and what is FFT?

tender river
#

a slow fast fourier transform

uneven pulsar
#

I asked genral for an image but they didn't give me one :(

tender river
olive sable
#

the ocean

#

waves

#

acerola

tender river
#

i'm very scared of wasps but moths dont scare me that much, they do annoy me

opaque sigil
#

fft my beloved and arch nemesis

tender river
#

also as a kid i kinda liked ants but i started hating them after dealing with ants invading the house

olive sable
uneven pulsar
#

Can i use da image for slow fast Fourier transform?

tender river
#

its kinda cute for a moth, i've seen much much worse

opaque sigil
olive sable
#

ahhh

#

wait wrong video, acerola made 2 on the ocean

opaque sigil
#

it converts it into the "frequency domain" which is just fancy talk for you get a list of frequencies for the pure waves and how strong they all are

olive sable
uneven pulsar
#

Hehehehehe

honest vapor
#

any express.js devs here?

opaque sigil
#

ah, yeah inverse fft is just well, the inverse

#

there's like

#

2 symbols that change

limpid osprey
tender river
#

it will die eventually either way so probably let it out tomorrow

honest vapor
#

why do people like express.js, like, I feel like there's not much of rules there, javascript, so I use TypeScript, I decided to use TypeORM, I hope that I have something working on my localhost with a docker postgresql, where do you people host that server? Does Vercel work with it? I kind of want to go back to Java Spring Boot I like the rules and stuff there, its much easier to set up, the only stuff that gets on my nerves with Spring is Spring Security

opaque sigil
#

people like express?

#

news to me

#

if you want something that's similar but more typescript friendly you might want to look into hono and/or elysia, they're a lot more modern

#

as for deployment, i don't think vercel supports docker

#

i know some people like to use fly.io but i haven't used that myself so idk

limpid osprey
#

express js by itself can't do anything without additional libraries there are solutions like nestjs for this where everything is structured and goes from the beginning

uneven pulsar
#

(This is taking a while since ive gotta compile numpy from source (on a Samsung A55)

opaque sigil
#

you know what, i don't even want to know why you're compiling numpy from source on a phone

amber fractal
honest vapor
#

google colab?

uneven pulsar
amber fractal
opaque sigil
#

yeah because why would they precompile for that arch

tender river
#

okay i ran into a compiler bug neuro7 back to making minimal repros...

amber fractal
opaque sigil
#

actually

amber fractal
#

Only reason I can use numpy on mobile

opaque sigil
#

wouldn't it just be aarch64

#

or does android have some extra fuckery

rough bloom
#

yeah, the arch should just be aarch64
but Android doesn't use glibc

amber fractal
#

termux has extra fuckery

tender river
opaque sigil
#

guess that explains it then

uneven pulsar
#

It is half way done compiling the big math thingy (that's a complete guess)

tender river
#

if you run glibc in a chroot it works fine

#

thats why nix termux uses a chroot

#

the downside being no access to your actual filesystem

#

since it has to work without root

opaque sigil
#

just be root neuroPogHD

#

are you sure that's an actual difference and not just a one-time thing

sick owl
#

Chinese tech manuals are a wonderful thing

#

This is for a handheld emulator

sick owl
olive sable
opaque sigil
#

updated mesa and now va-api doesn't work anymore neuroPogHD

uneven pulsar
#

I realised it was stuck in a loop and now it is working

opaque sigil
#

guess this is what i get for pulling an experimental driver from main

tender river
#

no compacting yet

#

it compiled so its fine

#

smh no planned support for trinary ISAs

olive sable
#

in glsl, a vec3 still takes up 4 spaces, but a vec2 only takes up 2 right?

uneven pulsar
#

It is done :3

#

Apparently those are moth

#

I also got a 1.98mb DFT file

tender river
#

does memmove allow overlapping memory?

#

no

#

i was looking into lily.mem.move source code

amber fractal
olive sable
#

ye

amber fractal
#

at least in storage cost

olive sable
#

there is 4, 8, and 16, not 12

#

in terms of bytes

#

jsut had to confirm

amber fractal
#

I forget 16 byte registers exist, but yeah makes sense

#

just very large

olive sable
#

i could put the lightstrenght float into the alpha, but ill probably need to change this code more in the future and it will only change it to be <0.1% faster

#

ill keep it seperate for now

amber fractal
#

Cursed bitpacking neuroHypers

olive sable
#

i mean ive done worse shit before

#

im fixing stuff to use std140, but before i was making lists of 6 4x4 matrices in order to do only one api call

amber fractal
#

Half of me really wants to do some cursed manipulation with 8 bit neurons, but it needs to exist as a concept first.

#

bitpacking neurons go brrrrrrrr

#

The moment this switches lanuages, the SIMD support is going to be abused to insanity

olive sable
#

these uniforms make my brain hurt

layout=[{'name': 'GLSM', 'binding': 0},
        {'name': 'lighting', 'binding': 1},
        {'name': 'material', 'binding': 2},
        {'name': 'lightdepth', 'binding': 3}],
resources=[{'type': 'uniform_buffer', 'binding': 0, 'buffer': LSM},
           {'type': 'uniform_buffer', 'binding': 1, 'buffer': LIGHTING},
           {'type': 'sampler', 'binding': 2, 'image': texture, 'wrap_x': 'clamp_to_edge', 'wrap_y': 'clamp_to_edge', 'min_filter': 'nearest', 'mag_filter': 'nearest'},
           {'type': 'sampler', 'binding': 3, 'image': lightdepth, 'wrap_x': 'clamp_to_edge', 'wrap_y': 'clamp_to_edge', 'min_filter': 'nearest', 'mag_filter': 'nearest'}],
uneven pulsar
#

IT WORKED EJRJEHDHDEHWHQ

#

IT RECOCNEHSED THEVDD EZDFTJT F CAGFYRJ$

#

It did the DFT stuff to the image then reversed it and now I have the exact same image :)

#

OK me stop interrupting the smart people

amber fractal
#

Nah the smart people clog the channel

#

we need more newcomers doing very cool stuff

prime ridge
#

Vedal would probably show up in here if we spoke about simpler things

amber fractal
#

Vedal just comes in to complain or ask for lib help

olive sable
#

i got

layout (std140) uniform lighting {
    vec3 camPos;
    vec3 lightposition[1];
    vec3 lightcolor[1];
    float lightstrength[1];
};

so it should be 16 + 16 + 16 + 4 which is 52
but its complainign that it needs to be 64

#

idk anymore

opaque sigil
#

Time to add padding

amber fractal
#

Ah yes vec3 vec3 vec3 float uint uint uint

#

padding yep

olive sable
opaque sigil
#

Also wouldn't it be 12*3+4

olive sable
#

no

#

12 doesnt exist

opaque sigil
#

Oh right

#

Fair enough

olive sable
#

so vec3 becomes vec4 kinda

opaque sigil
olive sable
#

why?

amber fractal
#

i got

layout (std140) uniform lighting {
    vec3 camPos;
    vec3 lightposition[1];
    vec3 lightcolor[1];
    float lightstrength[1];
    uint8 0;
    uint8 0;
    uint8 0;
};

Said padding example

#

Because it is now 64 bytes

olive sable
#

wait

#

lemme test something

opaque sigil
#

Can you put those 3 into an array

#

Is that a thing in glsl

#

Also it'd have to be 32 bits each no?

olive sable
#

the problem isnt that it needs to be 64 bytes, its that it gets seen as 64 bytes already

opaque sigil
#

Padding go brrr

olive sable
#

i defined the buffer as size 52, which doesnt work

uneven pulsar
#

I just realised I'm supposed to be writing bad code to render da 3d model thingy (i got distracted 3 hours ago and now I'm doing DFTs and reverse DFTs)

amber fractal
opaque sigil
#

at that point you may as well just run it on a gpu NeuroClueless

amber fractal
#

At that point it would be better to do gpu NeuroClueless

#

Still refusing to target CUDA, unneeded due to not needing anything that complex.

opaque sigil
amber fractal
olive sable
amber fractal
tender river
#

came up with this cursed approach

// This uses 30 bits for page offset, which is enough because 1GB pages are not supported anyway
// Phase 1: mark (DFS)
// MSB: whether this is reachable from GC roots (if already marked dont recurse again)
// 30 lower bits: offset from page data start
// Phase 2: sweep and compact
// All data with MSB not set gets nuked, only data with MSB set remains
// However, the items with MSB not set still have to stay - or GC handles would get invalidated
// This means we can reuse the MSB for redirection:
// - 00 means this is an item that has finished GCing, its ready for the next GC cycle
//   and we don't have to worry about it in this cycle anymore - just return without doing anything
// - 10 means this is an item that has not yet been visited by the compactor, set this to 0 and visit all children
// - 01 means this is a redirection pointer - use the 30 lower bits as the new *index* (not offset) and revisit self
//   yes, this means if the pointer points to the same cell it should enter an infinite loop
opaque sigil
#

i've been meaning to look into vulkan compute shaders but never got around to it sadly

tender river
#

slightly outdated probably since i extended metadata with alignment info but i still plan to go with largely the same algo

opaque sigil
#

also if you only care about complexity, cuda is by far the "simplest" out of those

#

wait why am i shilling cuda

#

frick nvidia

amber fractal
#

I do value simplicity but also I wish to actually be portable.

#

FRICK nvidia

opaque sigil
#

there's opencl i guess

amber fractal
opaque sigil
#

i wonder actually

#

is there a sycl implementation for amd

#

i know there was one for nvidia gpus

#

looks like clang supports it, guess that'll do it

tender river
#

neuropoghd in january: 27 cases (mostly nesus)
neuropoghd in february: 43 cases (mostly nesus)
neuropoghd in march: 141 cases (mostly nesus, wow he really dedicated himself to pushing the emote)
neuropoghd in april: 127 (nesus, just89, konii in that order)
neuropoghd in may: 536

#

its spreading like a virus

opaque sigil
#

it really is

amber fractal
#

If it somehow works out, I'd be doing an OpenGL impl first. Mainly so @olive sable has native AI in engine.

opaque sigil
olive sable
opaque sigil
#

gpu alignment shenanigans i guess?

olive sable
#

or just his api

#

but its fine

tender river
#

lets make it a reality neuroPogHD

loud thicket
amber fractal
opaque sigil
#

i forgot what i got out of bed for ugh

#

god damnit

tender river
#

go back to sleep and the memory will come to you in a dream

opaque sigil
#

i wasn't sleeping i was just on my phone in bed neuroPogHD

olive sable
#

ohhhhhh i figured it out

#

i need to pass fake data into the the uniform block for the alignment

opaque sigil
#

so it was padding at the end of the day?

amber fractal
#

looks like it

olive sable
#

need to do this

#
LIGHTING.write(np.ascontiguousarray([*cam.position,        0,
                                     *self.light.position, 0,
                                     *self.light.color,    0,
                                     self.light.strength], 'f').data.cast('B'))
#

now it works neuroHypers

opaque sigil
#

huh

#

wouldn't it make more sense to put all the 0s at the end/start

amber fractal
#

The three up top are vec3s

#

they need padding themselves

opaque sigil
#

oh right

olive sable
#

the vec3's are interpreted as vec4, so if i dont do the 0 the data from the next vec3 gets read as tha alpha

opaque sigil
#

doing this in python is so cursed i hate it

olive sable
#

its beautiful

opaque sigil
#

if it works it works neuroHypers

#

btw if you're going to throw all of this on the gpu and feel like being picky like that, i'd recommend you align everything by at least 128 bytes so can have one warp per instance

olive sable
#

what?

#

one warp per instance?

opaque sigil
#

i had a brain lag moment there, disregard that

#

basically, nvidia gpus execute your code with 32 threads at a time in lock-step

olive sable
#

wouldnt you want as litle threads as possible per instance?

#

or am i wrong on this?

opaque sigil
#

you don't get a choice, this is a constant

#

it's always 32 that run the same instruction at a time

olive sable
#

well okay

amber fractal
opaque sigil
#

i'm not actually sure how opengl handles this menherathonk

olive sable
#

same

tender river
#

well damn i found a way to store alignment in 5 bits and now i have 25 unused bits

olive sable
#

my chrome keeps opening pages in light mode bwaadow

olive sable
opaque sigil
#

i have the opposite problem and it's the worst

#

can't stand websites that launch in light mode by default and then switch to dark mode after they loaded neuroSCHIZO

tender river
#

the internet is holding on at 70% ping rate which is perfectly usable

#

surely it wont drop to 50% again

#

makes sense, not like theres any other way of handling it in an arena

opaque sigil
#

where did the 24 go

tender river
#

or in this case

amber fractal
opaque sigil
#

ah

olive sable
opaque sigil
#

so basically when you allocate a page the header is in front of the ptr you return?

olive sable
#

im trying to change all my shaders to use std140 now but i lost what i changed and what i didnt change yet SCHIZO

opaque sigil
tender river
#

cant you forget the old pages when allocating a new one

#

i meant just prepend them to the linked list rather than append

#

basically always have a pointer to the list's tail for accessing the current page

tender river
opaque sigil
#

so a ring buffer you cycle through for pages? neuroPogHD

tender river
#

not a ring buffer

#

its an arena

#

it only goes forwards

opaque sigil
#

right

tender river
#

as in it can add new data but not remove

#

ring buffer makes sense for data transfer but arenas are for persistently storing data

#

also @sage crag please use atomics some of the code in fakern scares me

opaque sigil
#

we don't do that here neuroPogHD

amber fractal
#

Man neuroPogHD is becoming a mind virus

tender river
#

honestly i hate atomics but the only way to avoid them is no-synchronization concurrency which is even harder to do

olive sable
tender river
amber fractal
olive sable
tender river
#

you can use them in fakern

#

it never gets that broken

#

because when two threads read/write to the same memory location usually one of them wins out

#

and most of the time one thread's write will happen before the other thread's read

#

sometimes that wont be the case and sometimes two threads will write to the same value at the same time making it have a completely broken value thats a combination of the two

opaque sigil
#

i love race conditions neuroPogHD

#

they're definitely not the bane of my existence neuroPogHD

tender river
olive sable
tender river
#

if ableos actually has multiple threads potentially reading/writing to the same value at the same time without atomics, that part should be redesigned

#

atomics arent the only way to synchronize stuff, theres also pipes/channels and stuff

#

just something to keep in mind i guess

opaque sigil
#

when in doubt just throw a mutex at it mhm

tender river
#

doesnt work like that in osdev

#

you have to implement the mutex first

opaque sigil
#

well yeah

#

i guess you need atomics for that

tender river
#

you do

#

i dont think you can make a spin loop without atomics

opaque sigil
#

don't see how that'd work

tender river
#

Peterson's algorithm (or Peterson's solution) is a concurrent programming algorithm for mutual exclusion that allows two or more processes to share a single-use resource without conflict, using only shared memory for communication. It was formulated by Gary L. Peterson in 1981. While Peterson's original formulation worked with only two processes...

#

but its hard

opaque sigil
#

guess i stand corrected

#

oh i remember this one

tender river
#

you need one boolean per thread (all shared) and one integer per thread minus 1 (again, all shared)

#

no ok not even booleans

#

basically, spinlocks without atomics are hard

#

atomics are easier (they still usually require spinning though)

opaque sigil
#

pretty neat that it's possible without atomics at least

tender river
#

i just realized that it basically isnt possible to generalize for > 2 processes

#

because >2 requires atomics

#

print it

#

popcnt(n) == 1

#

surely popcnt is a basic instruction available in any vm glueless

#

that one is undocumented its only for internal intel use when using the intel compiler to game benchmarks dont touch it

opaque sigil
#

oh god not the stupid js floating point instruction(s)

tender river
#

mnemonics are supposed to be short and easy to remember abbreviations for what an instruction does right

#

rolls right off the tongue

#

it is

opaque sigil
#

where's my ai chatbot for the x86 reference

tender river
#

probably cant add new reacts but can add existing ones

#

nvm no reaction ban role

#

well

olive sable
tender river
#

when you wake up (but not right now) i will have a working single-page GC

#

im basically done just have to refactor some stuff to make it work

olive sable
#

3.33 here mhm

tender river
#

sure

#

done

#

status_hash has to be separate for it to actually be much faster

#

think SoA vs AoS

#

but you spend it anyway if you include status_hash in Entry

#

you may actually spend more that way

#

oh right you're backed by a vec not by raw bytes that you can do with as you please

#

go to sleep

#

meanwhile i'm making a garbage heap

#

(programming context)

#

not that much effort but you have to implement an allocation api for raw bytes that are still aligned

#

unless you allocated something else on the arena

opaque sigil
#

i love lazy environment checks neuroPogHD

zenith furnace
#

Hiii.
Does anyone have leetcode premium membership

prime ridge
#

fuck bro. My training was so slow because I was on CPU. The CUDA drivers failed cuz I updated system on arch... another lost to sudo pacman -Syu

#

ofc Echo has been summoned

knotty current
prime ridge
raw trout
olive sable
tender river
#

neuroPogHD let me rephrase, i would be happy if you woke up well rested

knotty current
#

i cant beleive i got reminded to update by @prime ridge neurOMEGALUL

prime ridge
knotty current
#

lucky u

prime ridge
#

it's usually like 350 packages too

knotty current
#

i have way more because i did not remove kde plasma

#

oops

prime ridge
#

imagine using a DE evilSmug

knotty current
#

i would definitely reinstall with clean arch next time tho

knotty current
#

just did not uninstall the de

prime ridge
#

ah

knotty current
#

i think i forgot how to use a de at this point neurOMEGALUL

#

text file configuration is just better

prime ridge
#

Openbox config

#

I used to have a way better actual custom config before

#

wayland was being weird tho so had to switch

knotty current
#

i am forced to stay on wayland cuz otherwise i cant play osu

#

current hyprland config:

prime ridge
#

Fellow endeouros user

#

my pc uses eos

knotty current
#

i thought u use actual arch cuz the ascii art

prime ridge
prime ridge
#

basically every single package updated

opaque sigil
#

the actual driver? neuro7

prime ridge
#

My thinkpad I have raw arch on but I barely use it

prime ridge
prime ridge
#

it's working now

opaque sigil
prime ridge
knotty current
prime ridge
#

that laptop is literally older than me btw

#

works perfectly fine tho

#

ofc it's a thinkpad

knotty current
#

linux is literately the only thing keeping it alive at this point

prime ridge
#

running on hopes, prayers, and kernel version 6.6

#

Never running a server on arch again btw despair

knotty current
#

i never did

prime ridge
#

turns out there is a reason for stable distros ๐Ÿ˜‚

knotty current
#

i had the temptation to but went with debian

prime ridge
#

and

NEVER

Running servers on gentoo again

knotty current
#

who would even do that in the first place

prime ridge
#

hahahaha... right?