#Ars Musique

1178 messages · Page 2 of 2 (latest)

tough vine
#

well but if you have a farm of ARMs...

abstract cove
#

maybe ring-per-thread is better but i dont think anyones done that

tough vine
abstract cove
#

thread-per-core has been used in things like scylladb

tough vine
#

oh yeah that makes a ton of sense

abstract cove
#

and theres also things for it in rust like glommio but obviously its not a very universal solution

tough vine
#

and JS running on v8 will behave a lot like Go wrt async

abstract cove
#

goroutines are stackful coroutines while most rust coroutines are stackless

#

they have their own tradeoffs

tough vine
abstract cove
#

at the moment stackful seems better but in theory stackless is more optimal

#

the main thing is that you can pause basically anywhere with stackful, but the context switching is more expensive

tough vine
#

i think at that point, it really comes down to your architecture, and which approach is going to give you a) the best speed, b) the least energy usage, c) some middle state you define

#

especially when things become datacenter scale. electricty usage for processors and cooling is huge.

abstract cove
#

oh yeah also stackless uses a lot less memory

#

you can spawn millions of stackless coroutines

#

do not try the same with go

tough vine
#

yeah no lol

abstract cove
#

its honestly kinda insane to me how much electricity server grade cpus use

#

it doesnt seem particularly efficient

#

but i guess it happens when things are that dense

#

but newer EPYCs are just rebadged ryzens anyways

tough vine
#

i think that's what's been driving so many datacenters toward ARM farms. more space, sure, but less heat, less overall energy usage.

abstract cove
#

4545P is basically just 9950x

#

some servers just run 9950x nowadays

#

especially game servers because a lot of games are single core

tough vine
#

that's bc the 9950x somehow outperforms the 4545P. i don't know wth happened there.

#

marketing?

abstract cove
abstract cove
tough vine
#

what confounds me is that there are still windows hosting services in 2026. i thought we learned that lesson at least 3 times over the past 2 decades. 😂

abstract cove
#

i can sorta see that for VPSes because theyd probably need to figure out their own virtualization stack, but bare metal? kinda insane no?

#

like hetzner is charging some insane prices on their arm lineup

tough vine
#

i would not be surprised to learn there is a direct relationship between that price and the ARM experts' salaries

#

i've got a couple raspberry pis on my home network, so i at least have that to keep some ARM in my life

abstract cove
#

i think my dad has an unused pi sitting around collecting dust lol

tough vine
#

oh i have at least one doing the same lol

abstract cove
#

shouldve probably set up openwrt or something

tough vine
#

pihole DNS runs great, even on the old Bs. not the old As though.

abstract cove
#

i pay for mullvad so pihole isnt much of a concern for me

#

if you pay for tailscale you also get mullvad for free now but i dont understand tailscale

#

and even if i did id probably use headscale instead because i dont need more subscriptions

tough vine
#

oof subscription stuff is crazy too

#

re: pihole, what i like most about it is it blocks ad traffic on my entire home network. a good 1/3 of my home traffic is just TVs and phones trying to load ads.

abstract cove
#

makes sense

#

i use android so i get almost no ads even without mullvad

#

if i was more serious about privacy pipepipe would also be good for youtube

tough vine
#

my current network stats

#

that's 6 people and their devices

abstract cove
#

god

tough vine
#

yup

abstract cove
#

we are in theory getting 2 minipcs soon, probably gonna set up truenas, proxmox, or xcp-ng on them

#

havent decided yet

#

could also use unraid if i felt like paying but i dont

tough vine
#

i have AMP game server running on an HP elitedesk mini. it's nice.

abstract cove
#

ive actually never used a panel for game servers

tough vine
#

i have 2 Minecraft servers, a Hytale server, Terraria, Factorio. all running on that HP.

abstract cove
tough vine
#

i'm almost 100 that AMP uses that, or a derivative, for their MC servers

#

AMP is almost 100% docker at this point

abstract cove
#

ive had a few game server providers tell me that i shouldnt be using docker, forgetting the fact that pterodactyl uses docker lmao

