#๐Ÿช…-progaming

1 messages ยท Page 136 of 1

solid gazelle
#

just saying shit nvm forget it.

deep mulch
#

@valid jetty add OOP

solid gazelle
#

add jvm target

valid jetty
deep mulch
#

@valid jetty trailing lambda blobcatcozy

royal nymph
#

manual locking & unlocking ๐Ÿ˜ญ

#

add defer at least

valid jetty
#

there is defer

#

you could do

use std/prelude;

fn main() {
    counter := Mutex::new(0);
    threads := (0..5)
        .map_with(fn(_, arg) 
            Thread::spawn_with(fn(counter) {
                value := counter.lock();
                defer counter.unlock();
                return *value += 1;
            }, arg), counter)
        .collect();
    
    res := threads.map(fn(thread) thread.join());
    $dbg(*counter.lock(), res);
}
#

heck you could even

jade stone
jade stone
#

Used bun instead of rollup and got 30x faster builds without having to use a build script

solemn ravine
#

@royal nymph

royal nymph
solemn ravine
#

oh

#

why am I here

lost cosmos
#

forced myself to not use tailwind and just ended up doing this

jade stone
royal nymph
#

sucks

jade stone
#

how

lost cosmos
#

it makes everything SO unreadable i cant lie

jade stone
lost cosmos
#

because im a chud and cant break habits

royal nymph
#

vencord also has margin css classes

lost cosmos
#

like relative flex flex-col gap-0.5 px-4 pt-3 pb-3 pr-12 rounded-[10px] bg-white/[0.07] border border-white/[0.12] min-w-[160px] transition-all duration-150 hover:bg-white/[0.13] hover:border-white/25 hover:-translate-y-0.5 cannot be tas

royal nymph
# royal nymph vencord also has margin css classes

a lot of time when building ui with already themed components all you need is a bit of margin here and there

its easier to just add a margin utility class for that than to come up with a proper class for those parts of the ui and add css file

jade stone
#

that's the balance i like

lost cosmos
#

yeah i dont want to add an entire class onto an h1 just to remove the bottom margin

jade stone
lost cosmos
#

it's good for individual tweaks i agree

jade stone
#

i long for the day when plain css supports // comments

lost cosmos
#

YESSS

pulsar elk
#

vanilla

#

everything?

lost cosmos
#

no i fw that

royal nymph
#

vanilla css is nice, but scoping makes it better

#

whether that be astro/svelte style scoping or css modules

worldly sigil
#

wonder if any production project is using css @scope rules yet

fierce pendant
twin matrix
#

i havent bothered to try learning @layer yet

pearl parrot
#

why not just use the style attr

#

i always do that

royal nymph
#

honestly i dont get the point of @layer unless youre using both ends of it

#

