#💽Programming Chat v2

1 messages ¡ Page 85 of 1

timid quartz
#

ok

spare quartz
#

DONT

#

DONT

#

USE VIRTUAL THREADS

#

THEY ARE LITERLALY SUPERIOR

timid quartz
#

your fucking mom is superior

spare quartz
#

READ IITTYT

timid quartz
#

the reek of jvm copium

spare quartz
timid quartz
#

is it bad practice to not explicitly close files on shutdown

spare quartz
#

It’s preferable you close files you’re not using

timid quartz
#

ok java has no .close we good

spare quartz
spare quartz
timid quartz
#

its on the stream ok

spare quartz
#

Yeah

timid quartz
#

just for when

#

say the supervisor exits

#

closing the log file

spare quartz
#

So thirsty

timid quartz
#

that might work

#

@spare quartz would that work

spare quartz
#

Hold on burger

spare quartz
timid quartz
#

smite

spare quartz
#

Hold on

#

What is supervisor.onExit()?

#

Please standby

#

Are you certain .apply {} does what you think it does for CompletableFuture?

timid quartz
#

idk?

#

idk what this shit does

#

maybe I need .thenApply

spare quartz
#

Wait no

#

thenRun

timid quartz
#

thought rust shit was complicated

spare quartz
#

This isn’t complicated!

#

You just need to read the docs!

timid quartz
#

idk if I can validate that the log file is closing at all

spare quartz
#

Just add a print after you close the file

timid quartz
#

dont print nothin

spare quartz
#

Are you sure supervisor is exiting

timid quartz
#

yes

#

im positive

#

because the process dies

spare quartz
#

Well then the completion stage should be running

timid quartz
#

also...the only things that ever get written to the log file

#

are during startup

#

nothing from rmi calls

#

do rmi calls spawn like

#

separate threads or smth

#

that use different input streams

#

@spare quartz

spare quartz
#

Define different input streams

timid quartz
#

like

#

you knwo what I mean

spare quartz
#

I do not

timid quartz
#

like ok

#

yes you fucking do

spare quartz
#

I don’t! What input stream!!!

timid quartz
#

yknow how Process.inputStream

#

or whatever

#

that's by default stdout or whatever

spare quartz
#

If it’s the same process object then no

timid quartz
#

when I do an RMI call

#

does it like

#

spawn a new process

#

or smth

#

I have this file here

#

and only stuff in this file gets outputted in the logs

#

if I do some CLI command that invokes an RMI call, no logs from that appear

spare quartz
#

They shouldn’t spawn new processes no

timid quartz
#

then why no logs from rmi calls

spare quartz
#

Are they running at all?

timid quartz
#

yes they are verifiably running

#

because I get results

spare quartz
#

Hmmm

#

How are the RMI calls logging stuff

#

If something is holding a lock on the log file, I don’t think they’ll write

timid quartz
spare quartz
#

What handlers are on the blogger

#

Logger

timid quartz
#

wdym handlers

#

I use your ColoredLogger for that

spare quartz
#

Hold on

spare quartz
timid quartz
#

user-defined directory

spare quartz
#

Please show the handler you have on the logger to write there

spare quartz
#

That’s not writing to a file

timid quartz
spare quartz
#

Okay… can you… hmmm

#

Hm hm hm

#

Hmmm

timid quartz
#

the same thing happens if I transfer to System.out

spare quartz
#

Show the instantiation of logFile

timid quartz
#

only stuff from CarpoolSupervisorMain.kt gets written

spare quartz
#

I read

timid quartz
#

I shoudl change that exception to be more specific hold

#

ok done

#

shoulda just used rust

spare quartz
timid quartz
#

yes ok

spare quartz
#

Some platforms, in particular, allow a file to be opened for writing by only one FileOutputStream (or other file-writing object) at a time. In such situations the constructors in this class will fail if the file involved is already open.

timid quartz
#

ok but like

spare quartz
#

If you’re opening that log file by multiple parties, say, multiple RMI threads and the main thread

timid quartz
#

so RMI calls spawn new threads

#

gotcha

spare quartz
#

Thhhhennn you’d be facing an issue… is my theory

spare quartz
#

It’d make no sense for them to run synchronously

#

The JVM isn’t interrupt driven

timid quartz
#

so instead of using RMI I should have just used normal ass RPC so that it would all be running in a way I could control

#

gotcha

spare quartz
#

Again

#

The JVM isn’t interrupt driven

#

I’m not sure what you expected

timid quartz
#

I expected to be able to attach a log file to the supervisor's stdout and have the logger write to that

spare quartz
#

Okay, but you didn’t put two and two and think that maybe writing to a single log file by multiple threads is dangerous?

timid quartz
#

did not know that rmi spawned new threads

spare quartz
#

But how it work otherwise!

timid quartz
#

idfk

#

so wtf do I do now

spare quartz
#

Bring thinking back into programming!!

timid quartz
#

send logs to the void?

spare quartz
#

No

#

You create a singleton in your program that you write to, and something else writebacks that into a log

#

Or you can redirect System.out

#

Or you can add a handler to your loggers that does the former of the two

#

Just think about thread safety

timid quartz
#

and rust would have probably been clearer about this behavior

