#💽Programming Chat v2

1 messages · Page 82 of 1

spare quartz
#

*ばびおを生まれました*

lone sky
#

what

spare quartz
lone sky
spare quartz
#

unless you wanted me to??

lone sky
#

NO

#

🚶‍➡️🚪

spare quartz
lone sky
spare quartz
#

@turbid tiger

lone sky
spare quartz
#

uhj !!!

#

yes !!!!!

lone sky
#

thanks for confirmation

proud creek
#

twitter dot com

spare quartz
#

ちゃお学

#

@timid quartz I need to keep learning. this is fun

lyric mesa
spare quartz
#

sent another message… hoping I’m not bullied when I wake up..!

#

so scary. but I trust these guys are nice.

lone sky
#

Protocol Steak

timid quartz
spare quartz
#

Not bullied!

lone sky
#

@timid quartz oh yeah

#

did you play deltafat yet

#

(the new chapters)

timid quartz
#

I’m at work

spare quartz
#

BGMは冒頭と最後に何が使われていますか?日本語が下手でごめんなさい。

lone sky
timid quartz
lone sky
timid quartz
lone sky
#

weak.

#

fears the big capitalism.

spare quartz
#

IT LOADS VIDEOS NOW??

spare quartz
#

breadmod is so oold.....

timid quartz
#

@spare quartz urgh wtf

spare quartz
#

?

timid quartz
#

rmi

#

classnotfoundexception

#

for my interface

spare quartz
#

need to wait until deltarune........

spare quartz
#

elab

timid quartz
spare quartz
#

your interface needs to exist on both ends of RMI users

#

(classes can be isolated, though)

timid quartz
spare quartz
#

who has Supervisor

timid quartz
#

both use the same file

spare quartz
timid quartz
#

it's....

#

under the main package?

spare quartz
#

please define a package

timid quartz
#

ughhhhh

spare quartz
timid quartz
#

it's literally RIGHT THERE

#

it had no issue finding CarpoolSupervisorMainKt

spare quartz
#

show the jar

timid quartz
#

im not building a jar

spare quartz
#

?

timid quartz
#

im just running it in intellij

spare quartz
#

send Supervisor.class

#

and also

#

... carpoolsupervisormainkt.class

#

send those two

timid quartz
spare quartz
#

okay the bytecode looks correct

#

im not sure why it can't find Supervisor.class

#

but you should probably define a package

timid quartz
#

cringeee

spare quartz
#

0000000000000

#

send your messages in unfunnylads dms so i dont have to get whiplash

timid quartz
#

also still classnotfound

spare quartz
#

i cant really help you

#

aside from telling you to fix your classpath

timid quartz
#

but

#

didnt help

spare quartz
#

my fcucking eyes

timid quartz
#

IT'S A LONG ASS CLASSPATH OK

spare quartz
#

no not that

#

just so tired im crying but not actually crying

#

i dont get why your application doesn't work

#

the interface should be existing on both ends

timid quartz
#

no wonder it was deprecated

spare quartz
#

ITS NOT DEPRECATED

#

if you're finding it hard to use implement a more traditional IPC stack

timid quartz
#

I might honestly

spare quartz
#

you can accomplish it in many ways

#
  • shared memory
  • unix domain sock
  • localhost sock
  • shared file
timid quartz
#

I’m gonna try making a basic thi g

#

huh ok

#

even the basic example dont work

spare quartz
#

what is the problem you get for that

#

because when i use RMI in BSL i dont get issues revolving around class not found

timid quartz
#

classnotfound

spare quartz
#

crap

#

Exception in thread "Routing /45.131.155.254:41358" java.lang.NullPointerException: Cannot invoke "java.lang.CharSequence.length()" because "<local6>" is null

#

forgot CTRL + C is also the same buttong mingw uses to close the process

#

wanted to copy just that log

timid quartz
lone sky
#

@timid quartz

timid quartz
#

real

lone sky
#

no but really

#

why are they built like duke

#

😭

spare quartz
#

need to write a project on the other end...

flint belfry
# lone sky

fun fact in queens mansion they turn into the cursor when selected over a clickable object but ill let you find that yourself

i now disappear for 200 years

timid quartz
#

@spare quartz RAAAH

spare quartz
#

give me a seconddd

timid quartz
lone sky
#

HUH

#

KOHAKU IS ON DELTARUNE CHAPTER 2????

#

@spare quartz

spare quartz
#

😭

lone sky
#

THE FRAME

spare quartz
#

@timid quartz

#
class InstrumentationServiceServer : UnicastRemoteObject(), InstrumentationService {
    private val threadMXBean = ManagementFactory.getThreadMXBean()

    override fun threads(): List<String> = threadMXBean.getThreadInfo(threadMXBean.allThreadIds).map { it.threadName }