Instead of css @scope (.outer) { .inner {} } cant you just use ```css
:where(.outer) .inner {}

#

oh wait

#

that's @scope

#

you confused me by randomly switching to a different rule

#

well in case of @layer there's also not much to learn, you can learn it in 5 minutes

#

in my most recent project I used it to give my component css classes lower specificity

twin matrix
#

i see

royal nymph
#

you can once at the top of ur css file write this to define ur layers

@layer lowPrio, mediumPrio, highPrio;
@layer highPrio {
  .element { color: red; }
}

@layer lowPrio {
  .element.with.high.specificity { color: blue; }
}
#

red wins

twin matrix
#

nah, ill go back to spamming &&&&

#

more funny in terms of specificity

twin matrix
#

so if a layer is defined later in the initial @layer definition, it has higher specificity?

royal nymph
#

ye

#

u dont have to define them all at once you can just do just this too

@layer lowPrio {
  .element.with.high.specificity { color: red; }
}

@layer highPrio {
  .element { color: blue; }
}
#

but that kind of defeats the point of them imo

#

the point of them is to get away from the last statement wins thing

shrewd canopy
#

soon ty, uv and ruff will be vibe-coded as well similarly to bun

supple whale
#

tw4 started using this and it makes css hell to debug in chrome

#

css has so much shit now i can barely keep up

#

and worst part is we can barely use half of it because shit like firefox exists

#

which doesnt support most of it

#

like what do you mean initial-styles? what do you mean discrete?

#

what?

fierce pendant
jade stone
deep mulch
#

@jade stone

jade stone
#

@deep mulch @lyric latch i love powershell

jade stone
#

it's not the default

#

for some reason, ^C doesn't work if powershell is launched inline from cmd

supple whale
#

what would u guys call this component?

#

god naming things is so fucking hard

fierce pendant
#

please hashimoto youre better than this

#

please

#

please hashimoto

#

please dont

pseudo sierra
#

explode sadan tbh

jade stone
#

@pseudo sierra rust compile times so good

pseudo sierra
#

no cache momet

jade stone
jade stone
#

the whole thing is that if nothing changed, it knows to skip the build

#

but if i update the timestamp of one file(nothing else), it takes 1.5 minutes

pseudo sierra
#

oh wait release no it spends like most of that time linking trolley

#

and stripping and whatever else release does

jade stone
#

it might be because of something cursed i'm doing

#

yeah

#

it's all lto

pseudo sierra
#

lto my beloved

#

(my custom kernel config also takes like a minute to do lto)

jade stone
#

lto only takes this long because im doing stupid shit

pseudo sierra
#

everything you do is stupid shit so that's not very surprising

jade stone
pseudo sierra
#

HUSK

deep mulch
#

@pseudo sierra

pseudo sierra
#

@deep mulch

valid jetty
#

@deep mulch this assertion passes!!!!!!!!!!

b := "{ 
    \"a\": 1, 
    \"b\": \"hello world!\",
    \"foo\": [1, 2.2, -1.3], 
    \"bar\": { 
        \"baz\": [{}, {}, { 
            \"qux\": null, 
            \"quux\": false 
        }] 
    } 
}".parse_json();

$assert(b.is_ok_and(fn(value) value.tag == JsonValueKind::Object));
$assert(b.unwrap() == JsonValue::Object($map(#[
    $("a", JsonValue::Number(1)),
    $("b", JsonValue::String("hello world!")),
    $("foo", JsonValue::Array([
        JsonValue::Number(1),
        JsonValue::Number(2.2),
        JsonValue::Number(-1.3),
    ])),
    $("bar", JsonValue::Object($map(#[
        $("baz", JsonValue::Array([
            JsonValue::Object(HashMap::new()),
            JsonValue::Object(HashMap::new()),
            JsonValue::Object($map(#[
                $("qux", JsonValue::Null()),
                $("quux", JsonValue::Bool(false))
            ])),
        ]))
    ])))
])));
#

json parser success

#

and also json stringifier because i made a simple fn to turn a JsonValue back into a json string

#
fn JsonValue::to_string(JsonValue self) -> string {
    // SAFETY: we are checking tags so its 
    // safe to use unchecked variants
    if self.tag == JsonValueKind::Null {
        return "null";
    } else if self.tag == JsonValueKind::Number {
        return "{}".format(self.number);
    } else if self.tag == JsonValueKind::String {
        return "\"{}\"".format(self.string);
    } else if self.tag == JsonValueKind::Bool {
        return "{}".format(self.bool);
    } else if self.tag == JsonValueKind::Array {
        return "[{}]".format(self.array.map(JsonValue::to_string).join(","));
    } else if self.tag == JsonValueKind::Object {
        res := self.object.iter()
            .map(fn(entry) {
                key, value := entry;
                return "\"{}\": {}".format(key, value.to_string());
            })
            .collect()
            .join(",");
        return "{{{}}".format(res);
    } else { 
        $panic("Invalid tag found: {}", self.tag);
    }
}
deep mulch
#

scary

supple whale
#

why the fuck does this shit show up around my browser tab

#

when i have devtools open

#

WTF

deep mulch
#

eorry

fierce pendant
#

chat what do yall think of that one thing

supple whale
#

the other thing is fine tho

fierce pendant
#

oh

fierce pendant
supple whale
#

ofc its fucking matrix that has the most up to date font for emojis with the most cross compat

supple whale
#

cursor-pointer focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive inline-flex shrink-0 items-center justify-center gap-2 rounded-md font-medium whitespace-nowrap outline-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 hover:bg-foreground hover:text-foreground dark:hover:bg-foreground/10 size-8 text-xl

#

mmm i love tailwind

supple whale
#

cinema

ornate quiver
#

the colored icons big nono

#

second one is acceptable imo

#

more padding between text and icon though

frosty obsidian
#

i think the descriptions font size should be smaller

#

what are the font sizes used for both lines

#

try top 16 and bottom 14

#

then make top 16

#

i think that looks better

#

personally i prefer the icons having the colors but not a big deal

royal nymph
#

why did you remove categories

royal nymph
#

wouldn't have only 3 settings if Navic had any features yk

frosty obsidian
#

i should pr an american english translation

#

i think so far it literally only changes one word

#

no i see customise

#

thats at least 2

#

eh ill wait for you to set up crowdin or weblate or something

#

weblate

royal nymph
#

how are swipe actions appearance

#

this is what happens if you remove categories because "it's only 3 settings"

#

yes it doesn't work

#

I told u ages ago @young flicker

lost cosmos
#

anything but http.cat ๐Ÿ’”

fierce pendant
lost cosmos
#

just put a minigame or sm on there

twin matrix
dense sand
#

I HATE nextjs omg ๐Ÿฅ€

#

too late

fierce pendant
dense sand
fierce pendant
#

ask an agent :3

deep mulch
#

@young flicker

valid jetty
#

@deep mulch 31x speedup from using sized strings instead of null terminated strings in my json parser

#

look at this bs lmao

woeful zinc
valid jetty
#

after using sized strings

woeful zinc
valid jetty
#

no the graph doesnt show time taken

#

it shows which functions use what proportion of time

#

so in the graph above you can see strlen be a huge chunk (like 99%) of the time taken

#

in the second one you can see various functions doing different things instead of just strlen

woeful zinc
#

I think i understand

valid jetty
#

first one takes 1.002 seconds, second one takes 32ms

#

the graph does not show time

#

these bits

woeful zinc
#

All i can say is

#

Kachow

valid jetty
#

are these bits

woeful zinc
valid jetty
#

kachow

woeful zinc
#

Lightning mcqueen speed

#

Kachow

valid jetty
#

yeah lol

woeful zinc
royal nymph
valid jetty
#

i did the better thing of moving to sized strings

#

getting the length is now O(1) its the same thing

royal nymph
#

yeah but cases like this will always come up

valid jetty
#

strings are a char* under the hood

#

im going to migrate to sized strings by default soon

fierce pendant
#

kachow

valid jetty
#

i got a test json string from my friend

#

its 182,841 bytes

#

and all the bounds checks of the string during parsing end up taking its length like 1,170,555 times lmao

#

so its doing 214,025,446,755 iterations of ptr derefs of strings purely for calculating the length

deep mulch
valid jetty
#

HYRAX

#

its not some bullshit with fur ๐Ÿ’”

#

he does his best

deep mulch
#

how

woeful zinc
#

I didn't know i had gif perms

#

Since when

fierce pendant
#

chat

#

i have proof

#

that

#

x + y - y != x

woeful zinc
fierce pendant
#
const isEven = (x: number) => x == x + (3*.1+.3)/(3*.1-.3) - (3*.1+.3)/(3*.1-.3)
valid jetty
#

???

#

equality of floats is always wrong using == as it compares the ieee-754 representation

#

Math.abs(x - (x + (3*.1+.3)/(3*.1-.3) - (3*.1+.3)/(3*.1-.3))) < 1.0e-6 pls

fierce pendant
#

will this crash my bun

valid jetty
#

no what

#

there we go

fleet cedar
# fierce pendant x + y - y != x

This statement is meaningless unless you quantify the variables, because โˆ€x,y. x + y - y != x is false while โˆƒx,y. x + y - y != x is true

valid jetty
valid jetty
#

like for โˆƒx,y

fleet cedar
#
>>> 1 + 1e50 - 1e50 == 1
False
valid jetty
valid jetty
#

???

#

thats just raw lambda calculus

fierce pendant
#

what the fuck is an upside down A

valid jetty
#

for all?

fierce pendant
#

that looks like an apl character

#

holy

fleet cedar
# valid jetty
>>> msi = 9007199254740991
>>> 0.1 + msi - msi == 0.1
False
valid jetty
#

??????

fierce pendant
#

am i the problem

pseudo sierra
#

yes

valid jetty
#

yes

#

you know apl doesnt invent their own characters lol

fleet cedar
fierce pendant
#

meow

fleet cedar
#

That statement is certainly true

#

But weird notation for it tbh

fierce pendant
#

idk

valid jetty
#

the former is only true due to float imprecision, the latter is not true

deep mulch
#

@valid jetty add funny constants like tau and the golden ratio

valid jetty
#

why

deep mulch
#

because I said so

fleet cedar
#

You do understand how those two are different claims, right?

deep mulch
#

@valid jetty

valid jetty
#

@deep mulch look at this beautiful code

use std/prelude;

enum F @repr(fn(string) -> F) {}

fn foo(i32 *x) -> F {
    *x += 1;
    return foo;
}

fn main() {
    x := 0;
    a := +foo(&x);
    b := +a(&x);
    c := +b(&x);
    $dbg(x);
}
deep mulch
#

prelude

fleet cedar
#

And math doesn't like statements that can be interpreted in multiple ways, so they invented โˆ€ and โˆƒ symbols to be able to specify exactly what they mean

valid jetty
#

unary + to convert the enum to its repr type since type aliases dont exist yet

fierce pendant
#

me when i

#

me

#

me

#

me when

#

me when i

#

me

#

me when i

deep mulch
woeful zinc
#

Me when I step on the legos

valid jetty
deep mulch
#

you probably wrote it

#

@valid jetty @valid jetty @valid jetty @valid jetty

fleet cedar
fierce pendant
#

i think tau is better than pi because i dont need to divide by 2 which my brain takes a few days to do

deep mulch
#

@valid jetty explain I/Q modulation

fierce pendant
valid jetty
#

no

fierce pendant
#

oh

deep mulch
#

rosie could genuinely be my college math professor

valid jetty
#

geometric algebra says complex numbers are really 2d vectors

#

and quaternions are really 4d vectors

fleet cedar
#

Wrong

#

They are 2d rotors and 3d rotors

deep mulch
#

what is a rotor

fleet cedar
#

A multivector with only the even components nonzero

valid jetty
fleet cedar
#

In 2d, that's the 1 and xy components (classically written as 1 and i), in 3d it's 1, xy, yz, and xz (classically written 1, i, j, k)

#

Or equivalently, the geometric product of an even number of vectors

fleet cedar
#

And highly questionable even in reals, unless you restrict to nonnegative ones

fierce pendant
#

she the on my square till i root

valid jetty
#

good talk

deep mulch
#

guh long video

shrewd canopy
deep mulch
#

@valid jetty forced to write simd instructions by hand

shrewd canopy
supple whale
#

I just do --simd on my build

#

get this nerd stuff away from me

#

llvm will do this for us

fleet cedar
#

Btw the cross product is my favorite type error

shrewd canopy
shrewd canopy
supple whale
supple whale
#

this will not change

#

that was fucking painful

#

fucking manually writing asm in a MS-DOS terminal with a lookup table printed on a piece of paper

shrewd canopy
#

Don't worry segmentation doesn't exist in 64-bit

fierce pendant
#
import m from "mithril"
import { css } from "goober"

const centerDivCss = css({
    display: "flex",
    flexDirection: "column",
    justifyContent: "center",
    alignItems: "center",
    height: "100vh"
})

const buttonCss = css({
    margin: "10px",
    fontFamily: "Courier New"
})

const countCss = css({
    fontFamily: "Courier New"
})

const root = document.body

m.mount(root, {
    count: 0,
    view() {
        return m("div", { class: centerDivCss }, [
            m("button", { onclick: () => this.count++, class: buttonCss }, "Increase"),
            m("br"),
            m("span", { class: countCss }, this.count),
            m("br"),
            m("button", { onclick: () => this.count--, class: buttonCss }, "Decrease")
        ])
    }
})

we cant be fucking deadass

shrewd canopy
fierce pendant
#

fuck do you mean

#

what

#

the

#

fuck

shrewd canopy
#

thats literally what does react do under hood

fierce pendant
#

yes??? but i am not using a 40 kilobyte library i am using mithrill

#

mithril is supposed to be used like this

#

thats why mithril also easily supports jsx

fierce pendant
#

i mean sure svelte is still better

#

but this can be done without a bundler

#

technically

supple whale
fierce pendant
#

do you hate goober that much

#

blud doesnt like gay goobers ๐Ÿ˜”

pseudo sierra
deep mulch
#

@pseudo sierra

fierce pendant
#

whos that

deep mulch
#

nop

#

compose is pretty this is evil

#

@lyric latch

winged mantle
#

where does the misconception that functional = not oop therefore C is a functional language come from

fierce pendant
#
(1..100).each{|n|s="";s+="Fizz"if n%3==0;s+="Buzz"if n%5==0;puts s.empty? ? n:s}
#

gang

woeful zinc
#

anyone wanna save me

royal nymph
woeful zinc
#

its just

#

i spent the whole day

#

making this

#

im cooked

shrewd canopy
woeful zinc
# shrewd canopy what is it

discord bot, with flask integration for easy to access modification to any command, including custom phrases

woeful zinc
woeful zinc
royal nymph
#

insane font

deep mulch
#

@royal nymph

#

sleep

royal nymph
#

okay

austere idol
runic sundial
#

Replacing each proton in your body with a neutron.

supple whale
fierce pendant
#

i wanna split every proton in my body

odd vigil
#

heyy

twin matrix
#

how is this even okay

twin matrix
fallen nebula
#

also i'll switch to records for packets, but at the start idk

#

we got compact headers anyway tho

#

depends what you mean ?

#

wdym object

#

oh wait don't tell me this is old screenshot where it was still object

#

yeah i used to have a class now i have static stuff

#

i stole this from something i shared days ago

#

it's just that having a class made debugging easier as i could see both representations at the same time

shrewd canopy
#

Based Microsoft ???

fallen nebula
#

my ByteReader is just package private functional interface

fallen nebula
# shrewd canopy Based Microsoft ???

nah they just reintroducing what they removed from W10 it's not based is oh we fucked up and see everyone going for Linux and Mac and we need to change shit so market share go up again

#

it's interesting but i'll see when it'll hit LTS

#

one thing i like is virtual threads tho
look at that shit, one line change, way more performance

package me.julienraptor01;

import me.julienraptor01.socket.Client;
import me.julienraptor01.socket.Server;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class Main {
    public static final Logger LOGGER = LoggerFactory.getLogger(Main.class.getName());
    public static final String ADDRESS = "localhost";
    public static final int PORT = 25565;

    @SuppressWarnings("UnnecessaryModifier")
    public static void main(@SuppressWarnings("unused") String[] args) {
        Server server = new Server(ADDRESS, PORT);
        LOGGER.info("Server started : {}", server.socket.getLocalSocketAddress());
        for (;;) {
            Client client = new Client(server);
            LOGGER.info("Client connected : {}", client.socket.getRemoteSocketAddress());
            //new Thread(new ClientHandler(client)).start();
            Thread.startVirtualThread(new ClientHandler(client));
        }
    }
}
#

also this kind of website remind me why i hate web devs
fucking justified text and max width

#

like here's the same page but with CSS adjusted to not be shitty and boom it fit in a fucking single fullscreen 1080p page

#

sure share, i'm always open to ideas to change code

#

i'll make my repo public at some point when it'll be advanced enough

fallen nebula
#

i see why for 1. but it's intended and sane and i want to swallow all exceptions and just turn them into null and prevent them from rising
also the emitted bytecode and how it get JITted to native is actually fine
also i couldn't do if i want, the point of a functional interface is that it only has a single method
also dataInputStream doesn't have an hasRemaining so i'd always return true and i know that for my ByteBuffer hasRemaining will always return true as i readFully and already know the packetSize and i'm pretty sure even in case of bad packet there's no way it could try an out of buffer read
also for the 2, a baos initial capacity is actually 32bits and so for most of the time it actually will not realloc
the only case here my stuff realloc is on the write of the 5th value which nearly never happen
and also ByteBuffer fucking suck for writing and reading, you gotta fucking flip and hasArray and shit and nah
i find ByteArray to be great for read only, but that's it
what i can do tho is tell the baos to allow with 5 bytes and that way i know it will never realloc
also i just checked and it JIT well anyway
so yeah basically i should just change it like this

public static byte[] encode(int value) {
    ByteArrayOutputStream baos = new ByteArrayOutputStream(5);
    while (true) {
        if ((value & ~0x7F) == 0) {
            baos.write(value);
            return baos.toByteArray();
        }
        baos.write((value & 0x7F) | 0x80);
        value >>>= 7;
    }
}
#

well here the VM actually JIT it into optimized stuff

#

and under the hood it's doing well

#

i mean technically Mojang's VarInts are silly as they are non-zigzag LEB128

#

which mean any negative value always takes the max space

#

instead of values furthest from 0 taking the most space

royal nymph
#

it's fixed size so u can just use byte[]

#

oh livia said that

fallen nebula
#

basically this

fallen nebula
#

so i need to do an array copy and actually remove the 0s

#

and that's literally what baos with an alloc size of 5 do

#

and also that means i have to track the index

#

and i mean at that point i should literally FFI and use optimize C(++) code
except that the JVM literally create optimized shit from the bytecode with the JIT

#

all i have to do is to just tell the baos to alloc the max size and then when it works in it, it's always gonna staay in it and then when i get the byte[] i get the right thing

shrewd canopy
fallen nebula
#

anyway the JIT isn't stupid and basically reduce my VarInt code to what one would write at low level so it's all fine

#

all i was missing was specifying the MAX_SIZE as allocation

fallen nebula
runic sundial
#

Bro in what world will the JIT save you there

#

Like, if you really want to prove it you could wire it up with JMH+JITWatch

fallen nebula
#

Me who literally just run cheat engine and go see the assembly

runic sundial
#

I have no clue what you're yappin on about the "JIT" saving your ass

#

The real pain (if you meant to cause it) is the amount of boxing and alloc spam in what seems to be code you're trying to optimize.

The 'correctness' here as far as 'the code doing what you want it to' is prolly fine

#

But if perf/gc pressure do become an issue here, please just make a wrapper/facade around your memory buffer for reading/writing varints. Or a set of static methods that directly interact with the buffer.

Without having one-time-use byte[] just bing-chilling in there, or nullable Long values

runic sundial
# fallen nebula and if you guys wanna try feel free to run functions million times to see how it...

And if you insist on keeping that array there, you can do this:

static byte[] toVarInt(int i) {
        if ((i & 0b1111111) == i) {
            return new byte[] {
                    (byte)i
            };
        } else if ((i & 0b1111111_1111111) == i) {
            return new byte[] {
                    (byte) ((i >>> 7) | 0x80),
                    (byte) (i & 0x7F)
            };
        } else if ((i & 0b1111111_1111111_1111111) == i) {
            return new byte[] {
                    (byte) ((i >>> 14) | 0x80),
                    (byte) (((i >>> 7) & 0x7F) | 0x80),
                    (byte) (i & 0x7F)
            };
        } else if ((i & 0b1111111_1111111_1111111_1111111) == i) {
            return new byte[] {
                    (byte) ((i >>> 21) | 0x80),
                    (byte) (((i >>> 14) & 0x7F) | 0x80),
                    (byte) (((i >>> 7) & 0x7F) | 0x80),
                    (byte) (i & 0x7F)
            };
        } else {
            return new byte[] {
                    (byte) ((i >>> 28) | 0x80),
                    (byte) (((i >>> 21) & 0x7F) | 0x80),
                    (byte) (((i >>> 14) & 0x7F) | 0x80),
                    (byte) (((i >>> 7) & 0x7F) | 0x80),
                    (byte) (i & 0x7F)
            };
        }
    }
#

Which the JIT will actually enjoy working with

#

plus u have no loop

fallen nebula
fallen nebula
fallen nebula
dense sand
#

"make the project optimized pls"

echo jungle
#

RE: #๐Ÿ‘พ-core-development message (@wanton totem)

i personally am aware of text replace but isn't it's function to primarily replace the contents of one's own messages?
from the looks of it, the original PR was to replace all given client-side render iterations of "microsoft" like the original linked browser extension does it

i should also disclose that i thought the PR was funny and i wanted to give the contributor a nudge into the correct direction :)

#

ยฏ_(ใƒ„)_/ยฏ

shrewd canopy
# fallen nebula explain more as i'm not sure to understand what you mean *probably because i hav...

I mean allocating byte[] once, then make ur method accept byte[] destination, int offset, T value and return int representing count of written bytes (for caller, this means to advance offset)
If this was C or C++ these params should have gone into struct which can be allocated on stack
But you're using Java and objects are allocated on heap, so you either should use a pool (basically you pre-allocate objects upon application startup, preferably a lot (at least 1024), and you can recycle objects so you can make no allocations for long time. You also can have multiple pools for same type but with different sizes (e.g 1KB, 2KB, 4KB, 8KB, 16KB, 32KB, 64KB, etc)), or you can allocate a byte array once per packet (but then you stress allocator)
I recommend using a pool in Java
Go with allocating byte array per packet if youre using C/C++ (ideally on the stack)

wanton totem
#

I have that for my text replace

echo jungle
#

ohhh interesting

#

ty for clarifying

#

the original comment didn't really point it out so i glanced over it

torpid solar
#

Is this Window's comeback story??

wheat kernel
#

i have faith

ornate quiver
#

they started getting scared

fierce pendant
#

dropping [...] WebView in [...] Start menu

pretty sure start menu always used react native instead of webview

ionic lake
#

yeah they are all lying for clickbait

#

it was react native rendered to XAML

fleet cedar
#

Probably ai slop

#

Especially since it doesn't link to any actual msft announcements, or is windowslatest itself an offical outlet?

shrewd canopy
#

w11 is just going great โ„ข

shrewd canopy
#

Never

supple whale
#

god i hope all react and tauri devs fucking end themselves

#

spent 30 minutes trying to uninstall this rust app, because its auto-updater downloaded to %tmp% and to uninstall it, you need the installer

#

sdo i couldnt fucking uninstall it, and when i seletected "do not uninstall" on the updater, it just gave me "failed to uninstall'

#

FUCKER I JUST SAID TO NOT UNINSTALL

#

20 minutes of fixing shit via regedit, it fucking doesnt work anyways because its taurio on fucking REACt

#

AND REACT IS SO DOGSHIT ITS UNFUNNY

pseudo sierra
royal nymph
#

linux solves this

deep mulch
#

yop

#

deadlock mod manager is on the aur

#

I use

supple whale
#

and react also being dogshit

#

it wraps tauri auto-update dogshit in its own package manager dogshit, which will cause its own problems down the line

#

and for react its even worse since you'll be playing a lottery if your webview even works on linux with tauri

#

because firefox is a webview of all time for sure

cinder moat
#

does anyone know wtf i should do

#

the custom one right?

shrewd canopy
deep mulch
#

@jade stone satan

winged mantle
torpid solar
#

brainfuck

torpid solar
#

apps that do that should die

#

die

#

@deep mulch

queen jasper
#

i'm new to css and browser stuff

wondering why is this prefered

.home-button {
    transition: color 0.1s ease !important;
}

.home-button svg {
    width: 24px;
    height: 24px;
}

.home-button svg path {
    d: path("...");
}

over this

.home-button {
    transition: color 0.1s ease !important;

    svg {
        width: 24px;
        height: 24px;

        path {
            d: path(
                "..."
            );
        }
    }
}```