spare quartz
#

Well Rust doesn’t have an analog to RMI

#

and you should shut your mouth

spare quartz
timid quartz
#

this lang sucks

#

jvm copium

timid quartz
spare quartz
#

THINK aera THINK

spare quartz
#

It’s not gonna let you write unsafely to a single file, you just… didn’t consider that

timid quartz
spare quartz
#

It does

#

But since those exceptions were in another thread

#
  • They should’ve been logged to you
  • Or, RMI should’ve logged it on the client end, through an RMI errro…
  • Or you’ve got a black hole somewhere!
timid quartz
#

in rust this would definitely trigger the borrow checker immediately because you're trying to share that same value across two threads
it would say some shit like "attempt to move value" or whatever

spare quartz
#

No

#

That’s safely handled in the JVM

#

Those are both safe operations

#

What isn’t safe is you opening multiple logFile instances

timid quartz
#

exactly why I don't expect to have to deal with "thread safety" really at all with the jvm

#

because it's all so loosey-goosey and "handled"

spare quartz
#

Okay, but logFile is still a thread issue

#

You’re opening more than one on separate threads

#

Multiple output streams on multiple threads to a single destination … bad

timid quartz
spare quartz
#

It’s probably saying an error and you’re not doing something about it or hiding it

spare quartz
timid quartz
spare quartz
#

You know, I really should take a look at your code… I’m not gonna sleep for a while

spare quartz
timid quartz
#

you'll probably eviscerate it

spare quartz
#

Nuh uh

#

I’m not mean

timid quartz
spare quartz
#

Oh, that burger hurts… acid reflux…

timid quartz
#

let's say on the "main" thread startup I open a file or whatever

#

then for the "handler" thread, when I go to spawn it, Rust would complain if I was just using a raw file

#

it would say something about trying to borrow a moved value or whatever

#

because when the first thread spawns, the file gets moved into that thread

spare quartz
#

Well, you’re not doing that in Java in the first place

timid quartz
#

and then when the second thread spawns, the file is already moved

#

so from that I'd have to make some kind of Arc<Mutex<File>>>

spare quartz
# spare quartz Well, you’re not doing that in Java in the first place

What you’re doing is creating a new pointer to a file in every thread, and Java is complaining about it because that pointer has been reserved by somebody already; there’s multiple “files” here, but they all refer to the same “file,” making compiler checking impossible

#

It’s all an OS construct anyways

#

I SHOULD NOTE HOWEVER: I am totally uncertain of what your code is actually doing or looks like

#

This is all heuristics off of what you’ve shown me

#

Sigh I’m gonna wake up again

#

Brb

timid quartz
#

except rust catches this at compile time

spare quartz
timid quartz
#

except instead of a "pointer" being "reserved", a "value" is "owned"

spare quartz
#

If we were to take this to rust with the same premise

#

All the rust compiler would see is that multiple threads would share the same path to the file, it couldn’t possibly know you’re opening that file on multiple threads in write mode

#

In Java the analogue to rust here would be a singleton with your FOS

#

Also… I just blue screened my computer by dropping the monitor on the GPU…

#

Siiiuiiighhhhh

timid quartz
#

because opening said file

#

would require the file to be mut

spare quartz
#

Okay but you’re still going off the fact that there’s only one “file” var

#

That just isn’t true on Java

#

You have multiple file vars

timid quartz
#

ok lovely

#

(supervisor main)

#

that works

spare quartz
#

God

#

Singh

#

I hate windows

#

Or maybe I hate PCIe

timid quartz
#

windows def

#

but dropping your monitor on your gpu

#

is bound to cause problems

timid quartz
#

as an arg

#

another fucking arg

#

to the supervisor

spare quartz
#

but it apparently restarted with the GPU still disconnected

#

??

timid quartz
#

lmao gg

spare quartz
#

so i had to reseat it and restart again

timid quartz
#

might have broken your pcie connector

#

just get a case

#

or somethign to cover the top

spare quartz
#

it works

#

okay let me open intellij

#

hmm

#

do i trust you..

#

okay, can you push

timid quartz
#

in a bit

#

lemme finish at least writing down the supervisor's logs somewhere

spare quartz
#

kill me

timid quartz
#

ok @spare quartz I pushed

spare quartz
#

one second

timid quartz
#

shoulda done this in rust I swear

spare quartz
#

no.

spare quartz
#

lemme just upgrade BSLs numeric parsing

#

NOOOOOOOOOOO

#

I CANT PLAY MY KONKON TOZAI OKITSUNE MONOGATARI SONGS

timid quartz
spare quartz
#

explain why

timid quartz
#

because I wanna do it

#

but not tn I wanna sleep tn

spare quartz
timid quartz
#

maybe but I wanna do it

#

I thought you just wanted to look at the code I have

spare quartz
#

well i do

timid quartz
spare quartz
#

but i figured i might as well update bsl if you're not going to, before you said you didnt want that

#

anyways just let me make one more upgrade... and ill look at it...

spare quartz
#

yeah but later isnt exactly definite

#

anyways holddd onnn need to write some tests...

timid quartz
#

ugh fine Stallman

#

Tomorrow

spare quartz
#

one test... ignored??

