#dev-general

1 messages ยท Page 392 of 1

cinder flare
#

You just can't do arithmetic on them

lunar cypress
#

...no, you are not.

cinder flare
#

?

#

you're reassigning the pointer of node to the memory address of node.next

lunar cypress
#

You aren't

#

This isn't specified

#

Nor is it something that needs to be defined this concretely

cinder flare
#

okay maybe we're not talking about the same thing

humble silo
#

If you did that inside a method the value of node wouldnt change though since Java is pass by value, so your not actually changing the memory adress of anything

cinder flare
#

cause I am completely lost mate

#

no you're changing where node is pointing

lunar cypress
#

Reference variables are just abstract containers for objects as far as the language is concerned

humble silo
#

node is a value

#

its not a reference

cinder flare
#

it is?

#

it's an object reference

#

not a primitive

humble silo
#

Well java is pass by value as i said

#

not by reference

cinder flare
#

no its not

humble silo
#

Yes it is lol

cinder flare
#

only primitives are pass by value

lunar cypress
#

It is

#

No

cinder flare
#

what the fuck

lunar cypress
#

References are considered values though.

humble silo
#

as far as i understand it values hold their references i think

#

or is that not right?

cinder flare
#

yeah so references are pointers to memory locations, no?

prisma wave
#

yeah java is pass by value

cinder flare
#

we literally had an entire fucking 3 weeks about the difference of pass by value and pass by reference in java

#

okay I guess I don't know anything

lunar cypress
#

The language specification is not concerned with "memory locations" or anything like that at all, is my point.

humble silo
#

Ok, Im pretty sure that since java is pass by value each object(interally) also holds their own pointer and when you call a method or something its referenceing the pointer that object has

lunar cypress
#

Pointers in C are literally physical addresses

prisma wave
#

java uses with references not pointers

lunar cypress
#

What reference values are is no concern of Java, the language

humble silo
#

ya

lunar cypress
#

Although they do specify them to be pointers to objects

cinder flare
#

!!!

lunar cypress
#

But only in a very abstract sense. That spec has nothing to do with C-like-pointers

humble silo
#

But since Java is pass by value dont objects internally hold something like a C pointer to a memory adress?

cinder flare
#

are C-like-pointers not the same thing except you can do arithmetic on them?

humble silo
#

Or is that completely wrong

cinder flare
#

well you gotta know where things are somehow

hot hull
#

Y'all stoopid, java doesn't even exist

cinder flare
#

yeah honestly Java is way too fucking complicated for my taste apparently

#

let's all just go back to C

humble silo
#

lol

prisma wave
#

C pointers don't have to point to anything valid

#

They're just numbers afaik

lunar cypress
#

Yes

humble silo
#

I love that, its so simple yet really cool

cinder flare
#

well yeah but aren't Java pointers just also numbers under the hood?

#

they just only are changed by the JVM or whatever

humble silo
#

there arent really pointers in Java

#

though

lunar cypress
#

See, there we have the issue. "Under the hood"

cinder flare
#

well yeah that's what I was talking about?

lunar cypress
#

I already presumed this was happening

#

See, you can't really make an argument about what's useful to understand Java, the language, by pointing to implementation detail in the JVM as if they were interchangeable

cinder flare
#

well my whole point was that it's useful to know how higher level languages work under the hood

humble silo
#

I would argue it is useful to understand atleast some of the interals though. Or atleast the general idea

cinder flare
#

yeah!

#

that's like my whole point lol

humble silo
#

No one needs to and ofc you would never start a newcomer off with JVM spec stuff but in the long run it could help you

lunar cypress
#

But this wasn't clear throughout the messages

cinder flare
#

okay were we talking about completely different things lol

humble silo
#

Well good convo anyways

cinder flare
#

yea lol

lunar cypress
cinder flare
#

I learned Johnny has advanced underanding lol

#

to me they're the same thing lol

lunar cypress
#

It's a subtle, but important distinction. happens all the time and it always leads to misunderstandings

humble silo
#

@cinder flare Whats going on in Room 1 btw

cinder flare
#

we're judging Bardy's way of speaking lol

humble silo
#

wow very nice of you lol

lunar cypress
#

anyway, whenever a discussion about java arises that involves a lot of pedantry (like what exactly is a reference in java, do pointers exist etc etc) it's always worth taking a look at the actual specifications

obtuse gale
#

nerd

#

Just come up with your own definitions

#

Ez

prisma wave
cinder flare
#

not even

#

we have other bri ish peeps

#

and they're scared too

static zealot
#

nice

unkempt tangle
#

okay got kali running

#

how can I compile Makefile

cinder flare
#

you need a C compiler

#

like LLVM or gcc

ocean quartz
obtuse gale
#

he's a kool kid, Matt

obtuse gale
#

He knows jack but hey, he runs kali

prisma wave
unkempt tangle
#

why not

cinder flare
#

he's a zoomer

unkempt tangle
cinder flare
#

who knows kali but not gcc lol

unkempt tangle
#

I know the compiler gcc

#

But not makefile

#

wtf

cinder flare
#

makefile just invokes gcc

unkempt tangle
#

Who knows that

cinder flare
#

it's like gradle but shitty and for C

prisma wave
unkempt tangle
#

senpai

#

dont be a meany

prisma wave
#

kali is only useful if you actually know what you're doing

unkempt tangle
#

I know what I do

#

I try to get the OPCODE from a custom lua interpreter

#

Through debugging/disassemblying his luav_execute

prisma wave
#

Not sure you need Kali for that

unkempt tangle
#

Well I wanna try some tools

#

that aren't compiled ๐Ÿ˜ญ

#

I hate such jerks

prisma wave
#

wot

unkempt tangle
#

GIves their free software

#

but not compiling them

prisma wave
#

compile it yourself

unkempt tangle
#

May I also change the introduction of the file

prisma wave
#

Lazy

unkempt tangle
#

What do you think I am doing here

prisma wave
#

It's also archived so they probably don't want to support it anymore