tough vine
#

^ people who either don't grok how containers work, or didn't care to put the work in to learn because scoffing is easier

abstract cove
#

my one gripe with docker right now is that memory limits arent very accurate with multi mapping

tough vine
#

i helped lead the effort for the VA to adopt containers throughout their public web infrastructure. the amount of willful ignorance i got from otherwise brilliant people was astonishing.

abstract cove
#

which is something ZGC does

#

at least on java 21

#

youll see it report double the actual ram usage

#

which means i can run a jar with 26gb on my 32gb host but not a 16gb jar on docker

#

obviously i can just double the memory limit

#

but i wish i didnt have to

tough vine
#

IIRC, docker and pals used to be more flexible with memory, in the wee days, but a high profile security bug involving container X reading a stale value from container Y led to the current situation.

abstract cove
#

i love memory vulnerabilties!

#

cpu mitigations bogging down my performance lol

#

im not disabling them

tough vine
#

yeah, so now, while technically containers don't require memory reservation...OWASP and pals recommend that orchestrators like Kubernetes do exactly that.

#

i know, i know, Docker containers are LXC based and that's not supposed to be a problem. but it keeps bubbling up in actual pentests so 🤷

abstract cove
#

i have never used k8s, i dont quite understand what its for but im pretty sure im not enterprise enough

tough vine
#

the best way i can describe using it, does no justice to how it actually works. k8s feels like a DSL for managing container orchestration. imagine you have a web app that requires say nginx, a JVM/app server, a database, and some networking between them. in k8s, each of those things is a container itself (except the networking), and those containers are grouped into pods. k8s orchestrates the deployment of pods. that's the first thing folks have to learn: we don't orchestrate containers, we orchestrate their logical groupings.

abstract cove
#

yeah so that just sounds like docker compose to me

tough vine
#

then the real reason folks use it is the sheer power: have 3000 pods that all need security updates, app code updates, etc? a simple k8s command will deploy those updates, in a rolling manner, with zero visible downtime.

#

and that you cannot do with docker compose

#

i say as a longtime compose fan and user

tough vine
abstract cove
#

so basically compose with blue green deployment built in?

tough vine
#

and the networking is way more flexible than compose

#

but yeah, similar spirit shared betw the tools

#

k8s' compose equivalent is called Helm

#

and you can import a compose file to start a k8s+Helm project

abstract cove
#

interesting

#

honestly also sounds close to something proxmox or xcp-ng could be used for

tough vine
#

if you ever decide to tinker, i've found minikube to be a nice intro

tough vine
#

i have a friend who does all this with handrolled tools and a brilliant mind for virtual networking. i'd rather be writing Minecraft mods. 😛

abstract cove
#

heh

tough vine
#

speaking of which...i've got a thread slot, and a thread that does nothing. i eventually want to define a process for upgrading the bandeau, and therefore the slot level. but for now, i think i can start tinkering with base effects...

#

that was fun. i like talking about tech stuff. i'm redirecting myself so that i can get some code pushed. 😛

abstract cove
#

haha

tough vine
#

niiiiice. i just added the test to ensure that instant potion effects aren't extended, and it passed. there's only that 1 place i currently touch effect durations.

tough vine
#

i need to do some art and translation strings work, and then the first thread for the Bandeau will be ready

abstract cove
#

@tough vine musique is causing some perf issues due to the getMaxDamage mixin you have

#

ill try to see if i can find a different solution

#

most likely mixin into the rendering rather than the actual damage

analog crescent
#

what was the mixin for?

abstract cove
analog crescent
#

all music discs get that?

abstract cove
#

anyways i dont have much time left today but net.neoforged.neoforge.client.event.RegisterItemDecorationsEvent seems like itd be helpful here

abstract cove
#

but the expensive part is just the check that its a music disc

analog crescent
#

does that work via components?

abstract cove
#

probably does actually

analog crescent
#

because maybe checking if the component patch has the dip is probably a faster check than the tagcheck

abstract cove
#

but then you might leave max_damage components on emptied discs

