#Ars Musique
1178 messages · Page 2 of 2 (latest)
maybe ring-per-thread is better but i dont think anyones done that
which is what Go was built to run on
thread-per-core has been used in things like scylladb
oh yeah that makes a ton of sense
and theres also things for it in rust like glommio but obviously its not a very universal solution
and JS running on v8 will behave a lot like Go wrt async
goroutines are stackful coroutines while most rust coroutines are stackless
they have their own tradeoffs
(re: emoji response) well, plus sign for the Go part. i know ish about Rust atm.
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
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.
oh yeah also stackless uses a lot less memory
you can spawn millions of stackless coroutines
do not try the same with go
yeah no lol
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
i think that's what's been driving so many datacenters toward ARM farms. more space, sure, but less heat, less overall energy usage.
4545P is basically just 9950x
some servers just run 9950x nowadays
especially game servers because a lot of games are single core
that's bc the 9950x somehow outperforms the 4545P. i don't know wth happened there.
marketing?
arm is intriguing but for whatever reason, vps and dedi providers seem to be charging significantly more for significantly less lol
lower TDP im guessing
oh i can answer part of that: too much existing software isn't ARM friendly. so unless you're willing to write some glue code some where, you're gonna go x86.
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. 😂
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
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
i think my dad has an unused pi sitting around collecting dust lol
oh i have at least one doing the same lol
shouldve probably set up openwrt or something
pihole DNS runs great, even on the old Bs. not the old As though.
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
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.
makes sense
i use android so i get almost no ads even without mullvad
fennec is a nice browser that supports manifest v2 extensions like ublock origin and https://morphe.software/ for youtube
Download the official Morphe APK.
Created by former ReVanced contributors to patch YouTube, YouTube Music, and Reddit
with ad-blocking and custom features.
if i was more serious about privacy pipepipe would also be good for youtube
god
yup
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
i have AMP game server running on an HP elitedesk mini. it's nice.
ive actually never used a panel for game servers
i have 2 Minecraft servers, a Hytale server, Terraria, Factorio. all running on that HP.
https://github.com/itzg/docker-minecraft-server is awesome for minecraft
i'm almost 100 that AMP uses that, or a derivative, for their MC servers
AMP is almost 100% docker at this point
ive had a few game server providers tell me that i shouldnt be using docker, forgetting the fact that pterodactyl uses docker lmao
^ people who either don't grok how containers work, or didn't care to put the work in to learn because scoffing is easier
my one gripe with docker right now is that memory limits arent very accurate with multi mapping
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.
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
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.
i love memory vulnerabilties!
cpu mitigations bogging down my performance lol
im not disabling them
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 🤷
i have never used k8s, i dont quite understand what its for but im pretty sure im not enterprise enough
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.
yeah so that just sounds like docker compose to me
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
not theoretical BTW. this is Disney.
so basically compose with blue green deployment built in?
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
interesting
honestly also sounds close to something proxmox or xcp-ng could be used for
if you ever decide to tinker, i've found minikube to be a nice intro
orchestration tools are all, at some level, doing the same thing
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. 😛
heh
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. 😛
haha
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.
i need to do some art and translation strings work, and then the first thread for the Bandeau will be ready
@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
what was the mixin for?
theyre using it to track and render usages left on music discs dipped with some effect (something added by the mod)
all music discs get that?
anyways i dont have much time left today but net.neoforged.neoforge.client.event.RegisterItemDecorationsEvent seems like itd be helpful here
yep
but the expensive part is just the check that its a music disc
does that work via components?
probably does actually
because maybe checking if the component patch has the dip is probably a faster check than the tagcheck
but then you might leave max_damage components on emptied discs
since it's a double map check
compared to whatever nested stuff is being done with tags
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
probably changed midways?
all the mixins are written this way lol
the name i meant
also all the injects are targetting return for some reason
when most of them can target head
for not annotated, i guess missing the plugin that warns you about it
@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
possible misunderstanding of what Return stand for, as they want to change the return value?
potentially
or copy paste from the initial signature and it just works so don't touch it
for some reason it isnt warning me
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
Naming: a combination of refactoring and whimsy.
aye, the catch is: how to know that this ItemStack thing in my hand is a music disc that can receive the component, if that ItemStack has never had the component set on it.
but i can do that once ^
Do that check somewhere else?
That code gets run for any item stack
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 😂
how did you find this? curious if i can add something to my tooling to catch future nonsense
i was/am unsure whether neoforge (or anything else) was using the methods elsewhere, so out of an abundance of caution, i took the approach "let the original implementations and possible side effects that i don't see" do their thing, and inject afterward.
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.
not exactly a unit test but gametests should work
its a spark profile from a real server i was running, that part of the icicle graph came from ae2 due to how many items are moved by it
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.
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?
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.
🫡
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?
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.
hope there is a function that can quickly select specified albums
Thank you for the author's help and support
i can look into that
i'll give this one some thought too. i appreciate the feedback, thank you!
just checking in to say i haven't disappeared. just a rough week, about to become a rough month.
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
I'm here to fulfill my promise. This is a video made for this mod
【新生魔艺附属Ars Musique讲解-哔哩哔哩】 https://b23.tv/d84e1Qk
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
there is no such config option yet. but it can be added. i have a couple of bugs to squash first. realistically it's going to be another week before i can get back into modding. personal life "stuff". 😂 😭
its ok