#đ˝Programming Chat v2
1 messages ¡ Page 85 of 1
your fucking mom is superior
Virtual threads are lightweight threads that reduce the effort of writing, maintaining, and debugging high-throughput concurrent applications.
READ IITTYT
the reek of jvm copium
is it bad practice to not explicitly close files on shutdown
Itâs preferable you close files youâre not using
ok java has no .close we good
chiharu <333
Wdym
its on the stream ok
Yeah
So thirsty
how could i...
that might work
@spare quartz would that work
Hold on burger
Probably_
smite
Hold on
What is supervisor.onExit()?
Please standby
Are you certain .apply {} does what you think it does for CompletableFuture?
declaration: module: java.base, package: java.util.concurrent, class: CompletableFuture
Wait no
thenRun
thought rust shit was complicated
idk if I can validate that the log file is closing at all
Just add a print after you close the file
dont print nothin
Are you sure supervisor is exiting
Well then the completion stage should be running
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
Define different input streams
I do not
I donât! What input stream!!!
If itâs the same process object then no
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
They shouldnât spawn new processes no
then why no logs from rmi calls
Are they running at all?
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
I create a logger here and give it to the class that has all the RMI methods
Hold on
Where are the logs?
user-defined directory
Please show the handler you have on the logger to write there
Thatâs not writing to a file
the same thing happens if I transfer to System.out
Show the instantiation of logFile
only stuff from CarpoolSupervisorMain.kt gets written
**
I read
I shoudl change that exception to be more specific hold
ok done
shoulda just used rust
yes ok
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.
ok but like
If youâre opening that log file by multiple parties, say, multiple RMI threads and the main thread
Thhhhennn youâd be facing an issue⌠is my theory
In theory yes
Itâd make no sense for them to run synchronously
The JVM isnât interrupt driven
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
I expected to be able to attach a log file to the supervisor's stdout and have the logger write to that
Okay, but you didnât put two and two and think that maybe writing to a single log file by multiple threads is dangerous?
did not know that rmi spawned new threads
But how it work otherwise!
Bring thinking back into programming!!
send logs to the void?
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
id expect this out of rust but not out of java
and rust would have probably been clearer about this behavior
Wdym?
well because rust is so strict everywhere else
THINK aera THINK
Well the JVM is here, too
Itâs not gonna let you write unsafely to a single file, you just⌠didnât consider that
except it doesn't tell you that it's not doing that
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!
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
No
Thatâs safely handled in the JVM
Those are both safe operations
What isnât safe is you opening multiple logFile instances
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"
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
so rather than set it where the supervisor is spawned, it needs to be set by the supervisor itself
Itâs probably saying an error and youâre not doing something about it or hiding it
I have seen 0 errors
Iâm not sure what that means, but I guess
and rust wouldn't even let this program compile because of that I guarantee
You know, I really should take a look at your code⌠Iâm not gonna sleep for a while
Whatever lets you sleep at night
you'll probably eviscerate it
because let's say I make some "equivalent" of RMI or whatever
Oh, that burger hurts⌠acid refluxâŚ
I spawn a new thread or whatever to handle a request
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
Well, youâre not doing that in Java in the first place
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>>>
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
similar thing in rust with ownership
except rust catches this at compile time
Not at all
except instead of a "pointer" being "reserved", a "value" is "owned"
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
mmm it can
because opening said file
would require the file to be mut
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
this means im gonna have to pass the log directory
as an arg
another fucking arg
to the supervisor
nono, i thought the bluescreen saying "VIDEO_MEMORY_MANAGEMENT_ERROR" would restart my computer, and since i reseated the GPU it'd fix it
but it apparently restarted with the GPU still disconnected
??
lmao gg
so i had to reseat it and restart again
might have broken your pcie connector
just get a case
or somethign to cover the top
kill me
ok @spare quartz I pushed
one second
shoulda done this in rust I swear
no.
lemme just upgrade BSLs numeric parsing
NOOOOOOOOOOO
I CANT PLAY MY KONKON TOZAI OKITSUNE MONOGATARI SONGS
please dont update bsl or anything in my code
explain why
well i mean.. im not gonna stop you... but... doesn't that sorta defeat the whole git thing?
well i do
and vomit at it
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...
I will
I just said later
.
yeah but later isnt exactly definite
anyways holddd onnn need to write some tests...
one test... ignored??
- you can consolidate this (fun status() = StatusResult ..., SEE ALSO: kotlin.Result)
- again consolidatable
- you should be using a logger handler for file writes; see second snapshot
- you should be using readArgs (and additionally, there is an extension function you can use, args[1].toInt())
- you can consolidate unicastremoteobject by inheriting it as a class
- creation of directories can be simplified
- instead of declaring these one-time variables, use gets() [/ with the current BSL version, put the index + cast in the if statement]
- use ProcessHandle.current() instead
- you should be consolidating registry accesses into one function
- 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
- 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)
- addendum to 3, DO NOT pipe the contents of colored logger to a file blindly if you have coloring turned on in ColoredLogger; you will be logging the ANSI control characters which will look realllllly ugly in any plain text editor
this is why you should be using your own FileHandler
- addendum to 12, the logger will create discernable gaps for a given log entry; AKA: do not put dashes in your code where a simple \n would work
- use the kotlin inline .isEmpty() functions; or you can filter this out in
convin your argument
- (more of a suggestion), instead of RuntimeMXBean, use the System property
- for rigidity, you should probably make CarpoolSupervisorMainKt an
objectwith its main function as a@JvmStaticfunction, which you then refer to by reflection; ex.CarpoolSupervisorMain::class.qualifiedName
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
upgraded the logging apparatus just for you
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..
it appears they replaced it 3 years ago
and apparently pico used to redirect to nano before they did
is there like any significant difference between the two?
i dont think theres any giant difference except that the license and key binds are different
ah
might make a FileHandler for this too
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
The algorithm
because its somehow making an extra 516 bytes when at worst performance when it should be a flat 9,000
Wow these r nice
I still think the headers are wayyyyy too long tho
Also what are yall working on?
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)
rn im working on making an efficient logging container format which is why i needed packed integers
i gotta make sure this algorithm is perfect though....
Ye I get the reasoning for it but I am of the opinion that the message logged should be most important and be easily visible
So having a long header makes it harder for me imo to see the actual message
aughh
wait its cause my math was off thats why
6+ 7+7+7 +7+7+7+ 7+7+7 = at worst, 10 bytes
U should let me contribute something so I can feel good abt myself đ
im unsure about how i would take that comment though
i usually work off the assumption the logging console has infinite width
Huh wdym
this is always disabled
and the console is infinitely scrollable given an infinite width
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...
No its fine its not a big deal or anything
i wonder when aera will wake up
hopefully he does not treat my 18 comments as ragebait
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
well you wont have to write any java if you do end up writing something
just kotlin
Hopefully
would you mind writing 15 lines of translations for a directory entry system when you're available
well essentially
you just take this class, but replace the second string with... whatever it'd mean in chinese
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
Oh hm ok
"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
Ultimate modification
don't throw a blue shell when in 1st place
ď¸ď¸
ď¸ď¸mario kart world is beautiful
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++
}
Yap level horrendous
how.
010321041932
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
- short term solution to your whines about logger level
- does not matter be type safe
- im only focusing on the aquisition of the supervisor, what you're doing with it is other matters
- if the user says to keep the log off, they say to keep the log off, so why not respect that
elaborated list order cause discord sucks
- if the user says to keep logging off we keep logging off, but by virtue of this being a CLI program there is some output that is expected to be given upon command invocation
if you'll notice, I stuck a bunch of numbers in the first point
please use the correct index. what is 6
your 6
my 12?
yeah my 12
OK
no thats what your status codes are for
??? my status codes???
but that's stupid
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
but then what about "rEsPeCtInG tHe UsEr'S wIsHeS"
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
anyways correct i should stop playing my plane game demo
and resume work on that efficient logging format
(your #5, my #10) yes the REASON I acquire it in two places is because the acquisition could fail if the supervisor is offline, or for other reasons. I acquire it in two places because one "acquisition" is checking if it CAN be acquired (and the callers that I have expect different results), and the other "acquisition" is actually grabbing it to be used
sooo
why not use a Result<T>
if acquisition fails
cause your silly lang doesnt have that
no u didnt
you might be dumb
see also .runCatching
StatusResult is my own invention
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
I just dont think you understand why I have the two different acquisitions
i see duplicate code
let me try refactoring it to be one acquisition
the two problems are here
upon removing that function
you can now see how they were used
i dont see any impedences
mmbmm
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
I bet your result type isn't even zero-cost
-36028797018963968 .. 36028797018963967
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
also fuck you
you are my biggest opp
the term isnt exactly applicable to the JVM
exactly
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...
bad lang bad runtime
problem exists between chair and computer
noooooope
should have just written this in rust fr
rustlets when they comprehend something beyond their little brains
"i should rewrite this in rust"
wrong
its bayachao media
(and the associated dogs)
on the contrary I think this is so far BELOW me that I'm struggling to dumb myself down enough
nope
anyways your lang sucks and you should feel bad
the JVM is like a 3d object moving in your little 2d world
it's not even smart enough to know that trySupervisor is an exception after I've checked .isFailure
beeecause those are two separate things
?? how
you cant be this dumb
in rust a Result is either Ok or Err
aerrra
use the closure functions aerrrrra
use the closuresssss
use the cllllloososuress
the rust code would look like
// snip
} else if trySupervisor.is_err() {
let err = trySupervisor.err().unwrap();
}
you can do that in kotlin too
and Err means that something failed
in fact
you're literally doing that rn
!! is your .unwrap()
but use the closure functions pls
use the closuresss
uuuuuuse the closureess
there is no dissonance between .isFailure and .exceptionOrNull()
uuuuuuuseee the fclooooosurueuusss
wait what
yes
they made a github repo
bad design
WHY AM I GETTING JAPANESE NEWS WHEN GOOGLING ABOUT THIS
chao
is this what your gay closure ass would do huh??? huh???
umm give me a second to look at
whatever this is
i dislike this
but it looks fine
good job!
closures are the future
wtf is wrong with containers đŞ đŞ
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
provision justification
i do not want to review this
REVIEW IT
womp WOMP
YEAH YOU WERE ALREADY ON YOUR BEDSHEETS
SMH...
my bottles*
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
also I made use of those variables I made
that you disliked
show use _
then you get alcoholic mtn dew
yum
ive made alcoholic coke before
yellowdog updater modified?
read the code I pasted above
nooooooooooooooooooooooooooooooooooo
nooooooooooooooo
go chug a 2L
then you'll be fine
pls update bs
bsl
what went wrong for you to get into the touhou rabbit hole
i didnt do anything
youtube suggested it to me
and its kinda a banger
OH MY GOD I ALMOST SHAT A MARBLE
OK
wtf
NOT HIDEO KOJIMA POSTING A HEADLINE THAT SAYS "The life and death of hideo kojima"
im SO tired
aha aha
WHAT DO YOU WNAT
so
LongCounted(-1000000000000000)
stream.writeExtensibleLongCounted(-1000000000)
stream.writeExtensibleLongCounted(-1000)
stream.writeExtensibleLongCounted(-1)
stream.writeExtensibleLongCounted(0)
stream.writeExtensibleLongCounted(1)
stream.writeExtensibleLongCounted(
simple little LAMBDA
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
HOWEVER
AFTER THE START BLOCK
WE EXIT
with the supervisor started
uh huh.....
YET
im super tired aere...
trySupervisor IS STILL FAILURE
im super tired..
THIS is why I had the stupid thing SPLIT
i dont see the problem ..
and was accessing the registry in two places
cause i cant parse your logic rn.. im so tired..
the supervisor is started after the code that handles-start so we should be able to send commands to it
okay...
but
trySupervisor
is still failure
meaninig
we wont handle commands
we will fail
why is trysupervisor a fialure_
because trySupervisor means that the supervisor is probably offline
if it's a failure
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
........0
okay then
just...
just
just
.onFailure in an else statement
and .onsuccess in a finally
(outside)
god im so tired my english comprehensio n is very bad rigth ow..
I did have it like that originally
is this the karen npc script
should have kept it ig
yes
tryGetSupervisor
aera conservatism.. bring back the old aera...
out with the old atp that's stupid and uses kotlin, in with the new atp that's smart and uses rust
idk the marines are invading it
oh ok good
they're planning to annex la into the us
my peaceful protest when I throw rocks and shoot fireworks
cyanide pill in teeth
actually this wont work
aren't those supposed to be defective or something
why_
so .onSuccess won't run
?
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() }
would kill myself. 0/10
?
your comment is illogical
.onSuccess wont' run
clarified
val trySupervisor = <try to get supervisor>
if (start flag) {
trySupervisor.ensureIsFailure()
// trySupervisor is most definitely a failure here
startSupervisor()
handleCommands()
} else trySupervisor.onSuccess { handleCommands() }.onFailure { complain() }
two handleCommands() đ¤˘
cause I'm using a STUPID LANGUAGE
that's DUMB
and INANE
TVă˘ăăĄăăŚăŁăşăăŁ!!!!!!!!!!!!!!!ăă§EDă˘ăăĄăźăˇă§ăłăć ĺ˝ăăă°ăăĄăăăăă¨ä¸çˇăŤćăŁăĄăăăžăăďź
Originalďź
May'n - ăăŻăŁăŚăŚăŁăşăăŁ
https://youtu.be/zR99bqxQyw8
ä˝čŠďźMay'năťĺ¤§çłćčŻ
ä˝ć˛ăťçˇ¨ć˛ďźĺ¤§çłćčŻăťăăăă
âź TVă˘ăăĄăăŚăŁăşăăŁ!!!!!!!!!!...
you need to listen to bayahcap .
you're basically my chatgpt
hello schizophrenic dog woman
no im the ROCK
nnnoo
that's a schizophrenic woman
maybe not a dog
but certainly schizo
oh nonono
I know a way to bring them back to life.
BUT
I will need the value of a nintendo switch 2.
im ngl
if we had bayachao and poshi working on snl instead of qs
it would've been out 6 years ago
ok checkmate liberal
javascript to luau interpreter
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() }