as well as
```css
.sidebar button {
    transition: 0.1s ease;
}

.sidebar button:hover {
    transform: scale(1.1);
}```
over this
```css
.sidebar button {
    transition: 0.1s ease;

    &:hover {
        transform: scale(1.1);
    }
}

atleast from what i see in most css snippets or whatevs

queen jasper
#

yeah it like easier too you don't have to select twice

#

but i kept seeing this reselect

deep mulch
#

vsb 1

elder yarrowBOT
queen jasper
solid gazelle
#

read text

torpid solar
fleet cedar
autumn sedge
valid jetty
lofty iris
#

idk i got bored and wanted to fix custom usernames weirdly wrapping on firefox

#

if anyone else has that issue i made a silly fix

#
div[class^="usernameRow__"] div[class^="container_"] > span[class^="innerContainer_"] {
  display: flex;
}
royal nymph
ornate quiver
#

flatpak has it's own issues

#

namely that images are huge and permissions are a pita

deep mulch
#

fatpak

lucid trail
#

who knew defragmenting memory was this easy

#

does this C make sense? do i need to be casting ptr_diff to int and taking the abs val?

jade stone
#

@pseudo sierra I started optimizing my code and i had to make the buffer 8x bigger because it was so fast it kept being limited by the buffer

#

(tbh i didn't really do any optimization, i just used memchr instead of the stdlib)

#

GUH

#

8192 still sometimes fills up

pseudo sierra
jade stone
#

yop

#

evil...

#

@lyric latch

torpid solar
#

Die

pseudo sierra
#

waow

#

optimized saladware

jade stone
#

i haven't run this optimized version on a desktop cpu yet

mellow phoenix
#

learnt them not that long ago and I could feel myself going mad

pearl parrot
#

@jade stone satan

queen jasper
#

is this fine or is there a more humane way

const scriptSrcDescriptor = Object.getOwnPropertyDescriptor(HTMLScriptElement.prototype, "src");
Object.defineProperty(HTMLScriptElement.prototype, "src", {
    set(newSrc) {
        if (keyWords.some(word => newSrc.includes(word))) return;
        scriptSrcDescriptor.set.call(this, newSrc);
    },
    get() {
        return scriptSrcDescriptor.get.call(this);
    }
});```
#

