#general
3141 messages Β· Page 1917 of 4
ICU takes up just under 20mb
and I import a single one of its classes in my entire project
20megs huh
what is minimizejar?
its a maven option
any equivalent for gradle?
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
using minimize gets me down to
oof.
tasks {
shadowJar {
minimize()
listOf(
"com.ibm.icu"
).forEach { relocate(it, "${rootProject.group}.${rootProject.name}.lib.$it") }
}
discord file size limit
actually it might be due to kotlin stdlib
no, the shading just has kotlin in it, which is inflating the file size
run windirstat on it, or a linux equiv
did you not consider making a nice dsl so the syntax is like kinda readable
looks like this
creates bubbles of folders
then you can more clearly see how the size is used
icu is massive tbf
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
ncdu
sorry I dont know any linux equivalents. I can upload the jar somewhere though
probably easier
ncdu for a cli, baobab for a gui
I dont have a drop place running somewhere you can pop it in tho
many just use (free) dropbox
average icu moment
dictionary?
so it's all the data
idk wtf this is
timezone info
i told you icu was big
Resource data used by classes in com.ibm.text.
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
is there any alternative to it?
no
my main thing is handling plurals
icu itself uncompressed is indeed already 26mb
choice format, like i also said earlier lmao
or downloader
sure
but why isnt any of this an optional component?
because ICU
or... choiceformat
im tempted to just straight up fork it tbh
does choiceformat support plurals per locale?
that's like....... the entire point of it lol
and just split allll the data-using shit in a separate module
fork icu
if all I want is locale, simple select and plural, I dont need all this timezone stuff
i feel like the guy in the brick wall meme
and currencies
I dont use those
java has time format too
everyday we stray further from society
languages are like insanely complex
I'd rather just use icu to handle all of it, even if it's massive
but for <my> users, the majority just wont care enough that theyd want to download a 30mb jar for it lol
plurals might be different depending on the time of day a word is used in 
I'd use choice formats, but how would you actually handle different plural formats based on the locale used?
like my earlier example about russian, where [numbers ending in] 1's plurals are different to 2/3/4/ different to 5/...
even that can be solved with a select on those specific numbers. Tedious, sure, but not impossible
heck, have select that supports regex.
ah, but it's meant to apply to numbers that end in a specific number
regex.
so 2's plural also applies to 12, 102, 1002 etc
fr man anyone else uhhh do a bit of not reading javadocs
.*[234]:
like at all
it is also different in every language
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?
π
exactly, I'd like to just use icu
using a 30MB library vs. compiling your own 30MB of data 
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?
or, just downloading the meta files on demand?
why include all those currencies that nobody will even use
good luck hacking it into icu I suppose
done worse
how big of a deal is 30mb realistically?
my users already whine about a jar being 5mb
lol
30mb is literally nothing
hide it behind a downloader/library loader/anything
just download it at runtime and they wont notice 
litterally
in the grand scheme of things, 30mb is nothing if you use the library loader or something else
I would download it at runtime
ship a 5kb big loader 
thats how I sneak in a full minecraft client jar!
shading it into the jar however
quite annoying
slows down builds since shadowjar is slow as shit
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
spigot has a low plugin size limit too
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
I think icu loads them all on init
whaaat
that's my guess anyway
but the memory
dont say its filling memory with 100meg of languages
parsed, it always becomes larger.
the files are obviously compressed already, otherwise the compression rate of the jar would be much more
I know, I agree, but its not programmers you got to convince
therefore I suggest the library loader
I have no idea why there is such a vocal minority deciding that large jar=bad
and users won't notice an extra 100mb used - if it is that large
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?
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
if it supports regex anything is possible, seriously
you have used regex before?
theres a whole community dedicated to making giant-ass matchers
ofc, but imagine having to use regex for every single template in a translation operation
that's like, slow
slow processing
its a sacrifice
that I don't need, because I can just not use regex
but I got to look at who uses my plugins, and majority are english, german, french and chinese
chinese might require some complex stuff
naively speaking, I only need to check the last digit of a number
but otherwise, I just dont at the moment need to support very exotic things
I don't know how that translates over to other languages though
regardless, I'd stick to industry standards like icu, even if it's stupidly bloated
just get a 20mb regex, no need for a library
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
LazyICπ₯·
i wonder how ICU actually works
its also quite likely that those files have a source so I dont even have to host it myself
timezones and stuff especially
boom, stays up-to-date
I'm not smart enough to figure out how cldr or icu actually work
@haughty bear can you see what happens if you were to delete the data directory and then try to use icu?
specifically this one
I actually don't know how to do that
open in 7zip
I would usually use ij test runner, but I can't delete the data folder from there
I can delete the data folder, but I have nothing to run
I set up shading to see how big ICU was. I'm not actually gonna use the shading plugin in the lib
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?
don't ask me why it's shaded in there. It probably is
well its mixed in with some icu stuff as well, so I guess its something more special
also minimized the jar doesn't even seem to work lol
damn they really did just re-implement the entirety of java's date util lib
tho tbf, javas lib is pretty shit
here you go
alright then it does use them
one more test, more subtle
delete just this one file
so.res?
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
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}
)]
}
}
}
full path?
definitely might be worth pursueing a lazy loader then
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?
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.
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
yeah, its risky
buuut since this sort of loading usually occurs during parsing, so on startup of the plugin
its probably fine
I reckon if it's as simple as replacing a url load, then that sounds fine
needs a sane timeoutI guess
the parsing would be done as the message is requested
as the actual I18N.get call is made
theres no template file it parses up-front?
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
alsooo I should say, I may have all these plans to lazyicu it, but I have no time tbh
(at least none I've found)
but Ill put it somewhere if I ever have nothing to do (for some reason)
I'm sticking with a full icu impl
easier would be just to straight up lazy-load the entirety of icu as a library
also, you mentioned including other translations in the current translation - how do you want that to be handled?
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.
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 ]"
{item.my_wand({charge})}?
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?
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
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) }
idk really, seems kinda verbose for code
why cant you make it so passing a wand translates to passing multiple properties instead?
that's what the comment indicates
then you can use {charge} inside message.get_wand
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) }
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
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}))
ahh okay
the .safe call just ensures it's non null - if it's null, it would return a component of item.my_wand
I understand now
I still don't quite like the MultiArgs/Args syntax. I'd use lists, but that sounds type-unsafe
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()
yes
maybe I can make an extension function-type thing, to let you localize it, but ehh
can i ask something? π π
does fedora have any advantages compared to pop os
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?
Are you sure you're just turning on a monitor, and not waking it from sleep
it could be too
But if its sleeping it shouldnt be able to run a server
or its not like that?
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
ok fuck my balanced cable did not arrive after a month
time to DIY it
scuffed af
but costs 20 euros
this doesn't look hard to make
DIY'ing one of those is non-trivial
You can make a shitty one with some resistors
No no, you can't just join the two together, you'll backfeed
?
I had the same thought like 6 months ago in here, went on a whole journey
if I wire everything up properly it should work, right?
you need to find out how to wire 3.5mm jacks first
because shit is not as simple as you might think
Is this a splitter or a mixer?
so this picture shows me there is polarization
if there actually is such, you can avoid backfeed by using diodes
For a splitter I think you can just get away with a 10k resistor?
Or potentially with just nothing but you risk breaking things?
from left to right its ground, right, left
Oh, you're breaking out the left and right channels
yeah
need 4.4mm to dual 3.5mm
using right and left depending which side of the dual 3.5 it is as - or +
I will have stereo
ok shit is real
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
I mean I should not need ground for the 3.5mm end
my headphones accept balanced input
If you don't do proper grounding on audio stuff you get noise
you dont need grounding with balanced
while grounding is something good sometimes its really bad
do you even know how balanced works
Sleep means it stops doing things and pauses. Make sure your settings aren't causing that
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.
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
You started with balanced audio but you're breaking it out, no?
I start with balanced stereo
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
I mean nothing is being split
I just wire up left to l- and l+ and right to r+ and r-
Yeah, so long as what you're feeding it to is okay with a mono input that seems fine
Oh, I guess I'm looking at this backwards
4.4mm goes into the amp
I thought audio was coming out of this plug, not going in to it
Mini, as a Spring user, have you ever looked at/tried/used Spring WebFlux and reactive programming for backend things in general? If yes, what do you think about it?
bigger amps have 5 pin xlr
but smaller amps have 4.4mm
same idea, different connection
Spring WebFlux is basically the NIO version of Spring, no?
Instead of thread-per-connection you do non-blocking streams
yes, it uses netty instead of tomcat and other things, but it also contains rich reactive API around RxJava and Project Reactor
I suspect Project Loom is about to mess up that whole ecosystem
yeah, it will
All I know about audio is ground loops suck
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
We fried someone's lip from a bad ground loop lmao. It wasn't connected properly and the static burned her lip when she touched the mic lol
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
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
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...
its that normal? A jar file crashing when pc wakes up from sleeping?
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
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.
Generally don't see the why
Like I feel that just makes my code more complex and I don't see the gains
Kafka sucks, rabbit is waaaay nicer as a message queue
rabbit also support mqtt π
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
right tool for the task and whatnot Β―_(γ)_/Β―
as long as you can publish and subscribe it's a pubsub 
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
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?
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
I think Imma write some web thing in Scala someday, cuz why I've learnt it if I used it only for one stupid project, but I feel like it is forbidden to use cuz many people suffered from it (including you...)
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.
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.
Meanwhile am happy if I get 50000 request per day
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
It's like, why should I care about any of this if I am so many orders of magnitude lower in demand
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
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
wait. how. I feel like Spring 5 was released yesterday
This year is the first without a new major I think
?
Spring normally releases anually, right?
- 1.0 - 2004
- 2.0 - 2006
- 3.0 - 2009
- 4.0 - 2013
- 5.0 - 2017
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
Lol
@void void we need this as sticker 
I have a better rat somewhere, one sec
I will be eagerly waiting here
same
can't remember where I got it from
wtf monster

