#dev-general

1 messages ยท Page 353 of 1

cinder flare
#

make JS 2.0

jovial warren
#

lol

unkempt tangle
prisma wave
#

Same reason ancient java stuff still exists

autumn tapir
#

if you just try

unkempt tangle
#

Best buddies

cinder flare
#

and I'll actually appreciate it

lunar cypress
prisma wave
autumn tapir
#

if you just avoid it

#

you don't have the problem

#

and TS can handle type coercion

cinder flare
#
function foobar() {
    var bar = 10;
    //
    // [...Code...]
    //
    baz = 20; // Typo. "baz" is now a global variable.
}```
autumn tapir
#

by giving you a type error

#

modern editors like VScode are fine

jovial warren
#

I swear TS is really verbose though

eternal compass
#

so how do I build the jar with dependancies in gradle?

prisma wave
autumn tapir
#

If you just never use var or plain =

#

Then you'll be fine

#

Just avoid older features that are bad

jovial warren
cinder flare
#

mmm language features I shouldn't use

autumn tapir
#

And it's fine

autumn tapir
autumn tapir
prisma wave
cinder flare
#
function foobar(a) {
    if(a === 0) {
        var c = 20;
    }
    return c; // c is still visible.
}```
lunar cypress
#

@autumn tapir you still haven't answered the question, what counts as "math-related"? or what limit does that impose?

jovial warren
#

yeah Java has loads of ancient stuff that just shouldn't be used

autumn tapir
prisma wave
#

{{}} syntax

#

assert

cinder flare
autumn tapir
lunar cypress
prisma wave
jovial warren
lunar cypress
#

or turing completeness

autumn tapir
cinder flare
eternal compass
#

also, where does it compile the shadowJar to?

autumn tapir
#

@cinder flare It doesn't actually

#

let only exists in the block

prisma wave
cinder flare
#
[5, 12, 9, 2, 18, 1, 25].sort(); // [1, 12, 18, 2, 25, 5, 9]
#

mmmm

#

sorting

lunar cypress
#

turing completeness means your language can encode any computation

jovial warren
#

I could probably guarantee that I probably abuse Kotlin the most lol

eternal compass
autumn tapir
#
function foobar(a) {
    if(a === 0) {
        let c = 20;
    }
    return c; // error
}
cinder flare
#

probably all dependencies shaded in lol

autumn tapir
#

@cinder flare Just use a sort function

prisma wave
autumn tapir
#

Or use lodash or smth

cinder flare
#

Sort function???

eternal compass
autumn tapir
#

Yep

cinder flare
#

My first thought when the language provides a .sort is to use it!

autumn tapir
#

.sort((a, b) => a - b)

#

Very hard

cinder flare
#

why would they not deprecate that then

#

I dont understand

autumn tapir
#

Backwards compatibility again

cinder flare
#

Who gives a single fuck

autumn tapir
#

All the older sites do

cinder flare
#

The internet literally sucks because of it

#

Web development is an archaic and painful process because of this shit

#

At least legacy Java code only affects the developers who have to maintain it

#

People still write javascript every day!

prisma wave
#

modern tools alleviate most of those issues though

cinder flare
#

I can't beleive it

jovial warren
#

you know JS was rushed btw right?

autumn tapir
#

Modern tools alleviate em

obtuse gale
autumn tapir
#

Like VSC, ESLint, Typescript

jovial warren
#

it was originally just made because they needed something for web development

cinder flare
#
var a = "foobar"
var b = typeof a                // 'string'
var c = a instanceof String     // false
#

typing go brrrr

jovial warren
prisma wave
#

I personally believe coffeescript and jQuery are the future

jovial warren
#

man

autumn tapir
#

Typescript gives you a warning not to use String

cinder flare
#

let me guess, let will solve all my problems eh>?

prisma wave
cinder flare
#

Oh wow TypeScript gives me a warning wow

autumn tapir
#

Modern tools in general do

ocean quartz
autumn tapir
#

Actually TSC just gives you a compiler error

cinder flare
#

WHY does it not automatically not work like that

#

what the actual fuck is that

autumn tapir
#

Also JS should too

#

With VSCode

cinder flare
#

I don't want a compiler error I want the language to work how it is expected

half harness
autumn tapir
#

Boom, error is now not working

cinder flare
#

You know how hard it would be to modernize javascript?

#

like, really not that hard

autumn tapir
#

I don't know how to spell lol

cinder flare
#

I could probably do it

autumn tapir
#

Again, backwards compatibility

cinder flare
#

Just strip out all the old shit and you're done

autumn tapir
#

You could probs make a transpiler tho

cinder flare
#

Leave JavaScript how it is

autumn tapir
#

JS with all the new features

cinder flare
#

never update it again

autumn tapir
#

And none of the shit ones

cinder flare
#

Make WebScript the official new language

#

with a committee that manages it

prisma wave
#

WASM

cinder flare
#

and sensible people to make the defualts

autumn tapir
#

Backwards compability again

#

JS isn't going anywhere

cinder flare
#

I know

eternal compass
#

ok, its converted to gradle. are y'all happy?

autumn tapir
#

And sure

cinder flare
#

But we don't build anything new with it

#

EVER

autumn tapir
#

Strip out the shit parts of JS

#

And nah, it's good

cinder flare
#

that would solve a lot of problems

autumn tapir
#

Just strip out the shit parts of JS if you want

prisma wave
#

Fun fact, iirc the JS maintainers actually intended to add static typing like TS has but they couldn't decide on a good design so scrapped the idea

