#🪅-progaming

1 messages · Page 98 of 1

supple whale
#

cuz fuck, even mpv is bloated to shit

royal nymph
#

web apps aren't inherently bloated

ivory heath
#

> 50MB of ram is bloat

royal nymph
#

electronslop sure

supple whale
#

sir mpv uses minimum 300+MB of RAM

royal nymph
#

but Unknown is talking about PWAs

#

they use what's already available on your system and if you already have your browser open anyway (who doesnt), they probably use fairly little resources

supple whale
#

yep

supple whale
ivory heath
supple whale
#

you should see what happens what happens to blurays

supple whale
ivory heath
#

I assume you’re using a hardware video decoder

supple whale
#

on both mpv and web yes

#

trust me, you're not winning this argument

ivory heath
#

Default mpv does not use one

supple whale
#

i spent a year researching and writing a paper on this

supple whale
#

i'm using community recommended configs for optimal video playback

#

aka a functional video player

ivory heath
#

I assume also caching because mpv prides itself on it

supple whale
#

so do browsers

#

and again, thats a 16MB <1 minute video

ivory heath
#

The video file size does not matter

#

To an extent

supple whale
#

oh it dooooooes

#

90gig blurays make mpv use >1GB of RAM

ivory heath
#

cause it’s a blue ray and it caches the source file

#

But we have a high min ram usage due to multiple factors

supple whale
#

yes

#

mpv being a native app

#

simply that

ivory heath
#

No?

supple whale
#

you're not going to win with theoreticals

#

native apps will ALWAYS use way more resources than a halfway decent PWA

ivory heath
supple whale
#

and the outliers are so rare that they might as well be non-existent

ivory heath
supple whale
#

i'm giving u hard screenshots

#

hard numbers

supple whale
ivory heath
#

Web browsers are not MAGICALLY more efficient

supple whale
ivory heath
#

Because mpv is doing more than your app.

lavish frigate
#

idk bro but the image viewer takes double the amount of ram as the bloated as shit native windows photo viewer and all im opening is a short gif

supple whale
#

nope

#

it trully is not

#

they are both playing back a video

#

i could give less of a fuck about what kind of ass licking MPV is doing, all i care about is very fast, and correct video playback

ivory heath
#

Cool, you don’t implement the amount of features mpv is using

supple whale
#

like?

#

opening a video file and rendering subtitles?

#

because that's all that mpv does, it doesnt even fucking have a ui

#

it just uses subtitles to render shit

#

color mapping? browser does it. HDR? browser does it. hw accell? browser does it.

#

subtitles admittedly i had to do myself

ivory heath
#

mpv keeps all streams in the file cached, it keeps a decode cache for fast and accurate seeking, complex filter chains it applies on most peoples configs, multiple other thing i dont care to explain

supple whale
#

and... you think browsers dont?

#

shit browser's http streaming is better than mpvs brother

#

i mean go figure

ivory heath
#

mpv has a larger default cache for better seeking for starters

supple whale
#

great, and the browsers simply solve that by seeking to multiple places at once and finding which one is more accurate

#

and the latency on that is ~20ms

#

again

#

i'm not going to dig into what mpv does

#

long story short is that native apps will not use less resources than pwas

#

ever

#

like ever ever

#

and the outliers to that is microsoft's old notepad

#

imageglass, qbit or libtorrent, etc etc

ivory heath
#

MPV does a LOT more than you think it does

supple whale
#

and yet it works functionally the same, and uses more resources

#

wooooo!

#

again i dont care

#

its not delivering anything extra with those extra resources, which is also not my point

ivory heath
#

then you dont have feature parity and its a unfair comparison

supple whale
#

and fuck me

#

man is complaining about feature parity without an interface

#

which is for the 5th time

#

not the point of the conversation

lavish frigate
#

@ivory heath as a web dev im sorry that you have to deal with people like this

ivory heath
#

its fine

#

pure derangement

supple whale
#

pyra you're the 2nd most braindead person here

royal nymph
#

keep it civil guys

supple whale
#

mf goes "um akshtually mpv keeps a 300MB cache of each subpxiel of the each video frame in this 16MB file, so you can seek in 0.0001ns"

#

like brotha what

#

its a fucking 16MB file

#

you could lay out each frame as a PNG and that'd still be less than 300MB

#

no matter what it does it doesnt warrant that kind of memory usage on that tiny of a file, no matter what

#

its a SINGLE file

#

and i'm not saying mpv is shit, even the other way around, no matter how good your native app is, because even native apps as good as mpv, will will use more resources than web apps, BECAUSE THEY NEED THEIR OWN CONTEXTS TO WORK IN, they cant just go "oh yeah browser do this gpu stuff for me, and use the gpu process the 12 other tabs/pwas are using so you dont need to spawn the 12th GPU process"

#

so even in a BEST case scenario it will use more resources for that reason alone

#

ignoring all the OS specific bullshit you'd need to load and deal with as a native app

#

which PWAs do as a shared base entry cost, which is made more and more negligible the more PWAs you run

#

and this mf goes "nu-uh, i'd know more about this, as a person who doesnt do web dev, doesnt touch web apps, and hasnt spent any time researching it"

supple whale
#

like brotha man hold me pls

#

im bout to use the derogatory "sir" again

ivory heath
#

Each decoded frame of a 1080 video is 4MB in size.
Like i said the source files sizes does not matter and its actually pretty impressive MPV uses as little as it does with the performance it has.
You are overstating the cost of having a gpu stream unless youre too browser brained as the shared constant state is all gpu driver side.
even if creating a gpu stream was expensive (it isnt) EVERYTHING about a PWA is less efficient than native.

