#💽Programming Chat v2

1 messages · Page 130 of 1

spare quartz
#

can't even get a bulk discount on it cause theres 2 left 😭

rustic vine
#

wait

#

I can spend 30 bucks to get 1 stick

#

thats faster than your 2 sticks

#

uh oh

spare quartz
#

true...

rustic vine
#

lemme see if I have any use for the

#

single stick I'd have left

rustic vine
#

if I were to buy 2 sticks

#

so im probably just gonna either stick with my single stick for now or grab an identical one

spare quartz
#

is all good 👍

rustic vine
#

lmk if you find the ssd tho

#

needs to be m.2 2280 however

#

theres no mounting hole for any other size

flint belfry
#

(why is he so fucking bright jesus christ)

spare quartz
#

High Dynamic Range

flint belfry
#

your probably high too

spare quartz
#

DISCORD

timid quartz
#

still is your location...

#

atp will know in what city you live...

#

and probably what side of town...

spare quartz
timid quartz
#

wrong

timid quartz
#

also I completed the OA @rustic vine I doubt I'll get anything but we'll see lol

#

it's not too late, you can get more experience in a real modern language, just becaus you've sunk all this time into the jvm doesn't mean that you can't pivot

spare quartz
#

the one day you're actually serious i won't be able to pick it up

#

cause you're soooo ragebaittyyyy

timid quartz
#

I mean

#

I am serious that I think the JVM is outdated compared to like other modern languages

spare quartz
#

but thats simply an unfounded belief

timid quartz
#

and I do think that you can still pivot off the JVM into technologies that aren't mostly relegated to enterprise maintenance

spare quartz
#

its like saying USB is outdated in favor of PCIe

timid quartz
#

mmmmmm not really

spare quartz
#

yes really

timid quartz
#

USB and PCIe are two different tools for two different jobs

spare quartz
#

no

#

they're both computer interfacing technologies

timid quartz
#

Considering that modern Turing-complete languages can all do mostly the same things, there isn't really one "right" programming language for the job

spare quartz
#

the JVM (and by extension Java) are a specification like Ada and can be whatever for whenever

timid quartz
#

SATA is outdated in favor of PCIe though

#

(via NVME)

spare quartz
#

yeah but thats long-term storage

#

interfacing is above that

timid quartz
#

it's a type of interface

#

smh

spare quartz
#

it just needs to have the right implementation.... the same thing can be said for any other language

timid quartz
spare quartz
#

the JVM just so happens to have one of the BEST sets of toolchaining

#

which is why its so good

timid quartz
#

Where the JVM differs from other things is that the JVM holds onto this idea that we need a layer between the computer and the code to manage things

spare quartz
#

thats something a regular other language cannot replicate

timid quartz
#

Sure it made things easier back in the day, but we have good cross-compilers, other languages have good toolchains and other libraries to provide things not in the toolchain

spare quartz
#

we have specifications for java in microprocessors and ICs

timid quartz
#

And other languages don't suffer the performance hit from the VM layer between your code and the hardware

spare quartz
#

and modern java integrates nearly seamlessly with JIT (and the newer AOT)

timid quartz
spare quartz
#

and individual JVMs can be optimized for IO, CPU, or memory

spare quartz
#

it's directly counter to your argument

timid quartz
#

the point being that nobody uses them

#

so like

#

it's not a strong argument

spare quartz
#

when that's not true at all

timid quartz
spare quartz
#

and what exactly does it matter?

timid quartz
#

if I have a 2mm layer of plastic between two sheets of metal, there's still 2mm of plastic there

timid quartz
flint belfry
spare quartz
timid quartz
#

because you're not running on bare metal

spare quartz
#

plastic between other materials is used everywhere

#

like glass to prevent it from shattering and killing you

timid quartz
#

and the JVM is another layer that introduces its own quirks that you have to work around

spare quartz
#

okay, let me ask you this then

#

how does rust differ

timid quartz
#

It's just not practical anymore

spare quartz
#

it doesn't actually run on bare metal either

timid quartz
#

Yes it does?

spare quartz
#

"Bare metal" is not a real term nowadays

timid quartz
#

you compile it directly to machine code

spare quartz
#

modern CPUs don't actually run machine code

#

they run micro-ops

#

and the fact of the matter of the OS still remains too

timid quartz
#

With a JVM language, you have the language itself, the JVM it runs on, and the processor; a compiled language only has the language and the processor

#

ignoring the OS

spare quartz
#

PLUS the JVM, again, uses intrinsics, making programs, when intrinsified and optimized, equal to the nearest C/rust program

timid quartz
spare quartz
#

but that just isn't that big of a problem like you're making it out to be

#

the JVM will always be practical

#

HotSpot itself might not be, but JVM is an ACM which can be optimized for any environment

timid quartz
#

But you still have to ask yourself: "why am I introducing ANOTHER layer of complexity, dependency, and cruft, when I could choose a language and platform that don't have that layer"

spare quartz
#

if you're making this whole thing about how rust is closer to the hardware and that makes it better

#

why not use an ASIC then?

#

a GP processor is nearly always worse than an ASIC for a job

#

because you have all the layers of firmware to contend with

timid quartz
#

Because my computer doesn't run a singlular specialized task or small set of specialized tasks