    companion object {
        private val logger = ColoredLogger.newLogger("Remote Method Invocation")
        val registry: Registry = try {
            logger.fine("Creating RMI registry [25799]")
            LocateRegistry.createRegistry(25799)
        } catch (e: ExportException) {
            logger.log(Level.FINE, e) { "Failed to create registry, dialing RMI registry" }
            LocateRegistry.getRegistry(25799)
        }

        fun attach(name: String): InstrumentationService {
            val server = InstrumentationServiceServer()
            logger.fine { "Attaching service [$server] to [$name]" }
            registry.bind("InstrumentationService-$name", server)
            logger.fine { "Attached service [$server] to [$name]" }
            return server as InstrumentationService
        }

        fun lookup(name: String): InstrumentationService {
            logger.fine { "Looking up service [$name]" }
            val lookup = registry.lookup("InstrumentationService-$name") as InstrumentationService
            logger.fine { "Got service [$lookup] for [$name]" }
            return lookup
        }
    }
}
#

this works

lone sky
#

WHAT THE FUKC

#

@timid quartz UMM

#

AM I EVEN ALLOWED TO SHOW THE BERDLY STATUE

#

😭

spare quartz
timid quartz
spare quartz
#

i hate YOU

#

dont use 257 99 btw

#

touch it and die

timid quartz
spare quartz
#

are you doing it exactly how im doing it

timid quartz
#

no I didn't copy paste that class

spare quartz
#

show your code

timid quartz
#

im just looking at the code I already had

spare quartz
#

no

#

show your """"control supervisor """ class

timid quartz
spare quartz
#

wait

#

your problem is supervisor dont exist right

#

nvm

#

cant help you ❌

timid quartz
#

WHAT

#

UR MOM!!!

spare quartz
#

your classpath is dumb and stupid

timid quartz
#

R!!!!!!!

spare quartz
#

foix it

#

fox it

timid quartz
#

even when I did the super simple thingey

spare quartz
#

chiharu

timid quartz
#

it broke

spare quartz
#

why did the example break

#

show

timid quartz
timid quartz
#

that's the example literally taken from the java 8 docs

spare quartz
#

yeah your classpath is jank

#

im running this all in bsl tests and it works fine

timid quartz
#

/Users/me/tmp/java-rmi/build

#

that's literally my classpath

spare quartz
#

idk how to fix it!!!!!!

#

like

timid quartz
#

ur the jvm wizard fix it!!!

spare quartz
#

Object::class.java.classLoader.loadClass("<package>.Supervisor")

#

print the output of this

timid quartz
#

of the output

spare quartz
#

it doesnt matter

timid quartz
#

how tf I do this in java

#

and not kt

spare quartz
#

??

#

thats kotlin code

timid quartz
#

yes im testing this in java

#

cause the java 8 example

#

is in java

spare quartz
#

WHY

#

stop it

#

go back to your kotlin project

#

and run that code in there

timid quartz
#

ughhhhh

#

@spare quartz

timid quartz
#

rmiregistry -J-Djava.rmi.server.codebase=file:/Users/me/tmp/java-rmi/build/

spare quartz
#

oh my gooooooooddddddddd

#

your commands are so faaaaaat

timid quartz
#

the fuqquing

#

registry

#

didnt have the classpath

#

aids

spare quartz
#

this is YOU

timid quartz
#

im spawning the registry inside the supervisor now

spare quartz
#

aughhh

#

bad unicode

timid quartz
spare quartz
#

huh

timid quartz
#

Skill issue

spare quartz
#

weirdo.

#

unfunnylad wants to learn japanese.

timid quartz
#

Cringe

spare quartz
#

freaky dog lady.

timid quartz
#

CRINGE

spare quartz
#

timid quartz
#

学ばない方がいいよ

spare quartz
#

give up!

lone sky
timid quartz
#

kys

lone sky
timid quartz
#

OK bye

spare quartz
#

noooooooo

lone sky
#

get back here

#

the girls hungry.

spare quartz
#

improving logger once more...

#

there we go

#

ugh

#

intellij decompiler bothering me so much

#

feel like making my own

rustic vine
#

tldr instead of having a server, your server is your database
everything is just operations on the db in realtime

#

oh and theres rust (this may be targetted)

use spacetimedb::{table, reducer, ReducerContext, Table};

#[table(name = person, public)]
pub struct Person {
    name: String,
}

#[reducer]
pub fn add(ctx: &ReducerContext, name: String) {
    log::info!("Inserting {}", name);
    ctx.db.person().insert(Person { name });
}

#[reducer]
pub fn say_hello(ctx: &ReducerContext) {
    for person in ctx.db.person().iter() {
        log::info!("Hello, {}!", person.name);
    }
    log::info!("Hello, World!");
}
#