supple whale
#

except ofc, actual resource usage like memory, cpu, gpu and ofc filesize, as that entire video player is <1MB

ivory heath
#

You are conflating facts and details to suck off browsers when they suck ass and 99% of things could be ran in a terminal with less than 1mb

supple whale
#

sure if you use browsers for things a text editor can

#

but then just use firefox, since that's all its good for

#

i'm not doing that

#

i'm using it as a video player, as an image viewer, as an IDE

#

and i'm not saying mpv is shit

#

on the contrary i'm saying how good it is

#

and it simply cant beat what a pwa based env offers when it comes to resource utilization

shrewd canopy
#

is resource utilization the only argument you gonna use?

supple whale
#

yes

ivory heath
#

you are over estimating the ammount of resources chrome can share between "apps"
chrome itself has a heavy start up cost (thats actually mostly cache files)

ivory heath
supple whale
ivory heath
#

YES IT DOES WHAT THE FUCK ARE YOU ON

#

BATTERY LIFE HELLO?

supple whale
#

because if you're running at 200fps, 1ms and 5ms is no difference

ivory heath
#

ANY OPTIMIZATION

supple whale
#

smh

ivory heath
#

CPU USAGE ONLY

#

and gpu cough

supple whale
#

you're just not reading

supple whale
#

and shit

#

who would have thought

#

browsers run native code

#

SHOCKER

#

OH MY GOD

#

but you're running it once

#

not 12 times

#

^^

ivory heath
#

cant wait till 2028 when UE7 is just a js lib

#

perfect future for the web dev

supple whale
#

i never talked about video games

#

so far i only mentioned video playback, a torrent client and an image viewer

#

you're just derailing because you're running out of things to argue

ivory heath
#

you just dont get it

supple whale
#

that said, running video games in web isnt impossible, thanks to webgpu's vulkan, but.... the translation layers we have so far arent... good in any way tbf, so i wouldnt attempt it

supple whale
lavish frigate
#

if in the future i turn on my pc and its entirely made out of pwas, i open explorer and it takes 5 minutes to load my files because it was made in react or some other dumbass framework im becoming an eco terrorist

supple whale
#

well... yes, but see this is why i said

#

react doesnt qualify as that

#

as discord so kindly proved that

shrewd canopy
#

I don't think PWA can't be decent lol

supple whale
#

that just means u cant do it

#

i've been running almost everything i can, in a reasonable amount, as a PWA

#

youtube music, discord, image viewers, music players

#

vscode doesnt rly work great as a PWA, and steam is closed down too tightly to allow to be ran as a PWA, there's no way to do file explorers as PWAs due to security sandboxing in browsers, and for a torrent client i need to run nodejs in electron, which is unfortunately not a PWA :/

lavish cloud
#

PWAs my behated

#

Why must everything be JS

supple whale
# lavish cloud PWAs my behated

honestly, yeah, there are very few good PWAs out there, like very few, its also a love hate relationship for me, but the potential is crazy for me

supple whale
#

is what'd i'd boil it down to from personal experience

lavish cloud
#

Whether I need native or JVM or WASM, it just works

supple whale
#

yeah.... i kiiinda get that

royal nymph
supple whale
#

java promised, what js actually delivered

#

java promised full cross platform code

lavish cloud
royal nymph
supple whale
#

but then never actually implemented any native API's around that

royal nymph
lavish cloud
royal nymph
supple whale
#

and it ends up that your core codebase is in java, and cross platform, but then you have 3 libraries for calling native, one for linux, one for windows and one for mac

royal nymph
#

no one likes Swing

supple whale
lavish cloud
supple whale
#

its just... the language itself

royal nymph
supple whale
#

like the standards of the lanaguage

#

or lack there of

#

W3C is trully carrying JS

#

with the cross platform standards for everything

#

shit, we even got standards for raw GPU access now

#

i could trully see myself using kotlin more, if only it was trully cross platform with anything you do

#

like fuck, i love the threading implementations in kotlin

#

that shit's honestly great

#

well the IDE kinda sucks too, but oh well

ivory heath
supple whale
#

over kotlins? probably only Go tbf, C++ is decent, but its C++, i'd rather kill myself than touch that, i shake when i see makefiles

ivory heath
#

make files are easy

#

kolins is the same as javas, c is similar to go if youre using pthreads, c++ is very simple as well.

supple whale
#

until there are 4 of them, you're trying to compile for non x86 and you're trying to touch any flags

#

because fuck sane defaults right?

#

you know what's easy?

#

no makefiles

lavish cloud
supple whale
#

oh yeah

#

i mean how the developer writes it

#

not how it itself is implemented

lavish cloud
#

fair

ivory heath
#

oh you mean green threads?

supple whale
#

C++'s ways are nice for it, but C++ itself is hell to work with, so I wouldnt consider using it

#

kotlin is really nice to work with, nice and friendly, no footguns every quarter step

#

go even more so

lavish cloud
supple whale
#

honestly, at that point i'd just do rust or go bindings

lavish cloud
supple whale
#

but the problem is, if you're say importing harfbuzz

ivory heath
#

-Xextra-compile file.cpp
kotlins not gonna resolve libs for you lol

supple whale
#

you still need makefiles to compile harfbuzz itself, and then hook it in go

#

which is just... the same cancer, but with extra steps

lavish cloud
#

Though honestly

#

Gradle might be the best build system ever created

supple whale
#