#
  1. you can consolidate this (fun status() = StatusResult ..., SEE ALSO: kotlin.Result)
#
  1. again consolidatable
#
  1. you should be using a logger handler for file writes; see second snapshot
#
  1. you should be using readArgs (and additionally, there is an extension function you can use, args[1].toInt())
#
  1. you can consolidate unicastremoteobject by inheriting it as a class
#
  1. creation of directories can be simplified
#
  1. instead of declaring these one-time variables, use gets() [/ with the current BSL version, put the index + cast in the if statement]
#
  1. use ProcessHandle.current() instead
#
  1. you should be consolidating registry accesses into one function
#
  1. always log the exception on failure unless you are absolutely certain what the problem is
#

if you're worried about spam, ColoredLogger has this global variable you can use to control the output

#
  1. refrain from using println at all costs (really, just use your own level if you believe it's absolutely critical to log; i'll make a level class in BSL you can take advantage of for coloring purposes)
spare quartz
#

this is why you should be using your own FileHandler

spare quartz
#
  1. use the kotlin inline .isEmpty() functions; or you can filter this out in conv in your argument
#
  1. (more of a suggestion), instead of RuntimeMXBean, use the System property
#
  1. for rigidity, you should probably make CarpoolSupervisorMainKt an object with its main function as a @JvmStatic function, which you then refer to by reflection; ex. CarpoolSupervisorMain::class.qualifiedName
#
  1. trys are statements, which are collapsible with what was described in 2.
#

@timid quartz anyways heres my general overview of your code ^^^^

#

i just glanced over most of it

#

i cant do much more without being able to touch any of it

lyric mesa
#

i ran nano on my mac expecting it to open nano (not knowing whether or not it had it) but apparently it opened something called pico instead
i think i am being deceived

#

it looks the same but the save keybind is different..

spare quartz
#

it appears they replaced it 3 years ago

#

and apparently pico used to redirect to nano before they did

lyric mesa
spare quartz
#

i dont think theres any giant difference except that the license and key binds are different

lyric mesa
#

ah

spare quartz
#

@timid quartz

#

pretty cool thing i just found btw

#

mmmb

spare quartz
spare quartz
#

making an extensible long for log banks and surprisingly this is nearly as optimal as the most efficient BigInteger storage

#

BigInteger has an edge of exactly 1 byte for certain payloads; but you need a size header

spare quartz
rustic vine
#

Why was aera up at 4??

#

Very unusual

spare quartz
#

i do not know

#

but i must now research this algorithm

rustic vine
#

The algorithm

spare quartz
#

because its somehow making an extra 516 bytes when at worst performance when it should be a flat 9,000

rustic vine
#

- 516

#

Yw

rustic vine
#

I still think the headers are wayyyyy too long tho

#

Also what are yall working on?

spare quartz
#

most of the header bloat comes from the logger name (i like to be verbose) and function name (kotlin is very closure heavy, which makes a ton of $lambda0$lambda2$lambdawhatever crap)

spare quartz
#

i gotta make sure this algorithm is perfect though....

rustic vine
#

So having a long header makes it harder for me imo to see the actual message

spare quartz
#

wait its cause my math was off thats why

#

6+ 7+7+7 +7+7+7+ 7+7+7 = at worst, 10 bytes

rustic vine
#

U should let me contribute something so I can feel good abt myself 😁

spare quartz
#

im unsure about how i would take that comment though

#

i usually work off the assumption the logging console has infinite width

rustic vine
#

Huh wdym

spare quartz
#

this is always disabled

#

and the console is infinitely scrollable given an infinite width

rustic vine
#

Ye

#

I guess I just like the content of what was logged being closer to the left

spare quartz
#

oh yeah im the "opposite", i prefer center aligned content

#

my eyes are a little medically weird though so, probably not the greatest accessibility mindset...

rustic vine
#

No its fine its not a big deal or anything

spare quartz
#

i wonder when aera will wake up

#

hopefully he does not treat my 18 comments as ragebait

rustic vine
#

LOL

#

Code review

#

But yea seriously tho if you have something u think I could help with I'd be happy to do that. I haven't written Java for a real project in a little while

spare quartz
#

well you wont have to write any java if you do end up writing something

#

just kotlin

rustic vine
#

NOOOO

#

Oh ok wait thats chill

#

I been waiting for an excuse to learn it 😅

spare quartz
#

hmmm actually

#

you speak chinese pretty well right

rustic vine
#

Hopefully

spare quartz
#

would you mind writing 15 lines of translations for a directory entry system when you're available

rustic vine
#

I can prob do that

#

Idk what that implies

#

But probably 😁

spare quartz
#

well essentially

#

you just take this class, but replace the second string with... whatever it'd mean in chinese

rustic vine
#

Oh that's ez

#

Wth is loops

spare quartz
#

like a symlink loop, say you have the tree
a/b/c/
and "c" is a symlink back to the folder "a"

#

a/b/c/a/b/c/a... and so on

rustic vine
#

Oh hm ok

spare quartz
#

"store" is a little more nuanced, in japanese i have it written as 仮想ルートディレクトリ外 (virtual root directory), but its just "the root folder for files" for a given site

lone sky
#

(with some assistance from ricard)