unkempt tangle
#

Probably

#

So

#

how can I compile it ๐Ÿ˜ญ

cinder flare
#

just download CLion

unkempt tangle
#

I was told

#

I need make

#

I installed linux distro for that

cinder flare
#

CLion can parse makefiles for you

#

well yeah you need make itself

#

but you need a bunch of commands to setup the make thing

#

similar to like gradle init and stuff

unkempt tangle
#

:c

prisma wave
#

You don't need linux for make ๐Ÿฅฒ

cinder flare
#

yeah he had minGW but couldn't use it

unkempt tangle
#

I asked couple of times

humble silo
static zealot
#

how do I get the path that my application is at?

#

kotlin/java

surreal quarry
#

like the place the jar is?

humble silo
#

System.getProperty("user.dir") right?

static zealot
static zealot
surreal quarry
#

yea the system thing should work according to stackoverflow

#

if not thereโ€™s probably like File#getAbsolutePath or something

static zealot
#

yeah I'm just trying to save a default config file

forest pecan
#

could you make an ide in minecraft

#

๐Ÿ˜ณ

prisma wave
#

books

#

or signs

onyx loom
#

๐Ÿ˜ณ

#

signs = program consisting of 4 lines fingerguns

forest pecan
#

haha playing coc and then going full on shortest code mode

#

then fitting all that code

#

on signs

hot hull
#

Books could actually work

static zealot
#

Man why do people have to be so stupid?

cinder flare
#

I ask myself that every day

#

Usually about myself

static zealot
#

so I have a thing with a model that people have to follow something like this:

[option]: value
[option-2]: value2
etc``` and I need to get each value. And what I did is split the lines at `\n` (newline) and then used a simple regex but they don't even know how to copy the fucking model and paste it so they just make it without a new line somehow so my bot doesn't get the correct values ...
#

and I just don't know what to do about them

cinder flare
#

awe nice

#

they throw in some non-breaking spaces just to mess you up

static zealot
#

yeah. idk how or why lmao

#

maybe they're on phones? but I think phones have new lines as well

#

the thing is it doesn't really matter. If the model is not right then it just deletes it and ignores and also sends them a message telling them its not correct but then they just come to me asking what's not correct

#

so I don't really know how I'd split the message into lines.

#

I've also tried just duplicating my regex but idk if I like that. Like it will just be: "\[(?<info>[^]]*)]:(?<value>.*)\[(?<info>[^]]*)]:(?<value>.*)\[(?<info>[^]]*)]:(?<value>.*)\[(?<info>[^]]*)]:(?<value>.*)\[(?<info>[^]]*)]:(?<value>.*)\[(?<info>[^]]*)]:(?<value>.*)\[(?<info>[^]]*)]:(?<value>.*)" well of course with the info/value names changed to info2/value2, info3/value3` but that really looks wrong to me.

cinder flare
#

what is this for? a config file or someting?

#

just make a builder at that point lol

#

don't let them near the text itself

static zealot
#

no no. something similar to #827055634586271775 I guess. doesn't do the same thing but uses the same format I guess

cinder flare
#

which request?

#

the mlg rush one? lol

static zealot
#

no mate. the way Barry checks requests

#

it checks if there's a budget etc.

cinder flare
#

ohhhh

#

I see I see

#

Can you not just do a contains search

#

Similar to how like Selenium validating does

static zealot
#

idk what Selenium is

cinder flare
#

like, as long as their message has a [Service] [Request] and [Budget] somewhere, then it's fine right?

#

no need to split by newline

static zealot
#

well not really

#

bcz I need to see what their budget is for example

#

and make sure its a number

#

or a valid budget

cinder flare
#

Oh jeez

static zealot
#

For example I have this: [Time]: 12h [Code]: 1234 [Name]: Blitz

cinder flare
#

Wait I bet you could make a prompter like in DM's

static zealot
#

and I need to make sure that time is > 6 h

cinder flare
#

Like Insert time: then you can validate per item

static zealot
#

code is a valid code from a list

cinder flare
#

Then Barry or whatever can be the one who posts in the channel

#

Just don't allow manual users at all!

static zealot
#

jesus that will take a while.

cinder flare
#

Can't be that hard?

#

You only have three items right?

static zealot
#

but what if 2 people start posting at the same time? I'd have to check that too

#

that's what I just wanted it to be 1 message

cinder flare
#

That's like, all I did in my entire intro to java class

#

Well have them do a command to start it

static zealot
#

or 5 people

#

or 10

cinder flare
#

then in DM's, Barry can handle each person individually

static zealot
#

yeah and only allow one at a time?

cinder flare
#

?

static zealot
#

oh DMs

cinder flare
#

Just make a handler per DM

static zealot
#

hmm

cinder flare
#

That way it doesn't spam any channels

static zealot
#

yeah I guess DMs works but Like I'll have to consider so many things. fuck this. Just gonna scrap the whole idea.

cinder flare
#

bro I think that's a good idea

static zealot
#

or leave it as it is and just make them use new line

#

way better

#

xD

cinder flare
#

I guess

#

but imagine the steps in usability

#

that makes your bot unique

#

not many other bots do that

static zealot
#

To many things to consider for a thing like that. My brain is not working properly today so I will either do it sometimes or I'll just forget in a few hours about this whole thing

cinder flare
#

Open source?

#

Maybe I can PR ๐Ÿ‘€

static zealot
#

no

cinder flare
#

:(

static zealot
#

its personal for my discord server so it has a lot of bad code in it just so it works also I have like a few webhooks and my bot token. which I don't want to make public again lmao

cinder flare
#

add me to the repo bro

static zealot
#

I did make it OS first and then discord sent me an email saying that my discord token was made public... Of course that was just me making it OS

cinder flare
#

I'll clean you right up

forest pecan
#

yo

#

clean me up

#

:)

cinder flare
#

๐Ÿ‘

static zealot
cinder flare
#

yes sir

#

add me to the repo

#

bet