thats only really true when its your own C++ ur workign with

#

which is not the growing pains of C++

supple whale
#

the cancer of C++ is trying to import 3rd party libs

lavish cloud
#

I remember trying to import mbedtls

#

I ended up writing my own TLS impl for Nintendo Switch

#

And then my own http/ws clients...

ivory heath
supple whale
#

^^

lavish cloud
lavish cloud
supple whale
#

so i have to use WSL and linux to compile it

#

WOOOO C++

#

HELL YEAH BAYBE

ivory heath
#

yeah compiling c/c++ is super easy on linux

supple whale
lavish cloud
# supple whale

Ah yes because I can easily use JS on the fucking Nintendo Switch

supple whale
#

hasnt stopped me yet

#

shit i put nodejs on android

lavish cloud
#

I'd love to see you try

#

It's genuinely make modding quite a bit easier I think

#

Except for the part where you've got essentially no heap and BSS is very limited

#

malloc has a 90% chance of breaking so you'll need to use fakeheap

supple whale
#

yeah i saw, switch is insanely cancer to work with

lavish cloud
#

There's essentially no libc methods either like socket/select/close/clock/etc

#

Or are those considered musl

#

I forget

#

Either way

#

You gotta use their dedicated APIs

#

Which, depending on the game, you might not even have access to

ivory heath
lavish cloud
#

And often that happens on the rendering thread for some reason so you can't even debug it

ivory heath
#

sodathink yes so im asking what youre using as a fake heap. my first assumption is just using your own stack space as a pseudo self managed heap

lavish cloud
#

Uhhh

#

Whatever exlaunch does

#

I believe it's just a BSS-based heap

#

Of like 16MB?

#

Probably less actually

#

Oh but no global ctors that use classes of course

#

Because those don't malloc but instead operator.new

#

Which doesn't use the fakeheap and has all of the aforementioned malloc issues

supple whale
#

im so happy i just use my android phone as a steam deck and dont have any of these problems

lavish cloud
#

I like to think everything I've posted here before is enough proof of me being a psychopath

ivory heath
#

you are a certified one and i respect it

lavish cloud
#

And I haven't even shown my code for interacting with cpython from pure python without need for ctypes or anything wacky

#

The easiest one just uses /proc/self/mem but on windows we actually use EX_ARG 255 times to overflow the argument handler and get access to the entire memory by abusing a memoryview on an object that technically doesn't exist

#

But I believe that has since been patched so we're SOL on modern python on windows

#

But the bytecode modification tools should still work more or less

supple whale
#

i think i've posted all the unhinged code i've written over the years here

#

the libass wasm wrapper is probably the craziest one tho

#

webtorrent client stuff is up there too i guess

#

i fucking decided that the easiest way to do color space conversion for subtitles is to pre-compute all combinations of colorspaces into a color matrix

#

and use svg filters in the browser to have the browser convert the color spaces for me

lavish cloud
supple whale
#

most of my shit is fairly sane considering its meant to be used in production, and most of the time i'm just writing drop-in replacements for dogshit libraries other people wrote

#

this one is fun tho

#

8 months

#

XDDDDDDDDDD

#

2 loc per month

#

lines of docs actually not loc

royal nymph
#

cough cough gtk file picker cough thumbnails cough 18 years

supple whale
lavish cloud
royal nymph
lavish cloud
#

Because strings can have syntax errors or target fields that some objects might not have since they're not checked

#

This just uses the type system directly

supple whale
#

string? syntax error? what?

royal nymph
#

in typescript you can use the typesystem to check this

gql.query`
  me {
    name
    friends(limit=10) {
      name
    }
  }
`;
royal nymph
supple whale
#

yeah, but he's not doing that, so he doesnt have them

#

i dont think he means gql errors

#

but language errors???

lavish cloud
# supple whale string? syntax error? what?

Like if I do quert{ ... } that's not valid but the compiler doesn't know and it'll error at runtime
Also since it's a string the compiler won't know the return type and you have to do ugly casts

supple whale
#

ah so you dont have tooling for checking the queries in strings

#

ic

#

yeah

#

for js we need to have ts lang server plugins to verify string queries

lavish cloud
#

I mean I probably could write a Kotlin compiler plugin for it but this was much simpler

#

plus it does typed returns

supple whale
#

yeah we have that too

lavish cloud
#

Oh god I forgot TS has string literal types

supple whale
#

but again, requires a plugin

supple whale
#

its a custom plugin

lavish cloud
#

Oh

supple whale
#

it can parse any string like that

#

ya simply do A

#

and you're set

lavish cloud
#

But yeah I'm just happy that this entire thing works entirely ootb and is also usable from Java where we don't have compiler plugins or C/C++ if you really hate yourself

supple whale
#

yeah no

#

implementing that kind of shit is insane

#

your solution is simpler, but isnt 1:1 gql syntax

lavish cloud
#

It's as close as can be while being valid kotlin syntax

supple whale
#

yeh

lavish cloud
#

I have to substitute : for = and that's it

#

Also can I just say

supple whale
#

well i imagine shit like this

lavish cloud
#

Fuck whoever decided GQL should have introspection

supple whale
#

or this

lavish cloud
#

That shit took me a solid 3 weeks to implement on my server

supple whale
#

would be hard

royal nymph
#

usually you just make an extension xD

supple whale
#

XD

royal nymph
#

the type system is turing complete so if you're dedicated enough you can make ANYTHING in purely the type system

supple whale
#

well that and entity normalization

lavish cloud
# supple whale