spare quartz
#

indeed

rustic vine
#

Ultimate modification

spare quartz
#

perfect

#

i love arithmetic

#
Algorithm worst case (maximum):
(ceil((Long.SIZE_BITS - 6) / 7.0) + 1)

Range worst case:
var worstCase = 1
var remainder = max(abs(range.start), abs(range.last)) ushr 6
while (remainder != 0L) {
    remainder = remainder ushr 7
    worstCase++
}
spare quartz
spare quartz
#

010321041932

timid quartz
# spare quartz <@195942662241648640> anyways heres my general overview of your code ^^^^

1, 2, 7, 9, 11, 13, 14, 15, 16, 17, 18: yeah sure whatever blah blah blah
3: well you SAID redirecting stdout was an option
4: didnt want to have to go through all the trouble for 3 args that USED to be 2
5: yeah I did realize I needed to move it and then didn't lmfao, that got moved to where it is last night
6: interesting
8: yknow oddly im inconsistent with even using these variables, but some of them are used in multiple places which is why I made a binding
10: Ok this one I have an actual explanation for. I need a quick check if the supervisor is online in two places: in startSupervisor() and right before processing any commands if -start wasn't supplied. Consolidating the registry accesses into one place would, imo, make the code a little more complicated and uglier
12: ok but IF using the logger to log actual program output that the user NEEDS to see, there's a chance that the user uses -log_level=OFF and gets none of the output they actually have requested to see from the commands

spare quartz
#

elaborated list order cause discord sucks

timid quartz
timid quartz
# spare quartz

if you'll notice, I stuck a bunch of numbers in the first point

spare quartz
timid quartz
#

your 6

spare quartz
#

my 12?

timid quartz
#

yeah my 12

spare quartz
#

OK

spare quartz
timid quartz
#

??? my status codes???

spare quartz
#

program

#

exit

#

status codes

timid quartz
#

atp if someone does carpool -list_services and nothing pops up

#

that's a problem

spare quartz
#

yeah

#

cause they said -level=OFF

timid quartz
#

but that's stupid

spare quartz
#

the default level isnt gonna be OFF unless they specifically say its off

#

and if you're so worried about someone doing it on accident then just

#

prevent them from doing so in conv

timid quartz
#

but then what about "rEsPeCtInG tHe UsEr'S wIsHeS"

spare quartz
#

i already elaborated my points for both of your options

#

you either let the user turn off the log, or prevent them

#

using println and a logger is just. weird

#

and ugly

timid quartz
#

anyways

spare quartz
#

anyways correct i should stop playing my plane game demo

#

and resume work on that efficient logging format

timid quartz
spare quartz
#

why not use a Result<T>

#

if acquisition fails

timid quartz
#

cause your silly lang doesnt have that

spare quartz
#

it

#

does

#

i literally told you

#

in that list

#

it does

timid quartz
#

no u didnt

spare quartz
#

you might be dumb

#

see also .runCatching

timid quartz
#

StatusResult is my own invention

spare quartz
#

its useless

#

kotlin result is superior programming

#

anyways (that was obvious ragebait btw i didnt really consider what your class was good at)

#

use the kotlin.result class for the acquisition of supervisor safely

timid quartz
#

I just dont think you understand why I have the two different acquisitions

spare quartz
#

i see duplicate code

timid quartz
#

let me try refactoring it to be one acquisition

spare quartz
timid quartz
#

the two problems are here

#

upon removing that function

#

you can now see how they were used

spare quartz
#

i dont see any impedences

spare quartz
#

i still dislike how the worst case scenario is 25% worse than raw longs

#

but considering the ranges at hand are -9223372036854775808 to 9223372036854775807 ... i think its okay...

#

let me compute its maximum range before it loses to raw longs

timid quartz
#

I bet your result type isn't even zero-cost

spare quartz
#

this is the maximum range produced before it loses to raw longs

#

unfortunately this is only 0.390625% of the scale of a long, however..... it is acceptable

timid quartz
spare quartz
#

JUST IGNORE SOME OF THE LYRICS..

timid quartz
#

you are my biggest opp

spare quartz
timid quartz
#

exactly

spare quartz
#

because in rust it'd mean machine code that replicates the behavior of the construct at hand w/o needing an object in memory to hold state for its operation, but in the JVM such operations are at the whim of HotSpot...

timid quartz
#

bad lang bad runtime

spare quartz
#

which can do whatever it wants...

spare quartz
timid quartz
#

YOU'RE the problem

spare quartz
#

noooooope

timid quartz
#

should have just written this in rust fr

spare quartz
#

rustlets when they comprehend something beyond their little brains

spare quartz
#

"i should rewrite this in rust"

lone sky
#

you don't understand

#

the solution to lifes problems is called rust

spare quartz
#

its bayachao media

#

(and the associated dogs)

lone sky
#

yeah lol

#

I was just mocking aerasstos thought process

timid quartz
timid quartz
#

anyways your lang sucks and you should feel bad

spare quartz
#

the JVM is like a 3d object moving in your little 2d world

timid quartz
spare quartz
timid quartz
#

?? how

spare quartz
#

you cant be this dumb

timid quartz
#

in rust a Result is either Ok or Err

spare quartz
#