and baszucki is an investor

#

curious to hear yalls thoughts on it

#

it seems pretty darn cool

lavish dove
#

well not a cash grab exactly

rustic vine
#

huh why

lavish dove
#

its not a library its a product with free demo option

rustic vine
#

huh

#

it is a library

#

its free

lavish dove
#

demo option

rustic vine
#

it only costs money if you want them to host the db

lavish dove
#

do you not see the big pricing at the top

rustic vine
#

yea... its free?

lavish dove
rustic vine
#

wait rlly

#

I didn't see that

lavish dove
#

click on pricing

#

scroll until you see the plan comparing page or whatever

rustic vine
#

the features u don't get are cuz you have to host it yourself

#

instead of having them host it

#

like backups

#

and deployment

#

and admin panels

#

and uptime related stuff

lavish dove
#

just sounds to me like your falling for their trick

rustic vine
#

well I haven't used it

#

but it seems reasonable

lavish dove
#

it is reasonable

rustic vine
#

im not like advocating for it tho

#

I just don't see your point

lavish dove
#

but its a trick to make you stuck on their service and their service only

#

and when you need to scale you will pay them

rustic vine
#

but its free?

#

to host yourself?

#

thats what most games should be doing anyway

lavish dove
rustic vine
#

I don't get it then

lavish dove
#

they are hoping that someone will use it because its completely free, but because its marketed towards big mmo's when you need to scale to big mmo's the only way you can scale is to pay them

#

and because your already using it you wont switch from self hosting and just pay for them to host it

#

and then they make a profit

rustic vine
#

oh ok

#

ye maybe

lavish dove
#

its not scummy but they are still tricking you

rustic vine
#

hmm ok

#

I see what you're tryna say

#

I don't really think its a trick

#

looks like it would be possible to scale yourself? idk tho

lavish dove
#

it says only single node for the free one

#

and im sure the paid one is proprietary and known only to them

rustic vine
#

oh hm

#

idk what that means

lavish dove
#

and its not oss yet so if you make your own scaling they will sue you

lavish dove
rustic vine
#

no I mean

#

single node

#

idk what that entails

lavish dove
#

Its just a marketting buzzword for only one server at a time

#

so a single mmo server with spacetimedb wont be able to scale to multiple servers for like thousands of players or smthn

rustic vine
#

hm

#

good point

#

well regardless of their monetization strategy

#

or monetization aside

#

I think cool tech

lavish dove
#

hell yeah

rustic vine
#

not having to deal with server <-> db communication is cool

lavish dove
#

and then you realize that postgresql has users

spare quartz
#

minecraft is going to give me cancer

lavish dove
#

lmao

rustic vine
spare quartz
#

probably

rustic vine
#

wait no

#

I blame multicore cpus

#

there was no need

lavish dove
rustic vine
#

for more than 1 core

#

should've just stuck with 1

#

1 core 1 thread

lavish dove
#

thats what they do right?

rustic vine
#

no

lavish dove
#

its a database and you just connect as a client

rustic vine
#

idts?

#

well

#

there still needs to be a server

#

its just that the server operates on the database directly

#

they are 1 thing

lavish dove
#

but the server is just the database

rustic vine
#

right but u still need transactional logic

#

Instead of deploying a web or game server that sits in between your clients and your database, your clients connect directly to the database and execute your application logic inside the database itself. You can write all of your permission and authorization logic right inside your module just as you would in a normal server.

#

thats what it says at least

lavish dove
#

oh so it is just

#

Ive never used postgresql

#

but from what im reading you can just replace it with postgresql

#

can definitely replace it with a quick sqlite frontend

rustic vine
#

huh

#

ok I did a little digging

#

I think you're right but it looks like postgres can function similarly but this pattern is less supported and thought out

#

and they're tryna go all-in on it

#

looks like the main difference/motivation

lavish dove
#

yeah

rustic vine
#

it not being OSS is 🙁 tho

lavish dove
#

especially if you can just replace it with something more trusted

rustic vine
#

"I shall watch its development with great interest" 😁

lavish dove
#

stare that thing down

rustic vine
#

read from here btw

#

first reply on the top comment

lavish dove
#

Why would this approach be beneficial? Moving all app logic into the db as stored procedures is a well known, painful anti-pattern. Your readme needs to call this out early and explain why it’s not an anti-pattern with your specific db design.

#

first commment lmao

lavish dove
#

LITERALLY WHAT I SAID LMAO

The open source version can be run only as a single node

So why use this instead of SQLite, which can be deeply integrated into applications of just about any language? Inverting that relationship by making the database more important seems like a big step backwards.

rustic vine
#

ye I didn't even see that initially (the single node stuff)

#

we shall see

lavish dove
#

its a startup

#

trying to make some quick bucks

