#general

3141 messages Β· Page 1917 of 4

haughty bear
#

..amazing

#

ICU takes up just under 20mb

#

and I import a single one of its classes in my entire project

knotty oasis
#

20megs huh

haughty bear
#

what is minimizejar?

knotty oasis
#

its a maven option

haughty bear
#

any equivalent for gradle?

knotty oasis
#

it omits classes during shading that arent imported

#

dunno

#

can you send the -all jar?

#

then I can see with winzip or winrar or whatever whats taking up the majority of space

haughty bear
#

using minimize gets me down to

knotty oasis
#

oof.

haughty bear
#
tasks {
    shadowJar {
        minimize()

        listOf(
            "com.ibm.icu"
        ).forEach { relocate(it, "${rootProject.group}.${rootProject.name}.lib.$it") }
    }
haughty bear
knotty oasis
#

oh I forgot I have nitro

#

I like to upload videos lol

haughty bear
#

actually it might be due to kotlin stdlib

knotty oasis
#

I thought kotlin was optional

#

that would be far more of an issue

haughty bear
#

no, the shading just has kotlin in it, which is inflating the file size

knotty oasis
#

lmao

#

sounds like someone forgot to put the right dependency scope

haughty bear
#

hahaha

#

unzipped

knotty oasis
#

run windirstat on it, or a linux equiv

haughty bear
#

40 megs

#

I don't know what windirstat is

untold meadow
#

did you not consider making a nice dsl so the syntax is like kinda readable

knotty oasis
#

looks like this

#

creates bubbles of folders

#

then you can more clearly see how the size is used

untold meadow
#

icu is massive tbf

haughty bear
#

it is, it has a lot of data from cldr or whatever it's called

#

also interstingly, in a file manager icu shows as 26.4 mb

little frost
#

ncdu

haughty bear
knotty oasis
#

probably easier

little frost
knotty oasis
#

I dont have a drop place running somewhere you can pop it in tho

#

many just use (free) dropbox

haughty bear
#

dropbox

#

can i add you so i can dm?

knotty oasis
#

sure

twin lagoon
#

average icu moment

knotty oasis
#

dictionary?

haughty bear
#

so it's all the data

knotty oasis
#

idk wtf this is

haughty bear
#

timezone info

untold meadow
#

i told you icu was big

knotty oasis
#

Resource data used by classes in com.ibm.text.

twin lagoon
#

icu is the one thing we want to get rid of because of how stupidly big it is

#

and you can't minimize it either

haughty bear
#

is there any alternative to it?

untold meadow
#

no

haughty bear
#

my main thing is handling plurals

knotty oasis
#

icu itself uncompressed is indeed already 26mb

twin lagoon
#

needs more miniphrase

#

kezz fix it

untold meadow
#

choice format, like i also said earlier lmao

knotty oasis
#

22.4mb is pure data files.

#

lol

haughty bear
#

lol

#

I'd use library loader for loading icu in that case

knotty oasis
#

or downloader

haughty bear
#

sure

knotty oasis
#

but why isnt any of this an optional component?

haughty bear
#

because ICU

untold meadow
#

or... choiceformat

knotty oasis
haughty bear
#

does choiceformat support plurals per locale?

untold meadow
#

that's like....... the entire point of it lol

knotty oasis
#

and just split allll the data-using shit in a separate module

untold meadow
#

fork icu

untold meadow
#

you are kidding

#

average berger idea

knotty oasis
#

if all I want is locale, simple select and plural, I dont need all this timezone stuff

haughty bear
#

you kind of do

#

cause the time format also uses tz info

untold meadow
#

i feel like the guy in the brick wall meme

haughty bear
#

and currencies

knotty oasis
#

I dont use those

limber knotBOT
#

the timezone might impact the plurals though

#

runs

knotty oasis
#

java has time format too

twin lagoon
#

everyday we stray further from society

haughty bear
#

languages are like insanely complex

#

I'd rather just use icu to handle all of it, even if it's massive

knotty oasis
#

but for <my> users, the majority just wont care enough that theyd want to download a 30mb jar for it lol

limber knotBOT
#

plurals might be different depending on the time of day a word is used in thinksmart

haughty bear
#

like my earlier example about russian, where [numbers ending in] 1's plurals are different to 2/3/4/ different to 5/...

untold meadow
#

i...

#

i would read the javadocs

knotty oasis
#

heck, have select that supports regex.

haughty bear
#

ah, but it's meant to apply to numbers that end in a specific number

knotty oasis
#

regex.

haughty bear
#

so 2's plural also applies to 12, 102, 1002 etc

untold meadow
#

fr man anyone else uhhh do a bit of not reading javadocs

knotty oasis
#

.*[234]:

untold meadow
#

like at all

limber knotBOT
#

it is also different in every language

haughty bear
#

A ChoiceFormat allows you to attach a format to a range of numbers. It is generally used in a MessageFormat for handling plurals. The choice is specified with an ascending list of doubles, where each item specifies a half-open interval up to the next item:

 X matches j if and only if limit[j] <= X < limit[j+1]

can you make this apply to the last digit though?

limber knotBOT
#

πŸ‘€

haughty bear
#

exactly, I'd like to just use icu

untold meadow
#

i have to leave this channel for my sanity now

#

good luck everyone

limber knotBOT
#

using a 30MB library vs. compiling your own 30MB of data thonk

haughty bear
#

e.g. ICU has, for english, only the one plural case treated specially. all other numbers are filed under other. does choice format handle this?

knotty oasis
#

or, just downloading the meta files on demand?

#

why include all those currencies that nobody will even use

haughty bear
#

good luck hacking it into icu I suppose

knotty oasis
#

done worse

haughty bear
#

how big of a deal is 30mb realistically?

knotty oasis
#

my users already whine about a jar being 5mb

haughty bear
#

lol

limber knotBOT
#

30mb is literally nothing

knotty oasis
#

and demand a "lightweight" version

#

30mb would kill them

haughty bear
#

hide it behind a downloader/library loader/anything

limber knotBOT
#

just download it at runtime and they wont notice thinksmart

knotty oasis
#

litterally

twin lagoon
#

in the grand scheme of things, 30mb is nothing if you use the library loader or something else

haughty bear
#

I would download it at runtime

limber knotBOT
#

ship a 5kb big loader thinksmart

knotty oasis
twin lagoon
#

shading it into the jar however

#

quite annoying

#

slows down builds since shadowjar is slow as shit

haughty bear
#

I don't see the need to fork icu or strip out unused data or anything, if you can use library loader to load an extra 20mb of data

twin lagoon
#

spigot has a low plugin size limit too

knotty oasis
#

but you could hook the class loader, detect when some data file is loaded, and just download it then

#

then you dont even have to fork the project

haughty bear
#

I think icu loads them all on init

knotty oasis
#

whaaat

haughty bear
#

that's my guess anyway

knotty oasis
#

but the memory

haughty bear
#

I can run a benchmark

#

(if I knew how)

knotty oasis
#

dont say its filling memory with 100meg of languages

haughty bear
#

it's 20 megs

#

seriously 20 mb is like nothing

knotty oasis
#

parsed, it always becomes larger.

#

the files are obviously compressed already, otherwise the compression rate of the jar would be much more

knotty oasis
haughty bear
#

therefore I suggest the library loader

knotty oasis
#

I have no idea why there is such a vocal minority deciding that large jar=bad

haughty bear
#

and users won't notice an extra 100mb used - if it is that large

knotty oasis
#

true.

#

or, only shade the essential bits, and soft-disable the rest if there is no lib loader or it fails to download it or w/e

#

I seriously doubt even 10% of my users would notice when those data files are absent

#

maybe some text is wonky in their language, nothing worse than theyre already used to in other plugins written by english-speakers

#

anyway, choiceformat?

#

is that the conditional string thing I saw before?

haughty bear
#

yes, it chooses the string based on a number passed

#

I've had a look into it before, I really can't figure out how you're meant to just throw a locale in and expect plurals to come out fine

knotty oasis
#

if it supports regex anything is possible, seriously

#

you have used regex before?

#

theres a whole community dedicated to making giant-ass matchers

haughty bear
#

ofc, but imagine having to use regex for every single template in a translation operation

#

that's like, slow

knotty oasis
#

eh, mostly copy-paste once you got the basics

#

or like I said, templates

haughty bear
#

slow processing

knotty oasis
#

its a sacrifice

haughty bear
#

that I don't need, because I can just not use regex

knotty oasis
#

but I got to look at who uses my plugins, and majority are english, german, french and chinese

#

chinese might require some complex stuff

haughty bear
#

naively speaking, I only need to check the last digit of a number

knotty oasis
#

but otherwise, I just dont at the moment need to support very exotic things

haughty bear
#

I don't know how that translates over to other languages though

knotty oasis
#

oh and dutch

#

ofc

haughty bear
#

regardless, I'd stick to industry standards like icu, even if it's stupidly bloated

void void
knotty oasis
#

hell yeahrr

#

just one long file of regex replace operations

#

who needs google translate

#

if I were to fork icu and make it fetch the meta files lazily, what should I call it?

#

lazyicu probably

void void
#

LazyICπŸ₯·

haughty bear
#

i wonder how ICU actually works

knotty oasis
#

its also quite likely that those files have a source so I dont even have to host it myself

#

timezones and stuff especially

haughty bear
knotty oasis
#

boom, stays up-to-date

haughty bear
#

I'm not smart enough to figure out how cldr or icu actually work

knotty oasis
#

@haughty bear can you see what happens if you were to delete the data directory and then try to use icu?

#

specifically this one

haughty bear
#

I actually don't know how to do that

knotty oasis
#

open in 7zip

haughty bear
#

I would usually use ij test runner, but I can't delete the data folder from there

knotty oasis
#

or similar unzupper on linux

#

jar is just a zip archive

haughty bear
#

I can delete the data folder, but I have nothing to run

knotty oasis
#

oh

#

ah yes, I need a special arraylist so I shade in kotlin

haughty bear
#

I set up shading to see how big ICU was. I'm not actually gonna use the shading plugin in the lib

knotty oasis
#

given how many pretty common libs it depends on, best to use the library loader if you use icu at all, yeah

#

even sponge configurate is in there

#

and ofc GeantryRef for that good ol' TypeToken

#

isnt this stuff part of the JDK?

haughty bear
#

don't ask me why it's shaded in there. It probably is

knotty oasis
#

well its mixed in with some icu stuff as well, so I guess its something more special

haughty bear
#

also minimized the jar doesn't even seem to work lol

knotty oasis
#

damn they really did just re-implement the entirety of java's date util lib

#

tho tbf, javas lib is pretty shit

haughty bear
#

here you go

knotty oasis
#

alright then it does use them

#

one more test, more subtle

#

delete just this one file

haughty bear
#

so.res?

knotty oasis
#

if its actually loading all those files into memory Id be kinda shocked

#

yee

#

then agaaaaain it might just be doing some sort of package list dir in there

haughty bear
#

works fine

#

note the main code is


class Main {
    companion object {
        @JvmStatic
        fun main(args: Array<String>) {
            val i18n = StringI18N(Locale.US)
            i18n.register(Locale.US,
                "test" to "Test: {num, number}")
            i18n["test", Args(
                "num" to {1234.5}
            )]
        }
    }
}
knotty oasis
#

and this file?

#

its the biggest in the jar

haughty bear
#

full path?

knotty oasis
#

sorry

haughty bear
#

works fine

#

and is now 19M as opposed to 20

knotty oasis
#

definitely might be worth pursueing a lazy loader then

haughty bear
#

if you want to go for that, sure. I might have some sort of interface around icu so someone can use a "full" or your "lazy" impl

#

do you know how to check how much memory a java app uses over its lifetime?

knotty oasis
#

yeah idea would be that its interchangable

#

theres probably a few places where it urlloads shit, only that needs to be changed to call some baked function that downloads/caches the resources in /tmp or whatever.

haughty bear
#

I'd be wary of doing something like that on main thread tho

#

since you can't defer it to another thread - the result needs to be returned

knotty oasis
#

yeah, its risky

#

buuut since this sort of loading usually occurs during parsing, so on startup of the plugin

#

its probably fine

haughty bear
#

I reckon if it's as simple as replacing a url load, then that sounds fine

knotty oasis
#

needs a sane timeoutI guess

haughty bear
#

as the actual I18N.get call is made

knotty oasis
#

theres no template file it parses up-front?

haughty bear
#

I do partially do that, with the scopes

#

but ICU doesn't let me template it

#

you can only turn a string and some args, into a formatted string - there's no option to parse what tokens it needs

knotty oasis
#

alsooo I should say, I may have all these plans to lazyicu it, but I have no time tbh

haughty bear
#

(at least none I've found)

knotty oasis
#

but Ill put it somewhere if I ever have nothing to do (for some reason)

haughty bear
#

I'm sticking with a full icu impl

knotty oasis
#

easier would be just to straight up lazy-load the entirety of icu as a library

haughty bear
#

also, you mentioned including other translations in the current translation - how do you want that to be handled?

knotty oasis
#

still want to see if I can implement a fallback system for the 'new' library loader system for older mc versions

#

then I can use libraries like normal, and still have it work on ancient forge hybrids

#

and its a stealthy means to sneak icu without people noticing the size.

haughty bear
#
item.my_wand: "My Wand ({charge}%)"

message.get_wand: "You got a new wand! [ something to replace with `item.my_wand` for arg `wand` here ]"
knotty oasis
#

{item.my_wand({charge})}?

haughty bear
#

assuming from an api standpoint you'd want something like

val wand = Wand("my_wand", 50) // Wand implements Localizable or something
i18n["message.get_wand", Args(
  "wand" to {wand})]

how should args be handled?

knotty oasis
#

wand should probably expose all the different labels/values it has

#

I still feel like you should then have the full intention in the localization itself

#

but dunno

#

when you pass "wand", what youre really doing is passing a dict of charge: 23, power: 12, etc

haughty bear
#

so far:

        val i18n = StringI18N(Locale.US)
        i18n.register(Locale.US,
            "item.my_wand" to """
                My Wand
                 > {charge}%
            """.trimIndent(),
            "message.get_wand" to "You got a new wand: @wand[{_}][\n]")
        i18n["message.get_wand", Args(
            "wand" to {MultiArgs(i18n.safe("item.my_wand", Args("charge" to {15})).map { {it} })} // this gets replaced with just the `wand` object, cause it's a Localizable
        )]?.forEach { println(it) }
knotty oasis
#

idk really, seems kinda verbose for code

#

why cant you make it so passing a wand translates to passing multiple properties instead?

haughty bear
#

that's what the comment indicates

knotty oasis
#

then you can use {charge} inside message.get_wand

haughty bear
#

it would be "wand" to {wand}

#
val wand = Wand("my_wand", 15) // implements Localizable
i18n["message.get_wand", Args(
            "wand" to {wand}
        )]?.forEach { println(it) }
knotty oasis
#

what I mean is, isnt it up to the Wand class to declare that it passes "charge"?

#

keep in mind, I barely know kotlin lol

haughty bear
#

wand would localize itself:

class Wand(val id: String, val charge: Int): Localizable<...> {
  override fun localize(i18n: I18N<List<Component>>, locale: Locale) =
    i18n.safe("item.$id", Args("charge" to {charge}))
knotty oasis
#

ahh okay

haughty bear
#

the .safe call just ensures it's non null - if it's null, it would return a component of item.my_wand

knotty oasis
#

I understand now

haughty bear
#

I still don't quite like the MultiArgs/Args syntax. I'd use lists, but that sounds type-unsafe

knotty oasis
#

and I guess if you want to pass things like Player, as you cant modify it, you got to wrap it in something that has the localize()

haughty bear
#

yes

#

maybe I can make an extension function-type thing, to let you localize it, but ehh

junior moon
#

can i ask something? πŸ‘‰ πŸ‘ˆ

void void
#

does fedora have any advantages compared to pop os

junior moon
#

Hi, im having issues with my server.jar. It works fine at startup and most of the time.
But i use it for hosting a server with friends and i have to leave my pc started all day long, i turn off the monitors because im not at home and leave the pc started.
But when i come back after some hours and turn on the monitor the server.jar crashes and dont save the world. Its normal? Any solution?

true canyon
#

Are you sure you're just turning on a monitor, and not waking it from sleep

junior moon
#

it could be too

#

But if its sleeping it shouldnt be able to run a server

#

or its not like that?

magic river
#

Man, it's a whole thing to get an Azure quota increase when you aren't in charge of the Azure account

#

My normal contact is out of office because he had to go out of state to move all the stuff from one warehouse to another warehouse so apparently instead we've bumped this up to the CIO, fun

#

Azure is normally an "IT" thing in our company, this project is a special snowflake

still sorrel
#

ok fuck my balanced cable did not arrive after a month

#

time to DIY it

#

scuffed af

#

but costs 20 euros

void void
#

this doesn't look hard to make

magic river
#

DIY'ing one of those is non-trivial

still sorrel
#

normally you'd buy the ends and solder it

#

but I suck at soldering

magic river
#

You can make a shitty one with some resistors

#

No no, you can't just join the two together, you'll backfeed

still sorrel
#

?

magic river
#

I had the same thought like 6 months ago in here, went on a whole journey

still sorrel
#

if I wire everything up properly it should work, right?

void void
#

you need to find out how to wire 3.5mm jacks first

#

because shit is not as simple as you might think

still sorrel
#

why would it not be easy

magic river
#

Is this a splitter or a mixer?

void void
#

if there actually is such, you can avoid backfeed by using diodes

magic river
#

For a splitter I think you can just get away with a 10k resistor?

#

Or potentially with just nothing but you risk breaking things?

still sorrel
#

from left to right its ground, right, left

magic river
#

Oh, you're breaking out the left and right channels

still sorrel
#

yeah

#

need 4.4mm to dual 3.5mm

#

using right and left depending which side of the dual 3.5 it is as - or +

magic river
#

Are your outputs stereo?

#

If so this gets complicated again

still sorrel
#

I will have stereo

void void
#

ok shit is real

magic river
#

Like if you have two stereo speakers with a headphone jack on them and want to send only left to one and only right to the other, the straightforward way to do that will only turn on half the speakers in each one

still sorrel
#

I mean I should not need ground for the 3.5mm end

#

my headphones accept balanced input

void void
#

never did grounding in my entire life of doing electrical stuff

#

even high voltage

magic river
#

If you don't do proper grounding on audio stuff you get noise

still sorrel
#

you dont need grounding with balanced

void void
#

while grounding is something good sometimes its really bad

still sorrel
#

do you even know how balanced works

true canyon
still sorrel
#

Balanced audio works on the principle that two identical signals which are opposite polarities (often erroneously called "out of phase") will cancel each other out. The cables used in such systems are designed to carry two versions of the signal and manipulate the polarities of these signals to eliminate noise.

vernal moth
#

Why did I never listen to lex Friedman's podcasts before? Been consuming one per day for the past days, today was Jim Keller, they are really amazing

still sorrel
#

I mean idk why I also have ground in there

#

should get a different cable tbh

magic river
#

You started with balanced audio but you're breaking it out, no?

still sorrel
#

I start with balanced stereo

magic river
#

I dunno, you probably know more about audio than I do

#

I just learned in February (I'm time blind, thought it was longer) that splitters and mixers are way more complicated than I thought

#

Even if you don't want to do any kind of level adjustment

still sorrel
#

I mean nothing is being split

#

I just wire up left to l- and l+ and right to r+ and r-

magic river
#

Yeah, so long as what you're feeding it to is okay with a mono input that seems fine

still sorrel
#

you feed stereo into it

#

there are left and right channels

magic river
#

Oh, I guess I'm looking at this backwards

still sorrel
#

4.4mm goes into the amp

magic river
#

I thought audio was coming out of this plug, not going in to it

wet storm
still sorrel
#

bigger amps have 5 pin xlr

#

but smaller amps have 4.4mm

#

same idea, different connection

magic river
#

Spring WebFlux is basically the NIO version of Spring, no?

#

Instead of thread-per-connection you do non-blocking streams

wet storm
#

yes, it uses netty instead of tomcat and other things, but it also contains rich reactive API around RxJava and Project Reactor

magic river
#

I suspect Project Loom is about to mess up that whole ecosystem

wet storm
#

yeah, it will

true canyon
#

All I know about audio is ground loops suck

magic river
#

Like, event streams still have the benefit of somewhat automatic backpressure and such but they'll probably go back to thread-per-connection

#

It just won't be real threads

worn ember
wet storm
# magic river It just won't be real threads

but, reactive programming I think will stay, but imo they will rework it all to a new virtual threads ecosystem in impl details, tbh I think it will adapt to the project loom rather than it will mess up it all

magic river
#

I wonder if Project Loom is going to make the old servlet API just scale 100x better

#

Or if they're going to have to rework things still

#

Like, presumably if they do it right you could still use JDBC and all

#

They already have the old school Java 1.1 networking API wired up so it uses NIO under the hood when using virtual threads

#

And that scales to millions of connections

#

The only things I can find about servlets and loom are from 2020 when loom didn't handle synchronized blocks yet and the benchmarks were set up to get the same requests per second out of it, the goal was to measure the memory and CPU usage to hit a certain level of performance rather than finding their limits

wet storm
#

I am confused, what is Kafka and when I should use it? Like, I know that it is a thread messaging library based on batches and many other things, but when I look into its docs I feel like reading rocket science book, I know that people compare kafka with lmax disruptor library which I know pretty well, because they both thread messaging libs but have a bit different approaches. But kafka feels like something large which you should use only for large systems...

junior moon
magic river
#

JVM and/or something in the server or a plugin might not react well to a sudden time change

#

Or something in the suspend/resume cycle corrupts memory

crystal lilyBOT
#

To download old versions of Paper, click here ➑️ papermc.io/legacy ⬅️ and fill out the questions. Note that old versions are completely unsupported and contain numerous bugs/exploits.

vernal moth
#

Like I feel that just makes my code more complex and I don't see the gains

vernal moth
limber knotBOT
#

rabbit also support mqtt πŸ‘€

magic river
#

MQTT is kind of garbage

#

We use it a bunch at work, it's basically the simplest thing you can make and call a pubsub message queue

#

Except it's not, that would be ZeroMQ, MQTT both doesn't do much and has a lot of warts due to legacy

limber knotBOT
#

right tool for the task and whatnot Β―_(ツ)_/Β―

#

as long as you can publish and subscribe it's a pubsub thinksmart

vernal moth
#

We have a Kafka cluster at work now and do the integration architects want to solve everything with it now

#

And am like, no, fuck off, I use the right tool for the job, and I decide what's right for my job

#

Am not over engineering a simple rest service

wet storm
#

There is a bunch of web, (or enterprise or whatever are them?) things which I know a name and maybe watched some speaker at some java/scala conference talking about it, but haven't actually ever touched, like apache camel, zookeeper, apache spark, akka actors, ZIO, ZeroMQ and all other ocean of despair, I should prob don't care about em until I meet them, right?

vernal moth
#

Zookeeper I didn't fully understand, but you need it to run Kafka

#

Akka and zio is stupid scala stuff, am burned on that from sponge's ore

#

Generally, I read one or two things about stuff like that, just so that I know that that tool exists so that if I have a job I know that I could try that tool

#

But mostly, when I have a problem, I just google to see how other people have solved it and try out what I like

wet storm
wide chasm
#

Scala is not a language I'd personally ever pick, but it's an interesting language with interesting concepts, so there's definitely merit in using it.

magic river
#

TIL people still use coldfusion (or at least CFML)

#

Someone messing with Project Loom and Lucee (CFML for Java) way saying they get like 175,000 requests per second by making it use virtual threads, they didn't give any before numbers but I've never heard of a thread-per-connection Java server getting numbers anywhere close to that

#

More like 10,000 per second

#

When I run it more times, I get results showing the virtual threads with all my other optimizations have made Lucee threading anywhere from 400% to 3500% faster.

vernal moth
#

Meanwhile am happy if I get 50000 request per day

magic river
#

Their virtual thread numbers were 15,000 to 175,000 requests per second depending on how many concurrent requests they were hitting it with so that means with native threads it was probably ~5,000 requests per second

vernal moth
#

It's like, why should I care about any of this if I am so many orders of magnitude lower in demand

magic river
#

Ah, later they give benchmark numbers for stock lucee, 10,000 concurrent connections failed entirely, same with 5,000

#

They got 1,880 RPS with 2000 concurrent and 30,000 RPS with 10 concurrent

#

30,000 is still crazy for a thread-per-connection model

#

Then again I suppose the C10K problem was 20 years ago, we have much beefier CPUs, lots more RAM, and better kernels

vernal moth
#

I will be only profiting from loom if undertow chooses to adopt it without changing API, lol

#

Or well, spring can adopt a new undertow API but I don't wanna touch my shit

#

Sadly it seems loom will not be ready for spring 6, which seems to be quite a major release

#

Spring 6 seems to be focused on answering quarkus instead

wet storm
#

wait. how. I feel like Spring 5 was released yesterday

vernal moth
#

This year is the first without a new major I think

magic river
#

?

vernal moth
#

Spring normally releases anually, right?

magic river
#
  • 1.0 - 2004
  • 2.0 - 2006
  • 3.0 - 2009
  • 4.0 - 2013
  • 5.0 - 2017
vernal moth
#

Oh lol

#

Where did I read this shit then

magic river
#

I guess someone tried to make a wiki page for this exploit and shoving this sentence on the bottom of the spring page was the compromise

vernal moth
#

Lol

warm anchor
void void
#

I have a better rat somewhere, one sec

warm anchor
#

I will be eagerly waiting here

wet storm
#

same

void void
wet storm
#

wtf monster

full rune
vernal moth
#

Did anybody actually care about spring 4shell?

warm anchor
vernal moth
#

Like, who deploys spring as a war?

magic river
#

Is that an albino possum someone is trying to make look like a rat?

static badge
#

not a rat

warm anchor
#

I know I can always trust leaf for my rat knowledge

magic river
warm anchor
#

I am afraid your entry has been disqualified for not being a rat @void void

vernal moth
#

I wrote an app in 2018 that I already consider legacy and will majorly refactor later this year, lol

void void
magic river
#

Last place I worked had a Spring app uses XML configuration for wiring up the DI and such, deployed on an IBM WebSphere server

#

I worked there in 2017 so...

vernal moth
#

Heh I deployed spring to websphere before

#

Luckily we migrated that to boot years ago

#

Was the first spring Project at work and they required people to use websphere back then

#

Cause hur dur enterprise

magic river
#

Yeah but if you don't use WebSphere you can't blame IBM for all your perf issues and pay them 3x what your dev team costs for consulting to make it suck slightly less by changing some config knobs

vernal moth
#

Nowadays you have to justify using jboss over spring at work

spare venture
#

here’s a dead rat that made its way into my college house a few years ago

vernal moth
#

I still can't believe it takes us over half a decade now to get off of db2

void void
#

ew, only alive rats are allowed I'm afraid

magic river
#

Log4Shell actually does have its own wiki page, btw πŸ˜„

#

So I guess it's a big one up there with heartbleed and spectre

spare venture
#

ew is a good reaction

vernal moth
#

Like, we pay per CPU cycle, vs postgres on Linux which is basically free, what bigger business case do you need?!

spare venture
#

we have a dog and cat channel, where is the rat channel?

wet storm
vernal moth
magic river
#

According to Wiz and EY, the vulnerability affected 93% of enterprise cloud environments.

#

Exploiting it to do anything useful required knowledge of the environment it was running in and finding a ROP chain in that environment

vernal moth
#

My ciso was furious, a security company that can't react to a major exploit in weeks

magic river
#

I don't know if anyone ever actually found one for Minecraft, I know some people thought they were close so it's probably possible

true canyon
vernal moth
#

On old mc versions it was easy cause old java

magic river
#

Leaking information from it was trivial though which is usually just as bad as arbitrary code execution

wet storm
warm anchor
magic river
#

And by old MC versions you mean every MC version from 1.7 to 1.16? πŸ˜„

lavish compass
#

s&p 500 looking πŸ”₯

spare venture
#

back in what day??

warm anchor
#

Barty never eat rat before??

spare venture
#

no i’m not a seagull

warm anchor
#

😎

wet storm
#

imagine a shawarma made out of rats πŸ’€

magic river
#

S&P 500 is still higher than it was 18 months ago but it's looking pretty bad lately

warm anchor
magic river
#

We've been due for bear market for a while though

#

Other than a panic when covid started it's just been nonstop climbing since 2009 and we've been in silly territory for a few years

#

Fed is in a bit of a panic trying to get interest rates up fast enough to stop inflation but not so fast they collapse the economy, they're in a rough spot since lowering interest rates is their lever to help with a down economy but they're already too low so don't have anywhere to go

lavish compass
#

lookin sick

magic river
#

That's why everyone is talking about stagflation again

#

If the economy starts tanking while interest rates are still low stagflation seems likely

#

Everyone saying to sell is probably going to cause a lot of people to catch the falling knife trying to spot the bottom

#

That’s because high inflation and low unemployment are both strong predictors of future recessions. In fact, since the 1950s, every time inflation has exceeded 4% and unemployment has been below 5%, the U.S. economy has gone into a recession within two years.

Today, inflation is at 8.5% and unemployment is at 3.6% – suggesting a recession will be very hard to avert.

warm anchor
#

It’s ok. We will just print more money PMA

twin lagoon
#

buy the dip

warm anchor
#

Michale with his filthy Minecraft block money rierunrunrun

charred sleet
#

cant stand the tings

foggy silo
#

Hi noah 😍

void void
#

peepoLove Hey Owen

foggy silo
#

(Favorite Dutch)

magic river
#

Oh hey nasdaq is officially in a bear market, down 26% since the start of the year

spare venture
#

yeah i mean it’s probably just gonna keep on going down, but i know as soon as i sell anything it’ll start going back up

magic river
#

EU seems to be tanking even harder, Euro is expected to be 1:1 with USD soon

#

It's already down to $1.06 so not far to go

#

Last time I was in Europe I think it was more like $1.50

limber knotBOT
#

pretty sure it has bee 1.20 for a while before the recent issues

#

*been

magic river
#

Last time I was in Europe was 2011 so...

spare venture
#

past two pullbacks have been ~40% bottoms from the previous peak, with it taking 6-7 years to recover

magic river
#

Although that was Cambridge so I don't think that counts

spare venture
#

currently only down 13% from previous peak

twin lagoon
#

if the euro and usd becomes 1:1 i'll be so happy

#

means usd finally becomes worth something

#

paypal conversion fees are bad enough already

limber knotBOT
#

yeah, hasn't been 1.50 for 10 years now lol

magic river
#

I was there like once a year for a few years but haven't been in quite a while

#

That flight sucks

spare venture
#

where to where?

magic river
#

Iowa to anywhere in UK or Europe

spare venture
#

oh that sounds like a long flight

wet storm
#

I love actix and rust... prob I used only bad solutions like weblux in the past, but... in this screenshot I defined plain localhost:8080/blogs to send one content, but send other content if some query exist (for example ?blog=something) I plan to use /blogs for a main page where people search for them, and /blogs?blog=blog-name for some specific blog page, is this a good practice or it is a better to use something like /blogs/blog-name?

magic river
#

I don't think it matters, might for SEO or something, but people generally consider /blogs/blog-name to look better, more professional, etc

#

People think ? is ugly πŸ˜„

#

actix uses async/await now? That seems like it goes against the actor model that was the point of the whole thing at the start

wet storm
magic river
#

The limit of only 12 query string arguments seems oddly arbitrary considering I don't see any proc macro usage here

#

I thought maybe it was to keep the compile times down or not go over the type resolver depth limit in the compiler or something but, uh, what?

#

Maybe they meant they have 12 different things that implement FromRequest (ignoring the wrappers like Either)

#

That seems to almost match up, depending on how you count them

wet storm
magic river
#

That's the bit I was talking about

#

Why 12?

wet storm
#

also sounds weird for me... When I first read it I was really confused

magic river
#

The extractors work even without the annotation so I don't think that annotation is doing any proc macro stuff that would get more expensive with the number of arguments

#

Their request routing example on the main page shows manually wiring up a route to a function and that function can still use web::Path<String>

wet storm
#

Actix web looks similar to spring webflux imo, (or every web framework is similar to each other and I am just new for them?) like I see many similar traits. (Prob weblux example is cringy...)

magic river
#

Yeah you're basically just showing off a bunch of express clones πŸ˜›

#

Or clones of whoever express copied it from

#

Flask maybe?

potent wedge
magic river
#

TLDR: Hermetic /usr/ is awesome; let's popularize image-based OSes with modernized security properties built around immutability, SecureBoot, TPM2, adaptability, auto-updating, factory reset, uniformity – built from traditional distribution packages, but deployed via images.

#

TIL there is no protection or validation of the initrd so you can take an "encrypted" system, modify the initramfs, and make it capture and/or send the full disk encryption password next time someone boots the system and has a network connection

#

Dunno why I put encrypted in scare quotes. It's encrypted and you have SecureBoot to validate the kernel but the piece in between is wide open so it's just security theater

golden gust
#

Yea, I think that's part of the joy and where apple kinda wins here with their T2 chip which deals with disk encryption, etc

#

or, well, ex T2

magic river
#

His solution is to make the kernel also be the bootloader and have one UEFI binary that is the kernel, initrd, command line, boot splash, etc

#

And then SecureBoot verifies that binary so you're good

#

command line as in the kernel boot flags, not a shell or something

golden gust
#

ofc, "magical secure black box" is often a sign that it's probs not as secure as one would hope long term

magic river
#

Oh it's not the bootloader, you can still have one of those

#

But the bootloader wouldn't have to know how to boot Linux, only how to chainload UEFI binaries

#

systemd-boot does that, conveniently enough πŸ˜„

#

Other systemd bits let that kernel find the /usr/ partition to mount via GPT partition labels and hashes from dm-verity so you don't have to modify the /usr/ image or the kernel depending on what kind of disk(s) you're using

junior moon
#

I keep getting the "Cant keep up" message every time
Im hosting a server with friends (6gb dedicated for server) 5 very light mods and the xaeros mod that i dont know if its so heavy.
I also play in the server with the same pc, but the server is using 12% of my cpu and the game another 10% (it doesnt seem to be overloaded)
My CPU: Ryzen 5 2600
16GB RAM
Server in SSD

spare venture
#

is the server actually lagging

junior moon
#

yeah

spare venture
junior moon
#

thank you

magic river
#

Huh, apparently BMW swapped some chips in their infotainment system due to shortages and don't have all the features on the new set up

#

Specifically Android Auto and CarPlay aren't available

#

But they claim they can provide them via OTA later so it sounds like the hardware is capable they just didn't have the software ported and/or certified in time

brave mountain
#

BMW make some of the more high quality cars
https://youtu.be/3In3u2QpSUE

Thanks to BMW for sponsoring this video! Check out NEXTGen 2020 and the all new BMW iX at https://geni.us/pCo3Tm

@BMW @BMWi
#NEXTGen #ChangeYourMindset #THEiX #iX #BMWi #BornElectric #ad

Discuss on the forum: https://linustechtips.com/topic/1267946-bmw’s-1-billion-euro-rd-facility/

β–ΊGET MERCH: http://www.LTTStore.com/
β–ΊSUPPORT US ON F...

β–Ά Play video
kind agate
#

hey

#

is there a way to query a bunch of usernames and see if they have no name changes?

floral mesa
vernal moth
magic river
#

A SecureBoot kernel will only load signed modules though, true

floral mesa
#

Initrd contains modules also, this helps the kernel loads what is needed before it load the rootfs

#

Thats the purpose of initrd

magic river
#

Ok?

#

dracut already supports this, btw

#

You can make dracut generate a UEFI binary that is the kernel and initrd

floral mesa
#

Signed for secureboot?

magic river
#

I don't know if it'll sign it, probably?

#

Signing for SecureBoot is annoying, only Microsoft can do it unless you jump through some hoops

floral mesa
#

Well the only exception id see if someone using their own ca for it

magic river
#

But initrds aren't specialized for a system anyway, distros make generic ones that'll boot just about anything

#

So you only have to care about signing if you want to build your own kernel or distro

#

Otherwise this method of building an OS basically turns it in to Android πŸ˜›

#

You get a boot partition and an A partition with only /usr/ on it

#

On first boot it creates the B partition, swap, root, and home partitions

#

Then systemd-tmpfiles and such produce anything that needs to be in /etc or /var if they don't exist

floral mesa
#

Eh, honestly, most immutable stuff ive seen is usually hacky. Android gets away with it largely since you cant even touch that part of the system

magic river
#

You don't modify the /usr, although if you control the signing keys you can make extensions for it that will be overlayfs mounted on it

#

Upgrades write to B and write a new kernel to the boot partition then on next boot systemd-boot automatically picks the latest kernel which also knows how to find its /usr and now that one is the A partition

#

I ended up bailing on Fedora Silverblue because we just aren't there yet but I like the idea of this

#

This would make it possible to solve some of the problems Silverblue had too

#

Anyway, it's still true that the initrd isn't a part of the chain of trust on most setups so full disk encryption is just a lie we tell ourselves

floral mesa
#

Its a neat concept, but one of the major hurdles has been devs and admins throwing their shit everywhere. Even though there is some unity in how linux fhs is structured, its usually up to the package manager on what they want to do, or software developer

magic river
#

This system still relies on rpm/dpkg to build the images

#

So would rely on packagers to use systemd-tmpfiles to handle putting files outside of /usr wherever they're needed

#

Ideally programs would also just generate those files with sane defaults if they don't exist but until then distros can patch it with a standard tool

#

I don't think I'd want to use this setup for mostly the same reasons I gave up on Silverblue but I think this one is closer and the design seems sound, we just need the ecosystem to adapt to it

floral mesa
#

Eh, i dont know on that. /usr is a great place to put things, plus moving what should be ro out of /etc would be great

magic river
#

?

floral mesa
#

Read only configs like os-release and whatnot

magic river
#

Oh, right

golden gust
#

I mean, that would sound like it's not really a config and thus probs shouldn't be in /etc anyways

magic river
#

Well the options are to patch the software that uses that stuff to put it in /usr (yeah right), patch them to generate those files in /etc if they don't exist (maybe?), or use systemd-tmpfiles to put them in /etc if they don't exist

#

os-release in particular is probably a bad example since I bet lots of things read that file directly

golden gust
#

part of the fun is that theres never really been a "dump system info here" type folder

floral mesa
#

Well its in the correct directory, but linux just hasnt been immutable if taken into consideration of traditional linux distros

golden gust
#

Not really in the right directory

floral mesa
#

Even android is bastardized to get it to that state

golden gust
#

Just, "right directory" never existed, and so it was either some rando file in /usr or /etc

magic river
#

Oh yeah, and systemd-nspawn could boot these OS images too so you can use the same infrastructure for making system images and container images

#

Assuming you want your container to have an init system and such

#

"boot"

golden gust
#

I mean, I can't really see this taking off outside of the enterprise

#

The biggest argument for this type of stuff is akin to what nix does

magic river
#

Lennart calls it GnomeBook πŸ˜„

#

ChromeBook but GNOME desktop

golden gust
#

lol

floral mesa
#

Id love to see something like what macos does for app management, but that isnt going to happen

golden gust
#

I think what nix has done is damned bloody amazing, but, it's far from a prime-time solution

magic river
#

His goal is to make something as secure and maintenance free as ChromeOS

golden gust
#

"what macos does for app management" ?

#

I mean, I have a mac, the app store is literally one of the most stupid/annoying things about it

magic river
#

Oh yeah, factory reset is just setting an EFI variable and rebooting, the same tool that generates all the extra partitions on first boot also deletes and regenerates them when that variable is set

floral mesa
#

Oh no, not store wise, arent macos packages technically just static images?

magic river
#

macOS does AppImage, more or less

#

flatpak is a better model

golden gust
#

I mean, you have an app file which generally is self contained outside of the OS bundled stuff

#

it probs wastes a good chunk of space but installing is as easy as just having a "blessed" folder

floral mesa
#

Flatpak has been nice so far, though i think the ability to have everything packaged into a image is not bad

golden gust
#

packing everything into images is really just a hack around the platforms fragmentation issues

magic river
#

flatpak lets you share components still and has a sandbox and security model

#

AppImage is just distribution, it doesn't handle any of that

golden gust
#

I mean, don't they just use the same "layered" stuff that docker, etc, uses?

floral mesa
#

Similar concept, just remove the daemon and some abstraction

golden gust
#

I mean, it makes a lot of sense as it deals with many stupid issues within the linux ecosystem, but, I partially feel that it's just yet another thing in the environment to have to mess with maintaining, etc

#

Ubuntu is still tryna push their own platform

floral mesa
#

Snap tries to do everything, flatpak is geared towards gui apps

#

Ununtu is so hell bent on it that it has been trying to force users to use snap, remove or shim deb files like firefox

magic river
#

AppImage is a FUSE mount, flatpak is... I forget

#

flatpak is one FUSE mount I think, AppImage is one per app

#

snap is a bunch of mounts too

floral mesa
#

If i wanted containerized apps, id use docker or podman, not snap

untold meadow
#

they serve completely different purposes and are not really comparable products

tired fog
tired fog
wet storm
golden gust
#

Which contains all of the libraries to run outside of the OSes interfaces

golden gust
#

It's 11am, I've been up for 11 hours, and I just wanna die

brave mountain
novel horizon
#

huh

#

really they did include that? it wasn't there before

#

(warning about self harm etc)

#

but i guess πŸ€·β€β™‚οΈ

ashen cliff
#

I mean, the whole song is about a muffin wanting to die...

novel horizon
#

yeah

#

it's whatever, it wasn't there before, but I understand it ^^

scarlet axle
ashen cliff
#

Oh cool. New GPU.

spare venture
#

can’t afford the past 2 generations

#

with the stock market and bitcoin crashing it may be possible to buy one soon though

#

of course my stocks drop more than a rtx 3090 price every day

limber knotBOT
#

time to buy more stocks/crypto thinksmart

smoky inlet
#

Hi

buoyant fractal
#

Am I the only one that's sad about how little there is going on on the forums? I think it has so much potential

worthy geode
#

forums are kinda 2012 imo, idk. Discord is just way more convenient for a lot of things

twin lagoon
#

hard to get users to use forums when you have an easier more accessible platform with faster communication

ashen cliff
#

Forms are better for searchability tho. kekwhyper

twin lagoon
#

they are

worthy geode
#

but tbh everytime I post something in #paper-dev and it just gets lost in new messages I also wish for more forum use

ashen cliff
#

And if Mark won't tell me how to fix a Linux bug he posted about in 2002, I'll find him somewhere.

little frost
#

maybe with hangar(tm)

warm anchor
#

And spending hours making a perfect reply to why someone is wrong

jagged egret
#

ok so if I have a raspberry pi plugged into my laptop's ethernet jack (running Win10) and I can't ping my windows 10 computer does anyone know why that would be the case

ashen cliff
#

It probably doesn't have an IP set?

jagged egret
#

It does

#

I can ping my raspberry pi from my laptop just fine, but the other way around doesn't work

#

Welp, turns out windows is dum as hek and the firewall blocks pings by default

muted storm
jagged egret
#

@muted storm long time no see

muted storm
warm anchor
#

@twin lagoon @lavish compass

twin lagoon
#

holy shit great minds think alike

#

that was instant

warm anchor
#

Lmao

lavish compass
#

wow I'm not in that discord

#

:noweeb:

twin lagoon
#

cubxity WHEn am i getting an answer from you

warm anchor
#

TRUE

#

pls answer mcichael

lavish compass
#

the management is NOT answering me

#

Please respond within Friday

warm anchor
lavish compass
#

@static badge do it .

twin lagoon
#

@static badge

#

french canadian furry

static badge
#

next person to ping me gets fucking sent to the shadow realm

twin lagoon
#

@static badge

static badge
#

@quasi valley you know what to do

magic river
#

This isn't 90s Saturday morning cartoons, you can say they're going to die

warm anchor
#

By shadow realm leaf means his bathroom

magic river
#

I'm still trying to think about how you would make splitting left and right work when you're sending them to stereo sinks

#

I know that wasn't your problem but it came up when I was looking

still sorrel
#

bro

#

4.4mm has 5 pins

#

2 for left, 2 for right

#

and ground which is obsolete

#

you just wire up left to left

#

and right to right

magic river
#

I don't think that does what I'm talking about

vernal moth
#

Wooo, am finally collecting high scores again

magic river
#

Basically you need to take the left channel and rotate it 180 degrees to make it also be the right channel for that stereo sink

still sorrel
magic river
#

Otherwise only one of the two speakers in your shitty little portable speaker will work

still sorrel
#

they didnt send the 2nd female 3.5 connection box

#

it will arrive tomorrow

magic river
#

Again, this has nothing to do with your setup

#

I'm talking about a hypothetical

#

I have two bluetooth speakers that also take 3.5 input, I want to use one as a left and one as a right

coarse lily
#

Hypothetically, what if we had pancakes?

magic river
#

If I just do a naive split the left would only turn on its left speaker and the right would only turn on its right speaker, afaik

still sorrel
#

is your bluetooth speaker mono?

magic river
#

No

still sorrel
#

an individual bluetooth speaker

#

I mean

#

cant you use cables with 2 pins

magic river
#

I have one source and two stereo sinks

still sorrel
#

hm actually

magic river
#

I don't want both of them to do stereo sound though, I want one to be my left speaker and one to be my right

#

If I split my source I'll get two mono feeds

coarse lily
#

Yeah it’s probably not smart enough to have both speakers play the single channel input if you only send one channel.

magic river
#

I need to make those stereo feeds but only left and only right

still sorrel
#

just wire both left and right to one termination on your input

magic river
#

I'm starting to wonder if I need to draw a picture, I don't think you understand still

#

I don't want to send the right channel to the left speakers

#

I want to make that left channel also be a right channel for those speakers

#

So they both put out sound

coarse lily
#

You could probably do some funky wiring so you send left to both channels on one, and right on both channels on the other.

#

But that sounds like a mess.

still sorrel
#
source - 3.5mm in:
left
right
ground

left - 3.5mm out:
left to source right
right to source right
ground to source ground

right - 3.5mm out:
left to source left
right to source left
ground to source ground```
magic river
#

All I have is 3.5mm jacks

still sorrel
#

cant you do it like this

coarse lily
#

Yeah you’d need to wire some custom shit

#

You could try it, though. You never know - maybe it’s wired smart enough to just play one channel on both drivers.

magic river
#

If you put the left source in the left and right of a 3.5mm won't that mess up?

#

I thought they needed to be out of phase

still sorrel
#

idk

#

cant test it

coarse lily
#

They do

magic river
coarse lily
#

Yeah, it’s an interesting problem

magic river
#

So let's assume they aren't smart enough to put a mono source to both speakers

coarse lily
#

I think if they aren’t smart then you’re probably just screwed

#

Because like you said they’d need to be out of phase.

#

So you’d need to rewire the drivers or some circuitry to make it work, I think.

#

I’ve never had to mess with that before. All the drivers I work with are generally mono and side-agnostic.

#

So you just send whatever to wherever.

magic river
#

Huh

#

This is apparently not just a simple "toss a couple resistors" in thing

#

Either that or no one cares enough to post online how to do it

#

Whatever your speakers that work sanely with a mono input are doing, that's what I need to do πŸ˜›

#

But no one seems to know or talk about how that's done

#

Maybe it's done via some kind of DSP

coarse lily
#

Yeah the setup I’m talking about is larger than a desk speaker.

magic river
#

Probably some kind of software thing then, yeah

#

AC got added? Nice

foggy silo
#

I mean, there is a paper twitter ik gets some updates every so often

magic river
#

Now you just need to get @warm anchor to put it in paper-chan's optimization guide

rare python
magic river
#

I pay zero attention to Paper things though πŸ˜›

foggy silo
#

I mean it’s just very easy to look at the paper GitHub

rare python
#

There is no central location to find when minor but possibly interesting things get added.

foggy silo
#

And read the commits

warm anchor
magic river
#

I just randomly look at stuff

crystal lilyBOT
foggy silo
#

Most commits will explain what is added

magic river
#

Wait what happened to the pullout?

rare python
warm anchor
#

πŸ˜‰

magic river
#

They killed paper-chan

foggy silo
#

I mean then you’d be constantly checking this channel made to prevent you from constantly checking the GitHub.

#

Β―_(ツ)_/Β―

warm anchor
#

I follow a few PR so I get notified when it’s pulled in

#

coz you know sometimes it take months

rare python
#

Plus with the github things getting added get burried among discussion about what to add

#

I had set it to watch to the repository but I had to stop because my emails just became stuff like this constantly.

warm anchor
#

The follow feature is nice but it gets spammy if people start a discussion under lol

foggy silo
#

Yeah so I just prefer to stalk the GitHub channel

rare python
#

All I am saying is that it would be nice to have a channel were a message is sent whenever something is added

vernal moth
#

I just follow but dont get emails

#

so I check the notifications on github regularly

warm anchor
#

Lol

#

Hi ded Pepelove

worn ember
#

Hai

warm anchor
#

@ornate kernel not the place. Read the rule.

ornate kernel
warm anchor
void void
#

hello

vernal moth
#

o/

void void
#

so is paperMinecraft a download

vernal moth
#

paper is a replacement for the vanilla minecraft server

#

you can download it from our website

void void
#

oh ok

potent wedge
#

But is it a replacement if it piggybacks off what it's supposed to be replacing?

wide chasm
#

Yes

upbeat tartan
#

Hey I have question is there a way to make it so items can automatically respawn in a chest at a set time or nah

vernal moth
#

sure, you can write code for that

magic river
#

You can do that with datapacks via loottables

#

Or with a plugin

foggy veldt
magic river
#

Not via loottables with a plugin, you have to do it manually

wraith trail
#

this seems like a really good idea, I've brought it up. recently aurora has started doing something sorta like this via twitter, although something more in-depth might be good

rare python
#

Oh nice

silent grotto
#

hola ?

foggy veldt
#

What’s ac btw? Anti cheat?

silent grotto
#

xd

foggy veldt
silent grotto
#

necesito ayuda 😭

foggy veldt
#

No but I know Γ±

silent grotto
#

😠

#

kakaka

#

espaΓ±ol ?

foggy veldt
#

I thought that was a good thing D:

silent grotto
#

no

#

πŸ˜„

foggy veldt
#

Well no I don’t know Spanish, have a nice day tho :D

silent grotto
#

πŸ‘

rare python
wet storm
#

I love how 1.12.2 forge: "dat minecarft ding will implement our impl, any questions?"

#

bukkit avoiding any nms inheritance changes and making "Craft" things with "handle": πŸ”ͺ

high mirage
#

Different design philosophies

#

In a forge mod, you're supposed to interact with raw Minecraft objects

#

In a bukkit plugin, you really aren't

wet storm
#

In this case imo doesn't really matter, bukkit api from "some alternative universe" could be changing inheritance and making nms classes directly implement its API classes and don't really care about conversions and additional "Craft" layer which maps api interfaces to actual nms logic, but in this case its API would be more dependent on nms and there would be many diff changes to nms classes, so no...

potent wedge
#

Wait has there been a popular-ish game made in C/C++ without a game engine? I just realized all the games that don't have a game engine I play are in java

#

Roblox doesn't count as it is the game engine (and the only C parts it has it's just for the luau thing)

lament patio
worthy geode
#

MMORPGs. there aren't really engines for that kind of stuff.

magic river
#

Minecraft has an engine, it's just not clean cleanly separated from the rest

#

You could imagine it's engine to be what you'd get if you removed all worldgen, entity types, block types, items, advancements, etc

#

Usually only indie games are like this because everyone else will start by picking an engine or, even if they're making their own, have a clearer separation between engine and game

void void
#

ur an engine

magic river
#

When you're just one guy screwing around making an infiniminer clone you don't need to worry about proper design

wet storm
#

btw, does mojang do separation of server and client using obfuscator?

worthy geode
#

some games also have a decent amount of code written directly in assembly, at least GW2 has quite a lot of assembly for math things

brave mountain
#

If baremetal
lvm or not?
ext4 vs btrfs

floral mesa
#

mainly since it focuses on being a raid & volume manager, and filesystem rolled into one

void void
#

on paper fingerguns

potent wedge
magic river
#

Not... really?

#

Like, Minecraft has, of a sort, a networking system and a physics system and a particle system and etc

wet storm
#

I think minecraft's engine is velocity computing, registries and resources stuff, and also all other stuff using lwjgl

magic river
#

It has a lot of the components of a game engine because you'd be insane to make a game that doesn't

#

But instead of making a generic block game engine and then putting Minecraft stuff on top it's just all blended together

#

A big effort of Mojang the past few years has been to unblend it, that's why datapacks can exist

#

Only relatively simple 2D or text games can get away with not having any engine at all

#

And they're usually a huge mess because of it

#

Dwarf Fortress probably doesn't have much you could point at as an engine, everything in that game seems to be a special snowflake of logic

wet storm
magic river
#

Terraria doesn't really have an engine, it's literally just giant if/else blocks to test every block and item in every scenario

void void
#

until they separate client and server into their own modules
uh...

#

why do you think you can download the server standalone already? lol

magic river
#

Because that's how you make a game

#

Before they shared some code but the client was a different game with somewhat different mechanics

#

Now single player is literally just the server but packets go in a queue instead of getting serialized to sent over the network

#

Which also means they don't duplicate chunk data between the client and server sides so they have to be careful to ensure the client parts don't mess with it

magic river
#

btrfs is the only sane option for systemd-homed

#

Hopefully some day whatever crazy layering system Red Hat is trying to make on top of ext4/xfs will work

brave mountain
#

ok I use bt on my dayly

magic river
wet storm
#

Have you ever had some project which you made in a few days without any problems but it is actually an over-engineered concept which no one will ever use?..

magic river
#

Sure, I made my own TypeToken once

#

And a few hash tables

red timber
#

lol

twin lagoon
#

zfs πŸ₯Ί

red timber
#

michale i fixed zorg's sops + remote repos support

magic river
#

Oracle should fix the ZFS license then

twin lagoon
#

hot

magic river
#

Although I think at this point OpenZFS has enough contributions that might not be enough

red timber
#

luckily you can have openzfs easily in recent ubuntus so

#

don't need to jump through 200 flaming hoops

magic river
#

It's a massive hack though

#

They're hoping the kernel doesn't remove things they need because they can't be a part of the kernel and drive those decisions

#

And the kernel isn't willing to keep something just because an out of tree module uses it, even if that module is free software (just with a bad license)

red timber
#

as with all out of tree modules

magic river
#

It's actually even more of a hack than that though

#

OpenZFS is like the nvidia driver, a generic core and then a bunch of adapters to different kernels

#

It's not written to fit in with Linux

red timber
#

that's not true anymore

#

they changed linux to primary target recently

#

(iirc)

#

from freebsd

magic river
#

So the FreeBSD people who (afaik) started the project are gone?

red timber
#

lemme try searching the news article

#

but that could be possible yeah

magic river
#

Even still it's probably at least a 2 year project to actually change the code to be a Linux filesystem instead of a filesystem library with a Linux adapter on top

red timber
#

well ya, and its memory management is kinda ass at times

magic river
#

Not that it matters, if it's not in upstream it's a support nightmare

red timber
#

doesn't play well with linux under OOM situations

#

kernel will happily nuke processes instead of drop arc cache

#

linux probably doesn't expose any ways to hook into that OOM killer logic either

#

but since that's becoming very annoying issue then i might look into writing a patch... at least for myself initially

magic river
#

Wait wait wait, ZFS even duplicated the damn page cache?

#

Yeah that's definitely not a Linux filesystem πŸ˜›

#

Doing their own thing instead of using bcache I can understand, I think btrfs does too, but their own memory cache is just... weird

red timber
#

either way zfs does its job nicely, and sanoid (or znapzend) is godsend tool for easy snapshotting & replicating

magic river
#

I don't doubt it's a very polished turd

#

The more I learn about it the less I want to use it though πŸ˜„

#

Maybe it's better integrated on FreeBSD

red timber
#

well, different opinions after all

#

on related topic: btrfs balance will absolutely suck the soul out from your disk & cpu

magic river
#

Sounds like a RAID thing

red timber
#

and doing this on 128gb shitty kingston disk is very oof

magic river
#

I don't really care about the RAID parts of it

red timber
#

nah, btrfs has this nice issue sometimes where you'll run out of metadata space

#

so got to do it every once in a while even in single disk setups

#

but good lord next time i'll just reformat the disk...

brave mountain
#

lvm or not?

red timber
#

do you need lvm

brave mountain
#

I do't know

red timber
#

then no lvm

brave mountain
#

ok

#

sir

red timber
magic river
#

btrfs balance is basically making a new filesystem and moving all of your data to it then deleting the old one

#

Assuming you run it without any kind of filters

twin lagoon
#

yeah i'll fix it one day

magic river
#

I think that's what this man page is telling me

#

So yeah, that'll be expensive

red timber
#

yeah literally better of reformatting and rsyncing

#

will be faster (i bet by 2x)

magic river
#
❯ sudo dmesg | grep -i btrfs

red timber
#

actually it might've been much much faster if i just rsynced home directory to my laptop, reinstalled nixos and then rsynced data back lol

magic river
#

Huh, it removed the empty line

#

Anyway, no output

red timber
#

exactly 256 lines pepe_pog

#

amazon S3 is asking money for object size rather than count, right?

twin lagoon
#

they charge for bucket size & actions/requests

red timber
#

so storing each line into its oen object is going to make me homeless kek

twin lagoon
#

would probably go homeless from bandwidth costs

red timber
#

it's fine if i did this on my own S3-like thing i guess

#

but yeah ok, i'll figure out where else i can shave time off

magic river
#

minio

potent wedge
#

Will paper become self sufficient instead of relying on the original Minecraft jar

worn ember
#

No

#

Literally no reason to

split sigil
#

is anyone else having intellij 2022.1 randomly crash on them after going on low memory

#

i tried allocating it 6 gb

#

still does it

#

and often

spare venture
#

does anyone use mobaxterm and figured out how to make it open your default text editor for files instead of the mobaxterm text editor?
mine used to do that, but ever since some update it only uses my default text editor on .txt/.text files. any other file type is mobaxterm text editor

magic river
#

I hope Mini doesn't work with any F5 gear πŸ˜„

void void
#

Does anyone here happen to know a cosmetics plugin that allows players to preview the cosmetics before buying?

#

You can do it by self

#

Guys, how much players your 1.18.2 server can hold?

potent wedge
#

I know someone who made a mc thing and it can handle 2500 players at once

void void
#

at once server instance?

potent wedge
#

Yes

void void
#

Wow

potent wedge
#

This was on like a really good PC no Mojang jar all from scratch

#

I'm editing so much because I'm half asleep

potent wedge
#

Yes he is very inspiring

#

Their watchamacallit DM's are on though and I got banned from the server I saw him demonstrate it on

void void
#

lol

potent wedge
#

Take paper chan paperUwU paperUwU

#

Paper chan I will give life

void void
#

mcheart I'm tired, need going to bed

#

All the best

unkempt drift
raven berry
#

where do i get this

vernal thicket
#

oki nvm

magic river
#

Is that Shia LaBeouf?

spare venture
#

thats my dad

magic river
foggy veldt
warm anchor
spare venture
#

crypto bad

magic river
#

Fedora feels very Windows sometimes