prisma wave
cinder flare
#

I am appalled

autumn tapir
#

JS is awesome

jovial warren
#

backwards compatibility is the #1 sin of modern programming and software development

#

change my mind

autumn tapir
#

As long as you don't try to misuse it purposely

cinder flare
#

There are so many pitfalls that shouldn't be there

#

It's insane how we still use this language

autumn tapir
#

Pitfalls that I never use

cinder flare
#

because you're used to the shithole you live in

jovial warren
autumn tapir
#

@cinder flare Not really

#

As long as you don't purposely try to fuck it up

jovial warren
#

and backwards compatibility is built into humans

autumn tapir
#

You'll be fine

cinder flare
#

When you drive down a street with potholes for the thousandth time, you learn to avoi them

autumn tapir
#

I haven't had those problems at all

cinder flare
#

Doesn't mean the road isn't a shitty road that needs to be fixed

lunar cypress
ocean quartz
#

This is the string color

jovial warren
#

we naturally hate the idea of change, and we'd much rather stick with what we know than try something new

autumn tapir
#

JS is fine

cinder flare
#

Bro I've literally written javascript and falled into these issues

autumn tapir
#

I'm done arguing lol

cinder flare
#

Oh don't get me started on PHP

autumn tapir
#

Yeah fuck PH P

prisma wave
#

backwards compatibility isn't a sin, it's a necessary evil. It would be great from the developer's perspective if we could all use hot new technology #3819 but most programs are built to be used without frequent updates

cinder flare
autumn tapir
#

Fuck PHP

#

But JS is epic

prisma wave
#

PHP is without a doubt the worst commonly used language

cinder flare
#

Oh you don't like PHP but like JS?

ocean quartz
jovial warren
cinder flare
#

They're very similar in their downsides

jovial warren
#

did you actually call your theme matom one dark? kekw

cinder flare
#

Im impressed you're not just fine with PHP because you know how to avoid all the problems?

autumn tapir
#

PHP is way worse

cinder flare
#

And I mean, I heard PHP 7 was pretty nice

autumn tapir
#

Modern JS is actually really good

ocean quartz
cinder flare
#

They fixed a bunch of stuff

autumn tapir
#

Fair

prisma wave
#

PHP 7 seems ok

stuck harbor
unkempt tangle
#

Senpai ๐Ÿ˜ญ

prisma wave
#

But it's still PHP

autumn tapir
#

PHP has a pretty bad reputation tho

cinder flare
#

and JS is still JS

unkempt tangle
#

Why I cant set any Breakpoints

autumn tapir
#

And besides PHP was far worse then JS ever war

prisma wave
autumn tapir
#

Old JS was shit

#

But now it has far better stuff

#

As long as you don't try to fuck up

#

JS is fine

cinder flare
#

Those two languages are forever locked in a shithole that they won't escape until they break their backwards compatability and we establish a new internet without JS

autumn tapir
#

Sure when you purposely do "1" + 1 and cast them both as any

prisma wave
unkempt tangle
prisma wave
#

Chat is busy enough atm

unkempt tangle
#

I cant click htere

jovial warren
#

how do I import this @ocean quartz?

prisma wave
#

We need dev-general 2

cinder flare
#

lol

autumn tapir
#

And keep JS

prisma wave
autumn tapir
#

Just without the shitty parts

cinder flare
#

Yeah that'd be fine too

unkempt tangle
#

yes

autumn tapir
#

JS ain't perfect

unkempt tangle
#

smali

cinder flare
#

Though the public reputation loss would probably haunt it for years to come

autumn tapir
#

but it's still my fav lang

cinder flare
#

I'd go with a new name

jovial warren
autumn tapir
#

VSCode itself handles most of my errors

cinder flare
#

Maybe get away from Java too, if you wanna be modern and all

autumn tapir
#

And I just use newer features

#

Sure

#

But what would it be

#

LiveScript?

cinder flare
#

I dunno, anything

inner umbra
cinder flare
#

WebScript maybe

unkempt tangle
#

Guys be quiet

prisma wave
#

you probably can't debug bytecode

unkempt tangle
#

Senpai tries to help me

prisma wave
#

You'll need the src

autumn tapir
#

Actually @cinder flare

unkempt tangle
#

Huh

cinder flare
autumn tapir
#

You could just make a tool today

#

That strips out shit parts of JS

half harness
autumn tapir
#

And only keeps the good parts

unkempt tangle
#

But the guide I told me

cinder flare
autumn tapir
#

It'd be easy to transpile since you're just stripping out the shit parts

autumn tapir
#

Without a hassle

#

So

#

๐Ÿคทโ€โ™‚๏ธ

cinder flare
#

Bro do it

half harness
#

the sPAM

cinder flare
#

Bet

#

I'd use it

jovial warren
half harness
#

theres like a message sent every second

autumn tapir
#

I'd rather work on my plugin rn

cinder flare
#

Lol

autumn tapir
#

I've got enough other projects too

unkempt tangle
#

See he also does it

autumn tapir
#

Maybe tho

cinder flare
#

ew wtf light theme

prisma wave
cinder flare
#

hmmm okay

unkempt tangle
jovial warren
#

Matt

#

how do I import that theme

cinder flare
#

i do like static typing

prisma wave
#

typescript is nice

#

A little bit overcomplicated imo

cinder flare
#

I just feel there's lots of room for improvements, ya know?

#

Like WASM, for instance