aerrra

#

use the closure functions aerrrrra

#

use the closuresssss

#

use the cllllloososuress

timid quartz
#

the rust code would look like

// snip
} else if trySupervisor.is_err() {
  let err = trySupervisor.err().unwrap();
}
spare quartz
#

you can do that in kotlin too

timid quartz
#

and Err means that something failed

spare quartz
#

in fact

#

you're literally doing that rn

#

!! is your .unwrap()

#

but use the closure functions pls

#

use the closuresss

#

uuuuuuse the closureess

timid quartz
spare quartz
#

uuuuuuuseee the fclooooosurueuusss

timid quartz
#

rust is .is_err() and .err()

#

there is no dissonance

spare quartz
#

uuuuuuuseeee

#

CLOSURES!!!

lone sky
#

@timid quartz HOLY SHIT

#

NATIVE LINUX CONTAINERS ON MACOS 26?????

timid quartz
#

wait what

spare quartz
#

yes

#

they made a github repo

#

bad design

lone sky
#

ok but

#

you gotta admit that's actually huge

spare quartz
#

no

#

its awful

lone sky
#

WHY AM I GETTING JAPANESE NEWS WHEN GOOGLING ABOUT THIS

spare quartz
#

chao

lone sky
#

you and your windows glass house.

#

🙄

timid quartz
spare quartz
#

"windows"

#

i dont care about the os

#

i just hate containers

spare quartz
#

whatever this is

#

i dislike this

#

but it looks fine

#

good job!

#

closures are the future

lone sky
timid quartz
# spare quartz whatever this is
fun main(args: Array<String>) {
    val (singleArgs, multipleArgs) = readArgs(
        args,
        FLAGS,
        "Application Carpool",
        "A program for running your applications in the background."
    )
    LOGGER.level = singleArgs["log_level"] as Level
    LOGGER.fine("Reading arguments")

    val start = singleArgs["start"] as Boolean
    val stop = singleArgs["stop"] as Boolean
    val port = singleArgs["port"] as Int
    val logDir = singleArgs["log_directory"] as Path

    val trySupervisor: Result<Supervisor> = runCatching {
        val registry = LocateRegistry.getRegistry(port)
        registry.lookup("CarpoolSupervisor") as Supervisor
    }

    logDir.createDirectories()

    if (start) {
        if (stop) {
            LOGGER.severe("Please only use EITHER -start or -stop.")
            exitProcess(1)
        }
        trySupervisor.onSuccess {
            val supervisorPid = it.status().pid
            LOGGER.severe("You have asked to start the supervisor daemon, but it appears to already be running (PID $supervisorPid).")
            exitProcess(1)
        }

        spawnSupervisor(LOGGER.level, port, logDir)
        LOGGER.info("Giving the supervisor time to wake up...")
        Thread.sleep(1000)
    }

    trySupervisor.onFailure { e ->
        LOGGER.log(Level.SEVERE, e) { "The supervisor daemon does not appear to be running. Please start it with -start." }
        exitProcess(1)
    }
    trySupervisor.onSuccess { supervisor ->
        if (stop)
            try {
                supervisor.stop()
            } catch (_: UnmarshalException) {  // expected, so ignore
            } finally {
                LOGGER.info("Supervisor daemon stopped")
                exitProcess(0)
            }

        handleCommands(singleArgs.filterKeys { SINGLE_COMMANDS.contains(it) }, multipleArgs, supervisor)
    }
}
#

that's the whole function

#

have fun

spare quartz
spare quartz
timid quartz
#

REVIEW IT

spare quartz
#

nnno

#

provide good reason for me to

timid quartz
#

since youre complaining about my code

#

review it

spare quartz
#

aerrra im tired

#

i should've slept ... 10 hours ago

timid quartz
#

womp WOMP

lone sky
#

SMH...

spare quartz
lone sky
#

YOU SUCK AT SLEEPING.

#

oh right you sleep on mtn dew

#

im convinced you would fill a waterbed with that demonic liquid

#

and sleep on that

spare quartz
#

that's a bad idea

#

it'd ferment

timid quartz
#

that you disliked

spare quartz
#

show use _

lone sky
timid quartz
spare quartz
#

ive made alcoholic coke before

lone sky
timid quartz
spare quartz
#

nooooooooooooooooooooooooooooooooooo

timid quartz
#

the only one not used more than once is start

#

and I refactored it

spare quartz
#

nooooooooooooooo

timid quartz
#

go chug a 2L

spare quartz
timid quartz
#

then you'll be fine

lone sky
# spare quartz

what went wrong for you to get into the touhou rabbit hole

timid quartz
#

LATER

spare quartz
#

plsss

#

plssssssssssssssss

spare quartz
#

youtube suggested it to me

#

and its kinda a banger

lone sky
#

yeah alright

#

i'll take your word

timid quartz
#

give up

#

give up, give it up

spare quartz
#

my playlist rn

lone sky
#

OH MY GOD I ALMOST SHAT A MARBLE

spare quartz
#

OK

timid quartz
#

wtf

lone sky
#

NOT HIDEO KOJIMA POSTING A HEADLINE THAT SAYS "The life and death of hideo kojima"

timid quartz
#

wait atp