there a site i often use with excessive ads that keep fetching stuff every few seconds so i thought this would like atleast do something

woeful zinc
shrewd canopy
#

Linked lists are evil

queen jasper
royal nymph
#

oh

supple whale
#

classic tauri cope

mellow phoenix
jade stone
mellow phoenix
#

I'm sobbing, the fact that you pinged me right when my Visual Studio crashed

jade stone
#

hop on clangd

mellow phoenix
#

that seems promising, will do blobcatcozy

frosty obsidian
#

nop i use clion

fierce pendant
#

how do you make native ui

solemn ravine
fierce pendant
solemn ravine
#

what are you using then

fierce pendant
solemn ravine
#

I think cpp/wxwidgets is the best option for you if you;re aiming cross platform

#

you can easily only write the UI in cpp then just write your backend in c

fierce pendant
#

i could just use raylib for ui

#

who will stop me

jade stone
fierce pendant
#

hmm

#

sure

winged mantle
fierce pendant
#

oh yeah

#

what about just skia

#

why the react native

deep mulch
fierce pendant
#

why arent there raylib bindings for bc

#

i would use that

tall granite
shrewd canopy
#

It's great

deep mulch
#

the windows lover also likes visual studio

shrewd canopy
#

It works fine for me

deep mulch
#

how