prisma wave
#

But most of it was probably because of design limitations

#

WASM is definitely intriguing

lunar cypress
#

wasm will not replace js

autumn tapir
#

WASM is to be used alongside js

prisma wave
#

Yeah

cinder flare
#

I don't see why WASM wouldn't replace JS

#

The second we can throw JS to the curb, I plan on doing it

prisma wave
#

Probably too complicated for everyday use

autumn tapir
#

I don't think it replaces all features of JS either

#

Just helps with a lot of optimizations

prisma wave
#

If you're just manipulating the DOM a bit then use JS or TS

unkempt tangle
#

The most common language cant be replaced if there are no newbie documentaries.

ocean quartz
#

Aren't things supposed to compile to WASM? That means it won't replace anything but things will adapt to use it together with what they already use

unkempt tangle
#

newbie documantary == stackoverflow example codes

prisma wave
#

Yeah

#

Rust compiles to WASM ๐Ÿ™‚

lunar cypress
# cinder flare I don't see why WASM wouldn't replace JS

Is WebAssembly trying to replace JavaScript?
No! WebAssembly is designed to be a complement to, not replacement of, JavaScript. While WebAssembly will, over time, allow many languages to be compiled to the Web, JavaScript has an incredible amount of momentum and will remain the single, privileged (as described above) dynamic language of the Web. Furthermore, it is expected that JavaScript and WebAssembly will be used together in a number of configurations:

  • Whole, compiled C++ apps that leverage JavaScript to glue things together.
  • HTML/CSS/JavaScript UI around a main WebAssembly-controlled center canvas, allowing developers to leverage the power of web frameworks to build accessible, web-native-feeling experiences.
  • Mostly HTML/CSS/JavaScript app with a few high-performance WebAssembly modules (e.g., graphing, simulation, image/sound/video processing, visualization, animation, compression, etc., examples which we can already see in asm.js today) allowing developers to reuse popular WebAssembly libraries just like JavaScript libraries today.
  • When WebAssembly gains the ability to access garbage-collected objects ๐Ÿฆ„, those objects will be shared with JavaScript, and not live in a walled-off world of their own.
prisma wave
#

If you want a modern language to replace JS, use TS or Elm

ocean quartz
#

I think the 1.5 Kotlin compiler already does some compilation to WASM as well

prisma wave
#

Elm in particular is intriguing

lunar cypress
#

Elm :kekw:

prisma wave
#

Haskell on the web

cinder flare
#

Okay Elm lookin kinda cute

ocean quartz
#

I know, was talking about straight to WASM

lunar cypress
#

ClojureScript is obviously the way to go

half harness
#

what is WASM?

ocean quartz
cinder flare
#

Web Assembly

hot hull
#

Matt

#

Chat when

cinder flare
#

basically any language other than JS running in a web browser

jovial warren
#

Matt

prisma wave
half harness
#

what is "SM"?

jovial warren
#

how do I import your theme

cinder flare
prisma wave
#

ASseMbly

cinder flare
#

W = Web

ocean quartz
jovial warren
#

please don't tell me that's an attempt to make something different from Adventure

lunar cypress
#

WebAssembly - the standard that's neither web nor assembly

jovial warren
#

like a chat component library

half harness
#

its a plugin

#

chat plugin

hot hull
#

What you smoking again Bardy

half harness
#

like deluxechat

jovial warren
#

ah right

half harness
#

i think

jovial warren
hot hull
ocean quartz
#

Idk what you smoking, but can I have some?

prisma wave
half harness
#

lowercase repo name ๐Ÿคข

prisma wave
#

Never used it but it looks hot

hot hull
prisma wave
#

Haskell on the web

jovial warren
hot hull
#

Aaa miss clicked the turn of ping

cinder flare
#

boy am I in for a world of hurt

half harness
jovial warren
#

repos should be the name of the Gradle project imo

#

which should be snake_case

hot hull
jovial warren
#

actually no

#

project names should be whatever-case-this-is

lunar cypress
#

lisp-case

half harness
#

why do i have a lowercase username

jovial warren
#

Matt ffs

#

how do I import your theme

#

for like the 5th time lol

hot hull
#

@cinder flare I believe you're new here right?

jovial warren
#

I tried importing it with Material Theme, but it doesn't seem to recognise it as XML

cinder flare
#

Depends

#

What are you trying to say about me hmm

half harness
#

blitz told me before

#

but i forgot

hot hull
#

OS or CS

ocean quartz
half harness
#

cs ftw

hot hull
#

Dkim

#

Die

jovial warren
cinder flare
#

Like, my major?

half harness
#

lol

jovial warren
hot hull
#

No, Open Sourced or Closed Source

cinder flare
#

is that even a question lmao

jovial warren
#

open-source >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> proprietary

cinder flare
#

open source is objectively superior

jovial warren
#

objectively

hot hull
#

Okay good I like you already

half harness
#

open source > closed source

jovial warren
#

good boy dkim

half harness
cinder flare
#

Im gonna disclose something fully, I was very active on here about 2.5 years ago

jovial warren
#

you're learning

prisma wave
cinder flare
#

And I think I vaguely remember you geting Helpful lol

half harness
hot hull
#

I can't remember last week so don't even bother trying to remind me who you are

cinder flare
#

Haha

half harness
#

lol

jovial warren
#

it's literally not there

#

no cap

ocean quartz
stuck harbor
#

yes SPC p p

#

u have smol SPC p p

jovial warren
#

EW what font size is that

#