#

it could turn into something good tho

rustic vine
#

well they are also making a game on it

#

so depending on how that turns out

lavish dove
#

well im not saying it wont work

#

just that its tricking you into using only it

#

so you will pay it

rustic vine
#

oh yea

spare quartz
lavish dove
#

lol

rustic vine
#

thank you 1668553684

#

very insightful

#

is that his phone number??

lavish dove
#

lemme see if its in the police database

rustic vine
#

nvm 166 is a china code

#

lol

lavish dove
#

ah it wont be in the police database then

rustic vine
#

the game comes out in 2 weeks??

#

huh

lavish dove
#

dyamn

#

I mean its summer

#

everything starts in the winter and gets released around now

spare quartz
#

Can’t wait for October 32

#

31*

rustic vine
#

can't wait for atp to be sentenced

lavish dove
#

to death

spare quartz
#

Nooooooo

rustic vine
#

to 2 years without a pc

spare quartz
#

NOOOOO

lavish dove
#

fr!?!?!

rustic vine
#

the bell tolls

spare quartz
#

I want to play my game from a Japanese NEET who is good at drawing…

spare quartz
#

Reading thru their readme

#

It really is just a SQL database … that you compile into your application

#

Why did it take so many words to say that?

rustic vine
#

cuz they gotta fool me

spare quartz
#

Anyways cool idea that is probably already in use alongside DBCs. I wonder if their game will be any good

rustic vine
#

into thinking its goated

#

before I get shot down

#

by

#

@lavish dove

spare quartz
#

Well

#

They are lucky, and they’re a skeptic

#

So, kinda on brand

rustic vine
#

ye true

#

I can't hate

spare quartz
#

Ugh… chiharu… so cute…

#

Goodnight..!

lavish dove
#

I fell asleep 😭

#

I'm a skeptic!??!!

#

This is the first time I've been called a skeptic

spare quartz
#

@timid quartz

#

another message made successfully

#

also right time

#

pretty cool

lyric mesa
spare quartz
#

hmm

#

someone has posted a moderately substandard script on Twitter.Com

#

should i write a PR for it... i am uncertain..

lavish dove
#

Anti W+S??

#

sounds like a code

spare quartz
#

Well

#

When you press those two characters really fast in a Roblox game

#

It makes it look like you’re humping someone

lavish dove
#

ohh

#

bruh

spare quartz
#

So. Not great, and only trolls really do it

lavish dove
#

but it didnt before

#

if you were doing the same thing 5 years ago everyone would think you were messed up not what they think now 😭

spare quartz
#

well 5 years ago a pathogen that killed millions of people also wasn’t around

lavish dove
#

😭

spare quartz
#

and 10 years ago the humor was totally different

lavish dove
#

I hate the modern world

#

lets go back to 2016

timid quartz
lone sky
#

😭

lone sky
#

@timid quartz HOCHI MAMA!!!! I CAN FEEL THAT [[Smooth Taste]] ALREADY

timid quartz
#

NO, I GET IT! IT'S YOU AND THAT [Hochi Mama]!
YOU'VE BEEN [Making], HAVEN'T YOU!
YOU'VE BEEN MAKING [Hyperlink Blocked]!
AND NOW THAT YOU HAVE YOUR OWN SUPPLY, YOU DON'T NEED ME!!!

timid quartz
#

@spare quartz for some reason even if the registry doesn't exist, .getRegistry() still returns

#

which is odd

timid quartz
#

POG

#

status works

timid quartz
#

Hmm would it be better to distribute client and supervisor as one jar or two

spare quartz
spare quartz
spare quartz
timid quartz
spare quartz
#

Yes

#

You can put any string including Unicode

#

Some terminals might not like Unicode and show them as ?, including Log4J, but screw them

timid quartz
#

Me when I put nbsp

spare quartz
#

明日は…悪魔の日😈

lone sky
spare quartz
#

AHUT UP

#

DID RABBITHAWK SEND YOU

lone sky
#

no 😭

spare quartz
lone sky
#

GET IT AWAY FROM ME

#

✝️

spare quartz
#

@lone sky @timid quartz

#

deltarune data.win in breadmod soon

timid quartz
#

hmmmmm

#

this command handling may be scuffed

#

since all the commands are flags

#

I could do like -command="add-service ./whatever.exe --args" but then im parsing args within args

#

vs -add-service="./whatever.exe --args"

spare quartz
#