#

@static zealot I don't see your repo in my list of repos ๐Ÿ‘€

static zealot
#

well there's 2 reasons why you don't. First I won't add you. Second: I just realised I didn't even upload it to github yet. I was like I should commit all the changes I made today. Then realised that on github is my old repo

cinder flare
#

bruh why won't you add me

#

gimme a chance

forest pecan
#

clean me up daddy

#

/s

cinder flare
#

:'(

forest pecan
#

clean me up

stuck harbor
#

c l e a n

humble silo
#

Anyone know how to change your nickname or how i can get privileges to? Is it a 20-29 level thing?

jovial warren
#

anyone here wanna have some fun trying to decipher some Mojang maths?

jovial warren
humble silo
#

Ayy

#

There we go

obtuse gale
#

pog

humble silo
#

How long do i get the role?

#

Just until my boost ends?

steel heart
#

yeah

humble silo
#

Great lol

lunar cypress
#

Shills

cinder flare
#

yeah lol I love how he immediately just does it

humble silo
#

I mean discord had offered me a month of nitro so why not lol

jovial warren
half harness
jovial warren
#

you gotta give GitHub your token to use GitHub Packages

half harness
#

o

jovial warren
#

you have to authenticate with GitHub for packages

half harness
#

๐Ÿ˜ซ

half harness
#

https://docs.github.com/en/packages/guides/configuring-gradle-for-use-with-github-packages
im trying to follow this but i can't get it to work, ```gradle
plugins {
id("maven-publish") apply false
}

subprojects {
apply plugin: "maven-publish"
publishing {
repositories {
maven {
name = "GitHubPackages"
url = uri("https://maven.pkg.github.com/OWNER/REPOSITORY")
credentials {
username = project.findProperty("gpr.user") ?: System.getenv("USERNAME")
password = project.findProperty("gpr.key") ?: System.getenv("TOKEN")
}
}
}
publications {
gpr(MavenPublication) {
from(components.java)
}
}
}
}
```this is what they say to put, so for username i put dkim19375 and for pass i put the token generated from https://github.com/settings/tokens, but it doesn't work
also, when putting from() in the gpr publications thing it says Unresolved reference

#

anyone know what im doing wrong ๐Ÿ˜ซ

cinder flare
#

I think username is email

half harness
#

oh

#

ill try that

cinder flare
#

same as what git does on the command line

half harness
#

nope

#

still won't work

#

:c

prisma wave
#

karma for using kt dsl

cinder flare
#

does it fill in the uri with the actual owner and repository?

half harness
#

yes

#

i replaced it

cinder flare
#

do you not like kotdsl bm

prisma wave
#

i do not

cinder flare
#

oh

#

why

prisma wave
#

ugly

cinder flare
#

I think it looks better than the groovy dsl ngl

half harness
#

bm doesnt like kt

#

in general

cinder flare
#

parens make more logical sense to me

prisma wave
half harness
prisma wave
half harness
#

ok now im confuesd

prisma wave
#

face

half harness
#

should i just manually down the source

jovial warren
#

facts though amirite

ocean quartz
#

Oh god, the tutorial sent in development ๐Ÿ˜ฌ

jovial warren
#

oh god

onyx loom
#

๐Ÿ™‚

cinder flare
#

ooh someone is coming from python

jovial warren
#
int i;
for (i = keys.length << 1; i < x; i <<= 1) {
}
```there has to be a better way to do this than that
cinder flare
#

doesn't seem to be

#

I didn't even know <<= was a thing

jovial warren
#

is that really the only way you can apply an operation to a variable x amount of times in Java?

cinder flare
#

I mean yeah

#

how else

pale shell
#

Is there any decent updated docs for fawe?

jovial warren
#
    private int findEmpty(int param_0) {
        for (int var_0 = param_0; var_0 < this.keys.length; ++var_0) {
            if (this.keys[var_0] != EMPTY_SLOT) continue;
            return var_0;
        }
        for (int var_1 = 0; var_1 < param_0; ++var_1) {
            if (this.keys[var_1] != EMPTY_SLOT) continue;
            return var_1;
        }
        throw new RuntimeException("Overflowed :(");
    }