Oh there I just did kotlin me { fragment on User { name } } iirc
I also supported expansion of fragments specified elsewhere in the thingy using some syntax but I forgot what it was

supple whale
#

not bad then

lavish cloud
#

I believe the only thing I don't support is the @skip modifier

#

I do support custom scalars tho yop

supple whale
#

metadata provider for mkv/webm files, based on my custom pure js ebml parser

#

XDDDD

lavish cloud
#

Map<any, {...}>
I forgot TS can just have objects as types rather than specific classes, that shit was a nightmare when I had to work with prismjs and nestjs when their types were minimally different

#

Because some devs where I worked would just try to transform the object

#

Whereas I used proper database/response classes

supple whale
#

prismjs and nestjs
see this is where ur problem lies

lavish cloud
supple whale
#

hell yeah, new line feed based protocols

#

i did a loooooooot of that

#

ftp, tftp, and most notably nntp

lavish cloud
#

In that same repo you'll also find a BigNum implementation that can go up to 10{1000}10

supple whale
#

X D

#

WHY

lavish cloud
#

where 10{0}10 = 10+10, 10{1}10 = 10*10, 10{2}10 = 10^10, etc
Implementing tetration was fun

supple whale
#

a File implementation on top of the nntp protocol

lavish cloud
#

Oooh NZB my behated

supple whale
#

which TLDR means u interact witha File object, as if it was a local file

#

but in practice it streams data real-time over nttp

#

which means, you can stream NNTP files

#

1st one in the world btw

#

idk why no1 else has done it, it was so simple to do

#

and so you can just hook that File into a video player

lavish cloud
#

Oh man I wish I still had my minimal lua ext-like filesystem implementation somewhere

supple whale
#

and stream nntp directly into a video player

#

without needing to download anything fully

#

pure streaming WOOO

#

XD

lavish cloud
#

Nice

supple whale
#

but thats boring cuz its easy

#

the NNTP one was sick

lavish cloud
#

Tho for that one you can just use ffmpeg

supple whale
#

well

#

it returns a file object

#

you wouldnt necessairly use it for playback

#

it could be anything

lavish cloud
#

ic

#

Fair enough

supple whale
#

it could be a zip

#

which are also streamable, as long as its not compressed

lavish cloud
#

Oh speaking of zips

#

Fucking nightmare that format is

supple whale
#

so you could stream a zip, over nntp and extrractt a single file from it

lavish cloud
#

I tried writing an impl for reading zips and gave uo

supple whale
lavish cloud
#

It's clearly designed for spreading files across multiple floppies

#

(or is it floppys)

supple whale
#

is it now?

#

never noticed that

lavish cloud
#

I don't know what the plural of floppy (n) is

lavish cloud
# supple whale is it now?

The footer specifies which chunk it is and for each file it tracks which chunks are on what parts of which parts

supple whale
#

i cant wait till i implement nzb streaming into my client

#

but its so much work i cba for now

lavish cloud
#

I still need to fix my dungeon generation code 😭

supple whale
#

hah

#

i caught up on backlog this week

#

i'm now only 3 years behind

#

i got to the shit i wanted to do 3 years ago

#

aka PE/MSE

#

which i... kinda did

lavish cloud
#

It'll probably just be a DFS but rotating rooms and making sure they fit and that if they fit they don't obstruct other rooms is not fun

supple whale
#

so i'm actually running out of things to work on

#

which i never thought would come

supple whale
#

its not actually insanely hard to do

lavish cloud
supple whale
#

if anything i'd do webgpu

#

since opengl alr exists via unity

lavish cloud
#

Because I support variable shape rooms with doors in any position

supple whale
#

look up android 16 terminal display server

#

and start thinking of all the unhinged shit you'll be able to do

#

I'll be doing proton

runic sundial
#

And use only that to make a video game

brittle frigate
#

i can just take the ast and go wild

ornate quiver
#

good article
god i hate id age verification

spark aspen
royal nymph
#

so true tho all this legislation is horrid

ornate quiver
austere idol
ornate quiver
#

?
I agree but how is this related

austere idol
#

idk

#

av is some kind of drm, and i dont like drm

ornate quiver
#

i guess if you stretch the definition yes
drm is for the IP owner though

calm terrace
#

finish manager

shrewd canopy
placid cape
#

C++ 😭

supple whale
#

it's the only reason good JS isn't actually any slower than native code, unlike what many synthetic benchmarks will lead you to believe

#

since you're still just simply calling native code from js

supple whale
#

native dom 3d rendering

#

wikkid

winged mantle
#

css is turing complete

hoary sluice
#

@valid jetty how to remove ads from youtube on ios

fleet cedar
#

Sledgehammer always works

nimble bone
#

@ornate quiver when is manager dropping

shrewd canopy
lavish cloud
#

Finally got my dungeon generation code to work yippee

lavish frigate
#

love how insane web dev is sometimes, thought id have to get in a depedency to resize images on the client... nope!

supple whale
#

so much for custom shapes and door placements

#

xD

crude star
#

web is the future

lavish frigate
#

not if i eat the internet cables

crude star
#

good luck finding them

#

we forgot where they are

lavish frigate
lavish frigate
#

yea?

crude star
#

why are you drawing in the middle

lavish frigate
#

i am not

#

you do not have to find bugs in my code

#

because im already using it and it works

#

😭

lavish frigate
crude star
#

wāw

lavish frigate
#

this sped up the speed of the page by like 500% because before id just load 4k images into those 50x50 pixel divs Clueless

#