okay
hear me out
have you heard of something called a RECURSIVE function
fun a()
trysupervisor?!???!
if (supervisorISDEAD & start) {
startsuer..
return a()
}
.onsuc.onfial..
}
recursion ..
i found footage of aerasto irl btw @spare quartz
MULTIPLE REGISTRY ACCESSES!!!
RAAAH
I DONT CARE
ITS USING THE SAME FUNCTION
ITS THEREFORE ONE INSTANCE!
CACHE THE REGISTRY IF YOU MUST BUT ITS A STUB!
footage of atp irl
yeah that's apt-get
this is bayachao btw
two different calls!!!!!!
dnf and pacman đ đ
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
pls
idk i'm not a crab i wouldn't know where they live
with harry.
aera... pls..
dont say another contradictory statement..
i beg of you ..
pls..
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() }
}
or just disallow doing something like carpool -start -add_service
LMFAO
(basically dont handle commands after start)
hi schizo dog
I think I will do this
much easier
can someone check this audio for me rq
do they teach you as if recursion is SATAN in cs
the call stack is not your friend
throw new StackOverflowException
@lone sky you know
this would technically mean... its devilun..
aera has devilun in his code..
LOL
yeah it's called KOTLIN
no
the game you're playing
that's called that
or was it warriors??
idk i might be stupido
the finals??
Mmmb I should play more games..
you should use better programming langs
you should
Mmmb
playing NTOT and debikone all day is not gaming
that's just called cycling between two complex artbooks
patches âŚ
No I just donât play games
I code all day
They locked me in a chamber with YouTube and IntelliJ
Thatâs aera after his first bottle btw
fuckinggg
I did your stupid recursive refactor
this is why I never listen toy ou
I DID
Okay
the process starts
Then why isnât it binding
IDFK!!!!
Fix itttt
IM TRYING!!!
you said that the recursion thing
would be the "same instance"
maybe that's why
Syesvhurt ..
Why..
No,
yes
â
asleep again
go back to sleep
Thatâs forever
yes yes atp good idea
aera
sleep forever.
sybau
Noooo
?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
we found atp's pills
also this is kinda interesting
also also LLVM JIT HAHHAHAHAHA
well damn guess kotlin is in the landfill already then
no.
like @JvmStatic pure jvm copium right there
hammers to your skull!!!
"oooh you have to have a static function and we took away your silly keyword for it"
because you donât need a static in Kotlin
jvm copium
rust:
struct MyBetterClass {
fn static_method() { /* ... */ }
fn non_static_method(&self) { /* ... */ }
}
âŁď¸
ur the real biohazard
chaohazard
biochaozard
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
- yes it is
- memory safety copium
have u even used either revolt or rust
answer: no
that's what I thought
first one yes
i used revolt for like 3 days
quickly left cause it was unbearable (front end wise)
probably more polished than the last time you used it
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
the other two thirds were lost in transi-
DO NOT UTTER THE WORDS LIQUID GLASS HERE
I
AM NOT
A FAN OF IT.
look at the meme idiot
(on desktop)
and yes that's true
chaoizard
thats correct
don't hear aerasto
or well I WOULD say that if it didnt mean giving bayachao money
giving bayacaho money is always a net evil
please give me more tamamo-no-mar art.
soo
you wouldn't mind if i commissioned čżˇçŹ instead
??
string.comeback("Processing comeback, please try again later.")
mmmm close enough to bayachao, still net evil
anyone within 2 degrees of connection to bayachao
so bayachao, her friends, and the friends of her friends
okay what about poshi then
who is that
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)]...]...
i was planning on making it multimodal
no
not at all
Entertainer, programmer, punctuation, kitsune. I came here to shitpost and shitpost I will.
(PFP by @_emotiK0N & banner by @lowerkse)
found your account on twitter
lmao
you wish