```absolutely world class lol
#

just "Overflowed" lol

cinder flare
#

I dislike that code

#

Take me back to Kotlin please :)

ocean quartz
#

Take me to Kotlin I'll worship it like a dog

pale shell
#

I wish fawe could fix fawe being bad :L

cinder flare
#

I just wish normal WE wasn't slow as balls so we didn't have to deal with all these forks

pale shell
#

How many forks are there? I only know of fawe and async

cinder flare
#

well yes that's the two I know

#

but that's two more than you'd think there should need to be

pale shell
#

Ah I thought you meant like 5 or so my bad

jovial warren
cinder flare
#

wait how come?

#

that seems trivial to implement considering java already has it

prisma wave
#

Andrey Breslav ๐Ÿคข ๐Ÿคข ๐Ÿคข ๐Ÿคฎ

#

remember what he took from you

cinder flare
#

wait wtf does kotlin have shl instead of <<

forest pecan
#

kinda dumb that kotlin doesnt have bitwise

jovial warren
#

someone tell me how you can make generic type arrays without requiring the class of the generic type

ocean quartz
jovial warren
prisma wave
#

looking forward for monadic bind operator to be added to kotlin ๐Ÿค“

jovial warren
#

infix precedence

forest pecan
#

shl?

#

shift left?

jovial warren
#

yes

cinder flare
#

sounds like it

forest pecan
jovial warren
#

yes

forest pecan
#

thats fucking mental

jovial warren
#

so it's subject to infix precedence

forest pecan
#

thats literally compiler level

#

i think

#

when compilers compile code they format it to postfix precedence or infix i forgot

jovial warren
#

1 shl 2 or 3 and 7 shr 25 and 1 << 2 | 3 & 7 >> 25 are completely different

forest pecan
#

cause its easier to parse the expressions

jovial warren
#

they will produce completely different results

prisma wave
#

not always

jovial warren
#

so you have to be careful where you put your brackets

prisma wave
#

reverse polish notation is sometimes used

#

Which is suffix

#

but not always

#

Depends on the type of parser afaik

forest pecan
#

postfix?

prisma wave
#

yea

#

1 2 +

#

Clojure but backwards

forest pecan
#

some compilers use it

jovial warren
#

I am so glad Andrey Breslav is gone now lol

forest pecan
#

cause in postfix there is no ambivilence

jovial warren
#

he's literally the reason why Kotlin is what it is

forest pecan
#

and stuff like order of operations is easier to handle

jovial warren
#

when it could be so much more

#

we almost had tuples, but Andrey said no

#

bitwise operators? nope

forest pecan
#

the bitwise part i agree is stupid

#

there isnt a good replacement

cinder flare
#

tuples are kinda cool from what I hear

jovial warren
#

especially not infix operators with a completely different precedence to regular operators

prisma wave
#

custom operators

forest pecan
#

@half harness

jovial warren
#

I'm tempted to apply compiler modifications to add them myself lol

#

but that would break compatibility

cinder flare
#

ah Bardy is independently inventing Lombok lol

jovial warren
#

no

forest pecan
#

make your own kotlin

#

Botlin

jovial warren
#

lol

cinder flare
#

BOTLIN

jovial warren
#

I mean, I guess I could have a crack at designing my own language

forest pecan
#

๐Ÿ‘€

cinder flare
#

Barlang

prisma wave
#

why make your own language when haskell already exists?

#

no need

forest pecan
#

you meant elara

#

right

jovial warren
cinder flare
#

you're talking elm right

prisma wave
#

Uh sure

forest pecan
#

nah hes talking about F#

jovial warren
#

if I was going to make my own language, I would probably just kinda take everything I like from the languages I use and put it all together into one place

forest pecan
#

i think a lot of languages did that

#

like kotlin

#

lol

cinder flare
#

I'm thinking Perl, right?

jovial warren
#

basically Kotlin++

cinder flare
#

steal the regex from Perl

jovial warren
#

array literals, tuples, bitwise operators, etc.

forest pecan
#

kotlin was like I want less verbosity than Java! I want js like syntax modifiers! I want fun!

prisma wave
#

Kotlin as a lisp dialect

cinder flare
#

to be fair, fun is kinda cute

#

similar to yay package manager

forest pecan
#

im so used to using def tho

#

cause python

#

lmao

jovial warren
#

might also steal some stuff from Python lol

cinder flare
#

ew

#

python can suck my big toe

forest pecan
#

func

cinder flare
#

except for the few nice features it has

jovial warren
forest pecan
#

i like func

jovial warren
#

OOP in Python sucks ass

#

I can definitely agree there

forest pecan
#

lol 1 constructor only

#

xD

#

it does suck

prisma wave
#

i like not having a function keyword

jovial warren
#

you have to use self literally everywhere because properties outside of classes are a thing

jovial warren
#

oh there's another to add to the feature list

forest pecan
#

javascript

#

lol

jovial warren
#

proper type inference

forest pecan
#

javascript functions

#

xD

#

no definition

jovial warren
#

not just for expression functions, properties and variables, but also for complex functions

cinder flare
#

weak typing but static type checking?

#

that's like my favorite part of kotlin

prisma wave
#

kotlin isn't weakly typed

jovial warren
#

yeah I was gonna say

onyx loom
#

i dont get that, what is strong/weak typing

cinder flare
#

it can be

#

strong means you have to type the type of everything, like Java

#

weak means you don't have to most of the time, like with var/val in Kotlin

onyx loom
#

isnt that type inference tho

cinder flare
#

it is both yes

#

but strong/weak are ways to distinguish languages

prisma wave
#

no

#

Strong and weak typing is different to having type inference

#

java has type inference

onyx loom
#

kekw

cinder flare
#

wot

prisma wave
#

even before java 10

#

it has some

jovial warren
#

var lol

surreal quarry
#

java also has smart casting ๐Ÿ‘€

onyx loom
#

so what is it exactly

cinder flare
#

That accurately describes the argument we're about to ahve

jovial warren
#

also, strongly typed just means that the compiler does very strict type checking

onyx loom
#

james, are we talking about nialls smart casting here ๐ŸŒš

jovial warren
#

according to wikipedia it does

forest pecan
#

๐ŸŒš

jovial warren
#

well, what I read anyway

surreal quarry
#

didn't you learn in 2nd grade the wikipedia is a bad source ๐Ÿฅฒ

forest pecan
#

๐Ÿ˜…

jovial warren
#

Generally, a strongly typed language has stricter typing rules at compile time, which implies that errors and exceptions are more likely to happen during compilation. basically the same thing

prisma wave
#

I don't think there is a concrete definition, but I would say strong typing requires explicit conversions between types whereas weakly typed languages try to coerce as much as possible

cinder flare
#

Please reference my link

forest pecan
#

if that makes sense

jovial warren
cinder flare
#

Everyone has different definitions of strong

forest pecan
#

you shouldnt use it in a report paper, but it is good for quick knowledge

prisma wave
forest pecan
#

if that makes sense

jovial warren
#

teachers like to lie to you about Wikipedia because they haven't looked far enough into it

#

they think "can be edited by anyone" = unreliable

cinder flare
forest pecan
#

my social studies teacher literally told me to read the whole article about columbus day

#

lol

#

on wikipedia

jovial warren
#

Wikipedia has bots that do a very good job these days of stopping idiots writing stupid things

forest pecan
#

most of them are human checked anyways

#

even if bots dont get em

cinder flare
#

Any hot topic article is locked lol

jovial warren
#

and 99% of the stuff that's said is cited to credible sources anyway, it's basically a "don't take my word for it, look for yourself" kinda thing

prisma wave
jovial warren
#

also, learnt a new thing today

#

MurmurHash is a non-cryptographic hash function suitable for general hash-based lookup.
It was created by Austin Appleby in 2008 and is currently hosted on GitHub along with its test suite named 'SMHasher'. It also exists in a number of variants, all of which have been released into the public domain. The name comes from two basic operations, mu...

cinder flare
#

Anyways Bardy, is Barlang gonna have var and val? Maybe immutable everything by default?

jovial warren
#

vanilla's CrudeIncrementalIntIdentityHashBiMap uses it lol

jovial warren
#

also, no

#

idk what it'll have, but there won't be strict immutability

cinder flare
#

Oooh

half harness
jovial warren
#

if I was even going to make a language lol

forest pecan
#

have you seen conclure's class name

#

for his deluxeasyncjoinplugin?

half harness
#

yes

onyx loom
#

๐Ÿฅฒ

cinder flare
#

Do you not like immutability? I thought it was supposed to be safer

prisma wave
#

It is safer

#

That's a fact

cinder flare
half harness
jovial warren
#

I'm just basing the entire registry system off of vanilla lol

cinder flare
#

You didn't answer the question Bardy ๐Ÿ‘€

jovial warren
#

I believe that some things should be mutable

#

and some (most things tbh) should be immutable

forest pecan
half harness
surreal quarry
#

i feel like its nearly impossible to do a whole project without mutability

prisma wave
#

ok, generally:
Strongly typed languages try to make sure that you're using the correct type as much as possible, usually erroring if something is converted that can't be. eg java (invalid casts error) and python (no type coercion)

Weakly typed languages try and allow coercion between types as much as possible, even if the conversions might not be safe. Eg javascript (for obvious reasons), or C because you can cast pointers to other pointer types with no obvious error

onyx loom
#

without workarounds for the immutability ^

forest pecan
jovial warren
#

you know md_5 actually responded to DeluxeAsyncJoinLeaveMessage in the Spigot Discord once

forest pecan
#

Yeah

half harness
forest pecan
#

i linked it

#

lol

surreal quarry
half harness
surreal quarry
#

thats of decent size

forest pecan
#

#694661573125472256 message

prisma wave
lunar cypress
ocean quartz
forest pecan
#

hah no immutable gaeeeeeeee

lunar cypress
#

there are programs that are essentially just functions

#

compilers for example

#

you can totally make those completely immutable

prisma wave
#

yeah, if you exclude the IO, compilers are completely pure

lunar cypress
#

you only need side effects at the beginning and end

half harness
#

just so that its a joke but not at the same time

#

lol

humble silo
#

This is genius

cinder flare
#

jesus have you guys heard of deleting embeds

half harness
#

nope

humble silo
#

lol

prisma wave
#

mathematical stuff is obviously totally immutable too

cinder flare
#

nice

cinder flare
#

can you explain integrals to me

humble silo
#

I like the 30k lines of blankspace

prisma wave
#

uh

cinder flare
#

i even used bri ish slang for math just to appeal to you

prisma wave
#

add up little rectangle Lots of times

forest pecan
#

integral shit ๐Ÿฅฒ

lunar cypress
#

I can count to ten with my fingers

cinder flare
#

nah I know what they are I mean how to do them

prisma wave
#

idk

forest pecan
#

you draw a line

#

but a weird line

#

thats slanted

cinder flare
#

my brain get kinda funky when you convert 2x to like 1/3x^3

prisma wave
#

best I can do is simple polynomials

half harness
prisma wave
cinder flare
#

but how did we go from 2 to a fraction

#

is so confusing

prisma wave
#

uh

#

because the fraction goes back to 2 when you take the derivative

lunar cypress
#

this isn't a correct integral for that function btw

cinder flare
#

oh shit that makes sense okay

#

so it'd be like 1/1.5x^3

prisma wave
#

oh no it's not lmao

#

2x => 1/2 x^2

cinder flare
#

oh

#

my prof won't let us use a calculator on the test and im scared

prisma wave
#

๐Ÿฅฒ

lunar cypress
#

yeah neither does ours

prisma wave
#

that sucks

lunar cypress
#

very annoying because you wanna try things out

cinder flare
#

i suddenly doubt my ability to do basic addition and division on a test

#

so i am very spooped

surreal quarry
#

if i have a calculator ill literally plug in like 21/7 or something sometimes

#

just to make sure im not being a dumbass

lunar cypress
#

@cinder flare https://www.youtube.com/watch?v=WUvTyaaNkzM&list=PL0-GT3co4r2wlh6UHTUeQsrf3mlS2lk6x
good series if you really want to understand what's happening in calculus. it's not a tutorial how to calculate integrals but rather a build up from scratch

What might it feel like to invent calculus?
Enjoy these videos? Consider sharing one or two.
Supported by viewers: http://3b1b.co/eoc1-thanks

In this first video of the series, we see how unraveling the nuances of a simple geometry question can lead to integrals, derivatives, and the fundamental theorem of calculus.


These ...

โ–ถ Play video
cinder flare
#

yeah I watched a good few of those

surreal quarry
#

i love 3blue1brown

cinder flare
#

it's the actual doing it that's the hard part

prisma wave
#

That guy is great

#

Not that I understand any of his content

surreal quarry
#

lol

prisma wave
#

but still entertaining

lunar cypress
cinder flare
#

yeah integrals aren't super the problem cause we have a test tomorrow about fucking optimization problems and sketching graphs

lunar cypress
#

I sometimes wish I had something practical like this

cinder flare
#

optimization problems are literally my most hated thing

lunar cypress
#

I can imagine

cinder flare
#

oh and he won't give us a stupid unit circle on the test and expects us to know all the stupid fractions

#

I did that in like, 11th grade last

#

like wtf

sweet cipher
#

Bring in an abacus if you canโ€™t use a calculator.

#

Itโ€™s just as good

cinder flare
#

lmao

#

scratch paper is probably more useful

forest pecan
#

/s

cinder flare
#

yes sir

forest pecan
#

there is amog us

#

on there

#

sus

forest pecan
#

my plugin takes 2 minutes to load

#

deadass

humble silo
ocean quartz
#

@hot hull Actually did some progress today, reorganized it to be easier to work with
Now I'm working on division things into separate configs, at first i didn't want it but i feel like it gets confusing if I don't

hot hull
#

Coolio

#

And I'm here wanting to die reversed_fingerguns

old wyvern
cinder flare
#

good

#

all my homies hate oracle

#

and that would've ruined software development like, forever

hot hull
#

Scale this down to mc related plugins, and that's basically how it goes kek

old wyvern
#

wait what?

distant sun
#

Skript

old wyvern
#

Probably not

distant sun
#

You cant use iij? Or has to be in browser

old wyvern
#

You need a compiler and execution environment to run your applications

#

Those "web ide"s compile and execute your code in a backend server

distant sun
#

Btw replit has java but not maven / gradle unfortunately

old wyvern
#

What are you using to code then?

quiet depot
#

u can run intellij in a browser

old wyvern
#

Doesnt that require the serverside pre-setup

#

No like what device

quiet depot
#

what developer doesn't have an ssh app on their phone smh

#

||if you're one of the odd bunch that don't, I highly recommend termius||

distant sun
#

Ok ..

old wyvern
quiet depot
#

installing it on another system using ur phone

old wyvern
#

hmm

#

@obtuse gale You got a vps?

#

Also actually

#

he would still need an active internet connection

distant sun
#

Just enjoy your vacation lol

old wyvern
#

xD

#

piggy

#

Have you used dagger?

quiet depot
#

vacations are perfect for coding

#

no but I've looked into it

#

why do you ask?

old wyvern
#

I had a question

quiet depot
#

lay it on me

old wyvern
#

Is there anyway to have a class redefine the value to be injected to other classes at runtime?

quiet depot
#

no yugi

old wyvern
#

Damn

quiet depot
#

pro tip with dagger

old wyvern
#

Maybe i need to rethink how I do this

quiet depot
#

if your question has "can I change" "at runtime"

#

the answer is simply no

old wyvern
#

Welp

#

My use case is basically, I need to inject a Connection class across Activities, but the login activity needs to be able to change the connection when someone logs in with a diff id

#

Might as well use a wrapper ig

#

What?

#

no

#

1000ms = 1 s

#

Yea

#

50ms is a mc tick

quiet depot
#

yugi

#

what's this for?

#

what are the project constraints

#

because chances are you could just use guice

#

I highly recommend guice

#

although guice doesn't allow you to change bindings at runtime either

old wyvern
#

idm guice, tho google seems to promote hilt (a dagger wrapper) for Android

quiet depot
#

ah

#

the main reason I use guice is because it allows you to create bindings at runtime

old wyvern
#

Ah that sound nice. but im not yet sure if that would play with how android orchestrates classes. rn I think my only way to go if a class that wraps the connection hiding its mutability and just working out when to connect, reconnect, disconnect... ect

quiet depot
#
        guice dagger
create  yes   no
edit    no    no```
#

