#development

1 messages Β· Page 270 of 1

frosty gale
#

oh well i'll get the cheapest one and see how things go, i dont need strong cpu performance anyways

quartz kindle
#

but yeah europe hosts are much cheaper for some reason

neon leaf
#

There is a simple reason

#

Noone has a true monopoly

#

There's so much competition

quartz kindle
#

datalix still has these lol

neon leaf
#

Yep and they aren't even the cheapest you can get

#

Datalix is still pretty expensive

quartz kindle
frosty gale
#

oh hetzner blocks outbound SMTP dont they

neon leaf
#

Nah there are some hosts that are German only

quartz kindle
#

ah

neon leaf
frosty gale
#

that unblock request was easy lol

surreal sage
#

Has anyone here used Minio with Loki?
Struggling badly with creating a config atm

frosty gale
#

nice

#

i think its because ive had my account for a while and verified my ID as well since they forced me to

#

so i dont need to get manually approved

neon leaf
#

Ye

acoustic bough
neon leaf
#

If you already paid some bills unblocking ports is easy

#

Same for verified id

#

Lucky for me I never had to verify Id because I live in germany

deft wolf
#

I recently wanted to pay for a server and somehow I have 50TB of traffic on my server without buying any add-ons weirdsip

acoustic bough
#

they gave 50tb to anyone that was at a specific data center location due to some migration related downtime

#

iirc

deft wolf
#

It's strange because I didn't get any email or anything like that

acoustic bough
#

hm

neon leaf
#

Most of it is announced in the discord

deft wolf
#

πŸ’€

#

This is the first time I hear about its existence

acoustic bough
#

i need to get more ppl to use my affiliate o I can pay my server just with them again pain

frosty gale
#

i swear backups in hetzner are a scam

#

if you just take a snapshot once a week or more often you save so much money

solemn latch
#

I just realized what I'm paying for all my VPS's, I need to just combine them all.

quartz kindle
#

any benchmarks for this one?

solemn latch
#

Its on the list to check it.

I'm also looking at CCX13 on hetzner

#

We need a thread dedicated to VPS's

neon leaf
#

I should probably look into saving some money too

#

im spending 200€ per month on servers

quartz kindle
solemn latch
#

I just realized I have 5 VPS's

I can combine most of them to something way more reasonable.

quartz kindle
#

i recently canceled galaxygate, so im only paying for hetzner rn

#

and google, but google is like a few cents per month

solemn latch
#

Yeah, I'm still paying for their $10 lightning.

#

I dont even know whats on that server.

#

I really messed up, I have VPS's with no notes on whats on what.

neon leaf
#

part of the problem is this but its not like I can remove any here

solemn latch
#

There might be litterally nothing on my GG VPS

#

I might just move everything to hetzner since I know hetzner

#

I just wish hetzner had US based ARM with dedicated cores.

I'd buy that instantly

neon leaf
#

I just moved most stuff home ~1.5years ago

#

but homeserver is getting full and I still dont have fiber

solemn latch
#

This week I'm just going to figure out what each server is doing and build a plan to combine everything.

quartz kindle
#

spicy

solemn latch
#

It doesnt seem to be much faster than the hetzner ones

quartz kindle
solemn latch
#

their dedicated vcpu does

#

i cant find the 7002's

quartz kindle
#

yeah but its 40+ bucks

solemn latch
#

or their stats

#

$15 πŸ‘€

quartz kindle
#

AMD Milan EPYCβ„’ 7003 and AMD Genoa EPYCβ„’ 9654

solemn latch
#

idk how much slower the 7003 is though

quartz kindle
#

which one is which?

solemn latch
#

I think its random πŸ‘€ idk

quartz kindle
#

that makes no sense lol

solemn latch
#

i know

#

I'll ask their support later

#

I cant find the 7003 on cpubenchmark

quartz kindle
#

its a series, not a single cpu

#

its from 72xx until 79xx lol

solemn latch
#

so it means litterally nothing, fun

quartz kindle
#

exactly

#

its bullcrap marketingt

#

also, what do thyey use in the netcup shared cpu vps?

#

is it the same cpus as the root servers?

solemn latch
#

I dont see anything listed

#

they dont even list ddr version

quartz kindle
#

more bullcrap marketing

#

:^)

#

thats why we need benchmarking

slender wagon
#

is it possible to send a ephemeral message when someone's message is deleted?

real rose
#

not afaik

#

needs to be an active interaction

slender wagon
#

aha ok, ty

burnt haven
solemn latch
#

hetzner

burnt haven
solemn latch
#

dedicated cores are more expensive

burnt haven
#

For more profit

#

& only 8-16 Gb dedicated

solemn latch
#

πŸ‘€ whos your host?

solemn latch
pearl trail
#

isn't that still hetzner? neko_think

pearl trail
#

anyone encountering this on azure portal?

pearl trail
#

ok sorry, my clock was off

dense solstice
pearl trail
#

yep, i synced my time

dense solstice
pearl trail
#

thanks :D

prime cliff
#

Azure is so amazingly broken and weird all the time it's a wonder how companies even put up with it

#

One time i managed to change a setting on the azure directory for internal users that somehow broke my main email account being able to login to the portal.

Tried twice to get support to fix it but they couldn't verify i owned the directory even though it's tied to my email account wtf.

I gave up after a month or two but then discovered a really fking weird mechanic of azure directory.

The first internal user of the directory gets assigned a main_email#internal@onmicrosoft.com and doing a password reset on that forwards it to your main email address and was able to login that way.

pearl trail
#

aww, but tbh in my experience, their support is like the best. they respond fast (1-3 days) and is very polite

lyric mountain
#

something something better support

solemn latch
#

I think people get confused about raw cpu core count and ram. Higher number doesnt mean better. I find it intresting how many people just go for specific core counts and amount of ram rather than the quality of the cores/ram/networking/disk.

quartz kindle
#

i went for hetzner specifically because of disk speeds

#

since i need fast file io

#

benchmarks got me ~1.5 gbps disk reads

#

on galaxygate it was ~400mbps

#

and the google free vps is like ~50mbps

#

lmao

solemn latch
#

I hate leaving galaxygate behind 😦

I really like their staff

spark flint
#

its one of the best value hosts icl

burnt haven
#

8 gb ram

spark flint
#

which host

#

because that with hetzner is $7.14

burnt haven
burnt haven
#

Didn't check 🀑

spark flint
#

with one of the hosts i use

#

its ~$6

burnt haven
#

50 Gb nvme ._?

spark flint
#

nvme

burnt haven
spark flint
#

NVM Express (NVMe) or Non-Volatile Memory Host Controller Interface Specification (NVMHCIS) is an open, logical-device interface specification for accessing a computer's non-volatile storage media usually attached via the PCI Express bus. The initial NVM stands for non-volatile memory, which is often NAND flash memory that comes in several physi...

burnt haven
#

But 50 Gb only

spark flint
#

thats not bad

#

their full plans

burnt haven
#

My autocorrect

#

🀑

spark flint
#

their other company

burnt haven
spark flint
#

any server is a python server when you install python

spark flint
#

you could go for a $2.99 plan

#

which would do what you need

burnt haven
spark flint
#

idk then

#

i dont use python and i just host stuff myself

solemn latch
burnt haven
#