before using actual objecturls id also just convert the blobs into base64 urls and put them into the attributes which mightve caused devtools to crash on multiple occasions Clueless

crude star
#

that's interesting I wouldn't expect that to be too much of a problem

lavish frigate
#

well

#

i also had 10 images there

#

and its a start page so you really do feel any slow down

crude star
#

ok base64 url is kinda ass

lavish frigate
#

uhhm

#

let me check

#

this should be it

lavish frigate
#

but i have no backend here so i cant just get the images from cdn i have to store them in object storage of indexeddb

crude star
#

they're a way to get an easy memory leak

lavish frigate
#

npnp

lavish frigate
#

but i mean i just do this Clueless

crude star
#

??= now

lavish frigate
#

nope

winged mantle
#

is there an extension which makes youir code look like scratch blocks

jade stone
#

guhhh what does this mean

jade stone
#

my cargo is outdated

solemn ravine
#

it never ends

solemn ravine
#

@young flicker fix my constraints

#

wthhh

solemn ravine
spark aspen
#

l

jade stone
#

what does the bang mean before a trait impl

supple whale
#

non nullable?

jade stone
crude star
#

its not unwindable, sendable, or synchronized

#

but those traits are usually implemented automatically

royal nymph
#

I'll unwind, send and synchronise you @crude star

#

🧙‍♂️

lavish frigate
#

rude

crude star
#

wtf

#

thats unsafe

lavish cloud
supple whale
#

like stairase rooms and shit

lavish cloud
#

should be fairly doable

#

atm its hardcoded at y 100

supple whale
#

and then you'll be almost caught up to that one wynncraft clone server

#

ventrella?

lavish cloud
#

only downside is that there's a limit to verticality

supple whale
#

300 blocks

#

so not rly

lavish cloud
#

but something it could run into

#

other problem: it currently never creates loops

#

no clue how to check for those tbh

#

especially when at least 1 terminal node must exist

supple whale
#

you dont need to check if its a loop, since your entrances and exists are aligned

#

loops will just create themselves sometimes

#

especially if your process is substraction from a world of stone, rather than addition to empty world

#

if its a dead end its simply stone

#

if its a loop it will simply connect

lavish cloud
#

right so

supple whale
#

you can be giga lazy about it

lavish cloud
#

this is for void worlds

#

so dead ends are a big no no

supple whale
#

ah you want it infinite

lavish cloud
#

other issue:

#

if its free to create loops

#

it could create a P shape

#

and have nowhere to place the exit

supple whale
#

it wouldnt see itself as creating a loop

#

it will be a loop to the player, but not the algo itself

lavish cloud
#

right but

#

how do I ensure there can be an exit

supple whale
#

you have a matcher for where an exit is for a given node no?

#

simply check if there's already a node in the direction of an exit, there is that means its "blocked" and you try the next shape

#

until you can solve

#

if u cant, you go back to the previous node and try changing that one

#

no?

#

or am i overcomplicating this

lavish cloud
#

so how its currently done

#

it marks all terminal nodes (not including start)

#

and picks a random one to become the exit

supple whale
#

right so you simply need to go back a step if you cant generate a valid exit for a given terminal node

#

or pick a different terminal node, and if none match undo 1 generation step

#

simply brute-force a solution

#

its not very efficient, but it doesnt need to be

#

its not like its of high compute

#

realistically i'd personally do it with a bounding box system, rather than an exit node based grid

#

since it allows for WAY better room generation, since rooms wont feel so "same-y" to the player

lavish cloud
#

I have no way to undo generation

supple whale
#

get coding then

lavish cloud
#

whoops that one TODO is no longer needed

supple whale
#

maybe they wrote a blog

#

you could investigate

lavish cloud
#

dont see one

#

but also how can you make sure rooms line up with each other without using an exit node grid

supple whale
#

check their discord or ask their staff, im sure they will be quite enthusiastic to talk about it

#

they definetly implemented the best procedurally generated dungeon system i've ever seen

#

it was amazing

supple whale
#

then you pre-calculate the bounding for each room, and fit them like puzzles making sure they dont collide

lavish cloud
supple whale
#

ofc this makes it way more common for dungeons to randomly end since well the more complex the shapes the more likely you'll be to run yourself into a dead end, which is why they had an undo system

#

i remember seeing a video on it

#

i probs saw it in their discord

#

this was almost a decade ago at this point tho lol

lavish cloud
supple whale
#

I'm old, leave me alone

lavish cloud
#

asked in their discord, here's to hoping they respond

supple whale
#

haha

lavish cloud
#

if you ever find the video or know a rough key term to search for lmk

supple whale
#

I mean it was ages ago

#

it was possible it was some exclusive showcase given to a wynncraft youtuber for promotion

#

it was that long ago

#

I remember it was a view from outside of the dungeon of it generating

#

kinda like yours but with fully built rooms

lavish cloud
#

tfw going through message history and seeing this
I was on the overtale dev team way back then KEKL

supple whale
#

oh yeah I remember jabberdrake

#

don't really remember where from

lavish cloud
#

probably from that server

supple whale
#

nah from wynn

lavish cloud
#

ic

#

idk what wynn is tbh

solemn ravine
#

asiuhdxgsaxndasx asx if xied the constraints im so smart

solemn ravine
#

trying to fix this for horizontal now

lucid trail
solemn ravine
#

but what does that relate to here

lucid trail
#

it kinda looked like you those materials, i was wondering if they did anything like encourgaging you to use liquid glass or something

solemn ravine
#

their guidelines show that liquid ass should only be used for navigation elements or items that need to hover

#