easiest guice/dagger comparison

#

for runtime bindings

old wyvern
#

hmm

#

Dagger does it by compile time class generation right?

quiet depot
#

yes

#

dagger is 100% compile time

prisma wave
old wyvern
#

Yea thats what im rewriting to

quiet depot
#

I don't really know what the point of dagger is tbh

prisma wave
#

Fast

quiet depot
#

the performance between guice and dagger should be the same

old wyvern
#

Might be a difference on mobile devices

quiet depot
#

like dagger will start up a tiny bit faster

#

but the end result at runtime, should be the same

prisma wave
#

That could be a noticeable difference on a low power phone

quiet depot
#

idk

#

would be surprised

prisma wave
#

TIL that ECMA is an actual standards organisation and isn't just about javascript

jovial warren
#

arrayOfNulls<Any>(1 shl bits) as Array<T?> anyone know if that cast will succeed?

#

trying to create a generic array without requiring a Class<T>

#

I mean, surely there's no such thing as a generic type that doesn't inherit from Any

prisma wave
#

wtf

jovial warren
#

o

#

yeah but arrayOfNulls returns Array<T?> anyway

prisma wave
#

why are you doing that

jovial warren
#

so that'll return Array<Any?>

old wyvern
#

Wait

jovial warren
#

because I need an array of a fixed size for this