#

every single time I have ever used it is the most bloated sluggish ide I've ever used

#

I'd rather use eclipse

shrewd canopy
#

i use insiders

jade stone
#

Somehow longer than jetbrains ides

shrewd canopy
#

it fixed everything

jade stone
#

Does visual studio have neovim integration

#

And work on linux

#

(no and no)

shrewd canopy
jade stone
shrewd canopy
deep mulch
#

no

#

running on linux

fierce pendant
#

gang should i switch to emacs

jade stone
pseudo sierra
ornate quiver
fierce pendant
supple whale
#

mfw something imported my lib

#

cuz my npm dl's x2'ed

#

but i have no clue what

solid gazelle
#

what package

supple whale
royal nymph
pearl stagBOT
royal nymph
supple whale
#

none of these are new tho

royal nymph
lavish cloud
#

nvm doesnt even work

shrewd canopy
supple whale
#

your C only headless, dependencyless, javascriptless, rustless, gpuless libaries are way more popular and better

#

dont need to tell us the story of ur life again, we'll pass

#

its simply a niche topic

#

my lib has more dls than all the alternatives combined

#

its also simply better

jade stone
#

@supple whale least buggy rust library

pearl parrot
plain oar
pearl parrot
#

might ban

plain oar
pearl parrot
#