regardless thats (publicly) not out so its none of my concerns

#

@woven mesa should it be a grid or a stack (with slight rotation like in finder)

jade stone
#

does anyone have experience with native c++ interop from java/kotlin

#

i have no idea where to start

#

google yields nothing useful

jade stone
frosty obsidian
#

he made ffmpeg wrapper in kotlin

jade stone
#

i want to make the java bindings

#

guh

frosty obsidian
civic vector
#

misclick

#

💀

frosty obsidian
jade stone
#

yeah, i saw all that

#

the docs suck

ornate quiver
#

look for jni libs and copy what they do

lavish cloud
#

JNI is the easiest one to do

jade stone
#

do you have a good example you can point me to

lavish cloud
#

Erm

#

A bad one but yes

jade stone
#

that's fine

lavish cloud
#

Ignore Gradle because that's a mess

#

The important part is to have a function named e.g. Java_com_martmists_ndarray_simd_NativeSpeedup_vecAddVec and then in Java/Kotlin have a class com.martmists.ndarray.simd.NativeSpeedup with native/external (for Java/Kotlin respectively) method vecAddVec

jade stone
#

yeah

#

i got that part

#

i just need to figure out how to integrate the native build to gradle

lavish cloud
#

right so that's the part that sucks

#

I hijack the kotlin native compiler tasks and just add my C++ sources to that so it compiles the JNI for each architecture/OS. Downside is needing each library and setting up linking through Kotlin cinterops

jade stone
#

im looking to comple java

lavish cloud
jade stone
#

yeah

lavish cloud
#

Alternatively you could try JNA but I've got zero experience there

#

Supposedly it's less painful to work with and doesn't need C++, but idk how it works

jade stone
#

does it matter if it doesnt need c++ if im writing c++

lavish cloud
#

wdym

#

If you want to just write bindings for an existing library, JNA is likely easier

#

If you're writing your own, probably JNI but god help you

#

Also if you're targeting macos I suggest you give up before you try

jade stone
#

i'll build for mac when apple provides an easy way for me to make a macos vm

#

(on windows or linux)

lavish cloud
#

True

#

Or if it becomes actually doable to compile for macos in GitHub actions

jade stone
#

until then, mac users can cry or buy me a mac device

lavish cloud
#

But as long as math.h doesn't exist I can't do shit

jade stone
ornate quiver
#

@jade stone I forgot I did this

#

basic setup

jade stone
#

but that's android only

#

and i need desktop

ornate quiver
#

ive never seen someone do it for desktop

#

husk

solemn ravine
#

wtf rushii unbound dev

jade stone
#

the java.awt class for it is just broken

frosty obsidian
lavish cloud
jade stone
#

my experience with gradle is copy and pasting blindly from the internet blobcatcozy

#

copilot time

lavish cloud
#
val cmakeBuild by tasks.registering {
    doFirst {
        exec("cmake", "--build", "dir")
    }
    outputs.file(...)
}

val processResources by tasks.existing(Copy::class) {
    from(cmakeBuild)
}
jade stone
lavish cloud
#

Something along those lines

#

On mobile at 4am so don't trust it 100% but I believe that's more or less what it should be

jade stone
#

yeah

#

ty

ornate quiver
#

github isnt consistent in its rendering

frosty obsidian
#

8 spaces

lavish cloud
#

This is why people always say spaces are better than tabs

#

Tabs are not consistent

ornate quiver
#

no github just renders them wrong

#

theyre better

#

looks like i didnt use tabs for cpp for some reason

#

idk why

#

continuation indent is 8 spaces guh

lavish cloud
#

You are stupid I know more than you

frosty obsidian
#

the github app renders them as 8 spaces and gloom uses 1

#

should fix that but idk how

solemn ravine
#

people looking at my code on github and wondering why my tabs are absurd

jade stone
#

same with the github app

#

bottom of

frosty obsidian
#

can't change it in the app

jade stone
#

guh?

am i going insane

#

yeah, i am

ornate quiver
#

the default for rendering tabs in a repo is extracted from editorconfig btw

#

but not for direct links to commits in a repo (bug)

jade stone
#

does editorconfig provide tab size

#

i thought it only provided number of spaces

ornate quiver
#

both

jade stone
#

neat

#

oh

#

neat

solemn ravine
#

@woven mesa look how epic this is

woven mesa
#

is it performant

solemn ravine
#

i'd say so

woven mesa
#

yay

#

what odes it look like if you temporarily remove label color

solemn ravine
#

well there is a lag spike when first showing it

woven mesa
#

i will profile and find where its from

solemn ravine
#

you dont normally see this when opening a window but when using an animation at the same time you can

#

not really a problem though

woven mesa
#

ill still try to see if the hang can be avoided

#

is this new repo or new branch

solemn ravine
#

new repo

#

also it has support for vertical

woven mesa
solemn ravine
#

it shows blank because newlines

#

moment

woven mesa
#

true

solemn ravine
#

so I made the title just be the data

woven mesa
#

fair

solemn ravine
#

its so strange

#

theres a bit of funny quirks rn

winged mantle
#

what the freak

fleet cedar
#

Nice line spacing

winged mantle
#

ok nvm i hate c++

ionic lake
#

you're not the first

winged mantle
#

what is [:e:] meant to be

#

idk i think this syntax might be invalid

#

fever dream

winged mantle
crude star
#

sometimes that website has like inline urls in code but idk why its one letter

winged mantle
#

ah

#

i was horrified

#

is this the basket operator or something

crude star
#

brisket operator

winged mantle
#