old wyvern
#

Why are you even doing this

jovial warren
#

idk, I'm copying Mojang code because I'm out of ideas lol

#

I'm using their palette and registry system as a base

old wyvern
jovial warren
#

K?

#

or T?

old wyvern
#

Just use that generic instead?

jovial warren
#

not possible

old wyvern
#

Oh right, reified

#

Can i see the use site?

jovial warren
#

Array<T>() = compiler error because T must be reified

#

gimme a min, lemme give you the Mojang code lol

#

might be easier so you can help replace it

old wyvern
#

Actually

#

Why not just construct the array yourself?

jovial warren
#

I tried that

#

but as I said, Array<T>() gives me a reified error

#

T has to be reified

old wyvern
#

You need to specify a way to get the type afaik

#

try

Array<T?>(n) { null }
jovial warren
#

actually, to show you this, it might be easier if we just jump in a VC, since there's a bit of a rabbit trail

jovial warren
#

it doesn't work

jovial warren
#

T must be reified

old wyvern
#

Doing a worksheet rn

jovial warren
#

CrudeIncrementalIntIdentityHashBiMap

old wyvern
#

hmm

#

Take in that type as reified as well then maybe?

jovial warren
#

not possible, I would need a Class

old wyvern
#

Is the source updated on git?

jovial warren
#

you can't reify class type parameters

#

no Yugi

old wyvern
#

I need more context

jovial warren
#

this is for block palettes

#

LinearPalette and HashMapPalette (use of CrudeIncrementalIntIdentityHashBiMap) are for storing block state IDs to block states

#

I think

old wyvern
#

In which class of yours do you need the Array in?

jovial warren
#