@frosty obsidian github copilot is getting trained on gloom

pseudo sierra
jade stone
lucid trail
elder yarrowBOT
# lucid trail vai help this user

The images clearly show the significant performance difference when regex optimizations are enabled versus disabled. When optimizations are disabled, the "Reporter finished in" time is 112.32 seconds, with "Collecting find matches" taking 84 seconds. In contrast, with optimizations enabled, the process completes in 2.76 seconds, and "Collecting find matches" takes only 2 seconds. This demonstrates that regex optimizations drastically reduce the processing time.

Given your comment "i can't even disable optimizaitons ๐Ÿ˜ญ", it seems you are highlighting the practical impossibility of running the process without these optimizations due to the severe performance degradation. Optimizing regular expressions is crucial for efficiency, especially in high-volume environments, to reduce CPU utilization, minimize memory consumption, and shorten execution time.

-# Response generated by gemini-2.5-flash. AI may be incorrect or misleading.

pseudo sierra
#

insane

lucid trail
#

vibecoded a fix

#

cool

solemn ravine
#

vibecoding is the FUTURE

frosty obsidian
#

what have they done to you

deep mulch
#

@solemn ravine @pearl parrot can one of you finish gloom wing abandoned

fierce pendant
#

petra novakova

unkempt ember
#

Oh boy, I can't wait to fall in this scam.

pseudo sierra
#

@pearl parrot

deep mulch
#

vsb 1

elder yarrowBOT
royal nymph
#

discord is just dumb and doesnt delete all messages sometimes

deep mulch
#

guh

supple whale
#

it requires brain power to understand

#

which im lacking recently

jade stone
#

The output is different if you enable them

supple whale
#

oh I thought that meant optional

#

that makes sense ig

#

God finally proper AMOLED black lineup

#

took so long to get Gboard full black

dense sand
ornate quiver
frosty obsidian
#

it is

ornate quiver
#

yop

dry path
pseudo sierra
fierce pendant
dry path
fierce pendant
unkempt ember
#

I just stumbled upon a new patent from google : Patent US12536233B1 I hope I misunderstood the concept. It seems like they made a technology to generate webpage using AI on the fly based on your digital fingerprint ( and sponsored content ).

dry path
# fierce pendant how

do you not ever feel the need to write hermeticly evaluated and declerative code that has a near perfect reproduciblity

fierce pendant
dry path
#

its not as hard as it sounds tbh

#

defo a learning curve but you get used to it

fierce pendant
#

i dont know how to put it, but dont you ever just want to sudo pacman -S something? or sudo apt install

dry path
#

not really

#

if i need something for like 5 minutes i have nix run and for anything longer i have the prefection that is my config

dry path
#

129mb apparently

#

13464 loc of nix

fierce pendant
#

holy

#

i should also make dotfiles one day

dry path
fierce pendant
#

imagine like gruvbox medium niri with gay

dry path
#

gruvbox :///

#

as a catppuccin shill i cannot allow this

royal nymph
fierce pendant
#

sadly

dry path
#

"professional" ๐Ÿ˜ญ

#

who cares its your machine

fierce pendant
#

uhhhh

#

catpuccing

dry path
fierce pendant
#

my main arch critique was that proton was completely broken

#

is that the case for nixos

dry path
#

it worked last time i used it

#

that was like 2 years ago tho

fierce pendant
#

wha

dry path
#

i don't play much games on linux after the apex linux ban :/

fierce pendant
dry path
#

probally actually nixos has quite insane hardware support

#

like we have risc-vi support, loongarch64 and you can even build for windows

#

i built nix.exe once

fierce pendant
#

oh

jade stone
fierce pendant
#

wasnt that done

dry path
jade stone
#

guh?

dry path
#

how do you think i build nix.exe

patent vortex
vital plume
#

works on my machine

shrewd canopy
jade stone
#

And reflection is only available in the clang fork

#

Should also come with gcc 16 later this year

mellow phoenix
#

Where can I find ui inspirations for a game launcher? I'm doing as a side project. Are there any game launchers or websites with UI designs that I could checkout?

solid gazelle
mystic oasis
#

i miss that feature

#

kinda overpriced tho

tired vigil
#

discord game library is alive and well actually

mystic oasis
#

whoaaa how do i get that back โ‰๏ธ

tired vigil
#

you'd have to have owned some games to get that feature ๐Ÿ˜ญ

mystic oasis
#

ripppp i made this acct after they discontinued the feature

opal vessel
#

you can actually still enable the library even if you didnt have any games

#

for some reason

fleet cedar
#

DiscordOS husk

tired vigil
opal vessel
#

its an advanced option

#

show game library

#

i dont know if theyve removed it now but even if they did it absolutely existed because ive enabled it a few times

tired vigil
#

hmm that option isn't visible on my other account

opal vessel
#

im on the windows desktop client just to clarify

#

dont know if it doesnt show up on web

pseudo sierra
#

malware

shrewd canopy
fierce pendant
#

peep!!!!!!

queen jasper
wheat kernel
#

I thought the infra was down

tired vigil
jade stone
#

thanks OXC

#

how do you manage to panic on that

#

oh

deep mulch
#