spare quartz
#

so you're fine with dealing with all of that

#

but something as optimized as the JVM you say "no" to

#

is such a huge double standard

timid quartz
#

Both the JVM+its languages and Rust are made to be general purpose

#

bringing an ASIC into the conversation doesn't make any sense

spare quartz
#

the JVM is again, for anything

#

the JVM can be optimized for anything

timid quartz
spare quartz
#

rust is a layer of abstraction too, then

#

just write u-ops

timid quartz
#

The JVM is an additional layer

spare quartz
#

you're not making any sense

#

plus you're completely ignoring WHY the JVM is a separate layer

#

its designed for system interoperability no matter the environment

#

"write once run everywhere" is a statement on portability (in tandem with the Java Class Libraries)

timid quartz
spare quartz
#

OR

#

Before execution...

  • Kotlin
  • CLASS

During execution...

  • JIT (once)
  • x86
  • uops
timid quartz
spare quartz
#

that's not true

#

what if i wanted to create a socket with a feature only on windows?

#

i can do that on the JVM, with one go

#

no need to recompile

timid quartz
#

What if none of the JVM implementations support that feature?

spare quartz
#

then i can implement it myself with FFM

#

and still no need to recompile

timid quartz
#

Then I can also implement it myself in Rust with FFI

spare quartz
#

nope

timid quartz
#

Yep

spare quartz
#

you need to recompile and introduce messy cfg in your code

#

and it's not even safe

#

your code can't know when something is different at the time of execution

timid quartz
#

The removal of a layer that just slows your end product down

spare quartz
#

but when the layer is self-disappearing

#

does it matter

#

you compare it to plastic between materials when its really just more like a solvent

timid quartz
#

And again a layer of quirks and complexity that exists before runtime

spare quartz
#

... that makes your code independent of the true OS

#

yes

#

you trade off the OS/compiler specific quirks

#

for the JVM specific ones

#

net 0

timid quartz
#

net gain

#

on the side of OS/compiler quirks

timid quartz
#

There is a reason why JVM languages (particularly Java) are really only seen nowadays in legacy enterprise applications that companies haven't bothered to rewrite yet

#

The exception is Kotlin because all Android apps are written in either Java or Kotlin and Google pushed hard to make Kotlin the default

timid quartz
#

So the existence of new projects there is only out of necessity and having no other option

spare quartz
#

and still shows data in favor of my position

#

...

flint belfry
#

@spare quartz EWWWWW

#

EWWW WHAT DID YOU DO

flint belfry
#

MY TIMELINE IS RUINED

#

I HATE YOU

timid quartz
spare quartz
#

thats not what the data says

#

and to reinforce my point further

#

that graph shows a trend of JS/TS

#

which are VM languages

timid quartz
#

also the fact that JDK 8 is still the most popular really points to the fact that it's only used for enterprise apps stuck on JDK 8

spare quartz
#

JDK 8 is the lowest still-supported build by Oracle

#

making its compatibility for current and future projects amazing

#

and 64% is not very popular

timid quartz
#

64% is nearly super-majority

spare quartz
#

it isn't

#

this is inside all of your smartcards

timid quartz
#

basically

#

who would ever use the JVM anymore

#

nobody unless you're stuck in enterprise maintaining old software

spare quartz
#

yeah you can tell when his point died

timid quartz
#

❌ my point is alive

#

use modern languages

spare quartz
#

abstract computing machines are the future

timid quartz
#

don't be stuck with an old decrepit piece of tech that's been around since before you were born

spare quartz
#

sorry this is the way you had to find out aera

timid quartz
#

sorry you had to find out this way atp

spare quartz
#

denki

timid quartz
#

all your programming knowledge is useless

spare quartz
#

im gonna be honest

timid quartz
#

soon Java and the JVM will be in the realm of COBOL

spare quartz
#

im actually not that great of a kotlin programmer personally 😭

timid quartz
#

gg

spare quartz
#

im just pretty good at reading apis

timid quartz
#

I'm a pretty bad programmer too

#

ngl I do think Rust helped make me improve

spare quartz
#

i think reading the JVMS made me super improve...

timid quartz
#

Because it made me think about things I wouldn't have thought about otherwise

spare quartz
#

you know what IS outdated

timid quartz
#

Because of the way that you have to think when programming Rust

spare quartz
#

programming books that teach you how to code

timid quartz
spare quartz
spare quartz
#

!!!

spare quartz
#

ewwww

#

The Java® programming language is a general-purpose, concurrent, object-oriented language. Its syntax is similar to C and C++, but it omits many of the features that make C and C++ complex, confusing, and unsafe.

#

complex confusing and unsafe (you)

timid quartz
spare quartz
#

WAIT

#

25 is LTS

#

you're right

timid quartz
#

idiot

timid quartz
spare quartz
#

okay.. i give up..

#

rust is the future..

#

you beat me..

timid quartz
#

The Rust programming language helps you write faster, more reliable software. High-level ergonomics and low-level control are often at odds in programming language design; Rust challenges that conflict. Through balancing powerful technical capacity and a great developer experience, Rust gives you the option to control low-level details (such as memory usage) without all the hassle traditionally associated with such control.

timid quartz
rustic vine
spare quartz
spare quartz
rustic vine
#

Yes