I might wanna fix up those variable names though, before pig or cube warns me again for NSFW content kekw

jovial warren
#

lemme get you that too

#

basically, this is all so I can deal with registries better and be able to deal with block state updates (block placing/breaking)

#

"so where is PalettedContainer used?" you ask

#

actually I bet these would be better as lists anyway

#

I still need to understand how CrudeIncrementalIntIdentityHashBiMap actually works

#

I know it uses a murmur hash for the hash code of the elements

#

which is in mth

old wyvern
#

Not sure what Im meant to do with these, I meant your kotlin class

jovial warren
#

ah right

#

which one first?

old wyvern
#

The one in which you want to create the Array

jovial warren
quaint isle
#

I want to setup a password protected proxy server on my smol debian server so that I can use it to access certain websites when I'm abroad as if I was at home.
Since I want it to work with pretty much any software (not just the web browser), I should use a SOCKS proxy, right?
What proxy software would work well for this purpose, I'm not sure if I'm googling properly because I'm not really finding anything useful ๐Ÿ˜„

old wyvern
#

@jovial warren
Id say you have 2 routes,
Maybe created a array wrapper than overrides the get and set with the proper types and internally use an array of Any?
Or,
Require the class to be passed down to this class as a reified type

jovial warren
#

it's free, very easy to setup, and works very well

jovial warren
#

guess it's not that bad though

#

will the cast not work there though? that's my question

#

the cast from Array<Any?> to Array<T?> should never fail

old wyvern
jovial warren
#

what

oak coyote
#

Heโ€™s entered the matrix

jovial warren
oak coyote
#

Heโ€™s discovered the secret

#

Take him out

jovial warren
#

that Java generics suck

#

hello efe

#

afternoon

stuck harbor
#

hello married

#

I'm iwan

old wyvern
#

You could probably make that an inline class actually

#

is that still an experimental feature?

jovial warren
#

probably is, but I use inline classes anyway so no issue using them here

#

maybe an inline constructor

#
@Suppress("UNCHECKED_CAST")
class GenericArray<T>(size: Int) : Iterable<T?> {
    
    private val array = arrayOfNulls<Any>(size)
    
    operator fun get(index: Int) = array[index] as? T
    
    operator fun set(index: Int, value: T?) {
        array[index] = value
    }