#

aha

spare quartz
#

im SO tired

timid quartz
#

aha aha

spare quartz
#

WHAT DO YOU WNAT

timid quartz
#

so

spare quartz
#

LongCounted(-1000000000000000)
stream.writeExtensibleLongCounted(-1000000000)
stream.writeExtensibleLongCounted(-1000)
stream.writeExtensibleLongCounted(-1)
stream.writeExtensibleLongCounted(0)
stream.writeExtensibleLongCounted(1)
stream.writeExtensibleLongCounted(

timid quartz
#

we have this right

lone sky
timid quartz
#

simple little LAMBDA

spare quartz
#

YES MA'AM.. YOU HAVE THAT.. RIGHT..

#

WHAT ABOUT It.

timid quartz
#

so if we say -start, we do this thing

#

where if trySupervisor is successful we say "oh it's already started and quit"

#

but if it's NOT then we continue to the next thing where we spawn the supervisor

spare quartz
#

oh yeah btw

#

you can chain your on calls

#

onsuccess {} . on failreu r{ER} E{R@{

timid quartz
#

AFTER THE START BLOCK

#

WE EXIT

#

with the supervisor started

spare quartz
#

uh huh.....

timid quartz
#

YET

spare quartz
#

im super tired aere...

timid quartz
#

trySupervisor IS STILL FAILURE

spare quartz
#

im super tired..

timid quartz
#

THIS is why I had the stupid thing SPLIT

spare quartz
#

i dont see the problem ..

timid quartz
#

and was accessing the registry in two places

spare quartz
#

cause i cant parse your logic rn.. im so tired..

timid quartz
spare quartz
#

okay...

timid quartz
#

but

#

trySupervisor

#

is still failure

#

meaninig

#

we wont handle commands

#

we will fail

spare quartz
#

why is trysupervisor a fialure_

timid quartz
#

because trySupervisor means that the supervisor is probably offline

#

if it's a failure

spare quartz
#

you kow what

#

just stop talking

#

can you send an update_

timid quartz
#
val trySupervisor = <try to get supervisor>
if (start flag) {
  trySupervisor.ensureIsFailure()
  // trySupervisor is most definitely a failure here
  startSupervisor()
}
// trySupervisor is most definitely a failure if we go
// through the if (start flag) block
// but the supervisor gets started in there, so correct
// behavhior is going to .onSuccess
trySupervisor.onFailure { complain() }
             .onSuccess { handleCommands() }
#

there @spare quartz

spare quartz
#

........0

timid quartz
#

just

spare quartz
#

.onFailure in an else statement

#

and .onsuccess in a finally

#

(outside)

#

god im so tired my english comprehensio n is very bad rigth ow..

timid quartz
#

I did have it like that originally

timid quartz
#

should have kept it ig

timid quartz
rustic vine
#

tryGetSupervisor

spare quartz
rustic vine
#

bring back the la riots

#

nvm they already did

#

wth goin on in la

#

they r cooked

timid quartz
spare quartz
#

idk the marines are invading it

rustic vine
#

oh ok good

spare quartz
#

they're planning to annex la into the us

rustic vine
#

my peaceful protest when I throw rocks and shoot fireworks

timid quartz
rustic vine
#

aren't those supposed to be defective or something

timid quartz
#

because trySupervisor is STILL

#

a failure

spare quartz
#

why_

timid quartz
#

so .onSuccess won't run

spare quartz
#

?

timid quartz
# spare quartz why_
val trySupervisor = <try to get supervisor>
if (start flag) {
  trySupervisor.ensureIsFailure()
  // trySupervisor is most definitely a failure here
  startSupervisor()
} else {
  trySupervisor.onFailure { complain() }
}
// trySupervisor is most definitely a failure if we go
// through the if (start flag) block, so .onSuccess
// will not run
trySupervisor.onSuccess { handleCommands() }
timid quartz
#

.onSuccess wont' run

timid quartz
spare quartz
timid quartz
#

two handleCommands() 🤢

spare quartz
#

doesn't matter

#

you're like a mind toxin

timid quartz
#

YOU'RE the mind toxin

#

you've poisoned my mind

spare quartz
#

@spare quartz "how do i make my logics work :<<<<"

#

you rn

#

sned baychaao

timid quartz
#

that's DUMB

#

and INANE

spare quartz
# timid quartz cause I'm using a STUPID LANGUAGE

TVアニメ「てっぺんっ!!!!!!!!!!!!!!!」でEDアニメーションを担当したばやちゃおさんと一緒に歌っちゃいました!

Original:
May'n - あはっててっぺんっ
https://youtu.be/zR99bqxQyw8
作詞:May'n・大石昌良
作曲・編曲:大石昌良・やしきん

▼ TVアニメ「てっぺんっ!!!!!!!!!!...

▶ Play video
#

you need to listen to bayahcap .

timid quartz
#

you're basically my chatgpt

spare quartz
#

you're literally the green sludge in this photo

lone sky
timid quartz
spare quartz
#

??

timid quartz
#

you're the algae eating away at me

#

leeching off of me

spare quartz
#

nnnoo

lone sky
#

maybe not a dog

#

but certainly schizo

spare quartz
#

bayachao hasn't posted ap hoto in like.. one week

#

i think shes dead irl

lone sky
#

oh nonono

spare quartz
#

her last reposted photo was... devilun with thighs...

#

it killed her

#

💔

lone sky
#

I know a way to bring them back to life.

#

BUT

#

I will need the value of a nintendo switch 2.

spare quartz
#

im ngl

#

if we had bayachao and poshi working on snl instead of qs

#

it would've been out 6 years ago

spare quartz
#

aera secret technique

#

reveal parameter unknown to me

lone sky
timid quartz
#
val trySupervisor = <try to get supervisor>
if (start flag) {
  trySupervisor.ensureIsFailure()
  // trySupervisor is most definitely a failure here
  startSupervisor()

  // cannot get supervisor here without another reigstry call
  // because it's a failure
  handleCommands(supervisor)
} else trySupervisor.onSuccess { handleCommands(it) }.onFailure { complain() }
timid quartz
spare quartz
#

hear me out

#

have you heard of something called a RECURSIVE function

timid quartz
#

ew wtf

#

why would you reach for recursion

spare quartz
#
fun a()
  trysupervisor?!???!
  if (supervisorISDEAD & start) {
    startsuer..
    return a()
  }
  .onsuc.onfial..
}
#

recursion ..

lone sky
#

i found footage of aerasto irl btw @spare quartz

timid quartz
#

RAAAH

spare quartz
#

I DONT CARE

#

ITS USING THE SAME FUNCTION

#

ITS THEREFORE ONE INSTANCE!

#

CACHE THE REGISTRY IF YOU MUST BUT ITS A STUB!

timid quartz
lone sky
#

yeah that's apt-get

spare quartz
lone sky
#

worst package manager btw

#

worst package manager for the worst distro

timid quartz
lone sky
#

dnf and pacman 🔛 🔝

spare quartz
#

im goin gto hit you with a hammer irl

#

literally im gonna go to ... like, where do ou live agian..

#

umm

#

can you show me your ip

spare quartz
#

pls

lone sky
#

or some shit

spare quartz
#

what the fuck is bergen

#

i just know they're a smelly cs college student

lone sky
#

idk i'm not a crab i wouldn't know where they live

spare quartz
#

with harry.

#

aera... pls..

#

dont say another contradictory statement..

#

i beg of you ..

#

pls..

timid quartz
#

at that point I might as well just

var trySupervisor = <try to get supervisor>
if (start flag) {
  trySupervisor.ensureFailure()
  startSupervisor()
  trySupervisor = <try again to get supervisor>
  trySupervisor.onSuccess { handleCommands(it) }.onFailure { complain() }
}
spare quartz
#

USE RECURSION

#

!!!!!

#

THE CALL STACK IS YOUR FRRRRIEND

timid quartz
#

or just disallow doing something like carpool -start -add_service

lone sky
#

LMFAO

timid quartz
#

(basically dont handle commands after start)

spare quartz
lone sky
#

THE DUDE SITTING BESIDES ME INSTALLED ARC BROWSER

#

POOR SOUL

lone sky
timid quartz
#

much easier

spare quartz
#

waaaaaahh

#

😭

timid quartz
#

boo hoo you have to use two commands now

spare quartz
#

you couldve just usd recusrion.. and preserved functionality..

#

waaaahhhhhhhh

lone sky
timid quartz
#

UGHHHH

#

RECURSION MORE LIKE

#

GROSS

spare quartz
#

do they teach you as if recursion is SATAN in cs

timid quartz
#

the call stack is not your friend

spare quartz
#

IT IS

#

you're not gonna be starting a supervisor 9000 times

timid quartz
#

throw new StackOverflowException

spare quartz
#

nooooo

spare quartz
#

this would technically mean... its devilun..

#

aera has devilun in his code..

lone sky
#

LOL

timid quartz
spare quartz
#

awwww

#

you love it

timid quartz
#

no I HATE IT

spare quartz
#

oky.

#

im gonna go ly down ,now

lone sky
#

@timid quartz is rivals any fun

#

and if so,

is it paid

timid quartz
#

marvel rivals?

#

@lone sky ^^

lone sky
#

no

#

the game you're playing

#

that's called that

#

or was it warriors??

#

idk i might be stupido

timid quartz
#

the finals??

lone sky
#

YEAH

#

THAT THING

timid quartz
#

yeah I think it's fun

#

and it's free

spare quartz
#

Mmmb I should play more games..

timid quartz
#

you should use better programming langs

lone sky
spare quartz
lone sky
#

playing NTOT and debikone all day is not gaming

#

that's just called cycling between two complex artbooks

spare quartz
#

patches …

spare quartz
#

I code all day

#

They locked me in a chamber with YouTube and IntelliJ

spare quartz
#

That’s aera after his first bottle btw

timid quartz
#

I did your stupid recursive refactor

spare quartz
timid quartz
#

and now it gets connectionrefused

#

on reconnect

spare quartz
#

Why

#

?

timid quartz
#

this is why I never listen toy ou

spare quartz
#

Why? Does it ?

#

Do that ?

timid quartz
spare quartz
#

Start it then

#

Stupid

timid quartz
#

I DID

spare quartz
#

Okay

timid quartz
#

the process starts

spare quartz
#

Then why isn’t it binding

timid quartz
#

IDFK!!!!

spare quartz
#

Fix itttt

timid quartz
#

IM TRYING!!!

spare quartz
timid quartz
#

would be the "same instance"

#

maybe that's why

spare quartz
#

Syesvhurt ..

timid quartz
#

ugh

#

go sleep idiot

spare quartz
#

Trying..

#

But this green rank guy is being bad at life..

#

Bayaaachaaaoo

timid quartz
#

OH WAIT

#

I KNOW WHY

spare quartz
#

Why..

timid quartz
#

I was playing myself basically

timid quartz
#

Cae was right about Kotlin cuh

#

Pure cope lang

#

That’s going obsolete

spare quartz
timid quartz
spare quartz
#

❌

timid quartz
#

go back to sleep

#

you still have 8 hours left

spare quartz
timid quartz
#

asleep again

spare quartz
#

No

#

Eating my candy

timid quartz
#

go back to sleep

spare quartz
#

No

#

Candy ..

timid quartz
#

you only slept like

#

8.5h

#

you need more sleep

spare quartz
#

That’s forever

timid quartz
#

yes yes atp good idea

lone sky
#

aera

timid quartz
#

sleep forever.

lone sky
#

sybau

spare quartz
#

Noooo

timid quartz
#

?ban

upbeat badgeBOT
#
**Command:** ?ban

Description: Ban a member, optional time limit
Cooldown: 3 seconds
Usage:
?ban [user] [limit] [reason]
?ban save [user] [limit] [reason]
?ban noappeal [user] [limit] [reason]
Example:
?ban bean making bugs
?ban save gin 2d needs to calm down
?ban noappeal piguy dont come back

lone sky
#

you should be the one sleeping forever

#

at most

#

smh.

timid quartz
timid quartz
#

we found atp's pills

timid quartz
#

also also LLVM JIT HAHHAHAHAHA

spare quartz
#

Kys!!!

#

GCC AND LLVM JVM 💪

timid quartz
#

we already have that

#

it's called rustc

spare quartz
#

that’s trash

#

just like clr

#

digital e-waste

timid quartz
spare quartz
#

no.

timid quartz
#

like @JvmStatic pure jvm copium right there

spare quartz
#

hammers to your skull!!!

timid quartz
#

"oooh you have to have a static function and we took away your silly keyword for it"

spare quartz
#

because you don’t need a static in Kotlin

timid quartz
#

unless it's a main method

#

which again....jvm copium

spare quartz
#

Main methods are literally static by default

#

Outside of classes

#

Moron

timid quartz
#

jvm copium

timid quartz
spare quartz
#

☣️

timid quartz
#

ur the real biohazard

spare quartz
#

chaohazard

timid quartz
#

biochaozard

lone sky
#

dude oh my god

#

i went back through my old messages in here

#

and found out that one shitty discord ripoff called revolt was built on rust

timid quartz
#

yes

#
  1. revolt aint shitty
  2. rust 💪
lone sky
timid quartz
#

answer: no

#

that's what I thought

lone sky
#

i used revolt for like 3 days

#

quickly left cause it was unbearable (front end wise)

timid quartz
#

probably more polished than the last time you used it

lone sky
#

the backend is probably really good

#

but look i'm no nerd and all i know about rust is that it's a faraday cage for memory

#

or well i'm 1/3rd of a nerd

lone sky
#

the other two thirds were lost in transi-

lone sky
#

I

#

AM NOT

#

A FAN OF IT.

spare quartz
#

give up

#

give up

#

give up

timid quartz
#

look at the meme idiot

lone sky
#

(on desktop)

timid quartz
spare quartz
timid quartz
#

lol atp you should get like $400

#

and commission a chaoizard

spare quartz
#

thats correct

lone sky
timid quartz
#

or well I WOULD say that if it didnt mean giving bayachao money

#

giving bayacaho money is always a net evil

lone sky
#

please give me more tamamo-no-mar art.

spare quartz
#

you wouldn't mind if i commissioned 迷犬 instead

#

??

lone sky
timid quartz
#

anyone within 2 degrees of connection to bayachao

#

so bayachao, her friends, and the friends of her friends

spare quartz
#

okay what about poshi then

timid quartz
#

who is that

spare quartz
#

hes not bayachaos friend...

#

thats their husband..

timid quartz
#

still net evil

#

related by marriage

spare quartz
#

okay

#

efficient logging format

#

need to think this

timid quartz
#

huffman code

#

huffman code

#

huffman code

spare quartz
#

bank format: [extensible integer (index)][huffman encoded string]...

#

log format: [extensible integer (level)][extensible integer (time)][extensible integer (logger name)][extensible integer (logger method)][extensible integer (thread id)][[extensible integer (index)]...]...

timid quartz
#

how about

#

.txt

spare quartz
#

i was planning on making it multimodal

timid quartz
#

give up

#

give up

#

give it up

lone sky
#

@timid quartz do I really need to know javascript to make a website

#

or can I rawdog it

spare quartz
#

no

timid quartz
spare quartz
spare quartz
#

found your account on twitter

pastel tinsel
#

lmao

timid quartz
#

you wish