spare quartz
#

and you're pretty good at C++..

#

so i don't think you really have a giant reason to switch

rustic vine
#

I dont get what problem rust solves for me basically

#

So I have no motivation to learn it

timid quartz
# rustic vine Here's something I dont get.. why *should* I use rust? What can I do in it that ...

Although modern C++ is better at safety than it was even 10 years ago, Rust still solves a decent number of problems like

  • Memory management (still farily manual in C++, nearly completely automatic w/ no GC in Rust)
  • Dependency and build system hell (Rust has one compiler and one package manager)
  • Cross-compilation (easier than C++ imo where you have to go search for a toolchain that targets your intended platform)
  • Still imo more memory safe since there are just less footguns and basically no manual memory management
    • The borrow checker is also built into Rust whereas things like Valgrind are not built into C++, which enables the automatic memory management and further safety
  • Rust compiler errors are so descriptive chefkiss
rustic vine
#

I dunno if I'd call memory management in cpp "fairly manual"

#

Its almost entirely or entirely automagic

#

Just follow RAII

timid quartz
#

RAII is great and Rust also follows RAII

spare quartz
#

sodoesjvm

timid quartz
#

With C++ you still have to do the new and delete thing sometimes

spare quartz
#

i cant name a single language which isnt raii actually

timid quartz
#

idk how often actually cause I don't use C++ but

rustic vine
#

You dont

#

If ur using those u did something wrong

#

I cant remember the last time I used new

timid quartz
#

Oh gg

#

OH ALSO

#

C++ templates

#

fucking SUCK

rustic vine
#

Huh

timid quartz
#

Rust generics work exactly like you'd expect them to

rustic vine
#

Dependency stuff in rust seems better than copy paste FetchContent submodules whatever we got going on rn

timid quartz
#

Lol yeah

rustic vine
#

Tho cpp modules do exist

#

Just not really a thing yet

#

Only msvc actually has full support lolz

spare quartz
#

what about just not using dependencies

timid quartz
#

the borrow checker also makes pass by value super apparent

#

in most cases

rustic vine
#

I get that rust is more memory safe but does it not add significant development or bring-up time? It feels like it would

wheat zinc
rustic vine
timid quartz
wheat zinc
#

one oob at the fault of c/c++ design language

spare quartz
wheat zinc
#

thats all it takes

spare quartz
#

you can interface with the JVM through C++ though

timid quartz
#

Rust DOES have a learning curve but so does everything else

rustic vine
timid quartz
#
error[E0382]: borrow of moved value: `my_vec`
 --> src/main.rs:5:18
  |
3 |   let my_vec = vec![0, 1, 2];
  |       ------ move occurs because `my_vec` has type `Vec<u32>`, which does not implement the `Copy` trait
4 |   do_something_with_the_vec(my_vec);
  |                             ------ value moved here
5 |   println!("{}", my_vec.len());
  |                  ^^^^^^ value borrowed here after move
  |
note: consider changing this parameter type in function `do_something_with_the_vec` to borrow instead if owning the value isn't necessary
 --> src/main.rs:8:36
  |
8 | fn do_something_with_the_vec(_vec: Vec<u32>) { }
  |    -------------------------       ^^^^^^^^ this parameter takes ownership of the value
  |    |
  |    in this function
help: consider cloning the value if the performance cost is acceptable
  |
4 |   do_something_with_the_vec(my_vec.clone());
  |                                   ++++++++
wheat zinc
wheat zinc
#

for any important situation companies are now shifting towards those types of solutions

timid quartz
wheat zinc
#

its why governments are only promoting languages like rust now

rustic vine
#

They're vastly different languages at this point

wheat zinc
#

theyre different but to be for real that same issue wouldve happened

spare quartz
timid quartz
wheat zinc
#

plus a lot of programmers still hate c++

timid quartz
#

really the only thing I hate about Ada is the syntax

wheat zinc
#

who do c programming

spare quartz
#

i like ada syntax, i just hate the tooling rn

#

i wanna get back into it when i have a better plugin

rustic vine
#

Cpp does a lot better than C at making safe memory management the easy + intuitive path

wheat zinc
#

it isnt fullproof at all though

timid quartz
#

Yea and the tooling sucks

timid quartz
wheat zinc
#

die

#

obviously not everything is gonna be mission critical but rust wouldve just stopped that issue in the first place

rustic vine
wheat zinc
#

yeah but you could be doing a long programming haul or even just not be at your best game and suddenly you made one small mistake that causes a giant issue

rustic vine
#

I just dont see why I would invest in rust when I can write idiomatic cpp and be safe

#

But also linalg in rust is awful

#

So I havent rlly looked into it much

wheat zinc
#

tooling which is just trying to fix a design flaw in the language that could be avoided entirely

#

then youre just relying on it instead of knowing your code is good

#

not saying you shouldnt fuzz your stuff but still not having to do it is gonna help you

timid quartz
#

Even the most experienced C and C++ devs who know all the best practices still write memory bugs into their code because they forgot a best practice or just didn’t write code according to them

rustic vine
#

So what you're saying is that rust stifles creative memory vulnerabilities

timid quartz
#

Rust knows what code can be considered safe and exchanges some of your power as a programmer for safety

rustic vine
#

Does all rust code look the same then