how

#

even I don't have eyesight that bad

#

jesus christ Matt

ocean quartz
#

Monitor size nerd

jovial warren
#

18?!?!

#

this actually isn't that bad

cinder flare
jovial warren
#

doesn't match the rest of my Atom OneDark theme though -_-

ocean quartz
#

And I keep changing size based on file, that just happened to be 18 when I created the file

jovial warren
#

you got a OneDark copy that matches this?

ocean quartz
#

Wdym it doesn't match?

jovial warren
ocean quartz
#

Wtf is wrong with your atom one dark?

jovial warren
#

I got the one from Material Theme

#

I also got the separate plugin

#

which one you got?

ocean quartz
cinder flare
#

not gonna lie, kinda miss a different colored menu

ocean quartz
#

Material one

cinder flare
jovial warren
#

also, imagine not having compact sidebar

#

wtf

#

why do I have whatever tf this is

ocean quartz
#

No idea

cinder flare
#

bro your sidebar is like 2x bigger than ours lmao

jovial warren
jovial warren
#

I have compact sidebar on

#

because not having compact sidebar and compact tabs on is ๐Ÿคฎ

cinder flare
#

i dunno what to say boss

#

i did the measurements and your left sidebar is like 2x bigger than ours

ocean quartz
jovial warren
#

ah, I had the white logo atom onedark on

#

lemme see what this looks like with the pink one

cinder flare
#

ew

jovial warren
#

there we go

cinder flare
#

the material icons confuse me heavily ngl

jovial warren
#

not sure about italic types

cinder flare
#

ooh dude the italic functions and stuff slaps

jovial warren
#

or at least, italic interfaces

cinder flare
#

mmmmmmm

#

like butter

jovial warren
#

man

cinder flare
jovial warren
#

import static java.time.temporal.ChronoUnit.*

#

ez

cinder flare
#

oh yeah

#

not my code

lunar cypress
#

static wildcard import ๐Ÿคข

ocean quartz
#

Ew wildcard imports

jovial warren
#

and anyone who says wildcard imports are bad, for enums I disagree especially

#

gimme one good reason why wildcard imports bad

cinder flare
#

it just be like that

#
  • big scary
#

despite the fact that, my name is, in fact, star

jovial warren
#

because I've never had a problem with them

lunar cypress
#

because scope pollution

jovial warren
#

wat dis

unkempt tangle
#

I got it

prisma wave
#

polluting the scope

cinder flare
unkempt tangle
#

You needs SmaliIdea for debugging smali

prisma wave
#

Ahh

unkempt tangle
prisma wave
#

makes sense

jovial warren
prisma wave
#

Filling the scope with stuff that isn't needed everywhere

lunar cypress
cinder flare
#

mmk mmk

ocean quartz
#

I have my settings for wildcards pretty high

cinder flare
#

if you're a hater of scope pollution, a lot of people hate using namespace for the same reason lol

jovial warren
prisma wave
#

although I don't personally think scope pollution is necessarily a bad thing

lunar cypress
#

yeah globally it's decried

#

but you can use using locally as well

jovial warren
#

I just let default IJ settings figure out what's best for my imports

cinder flare
#

mmm putting using in my .h file go brrrrr

jovial warren
#

I haven't changed any of those sorts of settings

cinder flare
jovial warren
#

oh btw, ItemStack good name for an item stack in an inventory right?

#

one of the things Bukkit did good

#

and might also do a Bukkit and shove that in the inventory package

cinder flare
#

wow, common abstractions? very impressive ๐Ÿ‘

unkempt tangle
#

Senpai

#

welp me here

prisma wave
#

functional abstractions

ocean quartz
#

Or do like ktor, they have everything as wildcard import

half harness
#

welp you?

jovial warren
#

oh also, this theme has reminded me that I need to disable name checking

#

because it puts a really big and annoying yellow line underneath every word not spelt correctly

ocean quartz
#

Just write well then duh

half harness
#

you should update windows

#

n3w0rk

jovial warren
#

and ENDER

#

MINECART

prisma wave
#

Haskell doesn't have this issue

cinder flare
#

Does the Haskell IDE have spellcheck? lmao

jovial warren
#

oh btw, ```kotlin
MUSIC_DISC_11,
MUSIC_DISC_13,
MUSIC_DISC_BLOCKS,
MUSIC_DISC_CAT,
MUSIC_DISC_CHIRP,
MUSIC_DISC_FAR,
MUSIC_DISC_MALL,
MUSIC_DISC_MELLOHI,
MUSIC_DISC_PIGSTEP,
MUSIC_DISC_STAL,
MUSIC_DISC_STRAD,
MUSIC_DISC_WAIT,
MUSIC_DISC_WARD,

half harness
#

seems fine

#

imo

jovial warren
#

those are what I named the music discs in ItemType

half harness
#

TYpe

unkempt tangle
#

senpai i need ur welp

cinder flare
#

that uh, seems like the names of the music discs yeah

jovial warren
#
    BANNER_PATTERN_CREEPER_CHARGE,
    BANNER_PATTERN_FLOWER_CHARGE,
    BANNER_PATTERN_GLOBE,
    BANNER_PATTERN_SKULL_CHARGE,
    BANNER_PATTERN_SNOUT,
    BANNER_PATTERN_THING,
```and these for the banner patterns
#

the only thing I'm really questioning is putting the name of the pattern after the word BANNER_PATTERN

#

oh btw, is scute a 1.16 thing?

half harness
#