I have not renewed it for last 3 months

solemn latch
#

ah

#

@quartz kindle I always lose the command, whats the benchmark command?

I'll check the hetzner one today.

spark flint
#

hetzner auction servers are actually insane icl

solemn latch
#

I hate how much more expensive they are now 😦

spark flint
#

if i had to build an infrastructure from scratch with like $150 budget that needs to scale, i'd go for 5x these lol

spark flint
solemn latch
#

Its that time of year though, they'll be cheaper late summer.

#

You get locked in with auction iirc

spark flint
#

in the last 2-3 years its gone up like 5eur a month

#

yeah

#

they only increased when they had to

solemn latch
#

yeah, but new ones are more expensive. the 5900x servers were dirt cheap

spark flint
#

yeah

solemn latch
#

should have gotten one at the time 😦

spark flint
#

tbf their new servers are insane

#

like this

#

for the price

solemn latch
#

if only they existed in the US 😦

#

one day

pearl trail
#

their singapore is $10 more lmao, and 10TB -> 1TB bandwidth

solemn latch
#

I swear I found a host that did singapore for $5 a month. it was a dedicated server. Wild

#

I just couldnt justify the location.

solemn latch
#

Yep thats the one I was thinking of

quartz kindle
pearl trail
#

time to benchmark my pc

solemn latch
#

good idea, I'll benchmark mine even though I have 40 different things open right now

pearl trail
#

lmao

solemn latch
#

geekbench is too slow 😦

pearl trail
#

do you use wsl or native linux?

solemn latch
#

native, I just mean it takes too long.

#

Heres my important stats

quartz kindle
solemn latch
#

my pc

quartz kindle
#

ah xd

solemn latch
#

I feel like my drive should have been faster. But oh well

#

I got frustrated with docker, so I'll test the hetzner one real quick

#

❀️ hourly billing

earnest phoenix
solemn latch
#

Lets see how this goes ^-^

pearl trail
#

lmao (the disk is my external drive)

solemn latch
#

Fresh hetzner CCX13 @quartz kindle

#

πŸ‘€ this looks awful, am I crazy?

#

3 servers tested
Left: Hetzner CPX11 5.09/mo

Middle: Hetzner CCX13 12.99/mo

Right: Galaxygate lightning 4gb 10/mo

solemn latch
#

This second benchmark script is so slow πŸ˜„

#

Just sitting here watching it go.

quartz kindle
#

theres definitely something wrong with that CCX13

solemn latch
#

Yeah

#

maybe I'll just recreate it

quartz kindle
#

which location is it?

solemn latch
#

ashburn

quartz kindle
#

same as mine

solemn latch
#

you're on ccx13?

quartz kindle
#

no im on CPX11

solemn latch
#

It almost feels like you get 1 core and 1 thread

quartz kindle
#

you can open a support ticket and complain about multicore performance being subpar

#

or recreate it and try again

#

from the looks of it, CCX13 uses the same 7003 series cpu

#

and not the 9654

#

but it doesnt make sense why multicore performance would be worse than the other one with shared cores

#

also dafuq happened with the network test

solemn latch
#

The servers ded

#

I recreated it, got the same ip. Got way better performance. Waiting for it to finish the geekbench

#

(poor chat, I just want to share stats)

limpid onyx
#

What are you benchmarking?

pearl trail
#

vpses

solemn latch
#

I think I really just want the arm servers

#

but I want US

solemn latch
#

I probably should have reported it

boreal stream
#

hey guys does anyone have any idea about kubernetes
so basically i seted up a cluster with load balancer to access the web i got the cluster ip and redirected that with my domain name but now i want to add the ssl certificate anyone know about this thing?

earnest phoenix
boreal stream
#

thank you @earnest phoenix

latent marten
#

anyone using nginx proxy manager by any chance and got an issue with their ssl settings? i've set up a proxy and the moment im activating http/2, hsts and force ssl, images loading very slow. by that i mean normaly my page waits for it to load and shows the full image. after activating these options, i can watch loading the image from top to buttom, which takes around a full second ;c clearing cache doesnt work

acoustic bough
#

works for me

latent marten
#

very strange :c

#

is there a way to debug this thing?

earnest phoenix
#

isn't that because of the quality of the picture and your network not enjoying it?

lament rock
#

a <1MB image loading that slow does seem odd

#

even on slow connections

latent marten
#

nope, because i had this issue on another vps and project already but ignored it till now

lament rock
#

Does this only happen when you change nginx settings?

latent marten
#

tbf its not that slow on my other project, but i can tell its because of the ssl settings

#

yes, and i cant reverse it

#

even if i turn it off, the images load slowly. it has to do with ssl settings since i just activated it and moments befor i did with an unsafe host, it just worked fine

lament rock
#

Oh even when proxied by nginx, just unsecure still it was fine?

latent marten
#

jup, as long as no ssl was activated

lament rock
#

What does your nginx sites-enabled config look like for your website?

latent marten
#

i just re-added the proxy host and didnt activate ssl yet and the image loads just fine

lament rock
#

Without knowing what those includes have in them; This is what mine looks like for a server I run.
In particular, you may find interest in configuring your SSL.