timid quartz
#

Not necessarily

#

Unlike Python there’s no “Rustonic” way to write code

rustic vine
timid quartz
#

But another cool thing is that, whether you use iterators or for loops or whatever, there’s no abstraction in the language you could use that’s slower than writing it yourself

#

For example in JS using .forEach may be slower than writing a for loop - not the same in Rust

wheat zinc
#

rust just has those checks built into cargo automatically

timid quartz
#

rustc*

wheat zinc
#

ok but who runs rustc manually

#

and not all those tests may work on every memory issue with c++/c

#

or at the very least not all companies seem to care to use them or fuzz properly

rustic vine
timid quartz
wheat zinc
#

youre right c++ is WORSE

rustic vine
#

Bruh

wheat zinc
#

c++ isnt actually awful thats being mean but like

#

i still think its design flaws can never fully be fixed

rustic vine
#

Its actually pretty good its just been around for a long time

wheat zinc
#

youre always gonna have the risk of writing dangerous code when theres already a language that has fixed that problem

rustic vine
#

Modern idiomatic cpp is concise n easy to read

timid quartz
#

Give Rust a try, you might like it

#

¯_(ツ)_/¯

rustic vine
#

And can be easily checked for safety

#

Cuz you straight up just dont do stupid stuff

#

Like delete

wheat zinc
#

still a bandaid fix if the language itself can never fix those problems

timid quartz
#

Ok but what if you don’t write idiomatic code

rustic vine
wheat zinc
#

theres a reason governments are pushing stuff like rust over c++ and always will

wheat zinc
#

cobol is more memory safe

rustic vine
#

They are still on C and Fortran

timid quartz
#

You will almost always write safe Rust because the compiler makes you (I say almost because cve-rs exists but it does some fuckery)

wheat zinc
#

fortran is good

rustic vine
#

No it aint!

wheat zinc
#

dont hate on fortran

timid quartz
#

Fortran ❤️

rustic vine
#

Fortran is impossible to cross compile

timid quartz
#

Idk Harry you won’t know if you like Rust or not and why until you try

rustic vine
#

I want to

#

But I cant use it for anything

wheat zinc
#

every language has its own usecase they say

timid quartz
#

Linalg does probably suck tho, but I would use Matlab for that lmfao

rustic vine
#

So there's 0 motivation to

rustic vine
#

STOP

#

Matlab is worse 😭

timid quartz
rustic vine
#

For what???

timid quartz
#

Idk find something /shrug

#

Doesn’t have to have a use

#

Aside from trying Rust

#

But I will say you do need to “learn” Rust a bit first

rustic vine
#

Yea my point is that its hard to learn it because its a big upfront investment especially without a real project

rustic vine
#

They slid the tag like 4 times

spare quartz
rustic vine
timid quartz
rustic vine
#

You care a lot more than I do

spare quartz
#

oh well

rustic vine
spare quartz
#

unironically though

#

we're starting to see projects be finished

rustic vine
#

😨

spare quartz
rustic vine
spare quartz
#

microsoft ran rust for one day...

timid quartz
spare quartz
#

and we will be unstoppable

#

god drinks java after all.

timid quartz
#

They’re going to put the JVM in hell

spare quartz
#

nope

#

your crab will be there

timid quartz
#

My crab will be in the highest ring of Heaven

#

The JVM will be in the boiler room of Hell

spare quartz
#

How do I kill this thing

timid quartz
#

WHAT

#