y not just BANNER_THING

#

and BANNER_GLOBE

#

etc

jovial warren
#

please tell me I haven't missed yet another one of those wiki puts 1.17 items in the item list when 1.17 isn't released yet

forest pecan
jovial warren
#

I was gonna say

forest pecan
#

its used for turtle master potions

#

and the turtle shell helmet

#

very useful

#

๐Ÿ‘Œ

jovial warren
#

what do you guys think?

cinder flare
#

I like how CARROT and CARROT_ON_A_STICK are all red

#

Oh and also CLAY_BALL

#

those are my thoughts

jovial warren
#

it's recognising it as whatever .m is

#

ah, MATLAB

forest pecan
#

lmao

jovial warren
#

also, how tf can you have a "proprietary programming language"

cinder flare
#

you make your own language wdym

#

JetBrains has a whole program for just that

jovial warren
#

surely people will just buy it and leak it

cinder flare
#

Not for sale silly

jovial warren
#

what's it for?

cinder flare
#

Just for internal use in your company or something

forest pecan
#

private uses

jovial warren
#

ah right

forest pecan
#

not always for marketing

cinder flare
#

To keep your proprietary tools and scripts proprietary

forest pecan
#

or for curiosity

#

lol

#

tbh, you can just use a license on the header of the file

jovial warren
#

I would never use a proprietary programming language lol

forest pecan
#

which states its propietary

cinder flare
jovial warren
#

oh also, why tf is ItemStack mutable

#

what the fuck Bukkit

stuck harbor
#

how would one make the shadowJar task run before the build task in gradle?

cinder flare
#

in case you want to change what itemstack it is, silly

#

put defaultTasks 'clean', 'build' at the top of your proj

#

then click on shadowJar

#

and it'll run all three in order

#

@stuck harbor

jovial warren
lunar cypress
#

ew

unkempt tangle
#

Anyone welp ;C

jovial warren
#

things like vectors and locations are immutable lol

stuck harbor
#

i cant just do gradle shadowJar

#

the command has to be gradle build

half harness
cinder flare
jovial warren
#

the only thing I gotta worry about is the amount of objects on the heap

cinder flare
#

it should execute those steps after shadowJar

jovial warren
lunar cypress
cinder flare
stuck harbor
#

ah thanks

prisma wave
#

kotlin dsl ๐Ÿคข

jovial warren
#

immutability is key to at least somewhat guarantee asynchronous safety

cinder flare
#

who cares if my random location modification is asynchronous

#

asynchronousness comes at a cost of performance usually

jovial warren
#

not if you do it right

cinder flare
#

and especially when it's unnecessary, like why

lunar cypress
jovial warren
#

Krypton uses coroutines

cinder flare
#

Most of the time you don't want it to be async-safe

prisma wave
jovial warren
#

coroutines are really lightweight and really performant

prisma wave
#

๐Ÿ™‚

cinder flare
#

Not as performant as straight-up code

#

Which you most of the time don't need or want asynchronous anyways

jovial warren
#

er... only taking advantage of a single core is the main reason why vanilla is shit

cinder flare
#

tell me, how often have you changed a location from multiple threads?

jovial warren
#

in Bukkit, not very often

prisma wave
#

i run every line of code on a separate thread

#

it's faster trust me bro

jovial warren
#

in Krypton though, where you have no idea what coroutine a player or world may be allocated to, it could happen more often than you think

cinder flare
#

haha

cinder flare
prisma wave
#

multithreading has no known downsides

jovial warren
cinder flare
jovial warren
#

how?

#

you ain't making any sense

prisma wave
cinder flare
#

why put players and worlds on random coroutines?

jovial warren
#

to allow for them to be distributed better amongst the more than one core a CPU has

cinder flare
#

that can definitely be synchronous

#

who cares how they're distributed

#

players do not make up a majority of usage

#

worldgen does

#

and mob ai does

ocean quartz
#

Just Bukkit.getScheduler().runTaskAsynchronously() on every block of code duh

jovial warren
#

I mean, we use Netty anyway, so that's already async

#

and chunk loading is async

cinder flare
#

most things definitely can be singlethreaded

prisma wave
#

f# async block

jovial warren
#

not sure about that

forest pecan
#

in fact dont just do that, wrap an async in an async block

prisma wave
#

let task = async { printfn "hello from async" }

cinder flare
#

worldgen, mob ai

#

what else

jovial warren
#

sending chunk data

forest pecan
#

world modification

#

well oops

#

nope

#

dont do that

#

lmao

jovial warren
#

so you don't have to wait ages when you join to receive all of the packets you need

ocean quartz
#

let task be async { print the fn "hello from async" }

prisma wave
#

hello world plugin needs at least 3 different thread switches to be efficient

cinder flare
#

okay we got 3 things

#

you certainly don't want redstone asynchronous

jovial warren
#

why not?

cinder flare
#

unpredictable behaviour ring a bell?

jovial warren
#

I'm not saying you're wrong, I'm just curious

cinder flare
#

that's why the bedrock async redstone is fucking terrible

#

certain things should definitely be executed in the order they arrive in

forest pecan
#

bedrock redstone sucks

#

lmao

cinder flare
#

^^

forest pecan
#

its not just the code, the whole

#

damn system

#

is just garbo

jovial warren
#

yeah Bedrock redstone sucks

prisma wave
#

this is very entertaining

jovial warren
#

BM you gotta help listing things that should be async

prisma wave
#

its like watching johnny and sx argue discuss things back in the day