that might not work due to how the jvm splits arguments (i.e. you get [-command="add-service, ./whatever.exe --args"]

#

if you want me to add that into bsl i can...

timid quartz
#

that's why I was gonna do the latter

#

-add-service="./whatever.exe --args"

spare quartz
#

well that would still split between whatever.exe and --args

#

theoretically anyways

timid quartz
#

even in the quotes??

spare quartz
#

im not sure how stupid the default JVM parser is

timid quartz
#

let's try this

spare quartz
#

if it does split ill code in a patch in the bsl parser

timid quartz
#

have to handle start separately

#

and then I prune out the flags that aren't "commands" like start

spare quartz
#

finally... fully upgraded walls

timid quartz
#

and send the rest of them to be handled

lone sky
#

So pr o u d.

timid quartz
#

rather than -start and -add_service on two separate invocations

spare quartz
#

humumu

#

wonder if i should add an additional parameter to flags

#

dependsOn = listOf("other-flag", ...)

#

orrr mutuallyExcludes = listOf(..)

#

probably just add a rules data class

timid quartz
#

@spare quartz I don't think it's as stupid as you think

spare quartz
#

oh okay thats good

#

i thought it'd just be as simple as x.split(" ")

#

that's funny though

#

you can technically write a parser for that which itself uses readArgs

#

and have Flag<Pair<SingleArgs, MultipleArgs>>

timid quartz
spare quartz
#

it looks fine

#

a little (weirdly) spacious to me but fine

timid quartz
#

I like spaciousness tbh

#

maybe just how Ive split it

spare quartz
#

this does make me wanna move this logic into bsl though

#

since ive always hated chained ifs

timid quartz
#

welll some servers might not use that

timid quartz
spare quartz
timid quartz
#

I should maybe separate -stop out too because I don't want it to be handled

spare quartz
#

I SURVIVED 24 HOURS ON BAYACHAO 2B2T

timid quartz
#

with the rest

#

like -add_service=... -stop should immediately stop

#

not add the service and then stop

spare quartz
timid quartz
#

also

#

this is a little goofy

#

giving it the supervisor stub

#

but then status not using it

#

(because checkSupervisorStatus has a try-catch that returns null on error)

#

(and I dont wanna rewrite that)

lone sky
#

?????????

spare quartz
#

are you doing anything other than that when in that for loop

timid quartz
spare quartz
timid quartz
#

and also im gonna do the multiple args parsing after

spare quartz
#

ohguhg

#

i was gonna say do this

timid quartz
#

I mean I could

#

there's more cases so

#

but just the one when

#

also hm it doesn't like port 1099 being default

#

supervisor creates the registry just fine...but client no likey connecting

#

oh fuck me

#

that's why

spare quartz
#

um

#

no thank you..

timid quartz
#

yknow what screw it

#

screw using checkSupervisorStatus for the status command

#
// rust be like
let _ = supervisor.stop();
log::info!("Supervisor daemon stopped");
std::process::exit(0);
spare quartz
#

killdozerrrrrr

lone sky
# spare quartz

do you think astra would kill me if I made a killdozer and hid it somewhere

spare quartz
#

yes .

lone sky
#

@timid quartz

timid quartz
#

@spare quartz forthe rmi server

#

do I neeed this

spare quartz
#

do you need what

timid quartz
#

that while true

#

at the end

spare quartz
#

why do you have it in the first place

timid quartz
#

uh

#

so the supervisor daemon doesn't exit

spare quartz
#

well

#

the immediate thing to say is that

#

if you're polling forever somewhere w/o doing anything you have a flaw in your design

#

but the second thing to say is

#
while (true) Thread.sleep(Long.MAX_VALUE)
timid quartz
#

do I need to have that since I'm starting an RMI server

#

does the RMI server keep itself alive

#

without exiting

spare quartz
#

run a diagnostic on the rmi thread and see if its a daemon or not

timid quartz
#

ugh urmom

spare quartz
#
public static void park()
Disables the current thread for thread scheduling purposes unless the permit is available.
If the permit is available then it is consumed and the call returns immediately; otherwise the current thread becomes disabled for thread scheduling purposes and lies dormant until one of three things happens:

Some other thread invokes unpark with the current thread as the target; or
Some other thread interrupts the current thread; or
The call spuriously (that is, for no reason) returns.
This method does not report which of these caused the method to return. Callers should re-check the conditions which caused the thread to park in the first place. Callers may also determine, for example, the interrupt status of the thread upon return.
#

interesting class LockSupport

timid quartz
#

mm yeah ok

#

it does hit that while loop

spare quartz
#

wdym

#

its supposed to is it not

timid quartz
#

oh ok....

#

but

#

if I remove the while loop

#

it still stays alive

spare quartz
#

RMI thread is probably not a daemon then

#

so thats good

#

you can check thread status with jcmd

timid quartz
#

...nvm

spare quartz
#

oh

timid quartz
#

oh wait

#

hwhuh

#

OHH I know what that is

#

it takes a second for the rmi server to start

#

so if I try to query it too fast it's not ready

spare quartz
timid quartz
#

yep that's it

timid quartz
#

so I added a 1 second pause and it's fine

spare quartz
#

000000

timid quartz
#

nah more like

#

1000

spare quartz
#

i do not like the arbitrary wait

rustic vine
#

use WaitTimeProviderFactory then

spare quartz
#

shut up harry .

#

HOWEVER

#

its in C#!!!

#

aeras favorite language!!!

rustic vine
#

ye cuz C# is awesome

#

and is better than java in a lot of ways

spare quartz
#

rustic vine
#

the aot stuff is super neat

#

and java straight up just doesn't have

#

that

#

so

spare quartz
#

it does

rustic vine
#

u lost already

#

no it doesn't

spare quartz
rustic vine
#

wth

spare quartz
#

yes

#

Oracle is love

#

Oracle is life

rustic vine
#

wth

#

no cross compilation

spare quartz
#

it does

#

i mean

rustic vine
#

u sure?

spare quartz
#

thats the whole point of CLASS

rustic vine
#

but it doesn't seem like it can

rustic vine
#

thats not cross compilation tho

#

u still need a native runner

spare quartz
#

does it matter

rustic vine
#

ofc

spare quartz
#

(it doesn't)

rustic vine
#

it does

spare quartz
#

doesn't

rustic vine
#

how

#

thats not cross compilation at all

spare quartz
#

how does it matter

rustic vine
#

cuz I need to build for X system on a different system Y

spare quartz
#

okay then use your CI

#

its that simple

rustic vine
#

huh

#

no

spare quartz
#

yes

rustic vine
#

these builds need to happen locally

spare quartz
#

they don't

rustic vine
#

they do

spare quartz
#

explain

rustic vine
#

wym explain

spare quartz
#

explain why they need to happen locally

rustic vine
#

policy

spare quartz
#

meaningless

rustic vine
#

bruh

#

also having to build on CI for every change is an awful workflow

spare quartz
#

then dont wait for CI

rustic vine
#

it involves being connected to the servers that run your CI

#

huh

#

wth are u on abt

spare quartz
#

why would you need to build on ci for "every change"

rustic vine
#

how else am I gonna build it

spare quartz
#

by

#

using your computer

rustic vine
#

no cross compilation

spare quartz
#

and running the code locally

rustic vine
#

the code cannot run locally

spare quartz
#

it can

timid quartz
spare quartz
#

thats the point of JVM code

rustic vine
#

it cannot be

#

no

spare quartz
#

yes

rustic vine
#

idt u understand

#

its whatever

spare quartz
#

do you understand what graalvm is for

timid quartz
#

also driving bbl

spare quartz
#

i just dont like arbitrary waits

rustic vine
spare quartz
#

uh huh yes

rustic vine
#

yes

#

I can cross compile that

spare quartz
#

it aot compiles JVM class code into a native machines code

rustic vine
#

and deploy it to a different system

spare quartz
#

yes do that with CI

rustic vine
#

right

#

no

#

it cannot be done with CI

spare quartz
#

but if you want to test and build your code, just do it locally, and when you're ready, do it with CI

#

it's that simple

rustic vine
#

no

#

the code cannot be tested locally

spare quartz
#

why can it not be

rustic vine
#

cuz it depends on resources you don't have locally

spare quartz
#

no it doesn't

rustic vine
#

bruh

#

I give up

spare quartz
#

the code you're writing is initially going to be tested as JVM code, which is by design, platform agnostic

rustic vine
#

by resources I mean hardware

#

it accesses hardware not present locally

#

does that make sense now

#

it doesn't matter if the code will "run"

#

it will not work

spare quartz
#

okay yes and what is your point

#

what is the goal of cross compilation

rustic vine
#

to compile for the other platform

#

on the local machine

#

so I can deploy it

spare quartz
#

uh huh

rustic vine
#

idk what else I can say

spare quartz
#

and if you compile your application for that other platform through another machine on CI, you get the same end result

rustic vine
#

thats not a tenable workflow

spare quartz
#

for what reason

rustic vine
#

the compilation has to happen on the local machine

#

there is no other machine on CI

spare quartz
#

why do you need this exact circumstance

rustic vine
spare quartz
#

elaborate

#

this workflow ends the same

#

you do not need strict cross-compilation to achieve the same result for what AOT/cc is used for

#

if you want to test your application, you do it on your machine locally, and let either GraalVM/MSVC (more specifically .NET/CLI) handle the platform agnosticism for you

#

then when it's ready, you run it through MSVC's cross compilation / a CI imaging step for GraalVM

rustic vine
spare quartz
#

why can't you, though?

rustic vine
#

Didn't I say already

spare quartz
#

you can't test locally with strict cross compilation either

rustic vine
#

Yea, but with that, there's no CI step

#

You build locally and deploy directly

spare quartz
#

uh huh but the end result is still the same

rustic vine
#

Yea ik that, I never said it wasn't

spare quartz
#

but i don't see your point about "not being able to test locally"

rustic vine
#

Just that graal doesn't fit

rustic vine
#

It relies on hardware not available locally

lone sky
#

LOL

rustic vine
#

Thus, it cannot be tested locally

lone sky
#

@timid quartz IT ONLY TOOK THEM ONE SINGLE FUCKING DAY

#

TO HACK THE SWITCH 2

spare quartz
#

im sorry, im confused

rustic vine
#

U got me lost too

spare quartz
#

you're supposed to be able to test locally no matter what the hardware is on the local machine for both JVM/C#

#

as that is the entrie point for both of those languages

rustic vine
#

No, hardware resources

spare quartz
#

okay but what hardware resource exactly

rustic vine
#

Beyond the computer itself

spare quartz
#

what do you require

rustic vine
#

Theres MCUs that talk with the device

#

Those dont exist locally

spare quartz
#

what is an MCU

rustic vine
#

Microcontrollers

spare quartz
#

i sure wish you had said that earlier instead of an opaque "hardware resources", both languages lose their agnosticism and i can't really say anything for either

#

you'd need a simulator for a JVM to be nicer to test with, AOT wise

#

(or just put a JVM on the machine interacting with the microcontrollers, and test there)

rustic vine
#

mb bruh

spare quartz
#

but yeah sure C# is nicer there

#

i wont argue with that

rustic vine
#

ye I refered to them as resources cuz they're stuff the device needs to access beyond itself

spare quartz
#

i only really see the benefits of a JVM (or similar) when the applications purpose is to be isolated to everything on that one machine

rustic vine
#

either way we can't test locally without mocking/simulating stuff, so testing on the actual platform is a must

#

and not having to go through CI every time we make a code change is important

rustic vine
#

but we're hardware limited as it is already

spare quartz
#

depending on that devices power im unsure if that'd be more suitable than C# though, a lot of underpowered devices struggle with compilation, especially with the amount of optimizations graalvm will take to do

#

the last stat i saw for graal was 30 seconds for a hello world java app

#

and i assume that was on an average computer

rustic vine
#

yes, thats my point

spare quartz
#

but it does run much faster than what it would be in a JVM

#

so theres a method to the madness

rustic vine
#

yea, aot is important cuz otherwise JIT running introduces timing inconsistencies we don't like

spare quartz
#

you know what language is battle tested and great for real time environments?

rustic vine
#

in a brighter world we would be using cpp

spare quartz
#

Ada!!!!!!!!!!!!!!!!!!!!!!!!!

rustic vine
#

but csharp it is

rustic vine
#

I would say ada but idk if that fits with the "people are using now"

spare quartz
#

they're trying to get rust in real time applications but certifications and stuff are hampering their progress

rustic vine
#

maybe more like "person was using before"

spare quartz
#

so it's not like they'll be in super safety critical stuff soon

rustic vine
#

ye cuz the super safety critical stuff is still

#

fortran

#

maybe c if ur lucky

spare quartz
#

(ada)

rustic vine
#

I really don't hear about ada that often despite u always insisting its everywhere

#

its mostly fortran + c

#

maybe in the military tho

spare quartz
rustic vine
#

ye ok sounds abt right

#

I mostly hear from aerospace

spare quartz
#

but i do know ada was built with fortran and cobol interop in mind so

#

if it were generational... it'd be... fortran + cobol, ada + c, ... future languages, maybe rust/c++ ...

#

also zig too but that's super far behind rust

#

ちゃちゃ20-ぽーり1305

lone sky
spare quartz
#

ChaCha20-Poly1305

timid quartz
spare quartz
#

no

timid quartz
#

yes

spare quartz
#

no

timid quartz
spare quartz
#

if you love your clr so much make an abstract computing machine out of it

spare quartz
timid quartz
spare quartz
spare quartz
#

again, JVM project

#

(kotlin has a few things to fix this, but we're waiting on the project to be delivered)

timid quartz
spare quartz
timid quartz
spare quartz
spare quartz
timid quartz
spare quartz
#

it isn't

timid quartz
#

it is

#

CLR on top

spare quartz
#

like, you'd need to be both a JVM and CLR developer to get the difference

#

neither of which you are

#

so get to coding

#

get off your phone

timid quartz
#

I am a superior Rust dev

spare quartz
timid quartz
#

We are not encumbered by VMs

spare quartz
#

yes

#

neither are better than the other for every possible job

#

and same goes for JVM / CLR

timid quartz
#

nah…CLR is better for every job over the JVM

#

Name one disadvantage of the CLR

spare quartz
spare quartz
timid quartz
#

fat :3

spare quartz
#

die.

#

mr poshi make this guy marry a schizo japanese woman

#

@lone sky

#

send babios

spare quartz
#

how do you have htat.

timid quartz
#

ill give u one guess

spare quartz
#

ばやちゃおと申します。 イラスト・アニメーション・キャラクターデザインetc. 連絡先→ [email protected]

timid quartz
#

wrong

spare quartz
#

WHAT

spare quartz
#

NO!!!

#

all is WRONG

spare quartz
#

send babios

lone sky
#

no

spare quartz
#

send babios.

#

or poshi will come

lone sky
#

ATTENTION CUSTOMERS! [[Clean up on Aisle 3!]]

spare quartz
spare quartz
#

BAYACHAO PERSONALITY DISORDER STRUCK AGAIN

timid quartz
#

oh no

#

there's a 4th chao

spare quartz
#

nnononono

#

i cant send the image here but 😭

timid quartz
#

you and your STUPID IMAGES

#

stop looking at them

spare quartz
#

no

#

they're ucte.

spare quartz
#

safe personality disorder image

spare quartz
lone sky
lone sky
spare quartz
lone sky
#

lobotomy corporation is literally

spare quartz
#

NO ITS NOT*

lone sky
#

YES IT IS

#

IT HAS THE MOST

spare quartz
lone sky
#

UNSIGHTREADABLE

#

UI

#

EVER

spare quartz
#

yo do you want Babio

lone sky
#

in dms? sure

spare quartz
#

chiharu seen

#

🥺

#

@timid quartz

#

does this count as kokuri

lone sky
spare quartz
spare quartz
#

Thinking of porting GML VM to new platforms is hopeless optimism, I'm afraid - sure, the VM itself is relatively non-complex (compared to IL, for example), but anyone that is legitimately able of creating accurate replicas of hundreds of standard library functions (and far more undocumented elements, such as event processing) through black box testing alone is most likely to be already occupied with a full-time job as a senior engineer at some medium-sized company.

lone sky
#

😭

proud creek
#

What is that

spare quartz
#

whats what

proud creek
#

Tha

spare quartz
#

you need to be a little more clear

#

theres 4 things there

proud creek
#

The thing

#

Right above

spare quartz
#

right above what

proud creek
#

The last thing you said

spare quartz
proud creek
#

Ya

spare quartz
#

there are 4 distinct things there

#

which would you like me to explain

#

(see the package names)

proud creek
#

I have no clue lmao

rustic vine
#

good work guys

#

it was well explained

spare quartz
#

lebron james found treating a direct address as a relative address

spare quartz
#

I LOVE GENERICS!!!!!!!!

#

also means i can reduce stuff like the RIFF parser to just readBase()

#

along with the init {} block containing the advanced parsers per block

#

@timid quartz also think im gonna change the argument casting issue

#

instead of x[name] as y ill probably just do x.get<y>(name)

#

since we can reify y (potentially) itll practically be the same as before

spare quartz
timid quartz
#

im gonna reify you

spare quartz
#

reificiation!!!!!!!!

#

i love it!!!!!!!!!!

timid quartz
#

inline fun <reified ATP> kill(atp: ATP)

spare quartz
#

now i need a gets for multiple args...

timid quartz
#

nobody even uses reified

#

kotlin has so many funny keywords that nobody uses

spare quartz
#

literally everyone uses reified

#

you're just not big brain enough to use it

#

okay i think thats good enough

#

now to say goodbye to my typealiases ☹️

#

oh thats cool

#

they made an operator for me

timid quartz
#

rrrrrrrrr nooooo

#

they can't make things that help you

#

raaaaaah

spare quartz
#

50000000 crates to join two maps

#

refineBase[1]] Parsed chunk into [org.bread_experts_group.coder.format.gamemaker_win.chunk.GameMakerWINContainerChunk] from [org.bread_experts_group.coder.format.gamemaker_win.GameMakerWINInputStream$$Lambda/0x000000801414f210@78a773fd], GameMakerWINChunk."FORM"[@8]

spare quartz
timid quartz
#

kokuri

spare quartz
#

BABICHAO

spare quartz
#

oh shit

#

its world war ii all over again

spare quartz
#

there we go

#

functions

#

operagx detected

timid quartz
spare quartz
#

This actually happened to them

spare quartz
#

Anyways

#

Nap time!!

spare quartz
lavish dove
lavish dove
#

imagine if they just hooked up the screen to a raspi under the table and said they hacked it 💀

lone sky
#

dude @timid quartz @spare quartz @flint belfry holy shit

#

sunshine + moonlight is SO

#

SO much better than RDP on linux

#

cause I can actually do EVERYTHING unlike RDP which limits you

#

for "safety"

flint belfry
#

well rdp is

#

why is my name rainbow

#

rdp is good for like

#

normal programs