server {
    listen 80 default_server; # [6]
    listen 127.0.0.1:80 default_server; # [6]
    server_name amanda.moe; # [1]
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2 default_server; # [6]
    listen 127.0.0.1:443 ssl http2 default_server; # [6]
    server_name amanda.moe; # [1]
    ssl_certificate /etc/letsencrypt/live/amanda.moe-0001/fullchain.pem; # [3]
    ssl_certificate_key /etc/letsencrypt/live/amanda.moe-0001/privkey.pem; # [3]
    ssl_session_timeout 1d; # [2]
    ssl_session_cache shared:MozSSL:10m; # [2]
    ssl_session_tickets off; # [2]
    ssl_dhparam /etc/nginx/ssl/dhparam.pem; # [2] [5]
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; # [2]
    ssl_prefer_server_ciphers off; # [2]
    client_max_body_size 5M;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $remote_addr;
    location / {
    proxy_set_header X-Forwarded-For $remote_addr; # [4]
    proxy_pass http://127.0.0.1:10400;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    }
}
latent marten
#

thats a big config though ^^ thanks, ill try it later

prime cliff
#

You don't need to listen on 80 if you have cloudflare since it will automatically redirect

#

Also cloudflare origin certs are better to use over lets encrypt especially because it's a wildcard cert for any of the sub domains

spark flint
#

ran nixbench on a new dedi

#

cpu

Sha256 (1x) : 675.11 MB/s
Gzip (1x) : 667.60 MB/s
AES (1x) : 954.40 MB/s

Sha256 (32x) : 12070.78 MB/s
Gzip (32x) : 6881.62 MB/s
AES (32x) : 34863.30 MB/s

disk

  1. run : 1086 MB/s
  2. run : 1107 MB/s
  3. run : 1107 MB/s
  4. run : 1090 MB/s
  5. run : 1104 MB/s
    Average : 1099 MB/s

geekbench

Single-Core Score : 9126
Multi-Core Score : 83813
Result URL : https://browser.geekbench.com/v4/cpu/18576946

host

OS : linux
Platform : ubuntu 22.04
CPU : 13th Gen Intel(R) Core(TM) i9-13900
Cores : 32
Clock : 5300 Mhz
RAM : 64038 MB

net

CDN : 105.28 MB/s
Amsterdam, The Netherlands : Failed
Dallas, USA : Failed
Frankfurt, Germany : Failed
Hong Kong, China : Failed
London, United Kingdoms : Failed
Melbourne, Australia : Failed
Oslo, Norway : Failed
Paris, France : Failed
Queretaro Mexico : Failed
San Jose, USA : Failed
Sao Paulo, Brazil : Failed
Seoul, Korea : Failed
Singapore, Singapore : Failed
Tokyo, Japan : Failed
Toronto, Canada : Failed
Washington, USA : Failed

#

good results

sharp geyser
#

Who provides the dedi?

pearl trail
#

that’s… beast

deft wolf
#

Thanks Carlos

spark flint
spark flint
neon leaf
#

why not go ryzen

spark flint
#

because this was a better deal

#

usually i'd go ryzen but this was a great deal

neon leaf
#

how much are you paying for it

spark flint
#

100usd a month

neon leaf
#

i guess fine then

solemn latch
#

;p

#

I want one so bad

neon leaf
#

arm64 is definitely something i should consider

#

would half my costs

#

dont really know if performance will be worse with stuff like postgres

slender wagon
#

question i have a couple messages i need to check every 3 minutes. What would be the best way to set this interval?

solemn latch
solemn latch
#

ARM might perform better in some scenerios

neon leaf
#

ig ill do some testing with my most common queries

#

its hourly billing anyway

#

seems to be very similar speed

#

x86

Average execution time: 0.0899 ms
root@mcjars-eu:~/mcjars-api# for i in {1..10}; do sudo -u postgres psql -d mcjars -t -c "EXPLAIN ANALYZE WITH spec_build AS (SELECT builds.* FROM build_hashes INNER JOIN builds ON builds.id = build_hashes.build_id WHERE sha256 = '770ce85ae140b88eda9e3b7b7eb66ac72b9025beef80178893b389a50cc98fb3' LIMIT 1), filtered_builds AS (SELECT b.* FROM builds b INNER JOIN spec_build sb ON sb.id = b.id OR (COALESCE(sb.version_id, sb.project_version_id) = COALESCE(b.version_id, b.project_version_id) AND sb.type = b.type) WHERE b.type != 'ARCLIGHT' OR ((sb.project_version_id LIKE '%-fabric' AND b.project_version_id LIKE '%-fabric') OR (sb.project_version_id LIKE '%-forge' AND b.project_version_id LIKE '%-forge') OR (sb.project_version_id LIKE '%-neoforge' AND b.project_version_id LIKE '%-neoforge') OR (sb.project_version_id NOT LIKE '%-fabric' AND sb.project_version_id NOT LIKE '%-forge' AND sb.project_version_id NOT LIKE '%-neoforge'))) SELECT *, 0 AS build_count, now()::timestamp as version2_created, '' AS _version_id, 'RELEASE' AS version_type, false AS version_supported, 0 AS version_java, now() AS version_created FROM spec_build UNION ALL SELECT x.*, mv.* FROM (SELECT * FROM (SELECT b.*, count(1) OVER () AS build_count, min(b.created) OVER () AS version2_created FROM filtered_builds b ORDER BY b.id DESC) LIMIT 1) x LEFT JOIN minecraft_versions mv ON mv.id = x.version_id;" | grep "Execution Time" | awk '{print $3}'; done | awk '{ sum += $1; n++ } END { if (n > 0) print "Average execution time: " sum / n " ms"; }'
Average execution time: 12.4211 ms
root@mcjars-eu:~/mcjars-api#

aarch64

Average execution time: 0.0927 ms
root@mcjars-eu-testing:~# for i in {1..10}; do sudo -u postgres psql -d mcjars -t -c "EXPLAIN ANALYZE WITH spec_build AS (SELECT builds.* FROM build_hashes INNER JOIN builds ON builds.id = build_hashes.build_id WHERE sha256 = '770ce85ae140b88eda9e3b7b7eb66ac72b9025beef80178893b389a50cc98fb3' LIMIT 1), filtered_builds AS (SELECT b.* FROM builds b INNER JOIN spec_build sb ON sb.id = b.id OR (COALESCE(sb.version_id, sb.project_version_id) = COALESCE(b.version_id, b.project_version_id) AND sb.type = b.type) WHERE b.type != 'ARCLIGHT' OR ((sb.project_version_id LIKE '%-fabric' AND b.project_version_id LIKE '%-fabric') OR (sb.project_version_id LIKE '%-forge' AND b.project_version_id LIKE '%-forge') OR (sb.project_version_id LIKE '%-neoforge' AND b.project_version_id LIKE '%-neoforge') OR (sb.project_version_id NOT LIKE '%-fabric' AND sb.project_version_id NOT LIKE '%-forge' AND sb.project_version_id NOT LIKE '%-neoforge'))) SELECT *, 0 AS build_count, now()::timestamp as version2_created, '' AS _version_id, 'RELEASE' AS version_type, false AS version_supported, 0 AS version_java, now() AS version_created FROM spec_build UNION ALL SELECT x.*, mv.* FROM (SELECT * FROM (SELECT b.*, count(1) OVER () AS build_count, min(b.created) OVER () AS version2_created FROM filtered_builds b ORDER BY b.id DESC) LIMIT 1) x LEFT JOIN minecraft_versions mv ON mv.id = x.version_id;" | grep "Execution Time" | awk '{print $3}'; done | awk '{ sum += $1; n++ } END { if (n > 0) print "Average execution time: " sum / n " ms"; }'
Average execution time: 10.5827 ms
root@mcjars-eu-testing:~#
solemn latch
#

is the arm server cheaper?

neon leaf
#

yes, half the price for same amount of ram but one less core

solemn latch
#

the second execution seems to be a measurable improvement.

neon leaf
#

arm is a CAX11, x86 is a CPX21

#

(hetzner)

#

im probably gonna switch, then I can also add a new location

solemn latch
#

@quartz kindle hetzner told me its because I got a 7003 cpu on one of the instances and a 9000 series on the other...

#

that doesnt make sense.

lyric mountain
neon leaf
#

x86

Summary:
  Success rate: 100.00%
  Total:        22.8425 secs
  Slowest:      1.8352 secs
  Fastest:      0.0094 secs
  Average:      0.0570 secs
  Requests/sec: 875.5602

  Total data:   34.03 MiB
  Size/request: 1.74 KiB
  Size/sec:     1.49 MiB```

aarch64
```root@mcjars-eu-testing:~# oha http://localhost -n 20000
Summary:
  Success rate: 100.00%
  Total:        19.6447 secs
  Slowest:      0.8049 secs
  Fastest:      0.0097 secs
  Average:      0.0491 secs
  Requests/sec: 1018.0850

  Total data:   34.03 MiB
  Size/request: 1.74 KiB
  Size/sec:     1.73 MiB```
#

very interesting

#

on some endpoints its double as many req/s as on x86

#

I guess this will be getting deployed tomorrow

prime cliff
#

Why are you querying localhost xD

solemn latch
#

Not testing the networking, testing the hardware.

slender wagon
#

well an embed to be more precise

#

wait no

#

i will be updating the embed every 5 minutes or so

solemn latch
#

Is this a big bot? if its only one server can you enable message intent.

slender wagon
#

what am i saying

solemn latch
#

get events when it changes

slender wagon
#

not even that

#

sorry

#

so

#

i just check the db every 5 minutes

#

but i was just wondering if i should do it with a timeout or how

solemn latch
#

so you're checking your own db?

slender wagon
#

i could use a setinterval or a timeout

#

not sure which one to chose

slender wagon
solemn latch
#

with such few queries I'd poll it with an interval.

If your database supports pub/sub I think thats the way to go

slender wagon
#

i will look into that last option

#

cuz the bot could grow

#

im using postgres combined with prisma

#

now that part i set a side for the moment.
Now i was looking into a feature i am making.
Some users request access to certain channels which sends a message to the creator of the channel to accept the join request.
Should i just insert the user id thats requesting access in the "accept button"

#

like custom_id
allow_join_{userId}

#

thats gonna save me much more time and space since i don't have to generate a custom id and use the statemanager like i do with the other complicated interactions

solemn latch
#

Thats how I'd handle it.

slender wagon
#

just gotta update the handler, once again

#

am i doing too much or overcomplicating things here?

#

i made handlers for each interaction

solemn latch
#

Pretty normal by todays standards.

prime cliff
#

This is tested with a c# asp.net api app

neon leaf
#

ye i wont bother rewriting for now

slender wagon
#

uhh

#

people can intercept interactions?

neon leaf
#

ye

#

you always need to validate data

slender wagon
#

thats fucked

neon leaf
#

I personally encrypt it using a predefined hash + guild id

slender wagon
#

i always though discord handled that in the backend

#

i guess im stupid

#

in this case it doesn't matter much cuz i still verify who is clicking the button

#

that u cannot intercept since it requires someone's session right?

neon leaf
#

ye

prime cliff
#

Best practice is to never trust the client always do server side checks explicitly

slender wagon
#

thing is i never knew these would go through the client

#

ik that sounds stupid

#

i just never looked into interactions

neon leaf
#

it doesnt sound stupid

#

I thought the same

#

discord should really do this in backend

#

but oh well

slender wagon
#

fr

neon leaf
slender wagon
#

im gonna look into that ty

sharp geyser
#

Since I havent been in the bot dev scene in a while

#

why does it matter

#

What can someone do by intercepting the interaction? Reply back to it themselves? I mean if they have the interaction data the id doesn't matter no?

delicate zephyr
#

they could store the data, manipulate the data and provide incorrect values etc

sharp geyser
#

I mean sure

#

But..again what can you do about it?

delicate zephyr
#

I mean, discord signs the request afaik

#

thats how

sharp geyser
#

From my understanding an ecnrypted ID wont solve anything

delicate zephyr
#

getting up the docs

#

they have security headers

sharp geyser
#

Understandable

delicate zephyr
sharp geyser
#

Isn't that something discord handles tho?

delicate zephyr
#

they even do it for you

delicate zephyr
#

unless you use the gateway

#

then it's handled like a gateway event

sharp geyser
#

Why are they giving the power to the end user

#

Thats just opening up problems no?

delicate zephyr
#

The easiest way to explain it

#

is like an SSL certificate

#

Discord provides a signature in the request in the HEADERS when they send the request to your web server. This uses your PUBLIC_KEY and the rawBody

if the body doesn't match the same at what discord sent it wont be valid

sharp geyser
#

I see

#

I guess that makes sense

delicate zephyr
#

The signature is like an advanced Authorization header just based on content and key

sharp geyser
#

Since at the end of the day its being sent through discord and relayed back to you

#

so you have to verify its coming from discord and not someone sending it themselves

delicate zephyr
#

Yup, you got it

sharp geyser
#

I still think that its a stupid situation to even have possible but what else can they do

#

Since interactions don't rely on the gateway to function afaik

delicate zephyr
#

No but they send user data with interaction requests

#

they send message data too etc

sharp geyser
#

They send message data?

delicate zephyr
#

like the interaction object

#

hold on

sharp geyser
#

I havent used interactions in forever so I honestly wouldnt know

#

I used em when they were initially released

long marsh
sharp geyser
#

I dont make bots

#

anymore

long marsh
#

I just maintain one bot at this point haha

harsh nova
#

There's also a sometimes set message property in the interaction body but I've not the slightest what that is

lament rock
#

If they send you the OP while interactions are incoming*. By the time you're resumed and Discord sends you the events you missed which would include interactions, they're already expired

radiant kraken
#

thanks clang-format

sharp geyser
#

why is it a bunch of 64s

radiant kraken
sharp geyser
#

W

radiant kraken
#

thanks for the prettier code Ok_hand_AE

#

much better to look at

earnest phoenix
#

what on earth is that

#

no wonder cpp code looks horrible and unreadable sometimes

neon leaf
#

hi @solemn latch this is perfect for u

solemn latch
#

Hell yeah

#

Thanks for the gift card @neon leaf

neon leaf
#

np

frosty gale
#

some of the slightly odd and unintuitive operators in the newer standard also make it look a lot more scary to beginners but in reality its just a better version of very clean C code

hexed ocean
#

Hello guys, anyone can help boost my server members?

sharp geyser
#

no

radiant kraken
#

no

neon leaf
#

no

earnest phoenix
#

no

elfin helm
#

no

regal otter
#

yes

#

for $50000

neon leaf
#

theres no way this is the indended way

use utoipa_axum::{router::OpenApiRouter, routes};

use super::State;

mod index {
    use crate::{models::Extension, routes::GetState};
    use utoipa::ToSchema;

    #[derive(ToSchema, serde::Serialize)]
    struct Response {
        success: bool,
        extensions: Vec<Extension>,
    }

    #[utoipa::path(get, path = "/", responses((status = OK, body = inline(Response))))]
    pub async fn route(state: GetState) -> axum::Json<serde_json::Value> {
        axum::Json(
            serde_json::to_value(&Response {
                success: true,
                extensions: Extension::all(&state.database).await.unwrap(),
            })
            .unwrap(),
        )
    }
}

pub fn router(state: &State) -> OpenApiRouter<State> {
    OpenApiRouter::new()
        .routes(routes!(index::route))
        .with_state(state.clone())
}
lyric mountain
#

@solemn latch

sharp geyser
#

@zinc fable

lyric mountain
#

how ironic

sharp geyser
#

Start the timer

#

who gets here first

solemn latch
#

derek is afk

#

😦

sharp geyser
#

Oh

#

L derek

lyric mountain
sharp geyser
real rose
#

hello chat

forest oasis
#

Hi everyone guys, please explain to me (And better show an example) how a simple API works in order to get the votes of your bot, I have not been able to understand why nothing works for several hours, installed topggpy version 2.0.0a0 and still get some errors that I can't even find on the Internet, tried different ways, but I don't need too complicated ones, I don't have a server and as far as I understand, I need them for webhooks, I need simple python code to get voice data

solemn latch
#

why do you need vote data for voice?

forest oasis
# solemn latch why do you need vote data for voice?

I'm sorry, I use a translator, so maybe I made mistakes. I want to get information about when people vote for my bot on top.gg, but I don't need a webhook, not a way through aiohttp, but simply getting data about votes for my bot in json format, if possible. I have worked with some APIs and have not yet encountered such difficulties in handling...

#

My idea is to just get this data and give out some kind of game currency for users who voted for my bot.

solemn latch
forest oasis
#

I've already read a bunch of text from all these documents... And I realized that a webhook needs its own server, which I don't have yet, I wanted to implement it in my own way and it's easier for me to work with the json format, as far as I understand, I won't be able to receive data so easily?

solemn latch
#

You can fetch the data using get_user_vote, but you wont receive an event when someone votes. So you'll need a command for them to claim the reward.

forest oasis
#

Now checked after your hint and probably understood how it works. That is, a person will vote for my bot and he will need to enter, for example, the /checkrewardvote command, which, through calling the get_user_vote and passing the ID of this user, will check whether this user voted for my bot today, I understand correctly?

solemn latch
#

yep!

forest oasis
# solemn latch yep!

The last question, I apologize for my stupidity, will it work the same daily for users right? That is, they will be able to receive a reward once every 24 hours? Or will I already have to implement this somehow inside the bot?

solemn latch
#

You'll need to track whoever you've already given a reward for.

Users can vote once every 12 hours, so you'll want to make sure they havent already claimed it recently.

forest oasis
#

Again, thank you so much

earnest phoenix
#

dont yall love how, when you fix one bug right. 13 others just spawn in

wheat mesa
#

no lies no deceit, just wire this Bitcoin wallet!

prime cliff
#

Hmm i might think about creating an adventure game bit like stardew valley but more action/adventure mechanics similar to harvestmoon where it has spirits.

The first colored rings being ligh, earth, water, dark, fire and air spirits that unlocks basic game mechanics and then the outer ring being the text messages with more advanced stuff.

The spirits can also unlock extra perks and buffs like a tech tree for each spirit.

crystal wigeon
#

does anyone know how i can like extend a type from a module? to include one of my customer types?

#

const user = type("string.base64");```

I have this module called arktype. and im trying to add a `string.hex` type
#

that way i can do something like that
const user = type("string.hex")

solemn latch
#

If it doesn't you'll likely need to use Arktypes infer method, then just union them together.

crystal wigeon
#

I’m trying to extend the module to add my custom type

solemn latch
#

You're extending arktypes types?

crystal wigeon
#

just arktype

#

i think arktypes is a different module

solemn latch
#

Then I assume it's just &

crystal wigeon
#

const hex = scope({
    root: type("string").narrow((str, ctx) =>
        /^[0-9a-fA-F]+$/.test(str) ? true : ctx.mustBe("a valid hexadecimal string")
    )
}, {
    name: "string.hex"
}).export();

declare module "arktype" {
    interface wrapped extends Ark.wrapped {
        hex: string
    }
}
#

the type method has a couple of defs. im trying to extend that to also include string.hex and i need to give it a validator

#

so in theory the expected outcome is

const hex = type("string.hex")

#

they have this

solemn latch
#

So you're adding a validator too?

I think you might just want to make a PR to their github at that point.

crystal wigeon
crystal wigeon
#

i see type has like 4 defs

#

type<"string.hex", Type<never, {}>>(def: "'string.hex' is unresolvableβ€Š"): Type<never, {}> (+2 overloads)

#

when i click on type this is what i see

solemn latch
#

Since I have never heard of arktype I'm not really sure.

If you only are performing this validation a few times just use 'string' and do the hex checks in .narrow

crystal wigeon
#

like im trying to add an overload

solemn latch
#

I don't think you're extending a type here, you're creating a new constraint in arktype

crystal wigeon
#

right

solemn latch
#

If you're just looking to extend arktype does that with unions.

crystal wigeon
#

but it doesnt give me auto fill like type(string.hex)

#

i did something like this for my discordjs

#

now i can access sendMessage anywhere by using discordjs lib methods

solemn latch
crystal wigeon
#

like im trying to create my own def and add it as a overload

#

if that makes sense

solemn latch
#

But it wouldn't actually do anything if you added just the type.

crystal wigeon
#

that way if someone types type(string.hex) my method gets executed

#

yeah i need to add the method i know

solemn latch
#

I think you need to edit arktype codebase to do that.

#

I can't see anything suggesting you can add your own constraints any other way.

crystal wigeon
#

hmm,

solemn latch
#

Other than .narrow

crystal wigeon
#

but i could add my own method to discord lib and use it in my project no

solemn latch
#

Because it's just types

crystal wigeon
#

i implemented them

#

so now i can use message.sendMessage() without issues

#

message object is from discord lib. i extended it to add my custom method

#

i added the type for typescript to be able to compile it. for it to know these methods are accisible

#

tryna do the same with arktype

solemn latch
#

You could try, but I don't think extending this way Arktype will be reliable. But you just showed how you can do it.

#

I'd still really recommend forking over extending here.

crystal wigeon
#

hmm

solemn latch
#

Or using .narrow(the proper way)

crystal wigeon
#

im not sure how to add another overload method to existing one

#

cause type has 4 defs. you can use type in 4 diff ways.

type({ name: "string" }) or type("string") etc

#

i just need to add another def where its hard coded type(string.hex) and then i add my validator there

#

idk if im making sense here

solemn latch
#

You are, I just don't understand why narrow doesn't work if this is a small project. Thats exactly what this is for.

#

Adding your own validators

crystal wigeon
#

narrow works. but its like an assignment XD and they said i gotta make it work with how its similar to string.base64

solemn latch
#

Ah, your working on someone elses stuff?

crystal wigeon
crystal wigeon
solemn latch
#

So they want you to fork it?

crystal wigeon
#

nop

#

they want me to extend the lib

solemn latch
#

Open Source Contribution, they want you to fork it πŸ‘€

crystal wigeon
#

actually im not sure. cause forking it makes it easy. i know where to add everything

#

flork_think hmmmmmm

solemn latch
#

Lmao

crystal wigeon
#

its 2 line change if i fork it lmao

solemn latch
#

Well that whole conversation was a waste of time

crystal wigeon
solemn latch
#

πŸ˜„

crystal wigeon
#

i mean im just thinking are they this dumb to give an assigment thats 2 line changes?

solemn latch
#

Yeah

crystal wigeon
#

kekcry makes no sense

solemn latch
#

Oh well

crystal wigeon
#

or maybe i overthinking it

#

i was like "if i fork it its 2 line changes. why would they make the assigment so easy"

solemn latch
#

It seems to not be a coding question, more of can you understand other peoples work question

craggy pine
#

Question: When using discord.js' autoComplete, I noticed when I am setting the result to a variable, the name is being set but not the value. I recalled that it's suppose to set the value and I was wondering if anyone knew why this was happening.

                //the subcommand
                {
                    name: 'playsong',
                    category: "Playlist",
                    description: 'Play a specific song in your selected playlist',
                    type: 1,
                    options: [
                        {
                            name: 'user',
                            description: 'The user who owns the playlist you want to play',
                            type: 6,
                            required: true
                        },
                        {
                            name: 'playlist',
                            description: 'The playlist that has the song in it',
                            type: 3,
                            required: true,
                            autocomplete: true
                        },
                        {
                            name: 'song',
                            description: 'The song in the playlist',
                            type: 3,
                            required: true,
                            autocomplete: true
                        }
                    ]
                },
//the returned values
await interaction.respond(choices.map(choice => ({ name: choice.title || choice.song_name, value: choice.playlist_id || choice.song_url })));
//variable set
const song = interaction.options.getString('song');
console.log(song);
//console logged: Green Day - Boulevard Of Broken Dreams (Cover By 2 Shadows) (the choice.song_name not choice.song_url)
pearl trail
#

C# users, do you prefer
A: List<PageBuilder> pages = [];
B: var pages = new List<PageBuilder>();
?

prime cliff
#

ThonkWhat they are both the same type though

pearl trail
#

yeah lmao, just asking opinion

#

since i upgraded my net to 9.0, my rider recommends me to use var instead of type, but for that specific case, i can do both

#

@hidden gorge what about access

hidden gorge
#

i opened error.log

crystal wigeon
pearl trail
#

oh it's really just log

hidden gorge
pearl trail
hidden gorge
pearl trail
hidden gorge
pearl trail
#

or use -k option, i've never used proxy to https with nginx so i might not know

hidden gorge
#

curl aint working

#

i opned it on my browser

pearl trail
#

curl -k https://172.96.141.177:9000, that should bypass ssl

pearl trail
#

is the nginx running in the same machine with the 172.96.141.177:9000 ?

hidden gorge
#

yes...

pearl trail
#

try use proxy_pass http://127.0.0.1:9000

hidden gorge
hidden gorge
pearl trail
#

in where you set that proxy_pass

hidden gorge
#

done

hidden gorge
pearl trail
#

nginx -s reload and try curl -vvvv http://localhost/ again

hidden gorge
hidden gorge
#

thats http

pearl trail
#

with your previous method, you're doing this, which i'm pretty sure not good. you want nginx to directly access the project server if possible using localhost

hidden gorge
#

i do not understand that

pearl trail
#

ok, try this sudo lsof -i :443, to find is nginx listening to 443 or not

pearl trail
#

oye well nginx isn't listening to 443

#

do you listen to 443 in your nginx proxy config?

hidden gorge
pearl trail
#

yes don't do that, nginx is already running with systemctl

hidden gorge
pearl trail
#

well you should listen to that, if you want to use ssl. in your proxy config, add

listen 443 ssl;
listen [::]:443 ssl;
#

and reload

hidden gorge
#

in the default?

pearl trail
#

yes

hidden gorge
#

no change... :{

pearl trail
#

if still nothing, restart nginx

hidden gorge
#

yeah nothing

pearl trail
hidden gorge
#

ok

lyric mountain
#

upgrade? are u setting up websockets?

hidden gorge
#

huh

lyric mountain
#

this is for websockets

hidden gorge
#

idk i was just told to add it..

#

i'll be back im gonna go take a break so i dont have a breakdown

lyric mountain
#

this is the config for my bot's site

pearl trail
#

php UmaruScary

deep cedar
#

Yall good?

hidden gorge
solemn latch
#

its a redirect

sharp geyser
#

port 80 = http
port 443 = ssl (https)

hidden gorge
#

oh

lyric mountain
#

it's just so people dont access through http, to enforce https

#

u can do that on cloudflare too, I just do it on nginx side cuz it'll be global

frosty gale
#

im wondering what everyones use case for cloudflare is nowadays

#

i used to use it for all my sites but realised i absolutely dont need it

harsh nova
#

heavily considering making my next site using some sort of php framework

solemn latch
#

I think that's the bulk reason

prime cliff
#

vibecat Got most of the docker features working except for a few things in stacks and containers

slender wagon
#

Since im using ko-fi for memberships in my bot, i decided just to check users roles for premium.
Now my question is, should i check every 5 minutes all the members of a certain role and keep their membership boolean checked as true, or should i check their roles when they use the bot's premium features.
(The premium features can be a bit forgiving, i don't mind the users having a few minutes of extra premium time)
-# i cant use stripe or patreon

digital swan
#

Kofi has a webhook feature

#

For renew / subscribe / purchase

slender wagon
#

icba honestly this is why i went with this two options

#

the bot is only going to be in one massive server

digital swan
#

Well speaking from experience I used to use roles to manage it too and it just felt like such an unstable system

#

I spent a day figuring out how to do handle the webhook and building out my own system to handle expirations and stuff and it worked and felt much better

slender wagon
#

would it be more than a day?

digital swan
#

Depends on your experience

slender wagon
#

no sorry, would it be more than a day that patreon wouldn't update the users role?

#

since my premium features would only be 2 commands which have long gaps in between

#

its not rapid usage

digital swan
#

Oh I’m not sure

quartz kindle
#

ie ddos protection, etc

#

but yeah you absolutely dont need it, plus more often than not it gives you more issues than it solves

frosty gale
#

i think hetzner does

#

if you dont pay for extra ddos protection galaxygate null routes your servers ip so if you want free ddos protection i guess

#

although i cant imagine it would be too difficult to accidentally leak a servers IP

prime cliff
#

Cloudflare is more than just about security though xD you have the entire dashboard, domain registrar, free ssl cert (sub-domain wildcard), cached resources on cloudflare which is faster, API, email forwarding, dns management and custom page rules.

frosty gale
slender wagon
#

lets just say, cloudflare is not needed in most startup projects

prime cliff
#

Cloudflare also detects and blocks AI/scraper bots and common vulnerabilities too

frosty gale
#

although on the free ssl part i think by allowing the server-cloudflare tunnel to be unencrypted promotes being lazy, it defeats the whole point of TLS if the part between cloudflare and your server is unencrypted traffic

lament rock
#

Some services only provide DDoS up to a certain amount of bandwidth. Which may never be reached by most people. Though CF is a global solution and their bans/rate limits would affect not just some small site but rather even if someone chooses to attack a small site protected by CF, they'd get bonked everywhere

frosty gale
#

though i know they offer using your own certificate to encrypt traffic between cloudflare & site

frosty gale
prime cliff
frosty gale
#

thoguh i know they have the full mode as they should have

lament rock
#

Nginx does something similar, no?

#

Why is this any different

frosty gale
#

in nginx traffic is usually routes unencrypted locally which is ok and secure enough

prime cliff
#

Cloudflare is the proxy rather than traffic going directly to your server/nginx

frosty gale
#

as soon as you exit your server your traffic can get intercepted and eavesdropped on

prime cliff
#

If you have the firewall setup right you can block all traffic (aside from your own ip) and then add a cron script to automatically add cloudflare ips with port 443 to firewall

lyric mountain
#

That block isn't needed, but doesn't hurt to have either

hidden gorge
#

any good data services other then MongoDB for Web Uses?

wheat mesa
hidden gorge
#

what would be the best

wheat mesa
#

You can use anything for that

hidden gorge
#

ok

wheat mesa
#

If you’re looking for SaaS solutions, supposedly DynamoDB is pretty easy

wheat mesa
#

Never used it tho

#

Software as a Service

#

Like AWS & cloud stuff

hidden gorge
#

i dont even understand

wheat mesa
#

I prefer self hosting most personal projects

hidden gorge
#

im probably gonna self host the Database

wheat mesa
#

If you’re looking to self host your database, Postgres is probably the way to go

#

Easy to set up with docker

#

Supports ARM-based hardware natively

hidden gorge
#

do i gotta restart my vps istg

#

nooe

#

this annoys me

#

ok wtf now nothing is installing

#

oh

wheat mesa
#

Follow Postgres’s installation guide

#

Should be easy. Even easier if you just use their docker image

hidden gorge
#

well wtf is my pass

#

found it

#

mb im very stupid

wheat mesa
hidden gorge
#

ok postgres broke my damn vps

wheat mesa
#

Postgres didn’t break anything

#

You broke it :p

hidden gorge
wheat mesa
#

Somehow I doubt that’s Postgres’s fault

#

One of the most widely used database packages for Linux, I’d imagine it’s pretty stable

hidden gorge
#

then again this happens when i SSH with VSC

wheat mesa
#

Then you have a terribly slow VPS

hidden gorge
#

yes ik

#

its $12 a month

wheat mesa
#

My rpi handled Postgres without a problem

#

$12/month for 2gb????

#

That’s insane

hidden gorge
#

its $8 USD

#

but im in canada

wheat mesa
#

Still

#

I’d just selfhost at that price point

#

4gb rpi is 50-60usd, and you own it forever

hidden gorge
#

dont got the bandwidth nor equipment

wheat mesa
#

Doesn’t require a ton of bandwidth, but I can understand not wanting to have it powered 24/7

#

And the setup is a bit more complex than a provisioned VPS that handles that stuff for you

hidden gorge
#

planning to soon enough actually buy a xeon server in person so i can my own VPS fully controlled by me

prime cliff
#

Most vps companies do 4 GB for $10-$12 not sure how you found one that gives less xD

hidden gorge
#

plus i need it to also manage in car stuff from away

#

so im gonna invest in a mini rack

wheat mesa
#

Crazy electricity bill

prime cliff
#

Also a bit weird how you're maxing 100% cpu on a 4 core ryzen cpu thonK what are you running

wheat mesa
#

An RPI is truly a great entry level self host, cheap to buy and super cheap to run

#

With standard electricity prices around me I think it costs me something like $20/year to run it if it was at 100% CPU for an entire year

#

Capable of hosting some basic stuff, obv not gonna handle thousands of requests per second flawlessly but it works for proof of concept stuff

#

Can easily host an ASP.NET API + Postgres db within docker containers

hidden gorge
#

1 second

wheat mesa
#

Also if you go for a xeon build I highly recommend against a windows installation

hidden gorge
#

ok so yk how police cars connect to a server to get info on a person?

wheat mesa
#

Ubuntu server is nice

wheat mesa
#

sure

frosty gale
# wheat mesa $12/month for 2gb????

to be fair with a vps you pay extra for the server maintenance, reliability, using and risking their network and ips, easy upgrades, etc
but in this case that is extremely overpriced please try hetzner

hidden gorge
#

im doing that same thing

#

basically

prime cliff
#

Why is there 2 lines on website :/

hidden gorge
wheat mesa
#

So… you’re making a webserver

hidden gorge
#

well yes

#

but im planning to have it do more things later om

#

on*

wheat mesa
#

That’s why I have my rpi

prime cliff
#

Also btw the car would usually talk to an API service either from the website or a seperate program πŸ™‚

wheat mesa
#

Temporary hosting for dev until it warrants cloud services

wheat mesa
#

Your car will never directly connect to your VPS, your VPS would expose a port that directs requests to an API that handles everything else

frosty gale
#

maybe if you isolate yourself properly

hidden gorge
#

i've been planning this for years ik how im gonna do it

wheat mesa
#

It’s not really safe to directly expose ports to the internet

#

Or well, even if it is, I’d prefer to not have my home network overrun with requests

prime cliff
#

If you need any server/linux help we could also help or i would personally help you with the nginx stuff and your cert issue

#

Since you're using cloudflare flexible personal api data and auth stuff isn't secure atm

wheat mesa
#

I should really make a portfolio

#

I hate frontend πŸ’ͺ

prime cliff
#

I've been getting better at frontend xD although i hate dealing with fonts

wheat mesa
#

Ngl you have the motivation and productivity level that I wish I had

prime cliff
#

Only just started working on it again after being ill for the last month but having a lot of C# experience helps

wheat mesa
#

Currently at work procrastinating after solving a 12 hour ticket in 15 minutes

prime cliff
#

Ticket: Why my computer no worky

wheat mesa
#

Ticket was a 1 line of code fix

#

10 minutes of debugging

#

5 minutes of branching and creating PR and reading said ticket lmao

#

At least it was C# tho

#

I hate when I have to deal with the js

solemn latch
prime cliff
#

Learning a bit of how docker works atm there is some cursed/old stuff need to figure out how to create containers and manage docker compose files in a good way and also see how Portainer does it.

#

My most annoying issue with docker is how messed up the docs and api are with different wordings and date times

#

Integer, integer 64, RFC 3339, regular date time

#

Also the fact only that one uses CreatedAt
WHY!!!

wheat mesa
prime cliff
wheat mesa
#

String with no format specified is actually diabolical

lyric mountain
#

You must wait till day 13 to know it

lament rock
#

Its the only front end templating I will ever fuck with

wheat mesa
#

Vue is the only thing I will ever accept now

#

Powerful when it needs to be, simple when it doesn’t need to be crazy

queen needle
#

i like svelte it feels like how you described vue, personally

formal grail
#

anyone got any idea on how we can make this

#

Customize bot page

lament rock
#

You'll be matching classes of the site

#

Can edit the css in your browser and I believe there's a preview button as well to see your changes without publishing

bitter granite
#

Welp i forgot and my brain cant remember

const { SlashCommandBuilder, EmbedBuilder } = require('discord.js');

module.exports = {
    data: new SlashCommandBuilder()
        .setName("credits")
        .setDescription("credits"),

    async execute(interaction) {
        const embed = new EmbedBuilder()
            .setColor(0x0099ff)
            .setTitle('Credits')
            .setDescription(`credits`)
            .addFields(
                { name: `Developer`, value: "**Developer** @bitter granite \`welper\`", inline: false },
                { name: `Creator code`, value: "**Comming Soon**", inline: false }
            )
            .setFooter({ text: `Vote at top.gg [Coming soon]` })
            .setTimestamp();

        await interaction.reply({ embeds: [embed] });
    }
};

whats the thing called for me no add userinstall

lament rock
#

So performance could be similar

#

I actually am not sure

lament rock
#

I realized you said bun and I said Node. I meant to say I believe runtimes implementing Websocket follow WHATWG

#

Since that seems to be the hip trend

lament rock
#

Wow. I tried the node built in method of running ts files. While the prospect of eliminating a build step is cool, my project had to switch from commonjs to esm since you couldn't use the import statement at all and require has no types for imported modules which blows. Then my npm module to reload files on change didn't work because they're making all properties of imports readonly. It's an Object. Just lemme mutate it ffs

#

The hot reloading of files not working was the nail in the coffin to say this sucks. I might have a work around, but god do I hate it

neon leaf
real rose
solemn latch
pearl trail
lament rock
#

Wonder if there would be any benefits to SLI 2 3090s

#

Asides for VRAM availability

#

Apparently not

acoustic bough
lament rock
#

in a later revision, they added support for enums and namespaces

neon leaf
#

i still need to get it to detect all of them

lament rock
#

I still dislike esm a lot

#

Gave me an excuse to try the esm version of a few modules

#

7h of work to just discard changes in git though

sharp geyser
#

@harsh nova Alll the 3.2 USB ports on my mb just went out

#

now I only have the high speed ones

#

Oh shit wrong channel but yea

solemn latch
#

😦

#

how did you manage that?

sharp geyser
#

No idea

#

When I restarted my pc they wouldn't work

solemn latch
#

I guess your 3.x controller died

#

F

sharp geyser
#

Maybe

#

I will have to check the mb connections

#

maybe something came lose

solemn latch
#

Get a pcie card if you have to

sharp geyser
#

Yea it should be cheap

#

I have an extra slot

solemn latch
#

I've been thinking about getting one and all mine still work anyway.

sharp geyser
#

It likely isn't dead dead

#

probably just a bad update since it happened after the bios updated

solemn latch
#

ah, yeah

#

then its savable

#

Check your bios settings, theres features that can mess with 3.x

sharp geyser
#

Yea

#

I will figure it out

#

if anything i will reach out in pc part picker discord

#

they are better equipped than me

sharp geyser
#

The only ones that work are the high speed ones

#

and the one on the case

neon leaf
solemn latch
neon leaf
quartz kindle
pearl trail
neon leaf
#

lol

frosty gale
#

and who said that isnt de-ionised water which is safe for electroncs :)

#

water itself is quite safe too its only an issue when you power it on because the water will short out stuff

solemn latch
#

its not if the surface is unclean ^-^

sharp geyser
#

Whats the real difference between REST and gRPC

#

I know one typically uses HTTP/2 vs HTTP/1.1

#

or so i've heard

quartz kindle
#

rest uses json

sharp geyser
#

Can you elaborate more? I am not too sure what using protobuf versus json is in terms of performance, useability and or reliability

quartz kindle
#

but it requires a pre-defined schema

#

ie both client and server need to load a schema file

#

then messages are encoded/decoded based on that schema

#

grpc is basically like a stack that defines a bunch of rules, including the use of protobuf for messages

#

grpc is basically using websockets with protobuf

sharp geyser
#

So, with GRPC is it still required to do stuff like end-to-end encryption yourself?

quartz kindle
#

basically wss, websocket over ssl

sharp geyser
#

Ima be so for real, I dont really know much about websockets or what not

#

I am trying to make a chat app and I want the traffic between the client - > server -> client to be secure.

#

I may sound like an idiot but I gotta ask

quartz kindle
#

well actually you dont need websocket, it uses http2 server push

sharp geyser
#

Really?

#

Dont you need websockets for real-time updates?

#

If a user sends a message every user needs to receive it

#

or at least every user subscribed

quartz kindle
sharp geyser
#

Oh?

#

man im outdated

quartz kindle
#

basically, http2 allows you to keep a connection open

sharp geyser
#

Oh thats sick

quartz kindle
#

and http2 has a feature called server-push

#

which allows the server to send something without needing a client to requiest first

sharp geyser
#

Oh cool

#

so I can send a message to every client that is / has connected to the server before?

quartz kindle
sharp geyser
quartz kindle
#

like if its on a website, the page needs to be open on the browser

sharp geyser
#

I see

#

what if I am using like a mobile app

#

and I need to send a notification about the new message

#

similar to discord

#

How its a notif like

"Server Name" - "User" : "Message"

quartz kindle
#

the connection will stay while its running

#

but if you close the app and reopen it, you will probably need to connect again

sharp geyser
#

How does discord still send notifs even when the app isn't running?

#

Like I can close discord entirely on my phone and still receive notifs

quartz kindle
#

phone push notifications is something else entirely

#

on android it goes through some google service

sharp geyser
#

Ah okay

quartz kindle
#

on apple it goes through some apple service

sharp geyser
#

Makes sense

#

I will look into using grpc then

#

Seems like it could be fun to play with

radiant kraken
#

@pearl trail do you know what i should do with this warning?

#

i don't know much about go dumb

pearl trail
radiant kraken
#

okie

#

that's it?

pearl trail
#

yes, that should be it

radiant kraken
#

thanks!!! ❀️

pearl trail
#

np!!

frosty gale
#

oh wait thats go

#

im going to guess its a memory safe language

#

continue

radiant kraken
#

dw i use both

#

and C/C++ too

#

all the pointer-based languages

frosty gale
#

rust has taught me to be a lot more careful when it comes to race conditions and thread safety in c/c++ because it yells at you when you try do something unsafe without locking

#

so the rust experience is actively paying itself off

frosty gale
#

these function names are starting to get obnoxious i need to tone it down

slender raft
neon leaf
frosty gale
# neon leaf

i hate these 1602 LCDs they draw so much standby current even when the backlight isnt on

neon leaf
#

this was so painful to code

#

it supports 8 custom chars

#

so I constantly have to swap out characters to display my dots

frosty gale
#

are you using a library for that

neon leaf
frosty gale
#

yeah a library

#

youd have an even harder time if you had to query the lcd yourself

neon leaf
#

yeah, I ordered a one-color oled, ill hope thatll give me a better experience

frosty gale
#

get a touch one its a bit more difficult since you have to deal with the touch calibration but its more fun and versatile

#

although i think there are tons of libraries that handle all that

harsh nova
#

Wayyyy better than c# / java naming conventions where it'd be called functionFactoryThatDpesStuffIdkJustImagineALongAssName()

pearl trail
#

don't forget in C#, if it's async, add Async (best practice)

pale iron
surreal sage
#

What was a good object storage provider

#

Hetzner?

warped summit
#

Ping on join & giveaway

solemn latch
#

What do you need help with?

#

or is this just an ad?

spark flint
#

just an ad

#

its their bot

solemn latch
#

@warped summit Just to be transparent. You seem to post a lot of ad content.
Showing off what you work on is fine, but the way you're going about it is closer to an ad than a 'hey look at this cool thing'

#

this is a warning for self promotion and ads

pearl trail
spark flint
#

hetzner has good s3

#

i just use cloudflares one

#

it includes their CDN for free

digital swan
#

the hetzner s3 base price turns me off

solemn latch
#

πŸ‘€ what 1tb for $5.99?

spark flint
#

lol

warped summit
sharp geyser
digital swan
solemn latch
#

Backblaze is also really really slow

#

I use backblaze right now

#

I spend more on upload than anything tbh.

#

Imo, you're trading cheaper now for more expensive the moment your egress goes up pretty much at all.

#

πŸ‘€ cf r2 is pretty neat

limpid onyx
solemn latch
#

You still do, just the egress costs are zero for the first 3x your storage.

#

so if you store 1gb you get 3gb of free upload

#

then it costs the normal rate

digital swan
# solemn latch Backblaze is also really really slow

As in like response time? What’s the difference between using backblaze with cloudflare and using cloudflare r2

I’ve got a couple different things using them both but they seem exactly the same performance wise for loading pictures at least

covert gale
#

re naming methods

#

it's usually better to be overly descriptive then under descriptive

prime cliff
#

πŸ˜„ going good so far now almost done with docker container stuff

limpid onyx
spark flint
#

its still hella slow even with cf

#

literally no advantage of using backblaze

sharp geyser
prime cliff
#

Yup although technically stacks isnt really a portainer concept more of a docker compose file