jovial warren
#

lighting

jovial warren
cinder flare
prisma wave
#

i appreciate it

jovial warren
#

lighting should be async

cinder flare
#

well yeah lighting can be, don't really matter too much

prisma wave
#

arguments with clever people make my day

cinder flare
#

in fact, why not just make clients render lighting themselves

#

they already basically do

jovial warren
#

no way

#

no

#

no

cinder flare
#

why not?

prisma wave
#

or people that think theyre clever when theyre actually dumb, thats the best

#

like that bomp fellow

cinder flare
jovial warren
#

you haven't seen what happens when you send chunk data packets before lighting update packets

#

the client almost crashes

#

no cap

cinder flare
#

but I mean

half harness
#

lol there are like 5 hours of the day where helpchat is just spammm

jovial warren
#

trust me, I made that mistake

cinder flare
#

why even send lighting packets

#

haha

prisma wave
cinder flare
jovial warren
#

the client almost crashes

prisma wave
#

this guy was telling me my POJO needed to be immutable for thread safety in bukkit

cinder flare
#

eyyy

cinder flare
jovial warren
#

what kinda planet is he living on?

prisma wave
#

and that its possible to use a hashmap incorrectly or something

jovial warren
cinder flare
#

im saying that there isn't even a reason to send lighting data lol

jovial warren
#

will probably use Tuinity's standalone engine tbh

cinder flare
#

like, we're talking theoreticals here

half harness
jovial warren
cinder flare
jovial warren
#

it's not even an abstract class

#

you can't put Abstract in the name if it ain't abstract

#

use I instead lol

cinder flare
#

what if you just pretend it's abstract huh?

cinder flare
#

i mean, technically interfaces are just abstract classes where all the methods are abstract and you're allowed to have multiple of them

jovial warren
#

okay maybe I should rewrite this in Kotlin

#

or better yet, just write my own lighting engine from scratch

#

๐Ÿฅฒ

#

okay yeah I ain't using this

#

public final int x;

cinder flare
#

bro just like, code the whole game from scratch at this point

#

if you're being done with things for being poorly coded lmao

jovial warren
#

what do you think Krypton is lol

#

apart from a fun project of mine

#

also, this uses fastutil

cinder flare
#

nah not just the server bro

#

the whole game

#

toss out java, it's trash

#

spigot? never heard of it

#

minecraft forge? sounds like a kid's toy

jovial warren
prisma wave
#

agree

#

ditch the JVM

jovial warren
#

nah I ain't doing a Hypixel

#

fuck that

#

I don't make games because they require creativity

cinder flare
#

i mean, copying minecraft bit for bit would not require creativity

jovial warren
#

I'm making the server because everything I need is already there for me

lunar cypress
#

on a completely different note

#

this benchmark is going to be huge

jovial warren
#

what benchmark

lunar cypress
#

I reckon it will take like half a day to execute

#

my persistent collections benchmark

prisma wave
#

lmao

#

rent out a supercomputer from azure or something

#

for a few hours

cinder flare
#

mmm azure

#

this is an AWS household sir

#

im sorry to inform you

#

and we don't stan GCP

#

god I hate GCP

#

actually azure is okay

#

just not GCP

lunar cypress
#

I would run it on my vps but I think it's too cheap to not be a bottleneck

cinder flare
#

and OVH kinda blew up so oof

static zealot
#

still waiting for my vps ๐Ÿ˜ฆ

lunar cypress
#

I think I'm going to upgrade my VPS

#

1 โ‚ฌ more for 2 extra cores and 4 more gb of ram seems reasonable

eternal compass
#

is it possible to post a new file without bumping your resource on spigot?

#

I made a mistake, but its not bad enough that I want to bump it / make people re-download it

static zealot
#

I think you can update the jar without updating the whole thing. I'm not sure tho

#

wait what file?

eternal compass
static zealot
#

they'll still have to download it tho

eternal compass
#

I converted to Gradle, so the version string was just ${project.version} instead of @version@

#

and I just want to reset the jar file

#

not bump it or anything

static zealot
#

nvm you can't

prisma wave
lunar cypress
#

yeah

#

I have literally the cheapest deal you can get there

jovial warren
#

Kotlin good Java bad

#

objectively

eternal compass
#

because #development is overrun, anyone know how I might add my project version to my plugin.yml via gradle? @version@ doesn't work

ocean quartz
#

You need a replace tokens thingy

eternal compass
#

ahh I see that

#

ty

#

uhhh
Cannot resolve symbol 'org'

jovial warren
#
processResource {
    filter ReplaceTokens, tokens: ["version": project.version.toString()]
}
#

ez

#

import org.apache.tools.ant.filters.ReplaceTokens

eternal compass
#

I did that

#

import org.apache.tools.ant.filters.ReplaceTokens

jovial warren
#

if you're using shadowJar

eternal compass
#

I am

static zealot
#

try refreshing gradle

eternal compass
#

ah, I did that

#

seems to have fixed it

static zealot
#

yeah I had that happen to me too once

eternal compass
#

and is it possible to update a published jar without updating the resource?

static zealot
#

no

#

I thought it is but I just double checked

#

and you can't

eternal compass
#

sad

#

well, time to bump my plugin for the third time in 2 days lol

static zealot
#

that's why you test it before uploading

eternal compass
#

I did

prisma wave
eternal compass
#

I just didn't check the plugin version

prisma wave
#

Actually mine might be second cheapest

eternal compass
#

I only noticed because of bstats