    override fun iterator() = array.iterator() as Iterator<T?>
}
```seems legit lol
#

still gotta suppress unchecked cast because of get

old wyvern
#

Why not annotate those specific methods instead of the whole class?

jovial warren
#

because iterator also requires an unchecked cast

old wyvern
#

Yes, annotate those two

#

set doesnt require it afaik

jovial warren
#

yeah set doesn't

old wyvern
#

so annotate get and iterator instead

jovial warren
#

done

old wyvern
#

also, might want to use as T? instead of as? T as you'd probably want to fail fast if someone tried to add some other type into it by reflection or something

jovial warren
#

true

#

also, you know using this means I lose access to all of the Array extension functions that I need

#

like indices and fill()

#

guess I could just manually add them

old wyvern
#

yea

quaint isle
jovial warren
#

maybe

jovial warren
#

I'm starting to think I should've just left the block state shit to someone else, because Mojang's is a fucking mess and I don't have any better ideas

#

I'm just gonna push this completely fucked code and do exactly that

#

I ain't dealing with this anymore

#

I'm done with block states

distant sun
#

Isnt that just an array, bbg?

jovial warren
#

yeah but that's the easy part

stuck harbor
#

arrays be bad in java

jovial warren
#

it's fucking updating it

stuck harbor
#

arraylists be awesome

jovial warren
#

being able to place and break blocks gaby

jovial warren
#

yeah that's just an array, but you can't create generic arrays because constructing an array requires a reified type

stuck harbor
#

I hate how chunks are 16x16x256 ew

#

should be 16x16x16 imo

jovial warren
#

sections are

#

chunk columns, as they're called, are made up of chunk sections, which are cubic

stuck harbor
#

oh really

#

huh

#

I don't know much about mc's world gen and storage

jovial warren
#

and my commit is the first commit in Krypton to fail build

#

because it just doesn't compile

#

because I'm literally done with block states

#

I'm even starting to lose motivation for the project as a whole

#

it's not fun anymore

distant sun
#

!!

jovial warren
#

I mean, don't get me wrong, I love this project, it's the only thing I have to hold on to (literally all of my other projects are irrelevant to everyone but me), but it's just getting more and more complex

#

I also need to reconsider my goals for this project, as "it's just a fun side project" isn't true anymore, and I need something to truly keep me motivated to keep doing stuff with this

#

also, it's difficult to stay motivated when you're the only one working on a huge project with no true goals or outcomes, and not really that much praise or appreciation

#

it's very difficult to believe that what you're doing is right when you don't really see that much evidence of it

forest pecan
#

bardy typing out his speeches

jovial warren
#

this is Bardy somewhat venting

#

even though I doubt anyone here really cares

#

didn't think so

timber oak
#

What does intellij ultimate edition actually have that the free version doesnt?

jovial warren
#

A hell of a lot

hot hull
#

DB integration thingy

#

Best thing to ever exist

jovial warren
#

That's only in ultimate?

hot hull
#

yes

jovial warren
#

Oh

#

I'm almost ready to give up on Krypton because it's just getting less fun and more complex and horrible and I just can't anymore

hot hull
#

bardy

jovial warren
#

I'm not good enough for this

hot hull
#

don't be a quitter

jovial warren
#

Look at the rest of my projects Frosty

remote goblet
#

Be a quitter if you want

#

EmiCool dont let frosty decide your life choices EmiCool

jovial warren
#

All of them are either useless, half finished, or both

hot hull
#

Lmao Ori

remote goblet
#

im very clearly a quitter CB_dab_triggered

hot hull
#

You've shown that recently yes

remote goblet
hot hull
#

I mean postponing projects != quitter

jovial warren
#

I really don't want to give up on this because I love it, but me not being able to do things is making me angry

remote goblet
#

or that auction house plugin

hot hull
#

bruh

#

That's cause you use kotlin Ori

remote goblet
#

whattf what

#

on both of them

hot hull
#

wait what, you using java, that's new

remote goblet
#

yeah lmao

hot hull
#

probably why you quit

jovial warren
remote goblet
#

because im lazy and wanna die :)

#

so like

#

I play cod 24/7 now EmiCool

hot hull
#

I mean I wanna die as well, but I'm still productive to some degree

remote goblet
#

You see

hot hull
#

I'll tell luke that I can finish auctions if you don't wanna, if the code isn't cancer

remote goblet
#

You will absolutely not

hot hull
#

:>

remote goblet
#

EmiKnife that is my baby

hot hull
#

Then finish it

#

Abandoning a baby, jesus Ori that's inhumane

remote goblet
#

Sadge im just burned out okay

hot hull
#

Don't open IJ for a week, play some games, live life, you'll feel better when you come back

oblique heath
#

imagine if a mother could just say she's burnt out and put her baby in the freezer for a week or two

#

(to keep it from spoiling of course)

dawn hinge
#

Lmao

remote goblet
#

so now i wanna kill zombies and kill other humans

#

Frosty if you wanna look at auction house and tell me where to improve it

#

do it

jovial warren
#

right, as my phone decided not today, let me use my PC

remote goblet
#

but altShrug

jovial warren
#

Nobody cares about this project like I do, most people just come by, say "oh, that's cool" and you never really hear anything from them again

oblique heath
#

i mean

#

you're the one who spent dozens of hours on it

jovial warren
#

yeah I know

#

I know it's my project, and I know I shouldn't expect any different, but I thought at least some people would at least somewhat care

#

I think I'm asking too much from people though

oblique heath
#

how would you want people to show that they care about it

#

in an ideal world

jovial warren
#

people more actively engaging in testing stuff, trying to help me move this project forward, etc.

#

looking at the contributions graphs just makes me a little sad

half harness
#

i'd contribute but i have no idea how to do that sad_fingerguns

dawn hinge
#

I'm really interested in the project but I still haven't learned Kotlin ๐Ÿ™

jovial warren
#

I suppose I do need to make it much more open and much clearer how to contribute and easier to contribute

#

and the project in its current state is a massive mess as it is

half harness
#

I'm still relatively new to kt, and barely used packets and don't have a lot of idea of how to make an mc server

#

and the kt community is like 5% of the java community

#

actually might be less than 5

jovial warren
#

true

half harness
#

the only pr i probably did to one of the 'pro devs' in here was a 10 line PR to matt's mf gui lol

#

and it got rejected like 10 times || ๐Ÿ˜” ||

jovial warren
#

I'm never the developer though that comes up with new solutions to problems I come across in this project

remote goblet
#

I think i need to decrease the amount of sql stuff regarding the gui

jovial warren
#

I just leech off of existing stuff because I'm not good enough to come up with a better solution

remote goblet
#

but outside of that I don't think its too bad

hot hull
#

Bardy, make it work first, then improve it

jovial warren
#

and then I confuse myself in my own code because it's just copy and paste

stuck harbor
#

||haha made you look||

hot hull
#

wanio

#

iwanio*

jovial warren
stuck harbor
#

yes?

hot hull
#

go cliff jumping

stuck harbor
#

no

#

my spoiler was correct tho

jovial warren
#

and making it work is the part I struggle with

#

because I'm well out of my depth for 99% of this project

hot hull
#

But that's exactly why you should keep going, you'll learn a lot from this

#

If you just gave up when it got hard you would've never learnt anything

jovial warren
#

I try to take the solve the root problem, then solve up the tree route, but that never works

jovial warren
half harness
#

imagine having a kotlin mc server that u made ๐Ÿ˜Œ

jovial warren
#

actually, I'm getting stuck at block states, but that's because I'm just copying Minecraft code

#

which won't work

half harness
#

what exactly are blockstates?
since theres already blockdata, what do blockstates do

jovial warren
#

I should just be setting block states directly by their state IDs

jovial warren
#

e.g. a grass block can be snowy or not

#

snowy: true is a different state from snowy: false

half harness
#

i thought that was blockdata thonking

jovial warren
#

and they have separate protocol IDs

half harness
#

so confusing

jovial warren
#

yeah those mother fuckers

quiet depot
#

protocol ids gud

jovial warren
#

maybe

#

but they're also annoying as fuck

quiet depot
#

papi 3 use protocl ida

half harness
#

what are block data?

obtuse gale
#

NBT

jovial warren
#

what is*

#

block data is all NBT

half harness
#

but then that sounded weird

half harness
jovial warren
#

oml

obtuse gale
#

do not reference spigot

jovial warren
obtuse gale
#

bukkit is stupid

half harness
#

oops

quiet depot
#

my only advice to bardy this whole time has been to not do anything bukkit does

obtuse gale
#

we are talking about vanilla here

jovial warren
#

I need a good way to support block data with varying values

jovial warren
quiet depot
#

there's no developed "right way" of doing this

#

you're literally on your own

jovial warren
#

yeah ik

quiet depot
#

there exists not a single fully functional standalone impl

#

there's no other advice I can give you except to not follow in the footsteps of other projects

jovial warren
#

Minestom's been somewhat helpful

quiet depot
#

I would've thought glowstone would be more helpful

jovial warren
#

yeah maybe

#

but Glowstone is based off of Bukkit

#

and is basically rewritten Minecraft

quiet depot
#

vanilla mechanics can be extracted

jovial warren
#

true

#

I wonder how Glowstone handles block states

half harness
#

lol

obtuse gale
#

BlockStateData

#

what

jovial warren
#

lol

obtuse gale
jovial warren
#

block data is block entity data in vanilla I think

half harness
#

wha

#

why is it opposite

jovial warren
#

because Bukkit

obtuse gale
half harness
#

its literally opposite

#

bukkit whyyyyyyyyyy