analog crescent
#

since it's a double map check

#

compared to whatever nested stuff is being done with tags

abstract cove
#

on another note, the mixins are very weirdly written

#

the name suggests its an interface

#

but its an abstract class

#

and then theres a bunch of floating methods

#

not annotated with @Unique or prefixed

analog crescent
#

probably changed midways?

abstract cove
#

all the mixins are written this way lol

analog crescent
#

the name i meant

abstract cove
#

also all the injects are targetting return for some reason

#

when most of them can target head

analog crescent
#

for not annotated, i guess missing the plugin that warns you about it

abstract cove
#
    @Inject(method = "getDamageValue", at = @At("RETURN"), cancellable = true)
    private void getDamageValueMixin (CallbackInfoReturnable<Integer> ci)
    {
        if (isMusicDisc()) ci.setReturnValue(normalizeDamage(getDamageValueMixin()));
    }
#

getDamageValue has no side effects to begin with

#

so you can just skip it at HEAD

#

in fact every single inject is at RETURN

analog crescent
#

possible misunderstanding of what Return stand for, as they want to change the return value?

abstract cove
#

potentially

analog crescent
#

or copy paste from the initial signature and it just works so don't touch it

abstract cove
#

anyways mixins dont have to be abstract

#

and the usual naming is <TargetedClassName>Mixin

#

or <TargetClassName>Accessor for accessors

#

not that its a critical failure but its just not the norm lol

tough vine
#

Naming: a combination of refactoring and whimsy.

tough vine
#

but i can do that once ^

analog crescent
#

Do that check somewhere else?

tough vine
#

yup

#

don't need to do it internally, and cause that perf havoc.

analog crescent
#

That code gets run for any item stack

tough vine
#

again, i truly appreciate the feedback y'all give

#

100% that code was a "does it blend?" and then it "worked" and so i never revisited the approach

#

hypothesis > prototype > SHIP IT 😂

tough vine
tough vine
#

i have yet to find a fast/clean way to unit test mixins.

#

without them, if i want to test mixin changes, it takes me 5+ minutes for the compile + run + manual test loop. that's at best, 12 changes that can be tested per hour.

abstract cove
abstract cove
tough vine
#

oh nice, spark can be run as an agent. i might add that to my testing tasks in gradle. maybe it can catch some issues early.

inner frigate
#

I remember something. When playing records while wearing shapers focus and summon focal, there doesn't seem to be any special effect. Do you want to add a special effect? For example, Discout?

#

What is the effect of Bardic inspiration?

tough vine
#

Bardic Inspiration is basically an amplified Hero Of The Village effect. edit: here is the description i wrote for the readme:

Bardic Inspiration is a status effect introduced by Ars Musique. It provides Hero Of The Village discounts, and amplifies Hero Of The Village if it is already applied. The effect is applied when music is playing.

#

Shapers/Summoners: i'm open to suggestions. i omitted them because i didn't have a good lore explanation for their effects.

inner frigate
#

🫡

#

I suggest the author add a new effect, a completely self-designed effect

#

I still haven't figured out the effect of this shuffle. Is it refreshing the records in the list?

tough vine
#

shuffle + repeat all will make it choose the next song randomly. as i type this message, i am realizing that i should probably make Shuffle a state of Repeat, versus being its own separate setting.

inner frigate
#

hope there is a function that can quickly select specified albums

#

Thank you for the author's help and support

tough vine
tough vine
#

just checking in to say i haven't disappeared. just a rough week, about to become a rough month.

inner frigate
#

Report a bug: After covering the effect of the record with the effect of the potion, pour the potion back, but it cannot restore the original effect of the record

#

Playing this album at this time will only provide a bardic inspiration effect

inner frigate
#

I'm here to fulfill my promise. This is a video made for this mod

primal pasture
#

Not sure if I'm missing something in the config, but is there a way to set certain debuffs to be able to affect players instead of just mobs?
The reason being that I want silencing to be able to affect players. Pic somewhat related

tough vine
inner frigate
#

its ok