oh no it does seem to be real

#

seems like a proposal though

crude star
#

wtf

#

they ran out of syntax 😭

winged mantle
#

from now on i just code rust

#

would rather learn borrowing, stealing, burglary and pointer alchemy than this

crude star
#

IT IS REAL

#

horror

austere idol
#

rini

valid jetty
#

you can now write

typename[:^char:] c = '*';
``` instead of
```cpp
char c = '*';
#

^T gives you a type info struct for reflection at compile time

valid jetty
#

[:T:] turns that type info struct back into the type

winged mantle
#

rust errors are like

Susan is currently using this memory. Please ask her nicely for it back using the `please` keyword.
 please i += 1;
   ^
   |
   |
add here
lavish frigate
#

And it’s great because you almost never not understand what went wrong unlike with other languages which would just say shit like You were not polite enough.

hoary sluice
lavish cloud
supple whale
#

nope not even close

#

this one uses corridors to connect rooms

lavish cloud
#

because all info they gave me was this

supple whale
#

yeah sounds roughly like what i described

lavish cloud
#

so it sorta sounds like what I do but instead of doing chunk-aligned it's completely variable based on the structure and it just has offsets to doors?

#

except mine doesn't do loops

supple whale
#

and bounding boxes for collisions

lavish cloud
#

pain

supple whale
#

so u can have variable shapes

#

as i said, that server probs has the best procedurally generated dungeons ive seen

#

and they made them a decade ago

lavish cloud
#

well bounding boxes are easy thats just the structure size if im lazy or some funky optimalizations if im willing to do some ugly mixins

#

not being chunk-aligned is annoying tho

supple whale
#

yes, but its MUCH better for players

#

chunk aligned dungeons get boring after the 3rd room

lavish cloud
#

but performance... this already takes 4-5 seconds to generate sobb

supple whale
#

skill issue ig

#

xD

lavish cloud
#

then you implement it smh

#

you have the easy part of the code already from what I shared earlier

supple whale
#

i'd never use java for it

#

but yeah i could

winged mantle
lavish frigate
#

php

winged mantle
#

PusH Processor status

worthy sun
#

was TSX transfer stack ptr to X ?

#

no

#

was it one of those undocumented ones

#

wait

#

oh i was right the first time

worthy sun
#

oh im removing my vote in that case

solemn ravine
#

@young flicker tabview

#

sonoma where

hoary sluice
#

@valid jetty i lost half my wpm 🥀 💔 🚡

#

(on qwerty)

#

this guy broke so i have to use a normal kb now

frail turtle
winged mantle
#

oh yeah there's also a jsr instruction

#

jump to subroutine

dense sand
#

jsr is jvm instruction, isnt it?

winged mantle
#

i thought it was invoke virtual or something

fleet cedar
#

No invoke virtual is INVOKEVIRTUAL

winged mantle
#

WHY ARE YOU SHOUTING

fleet cedar
#

That's how bytecode instructions are typically written

winged mantle
#

i don't think i've ever seen a project using raw bytecode

#

*unless through an api

fleet cedar
#

Yeah nobody touches raw bytecode

#

That's what ow2 is for

royal nymph
fleet cedar
#

Working with javabytecode, duh

#

Get with the times

winged mantle
#

i don't think there's a standard string representation

#

don't asm languages tend to be case insensitive with instructions

#

or are there just some which use upper and some which use lower

crude star
#

/run nasm ```asm
BITS 64
GLOBAL _start
_start:
MOV RAX, 4
MOV RDI, 1
MOV RSI, hello
MOV RDX, 3
SYSCALL
MOV RAX, 1
MOV RDI, 0
SYSCALL

SECTION .data
hello db "hi\n"

rugged berryBOT
#

@crude star I received nasm(2.15.5) compile errors

file0.code:6: warning: 64-bit unsigned relocation zero-extended from 32 bits [-w+zext-reloc]
/piston/packages/nasm/2.15.5/run: line 5: 1698552 Segmentation fault      (core dumped) ./binary "$@"
crude star
#

virus

#

i think most assembly languages are case insensitive

#

for the same reason sql is

#

no syntax highlighting

shrewd canopy
crude star
#

historically

#

asm existed way before fancy editors

#

horror why cant i remember x86-64 linux abi

lavish cloud
fleet cedar
#

Can't say that's ever bothered me

winged mantle
#

use asm to rename all functions in jar to PascalCase

fleet cedar
#

Rename all functions in jar to snowman emoji

royal nymph
supple whale
#

??????????????

lavish frigate
#
for x in (1..=5).rev() {
  println!("{x}");
}
crude star
#

true.....

valid jetty
crude star
#

@royal nymph u love nix syntax

#

-> boolean operator

#

!a || b

lavish frigate
#

/run

<?php
$println = "print";
$println(1);
rugged berryBOT
#

Here is your php(8.2.3) output @lavish frigate


Fatal error: Uncaught Error: Call to undefined function print() in /piston/jobs/e1f3f509-aff3-4255-bf2d-b59f99187d2b/file0.code:3
Stack trace:
#0 {main}
  thrown in /piston/jobs/e1f3f509-aff3-4255-bf2d-b59f99187d2b/file0.code on line 3
lavish frigate
#

oh right

#

print isnt a function in php

#

its a "language construct"

hollow blaze
#

So basically i cannot find anything revelant to it or i'm bit restarted, where i can find something that would allow me to change another user local volume or mute him? (in vencord)

#

maybe someone has it

winged mantle
# winged mantle
poll_question_text

Best 6502 instruction

victor_answer_votes

17

total_votes

24

victor_answer_id

1

victor_answer_text

NOP

valid jetty
#

@hoary sluice its happening

#

im FINALLY writing a real academic document on this stupid language

#

in typst ofc

hollow blaze
valid jetty
#

look at these sources..

valid jetty
#

you can just right click on them while theyre in the vc and theres a slider

#

or maybe im remembering wrong

hollow blaze
#

yes but i want to do the funnies, basically I have rpi2040 with rotary encoder

valid jetty
#

but i remember that

lavish frigate
hollow blaze
#

and i want to bind it to change volume of specific user

lavish frigate
#

and not in vencord support

hollow blaze
#

i bound it to F13/F14/F15 keys

#

I got all the events and custom plugin stuff but for god's sake i cannot find volume change in vencord

#

and im digging in the code for 2 hours already

hollow blaze
#

i don't have access to vencord development channels either

#

nor i need access to them for more than 15 minutes

#

so i asked it here with the hope someone will know maybe

hollow blaze
jade stone
hollow blaze
#

Ok, i thought you can only request access if you want to contribute lmao

hollow blaze
woven mesa
#

i love combine

#

combine is so cool

#

i wanna explode i cant motivate myself to do programming anymore

jade stone
#

what if IOS was built on java

jade stone
woven mesa
#

its kinda sad, ppl used to say my constant work would motivate them to work too

#

now i cant do anything anymor

#

i just doomscroll twitter or play games these days

#

very unproductive

frosty obsidian
spark tiger
#
Huawei Central

Huawei will take a major “open-source” step for its self-developed Cangjie programming language. The company will make the codes available to the public by the end of this month, following the route of self-sufficiency in the technological world. Open-source refers to a process that allows everyone to access a software or its programming sou...

spark tiger
spark tiger
#

/run ```c
#include <stdio.h>