lunar cypress
prisma wave
#

Yup

lunar cypress
#

yeah that's what I'm upgrading to

prisma wave
#

Ah right

#

The cheaper one is like โ‚ฌ3.99 right?

lunar cypress
#

yeah

#

It's has more storage but that's it

#

they have like two branches, one for computational power and one for storage

#

and I don't really need either lol

#

until now...

prisma wave
#

haha

#

The โ‚ฌ5 deal is amazing for what you're getting

lunar cypress
#

absolutely, I have yet to see a better deal for that power

prisma wave
#

Yeah even that ?vps-best-deal doesn't come close

static zealot
#

vps-best-deal is like 6/mo

lunar cypress
#

The only downside some people have mentioned (though I personally haven't had issues with it) is the internet connection apparently

prisma wave
#

Although contabo seems to have a fairly poor reputation here for some reason

#

Yeah I've never had any issues either

lunar cypress
#

?best-vps-deal

compact perchBOT
lunar cypress
#

yeah the contabo one is 5 and you get 2 gb more memory

prisma wave
#

and more storage

lunar cypress
#

but it's not for everyone since they are a german company

prisma wave
#

Yeah NA hosting is more expensive

#

But for EU it's perfect

static zealot
#

I mean idk if the Contabo one is really that much better than the best vps deal

prisma wave
#

It's cheaper and you get more

static zealot
#

the 4.99 E one is actually 5.94 E after VAT

#

and its euro not usd

prisma wave
#

That's objective better

static zealot
#

I guess its a bit better

#

but not a lot

lunar cypress
#

uses 2% cpu lol

jovial warren
#

oh yeah, actually, thinking about benchmarking, maybe I should start doing it in Krypton

#

and profiling lol

hot hull
#

Make shit first, optimize later

jovial warren
#

been using JProfiler a bit

#

looks really nice, but that price tag is

hot hull
#

I need to start benchmarking some of my larger plugins

lunar cypress
#

profiling, you mean, yeah

jovial warren
#

kotlinx.benchmark

hot hull
#

been only developing on latest recently and you really do have to watch out when it comes to stuff

hot hull
jovial warren
#

basically JMH for Kotlin if you use the JVM version

#

but it's multiplatform

lunar cypress
#

interesting

#

ah it uses jmh on the jvm

jovial warren
#

yeah

jovial warren
#

also, JMH says it's for analysing nano/micro/milli/macro benchmarks

#

๐Ÿ‘€

#

๐Ÿ˜

#

sign me up

prisma wave
#

That code execution bot?

jovial warren
#

micro benchmarks

lunar cypress
#

no, my bot

#

my poker bot written in clojure ๐Ÿ™‚

prisma wave
#

Ooh nice

jovial warren
#

thinking about bots, I should add more stuff to BardyBot lol

lunar cypress
#

I think if I finally bring myself to add some of the requested features this bot will grow a lot faster

#

But I'm too lazy and the discord api part is kind of a mess ๐Ÿฅฒ

static zealot
#

should I add contabo to ?best-vps-deals ?

jovial warren
#

man, you just reminded me that I gotta pay for my Hetzner stuff before they shut it down again and send me a passive-aggressive email telling me they're sending the bailiffs after my ass

static zealot
#

xD

cinder flare
#

asking for a friend

jovial warren
#

I might make BardyBot use Brigadier tbh

static zealot
#

?best-vps-deal

compact perchBOT
static zealot
#

and contabo you can just google

jovial warren
#

that's put there by piggy

static zealot
#

its what BM uses

cinder flare
#

$65 a Year

distant sun
cinder flare
#

bro AWS would hit me with $65 a month

jovial warren
#

JDA-Utilities sucks ass

static zealot
#

yeah its pretty good

lunar cypress
cinder flare
jovial warren
#

and MF JDA doesn't suit what I need

distant sun
#

Why use a mc commands framework on a discord bot

jovial warren
#

also, don't be fooled by that VPS deal in ?best-vps-deal

jovial warren
#

it works for literally anything

distant sun
#

Meh

jovial warren
#

that's how it's designed

prisma wave
jovial warren
#

man, I remember getting a 4 GB AWS EC2 instance before I calculated it would cost me $77/month

static zealot
cinder flare
jovial warren
#

OpenVZ

cinder flare
#

oh shit

#

is that not a let me SSH into it myself kinda thing

hot hull
#

God I love how much of a lie this is

jovial warren
#

OpenVZ is great, until Docker comes around and says "I need advanced kernel features" and OpenVZ just kinda goes "erm... yeah... I can't provide that"

hot hull
#

Makes me look like I'm actually a usefull part of the society

jovial warren
#

since in OpenVZ, all instances use the same kernel

static zealot
#

the 4.99 one but careful. its Euros and after vat it is 5.94

distant sun
#

Contabo is meh imo

static zealot
#

and 5.94 euros is about 7$

prisma wave
#

only issue is NA hosting costs extra

jovial warren
#

Hetzner good

lunar cypress
#

yeah I'd only use contabo in EU

hot hull
#

Atleast hetzner doesn't burn :kek:

lunar cypress
jovial warren
#

nope

#

not true

distant sun
#

:))

lunar cypress
#

not anymore?

jovial warren
#

I've had my bot work on Hetzner servers for ages

static zealot
#

also BM

cinder flare
#

so you're saying im paying more for AWS for the guaranteed quality and reliability

static zealot
#

with contabo

jovial warren
#

and my bot is a Discord voice bot