@jade stone teach me rust

jade stone
#

i barely know it lol

royal nymph
#

if only people didn't use this archaic obsolete library anymore shadowshrug

sage smelt
#

insane
i used to use that library a few years ago

worldly sigil
#

npm so popular like windows, its even got its own marketshare monopolization of supply chain attacks on package managers

fierce pendant
#

@deep mulch teach me rust

dense sand
#

hey guys, i need a quick help with css ๐Ÿ˜‚ , ive got no clue why is there excess space on the bottom of my page. it can disappear if i put overflow-hidden on body, that works, but it also hides it on pages with different layout where i need the scroll

#

its like this

#

the goal was to create a layout, which is fixed and a content which is scrollable. the content is scrollable, but theres also a 2nd scrollbar on the entire body

#

it is there!

#

theres 2 scrollbars in total for some reason

signal wadi
shrewd canopy
#

You pull 3000 dependencies for a single project and get this

dense sand
#

yes

jade stone
#

I've needed to do that with flex + scroll before

jade stone
dense sand
#

what i find interesting is the fact that i happened to make a working version in plain html

dense sand
#

@jade stone this might sound crazy, but the issue was an absolutely positioned input for whatever reason, when i remove it, it doesnt happen anymore

#

this is fucking weird

jade stone
#

They're just so many moving parts when you're dealing with CSS

dense sand
#

not but like why tf does it affect Y axis

supple whale
#

because you dont specify inset

dense sand
#

upon testing it seems to work correctly

supple whale
#

sir shadcn is legit made so you can edit it

#

thats its main goal lol