why would you want to kill it :(

spare quartz
#

Its evil

timid quartz
#

No it’s not

#

Well the fastest way to kill it will take probably 10 years, you have to

  • feed it twice a day
  • pet it
  • play with it
    among other things
spare quartz
timid quartz
#

Good

spare quartz
#

ew.

timid quartz
#

Is it going to come to Ohio with you

spare quartz
#

yes.....

#

why would i just leave her here. ..

timid quartz
#

Good

timid quartz
#

Your mom might idk

#

Idk what your mom is like

#

Guided is officially dying

spare quartz
proud creek
#

Kill

rustic vine
spare quartz
#

xiào

rustic vine
#

Can tell its atl because the bike lane is the same as the car lane

#

Yes bikes please drive here

timid quartz
spare quartz
#

(against rule 502)

timid quartz
rustic vine
#

Yup

#

Lgtm

#

Build it

#

@timid quartz yo have u applied to salesforce b4

spare quartz
#

1 day.. before.. the great... GSAinging...

rustic vine
#

Ok

#

Their office is so nice

#

If u see openings keep that in mind

spare quartz
#

pls dont send photos of my house

rustic vine
#

Lol

rustic vine
#

They got their own tower in Buckhead

#

They have their own chefs too??

#

Like a whole cafe setup 😭

#

Oh and a steinway grand for 0 reason

proud creek
spare quartz
#

dw we hate js too

rustic vine
#

Yes we hate js too

spare quartz
rustic vine
#

Yes

spare quartz
#

okay

#

if we cant all agree that kotlin is the best language

#

can we all agree that calibri is the best font

rustic vine
#

Err

#

Jetbrains mono

spare quartz
#

okay but like

#

for general use

rustic vine
#

Jetbrains mono

spare quartz
#

nooo

#

i dont think sooo

rustic vine
#

Cult gathering?

spare quartz
#

we writing checks with this one

rustic vine
#

Many

spare quartz
#

yeah its cause im not allowed to use println

rustic vine
#

87ujf漂亮吗我是

spare quartz
timid quartz
#

@spare quartz EWWW look at this horrible code generated by Kotlin/JS

timid quartz
# spare quartz use kotlin/wasm
enum class Language { Rust, Kotlin, JS, TS, Go, C, CPP }

fun main() {
    val lang = Language.Rust
    when (lang) {
        Language.Rust -> println("good lang!")
        Language.Go, Language.C, Language.CPP -> println("meh, ok, probably better lang out there")
        else -> println("BAD LANG")
    }
}
timid quartz
#

also like

#

how often does anyone use those an os-specific feature themselves

#

like os-specific sockets

#

most of the time your lang's stdlib already has that covered

#

I don't think I've ever had to use a #[cfg] in rust to gate an os-specific feature

spare quartz
#

java doesn't explicitly state something is specific to an OS, just that it can be "implementation defined"

#

like uh

#

DSYNC/SYNC file options

spare quartz
#

these two ensure that when you want to write to a file, its done in one atomic opreation

#

but that might not always be possible

spare quartz
#

example

timid quartz
#

I have never had to deal with that myself

#

Just like the JVM implementation handles the details of that for you, so does the Rust stdlib

#

and so does basically any other lang's stdlib

spare quartz
#

yeah but the JVM one doesn't require recompilation

#

therefore

#

better

timid quartz
#

recompilation is like

#

such a tiny issue though

spare quartz
#

and the JVM can actually do more than rusts...

timid quartz
#

our computers aren't from the 80s

spare quartz
#

a single program can deal with POSIX and Win32 ACLs

timid quartz
#

we have more than 2 cores and 2gb of ram

spare quartz
#

never use that argument

timid quartz
spare quartz
#

i know this is something that Go struggles with

timid quartz
#

rust can handle both file attributes

spare quartz
#

"both" ?

timid quartz
#

you just get metadata

spare quartz
#

no

#

that isnt win32 acls

#

java cl just calls that "metadata" BasicFileAttributes

#

because its.. basic

timid quartz
#

in which case yeah there is some limitation, you need PermissionsExt for more Unix stuff

spare quartz
#

that would be a very weird version of POSIX permissions

#

not acls

timid quartz
#

"The PermissionsExt trait gives direct access to the permission bits but also does not read ACLs."

#

hm

spare quartz
timid quartz
spare quartz
#

but then thats not in your stdlib

#

☹️

timid quartz
#

welll

#

there's something to be said about not fossilizing every interface possible in a massive bloated stdlib

spare quartz
#

yeah but the attributes i just said aren't fossilized in java

#

in fact the functions they're used on is specifically for the future

timid quartz
#

but what happens when they change

#

gotta wait for java 26...

spare quartz
#

they wouldn't

timid quartz
#

nope gotta wait for j26...

spare quartz
#

AclFileAttributeView will never change because an ACL is just that

#

an ACL

spare quartz
#

under an EA build

spare quartz
#

(provides attributes like "hidden" for windows)

#

警視庁警備部(けいしちょうけいびぶ、英語: Security Bureau of the Metropolitan Police Department)は、警視庁の内部組織の一つ。警備警察のうち、集団警備力および災害対策を所掌する。

timid quartz
#

bloated stdlib

spare quartz
#

im so borrrrrreeeeeeddddddddddd aera

#

give me something to codeeeeeeeeeee

timid quartz
#

use Rust then you won't be bored 👍

spare quartz
#

GIVE ME SOMETHNING TO CODEEEEEEEEE

timid quartz
#

uh

#

idk

timid quartz
#

tcp chat server in rust

#

dewit

spare quartz
#

im not writing rust..

spare quartz
timid quartz
#

laaaaaaaame

spare quartz
#

ill make it encrpyoted too...

timid quartz
#

dewit in rust....dewit in rust....

timid quartz
#

TYPESCRIPT??

spare quartz
#

TIMESTAMP

timid quartz
#

TYPESCRIPT

spare quartz
#

good

timid quartz
# spare quartz

you see....Rust and C and C++ dont have these "restricted methods"....

spare quartz
#

unsafe:

timid quartz
#

that's not "restricted"

spare quartz
#

neither are the functions in the jvm

timid quartz
#

uhm "Restricted methods will be blocked in a future release unless native access is enabled"

spare quartz
#

"restricted" in the jvm just means in the future, if X loaded code isn't formally authorized by a module to execute something, it will issue an error

timid quartz
#

sounds pretty restricted to me

spare quartz
#

because we actually TREAT SECURITY WELL

#

!!!!

timid quartz
#

so does Rust...

spare quartz
#

mf no you dont

timid quartz
#

proof or lie

spare quartz
#

you literally just tout memory safety 😭

spare quartz
#

memory corruption cves??

#

how is that even a thing

timid quartz
#

rust can't dynamically load code so like...don't have to worry about that...

timid quartz
#

total 8

#

EIGHT

spare quartz
#

AND IT HAPPENED IN YOUR STDLIB

#

timid quartz
#

1.52.0

#

old version

spare quartz
#

yeah cause you make a new version every day

timid quartz
spare quartz
#

notice how its not a memory issue

#

notice how its for JSSE

timid quartz
#

rust >>

#

of course java doesnt have memory vulns it has a gc

spare quartz
#

you have a "borrow checker "

#

vote of no confidence

timid quartz
#

smh

spare quartz
#

then why do you have

#

3 for memory corruption

timid quartz
#

Because :3

#

That’s why

spare quartz
#

WEIRDO

timid quartz
#

The JVM is like a hoarder that refuses to get rid of anything until the police come in and burn the house down and then the contractors take 2 years to rebuild the house

#

And then the JVM just does it again

spare quartz
timid quartz
#

The police are coming to burn your house down soon.

#

The garbage collector police.

spare quartz
timid quartz
spare quartz
#

you are LITERALLY addicted to that video

timid quartz
#

nope

#

proof?

spare quartz
#

oh my god

#

with nitro i can do this

timid quartz
#

Ew

proud creek
#

the creature

timid quartz
#

“Together Java”? More like “Together Obsolete”

timid quartz
#

So many mentions of Rust

spare quartz
#

ewww

timid quartz
#

Even the Java community knows that Rust is better

timid quartz
spare quartz
#

all of your messages are lies (except for the most recent one)

timid quartz
spare quartz
#

sorry bud

#

foiled

timid quartz
spare quartz
timid quartz
#

You foiled yourself

spare quartz
spare quartz
timid quartz
#

It was bent by the weight of the JVM’s bloat

spare quartz
#

@rustic vine good news

#

i found a use for those SODIMM sticks

#

our current optiplex suffers from having only 8 gb of memory with 6.5 gb of it allocated to minecraft

#

however...

rustic vine
#

wut the flip

spare quartz
#

reduce REUSE recycle

#

or whatever

rustic vine
#

it may takeoff on you

#

as it is the

#

JET-5608

spare quartz
#

dont worry it has STDs on it

#

actually that makes it worse

rustic vine
#

LOL

timid quartz
#

@spare quartz should I use Java 25 or Kotlin

timid quartz
#

regular Java but with JDK 25 or Kotlin

spare quartz
#

unless you want to try java for whatever reason

timid quartz
spare quartz
timid quartz
#

um cause..

#

i like asking..

spare quartz
spare quartz
#

i should use this to make a super good client..

timid quartz
#

also yeah

#

you and your ffm...what happens if you have a user who ISN'T on windows

spare quartz
#

oh, thats already handled

timid quartz
#

so much for your "cross platform superiority"

spare quartz
#

FFM wise: it just throws a standard exception when loading a symbol or library, and the using code handles it
Using code: uses a "feature system" with three levels

#

System Native (a feature exists for the local system and is run by the local system)
JVM Native (a feature exists by the JVM)
JVM Emulated (the feature does not exist on either the system or JCL, and is emulated in BSL)

#

kinda like hardware/software rendering, hardware rendering is preferable but software rendering will always exist and be a fallback

timid quartz
#

mhm but like

#

if you interface with this crypto api in windows

#

but have a macos user like me

#

your code just throws an exception and dies right

spare quartz
#

no, then i find out what crypto api mac uses

#

then the code will skip over running the windows specific code since it fails the support check

#

and it uses a macos provider

#

if THAT fails, then use JSSE or something

timid quartz
#

so you're basically using a fancy #[cfg]

#

mhm. "cross platform superiority" for you right there..

spare quartz
#

kinda yes kinda not

timid quartz
spare quartz
#

its if cfg could know exactly what the system is during runtime and smartly decide what to pivot to and do for the local system

#

since FFM could still fail if a libary EXISTS for a system, but a certain symbol does not

spare quartz
#

if its on windows then CreateWindowExW etc etc, on linux [wayland client so], connect to the server etc etc

#

unfortunately i dont use linux so its not expanded beyond connecting

#

need more tests

#

windows

#

(this has the additional failure point of not working if the local windows installation does not have a way to display windows, which is what i want)

#

(e.g. windows core )

timid quartz
spare quartz
#

CreateFile3 does not exist below Windows 11 for example

#

libloading is roughly comparable to Linker in FFM

timid quartz
#

libloading -> handles that probably
extern "C" -> #[cfg] and set up your extern "C" for your OS accordingly'

spare quartz
#

are you using extern "C" right

timid quartz
#

it's not quite the same as the JVM because the JVM provides a layer that basically does all of this for you

spare quartz
#

that's for exporting symbols, not importing, unless thats also what its used for in rust

timid quartz
#

yes it's also used for importing

spare quartz
#

java doesn't really care about the calling convention of a function, it just knows thru Linker

timid quartz
#

considering Library::get returns a Result

spare quartz
#

resolving a native library is considered "unsafe" to java

#

since doing so could run code like DLL Main in windows and it doesn't know what could happen

timid quartz
#

the JVM basically does all the #[cfg] stuff for you

spare quartz
#

yes but its smarter than you

#

🫵

timid quartz
#

nope

#

dumber than me

#

jvm users try not to outsource their problems to their runtime

spare quartz
#

jvm users doing exactly what the JCL is designed to do

#

rust users try not to outsource their problems to their compiler

timid quartz
#

idk what a JCL is so it doesnt exist and is meaningless

timid quartz
spare quartz
#

C users try not to outsource their problems to their preprocessor

timid quartz
#

uh problems like what

spare quartz
#

your mom

timid quartz
#

kys

spare quartz
pastel tinsel
#

ladies ladies calm down we all know that brain fuck is better

timid quartz
#

silence TS glazer

pastel tinsel
spare quartz
#

silence TS glazer

pastel tinsel
#

mf

#

explode dyno

pastel tinsel
#

and then I will glaze go

timid quartz
#

I have a life rn but yeah I will

spare quartz
#

pls make a kotlin api

#

and use the ffm

#

i beg..

timid quartz
#
  1. why would I make a kotlin api
  2. why would I use ffm for a kotlin api
timid quartz
#

not happening

pastel tinsel
#

you take a shot every error

pastel tinsel
#

WHAT

timid quartz
spare quartz
#

literally not

timid quartz
#

one shot for every runtime error you get

spare quartz
#

LITERALLY SO EASY TO NOT

timid quartz
#

or, excuse me, runtime "exception"

spare quartz
#

inferior programming languages when the abstract perfection machine comes in

timid quartz
#

drink once vomit everywhere

spare quartz
#

drink once beat up rust nerds everywhere

timid quartz
#

get beat up by rust chads*

pastel tinsel
#

drink once switch to something better than kotlin

spare quartz
#

i dont wanna hear it

pastel tinsel
#

I think that is true for all languages 😭

spare quartz
#

wrong

#

the strongest for all jvm languages is the chad office employee

pastel tinsel
timid quartz
#

even weaker than the weakest rust programmer

spare quartz
pastel tinsel
#

what does that mean 😭

#

random video

spare quartz
#

peak video

#

it scares aera because its so peak

pastel tinsel
#

resist it aera

timid quartz
spare quartz
timid quartz
#

あゆただ爆破

spare quartz
#

いや

#

you're literally turning into bayachao with how much you wanna blow stuff up

pastel tinsel
spare quartz
#

bayachao has been doing it since before toby was born.

timid quartz
# pastel tinsel

Why did you post the exact video that’s been in my head for like 2 days

spare quartz
#

wait wtf toby is older than bayachao 💀

#

NVM

timid quartz
spare quartz
#

dec 31, 1999 beats his birthday anyway

pastel tinsel
#

I am in your head aera

timid quartz
pastel tinsel
spare quartz
timid quartz
spare quartz
#

AERA

#

PRGORAM

#

!!!!!!!!!!!

timid quartz
#

NO

#

NEVER

spare quartz
#

NOOOOOOOOWWWWW

timid quartz
spare quartz
timid quartz
#

BURN IT

spare quartz
#

nno

timid quartz
timid quartz
pastel tinsel
spare quartz
timid quartz
pastel tinsel
#

TRUE

timid quartz
#

It’s so hard

pastel tinsel
#

motivation

spare quartz
timid quartz
spare quartz
timid quartz
#

sleeb

spare quartz
#

send

#

kemono art

timid quartz
spare quartz
#

no you wouldn't.

#

oh..

#

noreas commission price is JPY 12000...

pastel tinsel
#

80 usd

#

wow

spare quartz
#

thats cheap..

pastel tinsel
#

nah

spare quartz
#

yes iti s..

#

my other artist has a commission price of $300...

pastel tinsel
#

who the fuck are you commissioning

spare quartz
#

umm

#

@timid quartz 🥺

pastel tinsel
#

aera blow up this mfs house

spare quartz
#

AYUTADAS IS 19000 JPY

#

......

timid quartz
#

Poor 🫵

spare quartz
#

noo

pastel tinsel
#

stuff I get is usually $30-$60

spare quartz
#

i can actually afford both

#

i dont wanna spend it on either rn.. just watching..

pastel tinsel
spare quartz
#

money excellently spent..

timid quartz
#

Worst use of money conceivable

spare quartz
#

GOODNIGHT RUSTLOSER

timid quartz
spare quartz
#

ughh

timid quartz
#

vs bloatvm

spare quartz
#

why aren't you asleep

#

im reading javadoc

#

Various methods in the Java SE API allow Java code to interoperate with resources outside the Java runtime in such a way that the runtime cannot prove correct or safe use of the resources. These methods can, when used incorrectly, violate the integrity of the Java Virtual Machine, but are conditionally made available to users, as they provide essential functionality. They are known as restricted methods.

timid quartz
#

sounds like a fancy way to do unsafe

spare quartz
#

Given the potential danger of restricted methods, the Java runtime issues a warning on the standard error stream every time a restricted method is invoked. Such warnings can be disabled by granting access to restricted methods to selected modules. This can be done either via implementation-specific command line options or programmatically, e.g. by calling ModuleLayer.Controller.enableNativeAccess(java.lang.Module).

proud creek
timid quartz
#

Tenna on his way to DESTROY furries

spare quartz
spare quartz
#

it is time to code.

#

CNG supports cryptography in kernel mode.

timid quartz
#

NO CODING

spare quartz
# timid quartz NO CODING

Mode of Operation
CNG supports five modes of operations that can be used with symmetric block ciphers through the encryption APIs. These modes and their supportability are listed in the following table. The mode of operation can be changed by setting the BCRYPT_CHAINING_MODE property for the algorithm provider by using the BCryptSetProperty function.

Mode of operation BCRYPT_CHAINING_MODE value Algorithms Standard
ECB (Electronic Codebook) BCRYPT_CHAIN_MODE_ECB Symmetric block ciphers SP800-38A
CBC (Cipher Block Chaining) BCRYPT_CHAIN_MODE_CBC Symmetric block ciphers SP800-38A
CFB (Cipher Feedback) BCRYPT_CHAIN_MODE_CFB Symmetric block ciphers SP800-38A
CCM (Counter with CBC) BCRYPT_CHAIN_MODE_CCM AES SP800-38C
GCM (Galois/Counter Mode) BCRYPT_CHAIN_MODE_GCM AES SP800-38D

timid quartz
#

Mode of Operation
CNG does not support any type of operation. Modes and their supportability do not exist. The mode of operation cannot be changed, as operation is not supported.

spare quartz
#

In cryptography, a padding oracle attack is an attack which uses the padding validation of a cryptographic message to decrypt the ciphertext. In cryptography, variable-length plaintext messages often have to be padded (expanded) to be compatible with the underlying cryptographic primitive. The attack relies on having a "padding oracle" who freely responds to queries about whether a message is correctly padded or not. The information could be directly given, or leaked through a side-channel.

timid quartz
#

what if I overwrote my nixos partition with windows

#

on my macbook

spare quartz
#

sure i guess ...

timid quartz
#

mmm nah

#

it'd be fun for all of 3 seconds

flint belfry
#

but i would

flint belfry
#

dms

spare quartz
spare quartz
#

stupid dumb cryptography

timid quartz
#

stupid elvis operator

spare quartz
timid quartz
#

the what

spare quartz
#

stupid

timid quartz
#

securedatablob

spare quartz
timid quartz
#

you look like a blob

spare quartz
#

a SECURE blob

timid quartz
spare quartz
#

ITS OK

#

they're the right way!

timid quartz
spare quartz
#

BAYACHAO IS NOT A NAZI

timid quartz
#

#CancelBayachao

spare quartz
timid quartz
#

LOL

spare quartz
timid quartz
#

fr

spare quartz
#

CryptProtectMemory
CryptUnprotectMemory
ADDR INT INT

timid quartz
#

maybe I should program in cpp

#

for a while

spare quartz
#

Crypt32.dll'

timid quartz
#

@rustic vine how do u even manage dependencies in c++

#

like if I wanna make a discord bot and use a library to do that

#

there's no package manager for c++

spare quartz
#

now for the big question... how 2 manage JVM memory securely...

#

not allowed to use strings..

timid quartz
#

even java has 🤢 gradle 🤢 and 🤢 maven 🤢

#

c++ just doesnt have squat

flint belfry
#

reporting you for rule 2

#

enjoy corporate 😈

spare quartz
#

LocalProcessEncryptedSecureDataBlobFeature

timid quartz
flint belfry
#

rule 2

#

(/j)

timid quartz
#

Krilling you

#

you will become krill

flint belfry
#

do you not know what rule 2 is 😭

#

how are you still on exec board*

timid quartz
#

I do know what rule 2 is

flint belfry
timid quartz
#

Is that rlly rule 2 tho

flint belfry
#

qsoc said start diggin in ## #### #### was nsfw

#

ok discord thanks

timid quartz
#

ig

spare quartz
#

SystemFunction040

timid quartz
#

lame_kade

flint belfry
#

also you lead a core game security group i dont

#

therefore I Win

timid quartz
#

Double the drama

flint belfry
spare quartz
#

both of you are lame

#

next

flint belfry
#

you are too atp your addictied to the government

#

your a fed

#

Get Out

spare quartz
flint belfry
#

.

flint belfry
#

LEAVEEEEE

#

DO NOT RETURN

spare quartz
flint belfry
# spare quartz

At NYC's John F. Kennedy Airport, 1,000 bags an hour are checked for narcotics and illicit food. Customs and Border Patrol officials are tasked with stopping these goods from entering the United States.

MORE AIRPORT CONTENT:
How Emirates Makes 225,000 In-Flight Meals A Day
https://www.youtube.com/watch?v=4wkvaEM4bIg
What It's Like On The Longe...

▶ Play video
#

THISWILL BE THEM

flint belfry
#

idk what that says

timid quartz
spare quartz
#

bayachao_d_46 is blocked.

timid quartz
#

YOU BLOCKED BAYACHAO?

spare quartz
timid quartz
#

Nature is healing

spare quartz
#

THATS A FAKE BAYACHAO

flint belfry
#

bayachao is fake

#

you admit it

timid quartz
#

How does one write idiomatic C++

flint belfry
#

Wake Up

spare quartz
spare quartz
flint belfry
spare quartz
timid quartz
#

What are these cats and why do they exist

spare quartz
timid quartz
#

another person on the list...

spare quartz
#

what..

timid quartz
#

timid quartz
#

what is that

timid quartz
#

oh cmake

#

ew cmake

rustic vine
#

wut da hell are u using

spare quartz
timid quartz
#

the last time I tried to write my own cmake I nearly got an aneurysm

rustic vine
#

write your... own cmake?

timid quartz
#

yeah like

rustic vine
#

I dunno I just use cmake instead of writing my own