int main() {
int x = 5;
while (x




--> 0)
printf("%d ", x);
}

lavish frigate
#

"rival java and swift" bro trying to rival 2 languages at the end of the spectrum at once

rugged berryBOT
#

Here is your c(10.2.0) output @spark tiger

4 3 2 1 0 ```
lavish frigate
#

dead on arrival language

lavish frigate
spark tiger
lavish frigate
spark tiger
#

i just use fr as a reaction for no reason it looks silly

lavish frigate
#

☹️

spark tiger
#

my bad 😔💔

lavish frigate
#

the language is like a weird mix

#

of fucking

#

swift

#

rust and python

#

even got the unsafe keyword in there

#

disgusting bro

#

add some parenthesis in there

#

also no semicolons

spark tiger
#

where’d ya find that cuz like i can’t find anything about that fucking language lmao

frosty obsidian
#

no semicolons is good

lavish frigate
spark tiger
#

ty

lavish frigate
#
spark tiger
#

i’ll never remember that fucking name i stg

#

cangjie

#

i think it means something in chinese idk

lavish frigate
#

idgi is func optional

#

cuz they leave it out omsetimes

lavish frigate
frosty obsidian
#

i saw a bit of kotlin in there

lavish frigate
#

but yeah this language has 0 use

spark tiger
lavish frigate
#
#

and there is also no null

#

like rust

spark tiger
#

are they using mdbook for the docs wires

frosty obsidian
#

it has named parameters but you have to declare that a parameter can be named???

#

why???

lavish frigate
#

??

frosty obsidian
#

they're just saying classes are final by default

lavish frigate
#

w-whats the point of of classes if there is no inheritance

#

like the one thing classes excel at is that you can just

#

inherit some class

#

define other behaviour

#

and use it like the original class

native spruce
frosty obsidian
#

you can inherit one that wants to be inherited

#

you just have to add the open keyword

native spruce
#

yus

frosty obsidian
#

kotlin does this exact same thing

lavish frigate
#

what if i want to inherit something and its in a library and the author forgot to add the open keyword

native spruce
#

fork it

lavish frigate
#

idgi what problem does not allowing inheritance by default solve

frosty obsidian
#

depending on the circumstance that would just be bad api design

#

ideally there would just be an interface or abstract class you can use

spark tiger
#

oh god it’s using that chinese github

frosty obsidian
#

no way

#

the Chinese company is using a chinese service?

#

why am i being mean

native spruce
#

in swift its a bit complicated (depending on the type of project, xcodeproj/swiftpm), you can inheret classes from your own scope without explicitly needing an open keyword (theyre open by default) but when it comes to using them outside of your defining module theyll need to be explicitly marked as open

frosty obsidian
#

in kotlin we have sealed classes for that

#

the module can inherit but outsiders can't

spark tiger
native spruce
spark tiger
frosty obsidian
#

i think they're borrowing a lot from kotlin regarding classes and inheritance

lavish frigate
#

crazy

#

now the chinese dont even have to put in any effort into obfuscating their spyware

frosty obsidian
#

this is likely only gonna be used on Huawei phones

#

Harmony OS specifically

#

since they ditched android

spark tiger
# lavish frigate

wouldn’t be like really easy to decipher considering this all language is open-source?

lavish frigate
frosty obsidian
#

its definitely a mashup of popular programming languages

lavish frigate
#

even has the build.cj

#

CJ

native spruce
#

@lavish frigate

lavish frigate
#

ASJNF ASDOJNIKGFASDNJOKFJOAKNSD NO WAY

lavish frigate
lavish frigate
#

THEY HAVE RUST MACROS

#

at least they are mostly copying the good parts of the languages

jade stone
#

python2 wires