pearl stagBOT
supple whale
#
style={{
  ...props.style,
#

just fucking specify the styles bro

dense sand
#

oh wait

#

it uses context

#

i might be just stupid then bruh

#

i just have to specify it through actual style attribute and not tailwind

supple whale
#

claude so good

#

pov: you asked a gql question you struggle with yourself

fierce pendant
#

that is the day AGI is created

dense sand
#

perhaps its because the gql file has 8k lines pepeLa

supple whale
#

well i wanted partial entity normalization in a graph cache

#

TLDR while network requests is in flight, resolve partial pieces from cache, then predict the query results based on the request, with shit like filtering etc

#

a lil bit batshit insane

#

didnt work

dense sand
supple whale
#

'U' could be instantiated with an arbitrary type which could be unrelated to 'Awaited<Z> | Awaited<U>'

#

REEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE

royal nymph
#

bun so good

supple whale
#

we love bun XD

royal nymph
#
GitHub

What version of Bun is running? 1.3.10+30e609e08 What platform is your computer? Microsoft Windows NT 10.0.26200.0 x64 What steps can reproduce the bug? This in server.js: import homepage from &#39...

Claude code source code has been leaked via a map file in their npm registry!

Code: https://t.co/jBiMoOzt8G

deep mulch
#

bun blast @royal nymph

pseudo sierra
bright basalt
pseudo sierra
#

no lmao

supple whale
#

fun

jade stone
#

(also the back to all blogs button on your site is broken)

deep mulch
#

@jade stone SADANTIFACTORY

jade stone
#

soon

upper tree
ionic lake
#

theres baseui variants you can use

dense sand
hollow patio
#

The things I do

patent vortex
#

remove nix

#

problem solved

jade stone
#

Remove opera gx

hollow patio
pseudo sierra
#

nuke ogx

hollow patio
still jolt
#

remove computer, just use a notebook

signal wadi
#

ragebaited a skid and now hes "ddosing" my site

#

son

#

bro doesnt know cloudflare exists

candid harness
#

hi

royal nymph
#

HEADS UP. Popular JSON formatter extension has started injecting geolocation tracking and donation UI into websites
๏ธ€๏ธ€
๏ธ€๏ธ€Reddit thread seems to think they are also swapping tracking IDs for affiliates (a-la honey)
๏ธ€๏ธ€
๏ธ€๏ธ€Uninstall and switch to another one

**๐Ÿ’ฌ 52โ€‚๐Ÿ” 48โ€‚โค๏ธ 456โ€‚๐Ÿ‘๏ธ 44.2Kโ€‚**

#

I wish you could use a userscript for this

winged mantle
#

horror

#

IDK if I'd trust many extensions other than ublock with this perm tbh

royal nymph
#

there's no other way to do what the extension does shadowshrug

#

unless you do it manually (always click extension icon whenever you want to prettify json)

#

you'd expect Google to vet extensions with millions of users better, especially ones with such permissions

supple whale
royal nymph
#

maybe I'll just make my own

#

maybe I'll try vibecoding one for fun

winged mantle
#

idk i see no reason to allow auto updates on this type of extension but maybe chrome doesn't allow disabling it

#

actually you could just unpack the extension then load unpacked

winged mantle
#

usually if I don't trust an extension entirely I just read the code then pin the version blobcatcozy

supple whale
#

cant have random malicious updates

#

and im competent enough to fix shit myself in the code

cedar tulip
winged mantle
#

true

supple whale
#

i have this + tampermonkey

#

and then my own custom extensions i wrote myself for fun

winged mantle
#

ngl I think there are some things where not updating it is the more secure option, but when there are things which may have a lot of security vulnerabilities well you're screwed ig

cedar tulip
winged mantle
#

that made almost no sense but it makes sense in my heart

winged mantle
#

I liked the sentiment of a comment on a video about the axios situation

#

If you don't update - you get hacked. If you DO update - you get hacked

#

simple solution: just don't use axios

royal nymph
winged mantle
#

honestly I'd be reluctant to update besides fixing confirmed security vulnerabilities

#

but package.json versions typically allow a newer version to be used (though shouldn't the lockfile make things somewhat consistent)

royal nymph
#

not really

#

you have to use --frozen-lockfile

winged mantle
#

ah, that's why in my actual experience a newer version sometimes gets used then blobcatcozy

royal nymph
#

it depends how you define dependencies

#

by default when you install a package it adds v ^1.2.3

#

the ^ allows minor updates

#

if you run npm install with ^1.2.3 in package.json, it could install 1.20.18

supple whale
#

pnpm goat

#

also fuck bun and firefox

#

weekly reminder

ornate quiver
deep mulch
#

@royal nymph vencied will have 500 cves soon

shrewd canopy
#

I have zero dependencies in my current C++ project
Maybe only RapidJSON and OpenSSL
But openssl can be avoided on windows thankfully

winged mantle
#

and I've seen pnpm i change the lockfile and also knew that the frozen-lockfile flag existed so idk why I thought that

fierce pendant
#

abs(y) > abs(x)

#

when did i write that

#

i dont rememberr

jade stone
royal nymph
jade stone
#

yop

royal nymph
#

well i don't use minage but I should start using

cedar tulip
#

mirage

#

actual good lookin jet

sinful iris
#

how do i get permission to send my own pluginsโ  and where are the rules to follow to not send something thats gonna get me banned ? #1256395889354997771

elder yarrowBOT
# sinful iris how do i get permission to send my own pluginsโ  and where are the rules to follo...

Guidelines for #1256395889354997771

<:forum_channel:1414078624843305013> ๐Ÿงฉ-unofficial-plugins

Please read before posting your plugin

To submit, please open a #๐Ÿ“ฉ-modmail with your submission.

Your plugin must be in its own git repository and allow users to install it by simply cloning it into their userplugins folder, as described in https://discord.com/channels/1015060230222131221/1257038407503446176.
This means that your repository needs to have its index.ts file in the root. One plugin per repo!
Please add a README.md to it and link to the install guide: https://discord.com/channels/1015060230222131221/1257038407503446176

Your submission must follow the plugin rules:

  • No raw DOM manipulation. Use proper patches and React.
  • No FakeDeafen or FakeMute.
  • No StereoMic.
  • No selfbots or API spam. (animated status, message pruner, auto reply, nitro snipers, etc)
  • If your plugin makes use of an external API, you must add a disclaimer.
pearl parrot
#

also if you AI generated your plugin don't submit it

orchid lynx
#

its very nice

jade stone
#

@deep mulch i love reading my old code

pseudo sierra
#

malware

jade stone
sinful iris
# pearl parrot also if you AI generated your plugin don't submit it

If you call that garbage, provide something good instead.
Youโ€™re not providing concrete feedback, and I want the real reason for rejection.
It doesnโ€™t seem specified in your instructions that AI-assisted plugins are not allowed.
I followed the listed requirements. If there are technical violations, list them exactly so I can fix them.

pearl parrot
#

LOL he left

night sphinx
#

glock write me a message that makes me look mad since i got rejected

ornate quiver
#

@deep mulch watch

#

2h long

solid gazelle
solid gazelle
#

i get a notification for every reaction BTW

#

what is caterpregnant_s

fleet cedar
#

Why is caterpregnant_s

solid gazelle
#

hi lana

neon bear
#

Hello sorry

deep mulch
#
ionic lake
fierce pendant
jade stone
#

But the AI images in it were just miserable to watch

deep mulch
#

@jade stone

ornate quiver
#

i think the actual content of the video is pretty good
although the ai graphics are pretty awful

jade stone
#

Never finished it the graphics were so bad

ornate quiver
#

nop

queen jasper
#

am i so cool

Object.defineProperty(Object.prototype, "getHorizontalAdHeight", {
    set: v => {},
    get: () => {
        return () => 0;
    }
});

Object.defineProperty(Object.prototype, "getVerticalAdWidth", {
    set: v => {},
    get: () => {
        return () => 0;
    }
});```

to stop
queen jasper
#

aside from it being on every object

#

is this better atleast

const props = ["getHorizontalAdHeight", "getVerticalAdWidth"];

props.forEach(prop => {
    Object.defineProperty(Object.prototype, prop, {
        set(v) {
            Object.defineProperty(this, prop, {
                value: () => 0,
                writable: true,
                configurable: true
            });
            delete Object.prototype[prop];
        },
        get() {
            return () => 0;
        },
        configurable: true
    });
});```
dense sand
#

This is insane

dense sand
#

its programming just not me the one whos programming

#

okay honestly one thing i really struggle with is implementing auth in spring

#

even AI cant spit it out correctly

#

the docs are shit

shrewd canopy
#

Its vibe-programming

#

We still need more ai in programming

deep mulch
#

@calm ruin get to work

calm ruin
jade stone
#

guhhhhhhhh rust so bad

calm ruin
#

yes it is bad

fierce pendant
#

@calm ruin why are you turkish

deep mulch
#

@jade stone

pearl parrot
#

you still are a coder because you manage the ai

#

just like we ai artists are artists because of managing the ai

pseudo sierra
#

the art of skinning a nina alive

fierce pendant
#

ubuntu is cisgender and heterosexual

austere idol
austere idol
fierce pendant
#

github owns my body

median root
#

I need the free github runners

#

if i get free compute they can take as much code as they want bro (its all horrible code anyways that will just ruin some vibe coders day)

lavish cloud
#

Why the fuck can I not make static properties in C++

shrewd canopy
#

average windows api

lavish cloud
#

a few small c++ crimes

ornate quiver
#

horror

fierce pendant
#

i have a sudden urge to switch to nixos but last time it didnt go well

#

and i currently dont have access to any other pc that isnt my laptop so if i cant boot into my laptop its broken until i get home

fierce pendant
#

okay

#

what do i use then

ornate quiver
#

idk use fedora or something

fierce pendant
#

i need like very good comfortabilitly

#

customizability*

#

or something

#

dik

#

idk

ornate quiver
#

oh I guess arch then

fierce pendant
#

games work badly on arch

ornate quiver
#

cachyos?

#

arch based

fierce pendant
#

i am on that right now

ornate quiver
#

what do you even need to customize

fierce pendant
#

everything i want unixporn to be proud of me

ornate quiver
#

how's it not customizable enough

fierce pendant
#

it is customizable but it gives you a lot from scratch that needs to be removed/edited

frosty obsidian
#

wait until you hear about gentoo or lfs

fierce pendant
#

building every executable from scratch is the stupidest idea i have ever heard in my life

frosty obsidian
#

its customization to the extreme

#

really i think plain arch is probably best

#

its gonna be more minimal than cachy

ornate quiver
#

and apple whatever optimizations cachyos uses

#

same drivers DE configs etc

frosty obsidian
#

also arch is fine for games from personal experience

fierce pendant
ornate quiver
#

apply*

solemn ravine
#

did someone say

jade stone
#

I like ot

fierce pendant
#

hall yaeh

jade stone
#

Pinguh will say my config is insane

fierce pendant
#

penger

noble iron
#

.

pseudo sierra
pseudo sierra
#

@pearl parrot weewoo