static zealot
#

do you have to payt another 5E first time?

distant sun
#

Yes

lunar cypress
distant sun
#

"Setup fee"

jovial warren
#

I used to run it a few months back

static zealot
#

I just have the 3.5$ one from OVH lmao

jovial warren
#

I've ran it on my VPS recently though and it worked fine

static zealot
#

and the first month I get it... it burns

distant sun
#

:))

lunar cypress
#

ok then they settled it

jovial warren
#

well, I can't remember when I last ran it on my VPS tbh, but it works

lunar cypress
#

they were banned for a very long time

jovial warren
#

yeah ik

prisma wave
jovial warren
#

for seemingly no reason

static zealot
#

ah

#

there is now

#

12 months has no setup fee

#

6 has 2.5

#

e

jovial warren
#

other than they got a lot of spam traffic I think from Hetzner

lunar cypress
jovial warren
#

also, I don't think it's settled, but Discord didn't ban all IPs

lunar cypress
#

ah

jovial warren
#

most IPs ain't banned

static zealot
#

I'm just waiting for them to relaunch my VPS ๐Ÿ˜ข

jovial warren
#

that's a massive oof

static zealot
#

SB3 I think

jovial warren
#

wonder where all the companies on SB2 servers will go now

static zealot
#

yeah it was SBG3

#

aparently its Recoverable

#

so I didn't lose my jar... xD

#

lmao

#

that's all I had on there

lunar cypress
#

copium they will piece the ashes back together

static zealot
#

I just got a notice saying that it is recoverable

jovial warren
#

wait did they not have backups for SB2?

static zealot
#

well not everyone on it had a backuop

#

unless you bought services that ofered backups I think

jovial warren
#

surely they should back everything up anyway

static zealot
#

like off site backups

#

hmm idk

jovial warren
#

just off their own back

#

I think AWS and stuff do that

#

they back up stuff even if you don't pay for it, they just don't give you the backups, they store them in case something like that happens

static zealot
#

yeah but their prices are very high aren't they?

jovial warren
#

yeah

#

AWS is popular because of its rapid scalability and reliability

#

not because of its pricing

cinder flare
#

and cause it's backed by Amazon

jovial warren
#

not necessarily

cinder flare
#

and we know my boy Jeff Bezos ain't ever going down

#

No the reliability is definitely a reason

#

Multiple availability zones and all that

jovial warren
#

I've heard you can rescale your stuff with the click of a button

static zealot
cinder flare
#

Yeah that's possible

static zealot
#

SBG2 Bare Metal is not recoverable

cinder flare
#

They also have nice services other than EC2

static zealot
#

same for Web Plesk

cinder flare
#

Building a web app fully with AWS Lambda can be pretty cool

static zealot
#

and SoYouStart

#

wait acftually maybe they are idk

#

but I think they there's a thing called disaster recovery

#

that I on my VPS don't have

jovial warren
#

man, this is gonna fuck them up real bad

static zealot
jovial warren
#

that's up to companies

static zealot
#

yeah idk why I sent that but my service has no disaster recovery option so if it burned down I had no way to recover it

jovial warren
#

guessing yours was in SBG2 then

cinder flare
#

lmaoo

jovial warren
#

rip

cinder flare
#

now that's a lot of non-arrays boss

jovial warren
#

literally joined the game and now the array count is at 149,779

cinder flare
#

oh and arrays too yeah

jovial warren
#

the array count is the one to watch

#

I think

#

anyone here know how to profile properly?

cinder flare
#

i vaguely read a thing that in 1.8 there was only like 200 arrays/s or something and in 1.13 it was like 30000 arrays/s

hot hull
#

1.3mil objects lmao

jovial warren
#

also, let's join again and see if it goes up lol

cinder flare
#

it was kinda crazy

jovial warren
#

OMFG

half harness
heady birch
#

Wow time to check my new world record server uptime on my OVH SBG-2 VPS instance

jovial warren
#

it's at like 327k arrays

#

and climbing

cinder flare
heady birch
#

Connction refused? ??

jovial warren
hot hull
#

Niall, :kek:

cinder flare
half harness
cinder flare
#

looks like to to me boss

#

i dunno, I just read the labels, same as you

half harness
#

lol

heady birch
#

Swift looks cool, can you use it for no Apple stuff?

cinder flare
#

Kinda, not many libraries for it though

jovial warren
cinder flare
#

Kotlin is very similar, and it has much more support

#

Like, almost exactly similar syntax in a lot of situtations

jovial warren
#

something is definitely wrong here

heady birch
#

Swift has struct though ๐Ÿ™‚

cinder flare
#

I almost thought they were the same language at first lol

jovial warren
#

there is no reason why the GC shouldn't clear at least half of that, surely

heady birch
cinder flare
#

Just... don't use struct?

jovial warren
heady birch
#

Leaky memory ๐Ÿ˜ฆ

jovial warren
#

it's going up again

#

yeah something here isn't right

#

it takes longer to join every time

cinder flare
#

uh oh

jovial warren
#

okay GC finally fucking did its job

heady birch
#

Did you know it is practically impossible to have a memory leak in Rust?

cinder flare
#

ah, relying on gc

jovial warren
cinder flare
#

i don't think that's the point of this project though

jovial warren
#

jesus

half harness
#

4m ๐Ÿ‘€

jovial warren
#

yeah it almost hit 4 million

#

something is leaking somewhere

cinder flare
#

bro you gotta get that async gc going much much faster