Did anybody actually care about spring 4shell?
@static badge rate the rat
Like, who deploys spring as a war?
Is that an albino possum someone is trying to make look like a rat?
not a rat
I know I can always trust leaf for my rat knowledge
People who don't use Spring Boot and have been working on the same project since 2008 π
I am afraid your entry has been disqualified for not being a rat @void void
zzZZZzzzZzzZ
I wrote an app in 2018 that I already consider legacy and will majorly refactor later this year, lol
I'll continue my search for a bigger, realer rat then...
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...
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
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
Nowadays you have to justify using jboss over spring at work
hereβs a dead rat that made its way into my college house a few years ago
I still can't believe it takes us over half a decade now to get off of db2
ew, only alive rats are allowed I'm afraid
Log4Shell actually does have its own wiki page, btw π
So I guess it's a big one up there with heartbleed and spectre
ew is a good reaction
Like, we pay per CPU cycle, vs postgres on Linux which is basically free, what bigger business case do you need?!
we have a dog and cat channel, where is the rat channel?
rumor falsely spread by server members.
That was justified tho, especially since log4j is fucking everywhere and idiot companies like Cisco took weeks to even say if I product is affected
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
My ciso was furious, a security company that can't react to a major exploit in weeks
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
Eaten by the seagull channel?
On old mc versions it was easy cause old java
Leaking information from it was trivial though which is usually just as bad as arbitrary code execution
a rat or a seagull, that's the question.
Back in the day we would never waste food like that 
And by old MC versions you mean every MC version from 1.7 to 1.16? π
s&p 500 looking π₯
what the fuck
back in what day??
Barty never eat rat before??
no iβm not a seagull
π
imagine a shawarma made out of rats π
S&P 500 is still higher than it was 18 months ago but it's looking pretty bad lately
It should be fine. Canβt lose money if you donβt have money to begin with 
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
lookin sick
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.
Itβs ok. We will just print more money 
Michale with his filthy Minecraft block money 
Hi noah π
Hey Owen
(Favorite Dutch)
Oh hey nasdaq is officially in a bear market, down 26% since the start of the year
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
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
Last time I was in Europe was 2011 so...
past two pullbacks have been ~40% bottoms from the previous peak, with it taking 6-7 years to recover
Although that was Cambridge so I don't think that counts
currently only down 13% from previous peak
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
yeah, hasn't been 1.50 for 10 years now lol
EUR to USD currency chart. XEβs free live currency conversion chart for Euro to US Dollar allows you to pair exchange rate history for up to 10 years.
I was there like once a year for a few years but haven't been in quite a while
That flight sucks
where to where?
Iowa to anywhere in UK or Europe
oh that sounds like a long flight
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?
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
yeah, no actors even in documentation... https://actix.rs/docs/
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
also sounds weird for me... When I first read it I was really confused
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>
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...)
Yeah you're basically just showing off a bunch of express clones π
Or clones of whoever express copied it from
Flask maybe?
flask is godly, flask will allways prevail, flask is used by netflix.
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
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
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
ofc, "magical secure black box" is often a sign that it's probs not as secure as one would hope long term
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
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
is the server actually lagging
yeah
hey do you know C#?
use #paper-help and take a timings report
thank you
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
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...
hey
is there a way to query a bunch of usernames and see if they have no name changes?
The only issue to that would be driver support, not only would you need to rebuild a giant monolithic binary, you also need to sign it. It defeats the purpose of having an initrd. you might as well just build the modules into the kernel and boot to rootfs
Flashbacks to when BMW had an actual good EV department and produced a rather nice car for the time, but then the whole engineering team quit cause they didn't feel like management gave them the attention they deserve (you know, considering it's the only way forward and all)
What do you mean driver support? All the drivers are a part of the kernel already
A SecureBoot kernel will only load signed modules though, true
Initrd contains modules also, this helps the kernel loads what is needed before it load the rootfs
Thats the purpose of initrd
Ok?
dracut already supports this, btw
You can make dracut generate a UEFI binary that is the kernel and initrd
Signed for secureboot?
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
Well the only exception id see if someone using their own ca for it
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
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
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
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
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
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
?
Read only configs like os-release and whatnot
Oh, right
I mean, that would sound like it's not really a config and thus probs shouldn't be in /etc anyways
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
part of the fun is that theres never really been a "dump system info here" type folder
Well its in the correct directory, but linux just hasnt been immutable if taken into consideration of traditional linux distros
Not really in the right directory
Even android is bastardized to get it to that state
Just, "right directory" never existed, and so it was either some rando file in /usr or /etc
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"
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
lol
Id love to see something like what macos does for app management, but that isnt going to happen
I think what nix has done is damned bloody amazing, but, it's far from a prime-time solution
His goal is to make something as secure and maintenance free as ChromeOS
"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
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
Oh no, not store wise, arent macos packages technically just static images?
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
Flatpak has been nice so far, though i think the ability to have everything packaged into a image is not bad
packing everything into images is really just a hack around the platforms fragmentation issues
flatpak lets you share components still and has a sandbox and security model
AppImage is just distribution, it doesn't handle any of that
I mean, don't they just use the same "layered" stuff that docker, etc, uses?
Similar concept, just remove the daemon and some abstraction
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
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
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
If i wanted containerized apps, id use docker or podman, not snap
they serve completely different purposes and are not really comparable products
firefox in the ubuntu repos is a snap thing 
what DOES macos do for app management
are they contained? theyre just glorified folders like how a jar is just a zip imo
(I was sleeping) no...
Which contains all of the libraries to run outside of the OSes interfaces
It's 11am, I've been up for 11 hours, and I just wanna die
Muffin Time: the asdfmovie card game! Out now! http://MuffinTimeGame.com
It's muffin time! Download the song (https://apple.co/2wtrCXM)
Wear a muffin today! (http://bit.ly/MuffinShirt)
Music by The Gregory Brothers aka Schmoyoho (http://youtube.com/schmoyoho)
Animated by Ben 'Wonchop' Smallman (http://youtube.com/wonchopanimation)
Written and Di...
But anyway I have something you could take a look at, can nce is a block game.
huh
really they did include that? it wasn't there before
(warning about self harm etc)
but i guess π€·ββοΈ
I mean, the whole song is about a muffin wanting to die...
muffin song is too pro it got a suislide prevention line attached to it
Oh cool. New GPU.
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
time to buy more stocks/crypto 
Hi
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
forums are kinda 2012 imo, idk. Discord is just way more convenient for a lot of things
hard to get users to use forums when you have an easier more accessible platform with faster communication
Forms are better for searchability tho. 
they are
but tbh everytime I post something in #paper-dev and it just gets lost in new messages I also wish for more forum use
And if Mark won't tell me how to fix a Linux bug he posted about in 2002, I'll find him somewhere.
maybe with hangar(tm)
Good old time of actually put in thoughts and compose a proper reply
And spending hours making a perfect reply to why someone is wrong
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
It probably doesn't have an IP set?
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
lmao that's new
@muted storm long time no see

Lmao
cubxity WHEn am i getting an answer from you
Tell leaf. He wouldnβt let me repurpose Tuinity discord for emoji

@static badge do it .
next person to ping me gets fucking sent to the shadow realm
@static badge
@quasi valley you know what to do
This isn't 90s Saturday morning cartoons, you can say they're going to die
By shadow realm leaf means his bathroom
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
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
I don't think that does what I'm talking about
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
Otherwise only one of the two speakers in your shitty little portable speaker will work
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
Hypothetically, what if we had pancakes?
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
is your bluetooth speaker mono?
No
I have one source and two stereo sinks
hm actually
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
Yeah itβs probably not smart enough to have both speakers play the single channel input if you only send one channel.
I need to make those stereo feeds but only left and only right
just wire both left and right to one termination on your input
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
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.
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```
All I have is 3.5mm jacks
cant you do it like this
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.
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
They do
These aren't real, it's a hypothetical based on an unanswered question I saw when googling his set up
Yeah, itβs an interesting problem
So let's assume they aren't smart enough to put a mono source to both speakers
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.
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
Yeah the setup Iβm talking about is larger than a desk speaker.
I mean, there is a paper twitter ik gets some updates every so often
Now you just need to get @warm anchor to put it in paper-chan's optimization guide
you just proved my point lol
I pay zero attention to Paper things though π
I mean itβs just very easy to look at the paper GitHub
There is no central location to find when minor but possibly interesting things get added.
And read the commits
Already did 2 minutes after the commit π
I just randomly look at stuff
Community contributed configuration guide for Paper: https://eternity.community/index.php/paper-optimization/
Most commits will explain what is added
Wait what happened to the pullout?
Yes but if you don't constantly check you don't notice
π
They killed paper-chan
I mean then youβd be constantly checking this channel made to prevent you from constantly checking the GitHub.
Β―_(γ)_/Β―
I follow a few PR so I get notified when itβs pulled in
coz you know sometimes it take months
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.
The follow feature is nice but it gets spammy if people start a discussion under lol
Yeah so I just prefer to stalk the GitHub channel
All I am saying is that it would be nice to have a channel were a message is sent whenever something is added
Years
Hai
@ornate kernel not the place. Read the rule.
im read rules bro. ITS NOT HIRING DEVELOPERS

hello
o/
so is paperMinecraft a download
paper is a replacement for the vanilla minecraft server
you can download it from our website
oh ok
But is it a replacement if it piggybacks off what it's supposed to be replacing?
Yes
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
sure, you can write code for that
There is something about this screenshot that is aesthetically pleasing
Not via loottables with a plugin, you have to do it manually
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
Oh nice
hola ?
Whatβs ac btw? Anti cheat?
xd
Yo
No but I know Γ±
I thought that was a good thing D:
Well no I donβt know Spanish, have a nice day tho :D
π
Alternate Current. A Pull Request was recently merged which added Alternate Current which is an alternate redstone implementation which is many times faster then the vanilla one, while still being mostly (or completely, not sure) compatible. See https://github.com/PaperMC/Paper/pull/7701.
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": πͺ
Different design philosophies
In a forge mod, you're supposed to interact with raw Minecraft objects
In a bukkit plugin, you really aren't
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...
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)
I guess the VVVVVV C++ port? https://github.com/TerryCavanagh/VVVVVV/tree/master/desktop_version
MMORPGs. there aren't really engines for that kind of stuff.
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
ur an engine
When you're just one guy screwing around making an infiniminer clone you don't need to worry about proper design
btw, does mojang do separation of server and client using obfuscator?
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
If baremetal
lvm or not?
ext4 vs btrfs
btrfs still has quite a ways to go, but on paper is much better than ext4 alone
mainly since it focuses on being a raid & volume manager, and filesystem rolled into one
on paper 
That's like saying "I made a python module that has a function that will print 'Hello World!' this must be s game engine."
Not... really?
Like, Minecraft has, of a sort, a networking system and a physics system and a particle system and etc
I think minecraft's engine is velocity computing, registries and resources stuff, and also all other stuff using lwjgl
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
imo they won't unblend it until they separate client and server into their own modules, and generally make modular the game, iirc they internally have sides together, just obfuscator go brrrr and seperates them...
Terraria doesn't really have an engine, it's literally just giant if/else blocks to test every block and item in every scenario
until they separate client and server into their own modules
uh...
why do you think you can download the server standalone already? lol
The first thing the old Bukkit folks did is put the client and server together
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
So btrfs for paper?
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
ok I use bt on my dayly
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?..
zfs π₯Ί
michale i fixed zorg's sops + remote repos support
Oracle should fix the ZFS license then
hot
Although I think at this point OpenZFS has enough contributions that might not be enough
luckily you can have openzfs easily in recent ubuntus so
don't need to jump through 200 flaming hoops
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)
as with all out of tree modules
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
that's not true anymore
they changed linux to primary target recently
(iirc)
from freebsd
So the FreeBSD people who (afaik) started the project are gone?
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
well ya, and its memory management is kinda ass at times
Not that it matters, if it's not in upstream it's a support nightmare
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
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
either way zfs does its job nicely, and sanoid (or znapzend) is godsend tool for easy snapshotting & replicating
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
well, different opinions after all
on related topic: btrfs balance will absolutely suck the soul out from your disk & cpu
Sounds like a RAID thing
and doing this on 128gb shitty kingston disk is very oof
I don't really care about the RAID parts of it
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...
lvm or not?
do you need lvm
I do't know
then no lvm
guh
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
β― sudo dmesg | grep -i btrfs
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
exactly 256 lines 
amazon S3 is asking money for object size rather than count, right?
they charge for bucket size & actions/requests
so storing each line into its oen object is going to make me homeless 
would probably go homeless from bandwidth costs
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
minio
Will paper become self sufficient instead of relying on the original Minecraft jar
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
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
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?
I know someone who made a mc thing and it can handle 2500 players at once
at once server instance?
Yes
Wow
This was on like a really good PC no Mojang jar all from scratch
I'm editing so much because I'm half asleep
cool programmer
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
lol
where do i get this
oki nvm
Is that Shia LaBeouf?
thats my dad
i feel like it's a bad sign when your stablecoin community is talking about "buying the dip"
1393
Lol tru
*opens coin base*

crypto bad
Fedora feels very Windows sometimes



I'm tired, need going to bed