#development

1 messages ยท Page 300 of 1

long marsh
#

Nothing is wrong with it

prime cliff
#

xD

prime cliff
#

Perfect

sharp geyser
#

I am using pnpm workspaces and am running into an issue where I have shared code for the client and server in one workspace but the client/server cannot access it.

apps/server dev: src/app.module.ts:6:20 - error TS2307: Cannot find module '@shared/auth' or its corresponding type declarations.
apps/server dev: 6 import {auth} from "@shared/auth";
apps/server dev:                      ~~~~~~~~~~~~~~
apps/server dev: [12:00:09 AM] Found 1 error. Watching for file changes.
#

I gave the shared workspace it's own tsconfig

{
  "compilerOptions": {
    "rootDir": "src",
    "outDir": "../../dist/shared",
    "composite": true,
    "declaration": true
  }
}
#
{
  "compilerOptions": {
    "rootDir": "src",
    "outDir": "dist"
  },
  "references": [
    {
      "path": "../shared"
    }
  ],
  "extends": "./tsconfig.json",
  "exclude": ["node_modules", "test", "dist", "**/*spec.ts"]
}
#

I also reference the workspace in the client/server workspace

#

@lyric mountain so I might of caused an endless loop with jetbrains junie ๐Ÿ˜ญ

#

I changed the file structure in between commands/processes and now it thinks it made those changes and is struggling to figure it out

pearl trail
#

๐Ÿ’€ lmao, glad i can make mine use smaller

#

not much, 24gb ram (im broke) and 1x xeon e5-2965v3

radiant kraken
#

it's still impressive nonetheless!

#

what are you making takiyo?

pearl trail
#

nothing

#

just doing what every home labbers do xD

neon flicker
#

Is Discord bot development still an active field?

deft wolf
#

People still make bots, yes

frosty gale
#

got too serious after the bot verification and intent update

neon leaf
#

@harsh nova

harsh nova
sharp geyser
neon flicker
sharp geyser
#

It kept going "Wait, I never called any functions to change this", "WAIT WHAT IS GOING ON"

lyric mountain
#

lmao

sharp geyser
#

and it was just an endless loop of that and it analyzing the output of each step it took

#

๐Ÿ˜ญ

#

It eventually recognized it was "halucinating" the changes

#

and moved on but it went on for like 20m

lyric mountain
#

junie manages to be very human sometimes

#

and you asking it to fetch a left-handed wrench

clever tundra
clever tundra
#

a question on dashboards.... how do dashboards do it so that when you save changes on a function or smth, the page doesnt reload and yet it still just saves it
currently i have url paths to update database stuff while maintaining auth/perms etc but its neither pretty nor fun. its all done via FastAPI and IPC routes (quite frankly I dont know how it works, it was half tutorial)

yes this is a noob question yes I dont know much about web dev roast me later pls

delicate zephyr
#

depands on the framework you're using

#

a lot of people use nextjs/react with express etc to make requests when you switch tabs, it submits the data to an endpoint and saves

#

or they store it in memory to save state

clever tundra
#

im mostly talking the ones where you have to click save changes before doing anything else and then it just magically saves it without reloading or anything

delicate zephyr
#

Oh thats just it making a post endpoint using fetch

frosty gale
#

closest framework i found that abstracts and deals with that for you is remixjs but it forces you to use form posts ๐Ÿคข

clever tundra
#

I see more with it than without it

clever tundra
#

yay i made it work

regal night
#

guys I have a question Iโ€™m new to top.gg my bot just got accepted how do I have an interactive description?

#

just like evicts for example

deft wolf
#

You can use html/css in your bot's long description

regal night
delicate zephyr
#

if you ever get the chance you should look into tanstack

quartz kindle
queen needle
#

just make a theroetically page for all the data that it could be

#

if they can change a name, make a different page for every name

quartz kindle
#

SSR 4 billion pages

queen needle
#

serves faster than dynamic name too

#

for that one page

frosty gale
#

ah i assume all other major frameworks adopted the form post system, iirc remixjs was the first to do it which made me write one of my apps in it

#

or at least first major one to implement it into a framework

delicate zephyr
#

I mean not really

#

nextjs doesnt use form posts

#

a lot of the frameworks use fetch api, form posts are ancient

frosty gale
#

well im not sure if it works like a form post behind the scenes but its probably just a fetch, idea is you use a custom "form" component that will call an action handler on the server you defined in the same file, handles some errors and state refresh for you

delicate zephyr
#

thats just react tbf

#

and since remixjs is built on react it's not surprising

#

nextjs is also build on react

#

Remix and NextJs are one in the same, a framework on top of react

#

NextJS came before Remix too as far as I know

frosty gale
#

yeah nextjs came first, remixjs was supposed to be a "fresh" version of nextjs, and it did have some cool unique features at first but it looks like all major frameworks have them now

#

so im not sure how much they differ anymore syntax aside

delicate zephyr
#

I think it's literally just syntax tbf

#

also, Next is still more widely used in the job market from what I can tell

frosty gale
#

more or less yeah aside from angular based frameworks

#

those are the big 2 from what ive seen job searching

#

too bad i havent seen many jobs for svelte, friendliest one ive used and doesnt overcomplicate stuff like react does with its virtual dom

neon leaf
#

how are selfhosted github runners on windows arm64 SO BAD

#

WHAT IS THIS

#

ive spent the last 4 hours trying to get my runner to ping github

#

x86 - no issue, 5min and done

delicate zephyr
#

Why not just setup docker on arm64

neon leaf
#

arm64? hoho no, ofc not

delicate zephyr
#

and then use the docker based github runners?

neon leaf
#

not the issue

#

github is refusing the token after installation

#

every time

delicate zephyr
#

you're running into the exact issue I ended up using docker instead of because

#

not to mention it meant I could use my PAT instead of some arbitrary token. Automatically registers and handles removal of the runners when they get recreated too

#

also allowing more than 1 runner per machine

neon leaf
#

does the docker image work with native windows?

delicate zephyr
#

should do

#

Unless you mean does it have a windows based install which allows you to build using windows libraries then unlikely

neon leaf
#

yea i need to build using windows libs, the linux runners are all working fine

#

ill try 1 windows reinstall to see if that fixes anything, otherwise im just giving up on arm64 windows for now

prime cliff
#

Ah yes using windows for github runners very efficient and sane bloblul

neon leaf
#

yes

queen needle
prime cliff
#

Oh dam good point i forgot >_>

queen needle
#

Ahh lmao

prime cliff
#

๐Ÿ™‚ fixed members and done some sub-mapping types

queen needle
#

Awesome

long marsh
#

I'm thinking through an implementation right now for my discord application... it's stateless over HTTP; however, I have the need for a "/lobby" mechanism where folks can join a lobby (but it deducts from their balance ahead of time). If the host decides simply not to click "start", I need to have some sort of hook after some sort of expiry (let's say 1 minute).

What would you do?

  1. Use a message broker service (LavinMQ, net new infra for my stack) and enqueue messages for a poller service to continuously poll. (The poller will update the discord message after the fact / add the funds back)
  2. Use postgres (my database engine) and insert records for a poller service to continuously poll.
  3. Use valkey (my cache engine) and use sorted sets for a poller service to continuously poll.
#

And if there's something obvious I'm not thinking of, I'd love to hear opinions / thoughts.

prime cliff
#

If it's only 1 minute a few databases like mongodb/scylla can have rows that expire then you can listen for that change and act on it

long marsh
prime cliff
#

How come?

long marsh
#

It felt as though I'm using a drill to hammer a nail, so to speak. Postgres is a beast / can do anything ... but there's a fine line of doing everything with it lol

prime cliff
#

Can you not listen for changes on postgres or?

long marsh
#

I talked with Claude through the architecture, and it ultimately recommended the sorted set approach (where it's sorted by date) ... but meh

long marsh
prime cliff
#

You could just sort by date after utc + 1 minute yea and then delete rows that way

long marsh
#

Right, the poller would continuosly query for that particular table and "remove" games in bulk that expired.

prime cliff
#

๐Ÿ™‚ reactions and embeds data done

long marsh
#

Apparently, it's as easy as this in valkey:

// When lobby created
redis.ZAdd("lobby_expirations", redis.Z{
    Score: time.Now().Add(1*time.Minute).Unix(),
    Member: lobbyID,
})

// Worker polls every 30-60 seconds
func worker() {
    lobbies := redis.ZPopMin("lobby_expirations", 100, 
        where score < now)
    // Process refunds in Postgres
}
prime cliff
#

Yea redis could work too

long marsh
#

Redis = Valkey

#

Well, not exactly .. Valkey is a fork of redis

long marsh
pearl trail
#

yes!! easy and simple language yet powerful for cases i need

prime cliff
#

Almost done ๐Ÿ™‚

prime cliff
#

Soft-deleted channels that get archived for 7 days until delete (So they are not just permanently gone or nuked), generated user and bot avatars using parts, more split permissions such as Manage Apps and Manage Role Permissions, Group channel webhooks/apps, In-app reports with account warnings that actually work, Expired bans, In-app developers stuff and a Server mod view system.

radiant kraken
#

maybe in my next project, go will play a role

radiant kraken
prime cliff
#

A chat app which will have some nice features and fully cross-platform, older image already fixed server title alignment

radiant kraken
#

awesome!

#

what are you using?

prime cliff
#

Avalonia C#

radiant kraken
#

interesting

prime cliff
#

Already done a bit of testing and mobile improvements

radiant kraken
#

SO COOL!

frosty gale
#

id never touch that on windows with a 10 foot pole

frosty gale
#

postgres is probably ok for this but use an in-memory table since i assume you dont care about it persisting since its so short lived

delicate zephyr
#

allowing you to spin up multiple gateways across multiple machines for vertical scaling

#

we use rabbitmq for our gateway on topstats to allow us to ensure we can reboot consumers without losing events, meaning the gateway can run and we can still track events for the new servers dashboard, even if we update the consumer

frosty gale
#

yes but that only makes sense if you have multiple machines or multiple services that can also potentially dynamically spin up or down, i am assuming a very minimal setup here with only one server

delicate zephyr
#

I always just assume its going to be a wider used product unless otherwise specified

#

and preparing for scaling is never a bad idea

#

in their case, either valkey/mq is probably a better idea that postgres

#

as polling the database every 5 minutes is wasted disk hits if it can just be store in memory

#

any place you can listen for or just recieve events is better than having to hit the database continuously

frosty gale
# delicate zephyr as polling the database every 5 minutes is wasted disk hits if it can just be st...

hence why i suggested an in-memory table, but i am always heavily against preemptive scaling because you are potentially preparing for something that can never happen
usually the simplest solution unless you have a reason not to works the best, structuring your services where you can easily upgrade to a distributed layout in preparation is also really good without actually committing

but then again, if they are already using a message broker/cache then they might as well use it, my thought process was more pre-message-broker, so i would agree with you here

delicate zephyr
# frosty gale hence why i suggested an in-memory table, but i am always heavily against preemp...

I always go with pre-emptive scaling with a catch...
if it's simple to use and put in the middle of what you're already using... why not. it's a learning experience
just because it may never happen doesnt mean it wont

for example: most people just assuming you dont need to shard when making a discord bot, then get to the limit, and end up needing to either shut down the bot because the bot takes up so much resources after x amount of time because the library they use isnt meant for large discord bots, or they have to do a full rewrite whilst using 4x the resources they would have used if they decided to use something more efficient and learn

#

I refuse to use discord.js for anything that's meant to / expected to "grow" even if unlikely just as an example

#

I'll use their HTTP/API helpers, but their actual gateway / cache is wildly innefficient if you actually need the cache

#

just as an example, we cache literally everything for topstats, which to give you an overview of our infra

Gateway -> RabbitMQ -> Consumer
Interactions are HTTP based

Gateway tracks events to create server insights etc

consumers store the events in redis and then a cronjob consolidates all of those into minute based analytics and clears the keys

using a redis cache allows us to keep cache valid even after a reboot / also means we dont have to do a full gateway reboot for an update to the analytics engine

It's also just insanely more efficient, 1.1GB for about 1m cache objects

#

@frosty gale am interested to see what you think of the above btw, you opinions are pretty sound so happy to discuss LUL

radiant kraken
#

@pearl trail hey, sorry for bothering you haha but can you check dms?

prime cliff
#

Check your DMs or you'll get coal next year :p

frosty gale
# delicate zephyr just as an example, we cache literally everything for topstats, which to give yo...

im not familiar with topstats so youll have to bear with me, but what is coming through the gateway? is it stats submitted from bots/some automation? from your site i see you source the data from topgg - do you gather this data somehow and have it sent to your gateway then queue?

but it looks solid in theory, especially if you have data coming through where potentially losing it is bad then having rabbitmq also provides some assurance of integrity since you wont have events silently go missing, im not sure what kind of load/traffic youre operating under but it also enables easy scaling across instances
id probably be a lot more conservative on the caching and opt in to do a lot more rebuilding to save on some storage and memory, but if you have spare resources then i dont see why not (i always try to run as light as possible up until things start to noticeably slow down for users or disk/cores start maxing out, also not sure if you mean you're literally caching everything), especially since youre not using much to store that to begin with, although since redis allows you to store cold entries to disk anyways it sort of becomes a moot point in terms of memory

without being on the team i cant really say more because there are many nuances to everything in this industry but nothing particularly stands out ๐Ÿ™‚, i do a lot of low level code and work in very resource constrained environments like microcontrollers with sometimes not even kilobytes of memory, so i always implicitly jump to doing the most you can with what you have without adding additional complexity or independent services (aka simpler)

delicate zephyr
#

Oh right, you havent got full context

frosty gale
delicate zephyr
#

this is what we're building

#

this is what the gateway is for

#

the top.gg fetcher is an entirely seperate service that runs every hour and pushes straight to our postgres & timescale db's respectively

delicate zephyr
lyric mountain
#

the top 3 badges feel a bit off for the site aesthetics

#

like, everything else is material, but the badges are glossy

delicate zephyr
#

I handle the data and infra

#

I'll let him know tho

lyric mountain
#

but it's looking good nonetheless, the layout is easy on the eyes

delicate zephyr
#

which is honestly rough on the eyes

prime cliff
#

That's a lot of tracking and stats wew

delicate zephyr
#

just because we actually care for users kekW

neon leaf
#

what db are you using for the stats?

delicate zephyr
#

timescale

neon leaf
#

i c

delicate zephyr
#

server stats gets heavily downsampled

neon leaf
#

im currently storing my 46 million rows of stats in pg kekw

delicate zephyr
#

we have 2.5 billion in timescale

neon leaf
#

moving them to clickhouse the next few days

#

yeah, mine have to be heavily purged constantly due to replication

#

16gb of data in these few rows

delicate zephyr
#

timesclae has built in compression for that

#

2.5B rows = 190-200GB

#

uncompressed it's closer to 600-700GB

prime cliff
#

I don't really like clickhouse and similar, they tend to use up way too much ram for no reason

neon leaf
#

well, i still havent decided on anything, pg is just definitely not the good choice anymore, the replicas are all running out of storage

delicate zephyr
#

12GB under load

queen needle
#

I don't understand how there are replicas?(I've never dealt with anything on this scale. I'm just curious)

long marsh
#

If it's in memory, a server restart would kill all lobbies going.

delicate zephyr
proud sky
#

Hello! I am looking for some help with importing commands from discord onto top.gg just I am unsure how to do it in the 1st place at all, some help would be great with it because I got 0 idea where to start....

#

i've mainly been working on my one website trying to resolve some bugs on it

delicate zephyr
acoustic bough
#

@humble gyro basically my entire description broke lol

deft wolf
#

Crazy support scam

acoustic bough
delicate zephyr
#

@solemn latch

acoustic bough
delicate zephyr
#

yw ๐Ÿ˜„

solemn latch
delicate zephyr
#

you're welcome BunNod

acoustic bough
humble gyro
#

where are your images in html

acoustic bough
#

the black boxes are youtube iframes

#
<iframe title="Free YouTube Notifications for Discord with Wamellow" src="https://youtube.com/embed/NS5fZ1ltovE" style="max-height: 38.7rem!important" width="100%" referrerpolicy="no-referrer" sandbox="allow-scripts"></iframe>
tacit kindle
#

1 question can i ask ppl to help me with stuff here + would it count as self promo?

humble gyro
#

I do not see any iframes rendered

acoustic bough
delicate zephyr
#

there are iframes Veld

humble gyro
#

gotcha i see them now

acoustic bough
acoustic bough
humble gyro
#

why did your iframe crash tho

delicate zephyr
#

Gotta love security patches lol

humble gyro
#

what does it rely on that it doesn't get

delicate zephyr
#

It's trying to read cookies LUL

tacit kindle
delicate zephyr
#

Uncaught SecurityError: Failed to read the 'caches' property from 'Window': Cache storage is disabled because the context is sandboxed and lacks the 'allow-same-origin' flag.

acoustic bough
delicate zephyr
#

SecurityError: Failed to read the 'cookie' property from 'Document': The document is sandboxed and lacks the 'allow-same-origin' flag.

humble gyro
#

yeah the cookie you may need to fix yourself

#

we can't really allow you to read cookies as an iframe on top.gg

#

I'll check why the youtube embed is wacky

acoustic bough
#

I should not set cookies on the site, outside of the ones cloudflare sets

humble gyro
#

i tested specifically youtube embeds

#

so that's odd

delicate zephyr
#

You should allow same origin veld

#

from what I can tell

#

sandbox="allow-same-origin"

humble gyro
#

we allow it for a few domains

#

but not any domain

delicate zephyr
#

afaik that only allows it to access the cookies of the origin of the iframe no?

#

am I wrong, or did I read something wrong about how the sandbox with that flag works

humble gyro
#

not quite

#

let me investigate why your specific youtube embeds break

#

then we can check on the other things

#

kk fixed:

long marsh
humble gyro
#

deploying to prod ina moment

acoustic bough
humble gyro
#

Like i've been saying for a while though, I would generally recommend not using iframes. They're a can of worms of pain for both me and the dev

long marsh
#

Do you think you'll deprecate the usage of them eventually? Can't imagine they're good for SEO either

humble gyro
#

Too many bots use them to properly deprecate them

#

so best I can do is tell people not to use them because there's no value gained from adding them

#
  • you slow down your page load because the iframe document blocks the initial render
  • you dont get a backlink from it, just use the website social tag for that.
  • the content usually is malformed due to the even more odd sizings
delicate zephyr
#

honestly the main issue I have with top.gg is the description editor is a pain to use

#

which is likely the reason a lot of people use iframes tbf

acoustic bough
#

yeah it kinda should be a full-size monaco editor

humble gyro
#

:)

delicate zephyr
#

would be nice if it was syntax highlighted and such yea

#

but im guessing thats in the works / in the idea pipeline lol

tacit kindle
#

does anyone know if alwaysdata.com is a secure website to host my bot on ?

delicate zephyr
#

if it's free, you're the product

humble gyro
#

ok fine i will leak a thing

acoustic bough
sharp geyser
#

no one's forcing you too ๐Ÿ˜ญ

humble gyro
#

i like doing it PepeLaugh

tacit kindle
sharp geyser
#

lmfaooo

humble gyro
sharp geyser
#

See, I dont know if any of that is new

#

:p

humble gyro
#

uncommon Aaron L

sharp geyser
#

woah wtf

#

:((

delicate zephyr
sharp geyser
#

gonna go to other bot sites to get my bots

delicate zephyr
#

guessing that'll be the css editor?

humble gyro
#

among other things

delicate zephyr
#

sweet

sharp geyser
delicate zephyr
#

are we gonna get a monaco editor for description tho :^)

#

or will it forever look like this

humble gyro
#

not ... yet.

delicate zephyr
#

ah

#

good enough for me

humble gyro
#

i mean embedding all of vscode would be crazy

delicate zephyr
#

also you havent responded to that dm yet btw kekW I assume you had a hellish monday

humble gyro
#

i do want to eventually write an actual editor

#

notion style + code editor advanced mode

sharp geyser
acoustic bough
#

wait I have a solution for the people to can't get past 300 chars:
"Imagine description with Top.gg AI โœจ"

humble gyro
#

i also considered just letting u link a git repo tbh

acoustic bough
delicate zephyr
humble gyro
#

kinda yeah

delicate zephyr
#

I was legitamately gonna suggest that

#

LOL

#

that would be so nice tbh

#

have the information in the readme, and have it pull in with refresh-data or something

humble gyro
#

i mean we'd just install a github integration in your repo that pushes it to the api

#

commit hook on actions

#

would be the cleanest way

delicate zephyr
#

hmm

#

I guess that would be we'd need an entirely seperate repo for top.gg descriptions

#

feel like that would be a bit rough tbh

#

cause idk I feel like no one is gonna add a top.gg integration to their bots private source code

humble gyro
#

yeah i would highly recommend a different repo hahaha

delicate zephyr
#

at which point would it only pull in 1 file?

#

if so, then why not just use a gist?

humble gyro
#

there's no difference between letting us pull your entire repo or adding an integration

acoustic fern
delicate zephyr
#

yea I'm aware, which is why I ask ๐Ÿ˜„

acoustic fern
#

Now I can view my gifs ๐Ÿ”ฅ

humble gyro
#

funny

humble gyro
#

e.g. images

#

and add them to the top.gg cdn for you

delicate zephyr
#

oh fair

humble gyro
#

different locales could be added as well

#

best to keep it open ended

delicate zephyr
#

oh thats a good point

humble gyro
#

as feature set grows

delicate zephyr
#

touche

humble gyro
#

but this is purely hypothetical

#

hahaha

#

appearance is something im excited about tho

delicate zephyr
#

idk I guess start small (fix the editor) and make big later

delicate zephyr
#

ig you'll make an announcement about it in #topgg-testing at some point?

humble gyro
#

yeah eventually

#

its not that high on the todo list

delicate zephyr
#

fairs

#

Q1 is gonna be exciting tbh

#

got a lot of crap to do for topstats too wearybread

humble gyro
delicate zephyr
#

have you seen the screenshot?

delicate zephyr
#

sorting the data for this

#

is pain

humble gyro
#

jeez

delicate zephyr
#

LUL guess where the activity heatmap inspo was from

#

that was my suggestion

humble gyro
#

ye i see it hah

#

the presence data is kinda cool tho

delicate zephyr
#

xig is killing it with the frontend tbh

delicate zephyr
humble gyro
#

is looks neat yeah

#

๐Ÿค” i mean the benefit wouldnt be that great for me

delicate zephyr
#

true

humble gyro
#

i need data from servers on top.gg, not random servers

delicate zephyr
#

You only store the last 30d for server analytics right

#

do you also have presences

#

@pliant gorge

humble gyro
#

no, we dont track anything we dont need

delicate zephyr
#

ah fair

#

we gotta apply for presences

#

it's a pain, and discord are so much more strict with it now

humble gyro
#

yeah makes sense tho

long marsh
humble gyro
#

shrug ive done it before

delicate zephyr
#

I remember veld.chat

queen needle
long marsh
#

Doesn't mean that you should opt to doing it / maintaining it when your primary business isn't the editor (just imo)

Not criticizing, just observing

humble gyro
#

fully custom editor KEK

queen needle
#

I love writing editors

long marsh
#

I love writing a ton of stuff because it's fun, but doesn't mean that I should write it for actual production usage ๐Ÿคฃ

delicate zephyr
#

I mean

humble gyro
#

yeah fair

delicate zephyr
#

goated app btw

humble gyro
#

for top.gg i would prolly use a pre-existing editor

long marsh
humble gyro
#

i just want to control the schema

#

thats important to me

queen needle
humble gyro
#

because otherwise i can't extend it

long marsh
humble gyro
#

ye true

#

i did some research into uhh

delicate zephyr
#

there's ones that mimic the vscode one too

long marsh
#

I've had to do this before โ€“ and many of the editors allow custom "plugins" that you can create. For an AI summarization product I helped with, I had to do this.

humble gyro
#

i always feel that the plugins system always come with painful amount of footgun

delicate zephyr
#

"oh it cant do that? fuuuuuuu-"

queen needle
#

Idr what package it was but I tried using a package with plugins for an editor and had to use pollution to get the solution for what I wanted

humble gyro
#

there's an insane amount of libs that do rich text too its insane lmao

long marsh
#

It felt like a footgun the whole time I had to deal with it and maintain it lol

humble gyro
#

classic case of text inpputs

#

but tbh

#

i need a better text editor for the updates panel too

#

its so rediculous how little you can do with updates on top.gg rn

#

i really want to encourage ppl to use updates

#

so i can add it to the scoring system KEK

#

like i want stuff on top.gg to be vibrant and actively updated

#

so that people get a better experience

delicate zephyr
#

can you make an api to push updates too

#

like commands ๐Ÿ‘€

#

cause they we can automate update posts with changelogs etc

humble gyro
#

BGshrug would be too complex for people if i make it more featureful

#

good luck pushing a rich text schema

delicate zephyr
#

I mean, allowing raw text via api is fine no?

#

doesnt necessarily need to support rich text

#

but I get your point

humble gyro
#

does someone have a good guide for a linux dual boot

delicate zephyr
#

I recommend anyone who just wants a simple linux experience to pick a flavour of Ubuntu, like Budgie, Xubuntu, Kubuntu etc and go from there

#

unless you specifically want a step-by-step guide

#

I can find you one

mighty scroll
#

Hello, i have a question. My bot has around 1100 server. We did not make any update but since Sunday the bot has a huge issue when is sending data to DB(i think). We did not change anything or do any update on server or bot, it's same since before. Did someone had ever an issue like this? I don't even know where or what to check, but i'm thinking if maybe something on OS broke?

solemn latch
#

I would debug the issue in code, if it doesn't work out I'd assume its the database, if its not the database then I'd start questioning other things.

humble gyro
#

not sure

#

im not a linux guy so i am considering something simple like ubuntu or hannah montana linux

#

would unironically use steamOS

long marsh
humble gyro
#

customization would be nice but less about TUI and more about graphical

long marsh
#

And what graphics card do you have?

humble gyro
#

4070

#

nvidia

wheat mesa
#

Based on Ubuntu

humble gyro
#

mmm

wheat mesa
#

Never used it as a dual boot system, but had a good experience as my sole OS on my older laptop with meh hardware

humble gyro
#

gotcha

long marsh
humble gyro
#

hmmm

#

oka

long marsh
#

I did have problems with NVIDIA drivers last I used linux though ... but heard it was improved.

humble gyro
#

i will check it out

#

i hope so

long marsh
#

It made it unusable for me at the time on my 1050 TI ๐Ÿ˜„

clever tundra
long marsh
delicate zephyr
#

has a lot of the comforts windows has as well as being customizable

humble gyro
#

my main thing that stops me is that i play league catdespair2

long marsh
#

Fedora KDE as well

clever tundra
#

Or hear me out

humble gyro
#

i know awful reason

clever tundra
#

Build your own version of Linux

humble gyro
long marsh
delicate zephyr
#

league requires vanguard now

#

their kernal antishit

humble gyro
#

rip

long marsh
#

damn

humble gyro
#

exactly this

delicate zephyr
#

this is the exact distro im running rn veld

wheat mesa
#

Why run Linux at all tho? If you want to play games Iโ€™d definitely stay on windows

humble gyro
#

instability

delicate zephyr
humble gyro
#

dev experience

humble gyro
#

windows has been SHIT for me recently

wheat mesa
#

I had a windows tower at home, then I had a laptop running mint for work/dev

delicate zephyr
humble gyro
#

andi dont mind moving to windwos for just a game of tft or smth

long marsh
humble gyro
#

i have a mac

long marsh
#

Oh?

#

Is it not sufficient enough?

wheat mesa
#

I hated the Mac dev experience personally

humble gyro
#

just not ideal

long marsh
#

How is the MacOS not a good development experience?

humble gyro
#

i enjoy my desktop

wheat mesa
#

Itโ€™s like Linux but with all of the inconveniences of windows

long marsh
#

I disagree with the take

humble gyro
#

i agree with u thomas dev exp on mac is great

sharp geyser
#

Developing on mac had to be the worst experience ever

humble gyro
#

which is also why im considering linux KEK

wheat mesa
#

I hate how expensive it is too

humble gyro
#

windows dev exp is the absolute F tier shit

delicate zephyr
#

@humble gyro have a look through https://ubuntu.com/desktop/flavors

Ubuntu

Ubuntu flavors are different installations of Ubuntu - each with a choice of packages and applications included by default. Here you are able to choose and download the officially recognised flavor that would best suit your particular industry and unique needs.

wheat mesa
#

Windows dev experience < Mac dev < Linux dev

long marsh
#

I actually went Windows -> Linux (got pissed off) -> Mac

humble gyro
#

ooo peak

sharp geyser
#

Mac had too many security features that made development abnoxious

wheat mesa
#

Windows is a pain in the ass for any low level languages

delicate zephyr
#

Just homebrew it lmao

sharp geyser
#

every time I was doing something I had to enter my password, or make some sort of key, or some other shit

wheat mesa
#

C++ developer experience on windows is horseshit

delicate zephyr
#

I have never had an issue with development on mac

delicate zephyr
humble gyro
#

ngl this page tells me nothing KEK

long marsh
#

I have a terminal emulator, i have brew as my package manager, and everything just works. bash scripts, fish shell, etc.

sharp geyser
#

I tried and it still was enabled

delicate zephyr
#

if you wanted specific names to look into videos for

humble gyro
#

ooo ok

solemn latch
#

kubuntu is what I'm on now

delicate zephyr
#

Kubuntu is honestly super nice to run

humble gyro
#

looks clean

delicate zephyr
long marsh
#

Also, I personally don't like this @humble gyro. See how much "customization" / "flavors" there are? I'd rather just stick with an opinionated OS and focus on what really matters.

#

Just my 2 cents

humble gyro
#

valid

long marsh
#

There's so many distractions in the world ... my os isn't one of them haha

humble gyro
#

i should just run arch Clueless

delicate zephyr
#

valid take but for desktop Mac isnt an option

long marsh
#

arch, btw

delicate zephyr
#

unless you pay an arm and a let for their hardware

#

linux is next best option for people with base hardware but no apple chip

#

its why I run linux on my non-macbook laptops

long marsh
wheat mesa
#

Ubuntu based distros are the Linux equivalent of โ€œit just worksโ€

humble gyro
#

prolly works fine

delicate zephyr
wheat mesa
#

You wonโ€™t fight it a lot (compared to other distros) and itโ€™s very simple

long marsh
humble gyro
#

i just always had a desktop so i purely use my macbook for travel work

delicate zephyr
#

could build a pc for less Shrug
the price tag is what stops most people from getting a mac

and yea thats how most people run it veld

#

I have a work macbook

humble gyro
#

for me, it's about my comfort zone i guess

#

macbook is acceptable when im out

delicate zephyr
#

but its so old I just run my linux machine and use the mac for ios builds for mobile

long marsh
#

Can you at this point? Isn't RAM a shit ton now :D?

delicate zephyr
long marsh
#

Ah true

delicate zephyr
#

DDR5 is a joke

wheat mesa
#

RAM shortage is rough rn

solemn latch
#

๐Ÿ‘€ my 5 year old cpu beats an m4?

humble gyro
#

good thing i bought 128gb of ddr5 ram at the start of this year

delicate zephyr
#

lmao

wheat mesa
#

Yeah idk why everyone praises the apple m series chips as being amazing

solemn latch
#

I thought m4 was way more powerful

humble gyro
#

its pretty good

delicate zephyr
#

its good

#

for a mobile arm chip

long marsh
solemn latch
#

as far as?

long marsh
#

after the initial docker debacle was figured out, it's been smooth sailing ever since

humble gyro
#

the shared memory buffer is peak tbh

solemn latch
#

price to perf it doesnt seem like it

wheat mesa
#

Ryzen ftw

humble gyro
#

show specs

solemn latch
#

I'm on a 5900x

wheat mesa
#

I'm on a 5800x

humble gyro
long marsh
#

Just my personal philosophy. I see the merit in customization.

delicate zephyr
solemn latch
#

ye ^

delicate zephyr
#

Apple's known as the walled garden because of the price tag mostly

long marsh
humble gyro
#

buy 1 year of top.gg premium pls

delicate zephyr
#

I would get a mac if I didnt need 8 grand for my fiancee's visa lmfao

long marsh
#

I fund your website through topgg auctions, don't worry

delicate zephyr
#

OOF

humble gyro
#

peak

delicate zephyr
#

๐Ÿคฃ

long marsh
#

Not calling your premium not useful, lol. Just not useful for me

humble gyro
#

its kinda weak

#

ngl

long marsh
#

It's a donation service, my guy

#

I kid, Veld

humble gyro
#

we pay more to book the taxes than we make on premium

#

... unironically i would MAKE money if i closed it down

delicate zephyr
#

why not just... remove it then huh

humble gyro
#

future plans

delicate zephyr
#

fair

solemn latch
#

We had some good plans in staff chat ^-^

humble gyro
#

ye exactly!

delicate zephyr
#

I guess topstats is in the same state tbf

humble gyro
#

just need to get to the point where we can do some stuff!

delicate zephyr
#

we wouldnt make a profit without marco kekW

solemn latch
#

Things I think are exciting

#

marco โค๏ธ

humble gyro
#

the goat

delicate zephyr
#

Bet you cant wait to yeet Luca

long marsh
#

what/who is marco? sorry out of the loop

humble gyro
#

@modern sable the goat

delicate zephyr
#

^

long marsh
#

went to website ... all in german. oof

#

I'm american, i can't read anything other than english ... c'mon guys

delicate zephyr
#

its in english?

modern sable
#

...german?

delicate zephyr
long marsh
#

holy shit! i must have just hallucinated

#

you're right, and now I'm worried

delicate zephyr
#

Also marco

modern sable
#

The second half of my alias is german lmao

delicate zephyr
#

update the dbl stats link

#

LMAO

modern sable
#

right

solemn latch
long marsh
#

i'm cooked

modern sable
#

yea i should do that kekW

long marsh
#

been talking to claude too much

delicate zephyr
#

Bro using the same thats a year old now lol

humble gyro
#

time to take your yearly holiday break

delicate zephyr
long marsh
#

anthropic increased limits to 2X until today ... so need to get on it.

#

Vibe coding away on personal projects. Been great.

humble gyro
#

about that wallet

long marsh
#

Like said, I'm blessed

#

$225k/yr right now

humble gyro
#

reminds me i need to cancel my cursor sub

#

not bad at all

long marsh
#

not the best, not the worst

#

in terms of US compensation, I mean

#

for my level

humble gyro
#

its still top 1%

delicate zephyr
#

^

long marsh
#

oh yeah for sure

delicate zephyr
#

then there's me making above avg at 30k/year for the UK

humble gyro
#

are they hiring?

delicate zephyr
#

and thats a junior role

#

lmao

long marsh
humble gyro
#

3 years at midjourney

long marsh
#

dead ass?

humble gyro
#

ye

long marsh
#

hmm...

#

what country?

humble gyro
#

NL

#

very unfortunate

long marsh
#

one of my peers works in NL

humble gyro
#

ooo

long marsh
#

Yeah this is a fully remote company with a HQ in texas, but also the CTO is based out of UK

humble gyro
#

AG_Susge ok tell me more

#

i lowkey need to start looking soon again

long marsh
#

It's for US healthcare space ๐Ÿ‘€

humble gyro
#

since i gave myself until end of the year to make top.gg work financially

long marsh
humble gyro
#

eh, i reinvest the revenue too much

long marsh
#

But yeah, you gotta support yourself through some means

humble gyro
#

yes but i need to pay my mortgage too

long marsh
#

Kids?

humble gyro
#

haha no

#

let me hit 30 first

#

๐Ÿ˜ญ

long marsh
#

Well, then that's not too bad haha. I'm 28 and have a 5 year old ... OOF

#

and a wife ... OOF

sharp geyser
humble gyro
#

28

sharp geyser
#

wtf

humble gyro
#

i was 24

solemn latch
sharp geyser
#

unc

solemn latch
#

amazon?

delicate zephyr
#

I'll be married in 2026

#

lol

long marsh
delicate zephyr
#

im 25 next year

humble gyro
#

goat

long marsh
#

I've been with my wife since I was 15 / in highschool

delicate zephyr
#

I had to ride to germany to find my wife LOL

solemn latch
sharp geyser
#

Fixing to just save up money and travel Europe

long marsh
#

congrats man!

delicate zephyr
#

Yea

long marsh
#

Nuke != Luke in my head haha

delicate zephyr
#

I blame whoever set my nickname

delicate zephyr
#

cant remember lol

long marsh
delicate zephyr
#

ceo reached out and asked me if I'd come back

#

I jumped at that like it was pure gold ๐Ÿคฃ

long marsh
delicate zephyr
#

Yea

#

I love working at orca, can be rough at times but we work on cool stuff

#

I was let go due to 2023-2024 being rough and being incapable of managing everything on my plate lol

#

2025 came along and I got the job back in June~ 2025

solemn latch
#

wait orca the slicer?

delicate zephyr
#

no

solemn latch
#

oh neat

wheat mesa
long marsh
wheat mesa
#

Fair enough, we got married pretty young lol

long marsh
wheat mesa
#

for sure

neon leaf
#

I finally (actually) figured out closures & async blocks in rust ๐Ÿ™ (needed to rewrite half my code due to performance issues cuz of this)

tacit kindle
#

yo anyone down to test my bot and give geniun feedback

hoary merlin
#

Happy New Year everyone!

neon flicker
tacit kindle
#

yo

tacit kindle
neon leaf
#

Happy new year from CET!

humble gyro
#

Poggies happy new year!

clever tundra
#

Happy new year!!!

regal summit
#

Hi @clever tundra

clever tundra
potent glacier
clever tundra
#

@solemn latch advertisement of services

regal summit
clever tundra
regal summit
clever tundra
regal summit
#

Oh , thanks

pearl trail
radiant kraken
tacit kindle
#

bruh

#

how do i change my bots name ?

#

since when i changed it it didnt update

deft wolf
#

On top.gg? Click "refresh data" button on main page

bright compass
eternal bridge
#

man how much time it takes to get ur bot approved

deft wolf
#

1-2 weeks

#

Could be longer because of the christmas/new year

rugged dawn
gusty plover
#

Hey there.
Is there anyone who can give me an example code for #staff-tickets pls to have within the modal the possibility to put images (component v2) ?
I tried but lost file and retried but I can't ๐Ÿฅบ

rugged dawn
#
import { MediaGalleryBuilder, MediaGalleryItemBuilder } from 'discord.js';

const components = [
        new MediaGalleryBuilder()
            .addItems(
                new MediaGalleryItemBuilder()
                    .setURL(""),
            ),
];
#

and u have to rewrite your code to use containers ^^ doesn't work with embeds

gusty plover
#

Ok thxs

neon leaf
radiant kraken
#

interesting

tacit kindle
#

yo i kind of have a little problem an dneed help

#

so i have mad an economy bot

#

where you have money and there is a shop and stuff and the shop you can set up

#

but when i update the bot by adding new code and then running node Index.js so the bot is up to date

#

the whole economy gets reset

#

i this fixable ?

deft wolf
#

I have a feeling that you are not using any kind of database and you are saving everything in bot's memory

tacit kindle
deft wolf
#

What kind of a database?

tacit kindle
#

i might have an idea of the problem but how would i even fix it

clever tundra
#

Are you like remaking it every time you launch the thing

#

Like deleting the tables and redoing them

tacit kindle
tacit kindle
#

i wanted to host my bot so its 24/7 running so i uploaded the files to github and then cloned them into a linux terminal that has a free service that run node Index.js for me

#

but when the bot updates the database he cant since

#

it woud be saved in the file that he cant edit

#

might this be the problem ?

clever tundra
#

So if I'm understanding

#

Code -> GitHub -> clone to host -> run bot

#

If the database is saved on the host, then it's not up to date on GitHub, and therefore not up to date on your device when you code, so when you put the code on GitHub and re-clone it, the database isn't the same

clever tundra
#

Yes

#

Download the database from the host and use that before you put your code back to github

#

Or

#

Don't put the database on GitHub

#

Eg. Use a .gitignore

#

So then when you clone you don't have any databsse

tacit kindle
#

hm

earnest phoenix
#

@clever tundra hyy buddy

clever tundra
earnest phoenix
#

hy i need a trsection bot

#

can i get from there

#

@clever tundra

lyric mountain
#

A what?

clever tundra
earnest phoenix
#

can i get a trsection bot from to gg site

#

p

lyric mountain
#

What is a trsection

clever tundra
tacit kindle
tacit kindle
#

yo hello i have a question

#

for some bot when i add them to a server

#

they also give me the invite link to the bots support server

#

how can i make this for my own bot ?

deft wolf
#

How they do that?

#

Like, are they sending you a dm or post a message on server

tacit kindle
#

and you will undestand what i mean

#

@deft wolf this is what i meant

#

after adding the bot

deft wolf
#

Well, they probably did it via OAuth2

tacit kindle
tacit kindle
deft wolf
#

Where?

tacit kindle
deft wolf
#

Make sure you changed bot name, not application name

tacit kindle
tacit kindle
acoustic bough
#

I weirdly enough have weird performance issues with clickhouse

#

constantly maxxing out 4 cores

neon leaf
#

eh, my expensive queries are only done every 30min so its fiine

#

main concern was storage space anyway, not perf

pearl trail
#

this ui looks better than most modern routers now ๐Ÿ˜ญ

pearl trail
#

bruh i can't go back to openwrt KEK

thorny cargo
ivory hawk
pearl trail
#

xD *forgot to mention it's 11 years old (2015 released)

clever tundra
#

I win this all

#

We plan to try and switch to some ubiquiti stuff soon... Cloud Gateway Ultra and some Swiss Army Knifes / U7 Lites

quartz kindle
#

mine aint too bad tbh

small tangle
#

omg ip leaked !?

quartz kindle
#

yes hack me

small tangle
ivory hawk
clever tundra
#

oMg bRo dOxXeD HiMsElF

pearl trail
#

why all 2.4 ๐Ÿ˜ฒ

quartz kindle
#

its probably distance, im about 20-30m away from it

pearl trail
#

ahh yeah, no wonder

lament rock
clever tundra
#

fritz sells limited items in the UK

#

we have two repeaters, and the main router

lament rock
#

Damn. Didnt know

clever tundra
civic sundial
#

can anyone tell me does (add to my app ) slash commands are made differently then normal slash commands

stark kestrel
#

?

#

What are "(add to my app ) slash commands"

neon leaf
#

very well

stark kestrel
clever tundra
civic sundial
civic sundial
stark kestrel
#

Set it to 0 for guild installs, 1 for user, 0 & 1 for both

civic sundial
stark kestrel
#

The command itself is the same

stark kestrel
civic sundial
stark kestrel
#

Look through the docs of whatever library you use

civic sundial
#

i did

#

its still not showing commads

#

like this ?

stark kestrel
#

no code, can't help ยฏ_(ใƒ„)_/ยฏ

stark kestrel
#

No

vestal stratus
#

don't drag to dms

stark kestrel
#

This channel is for help, keep it here

vestal stratus
#

how are you creating your commands?

stark kestrel
#

DMing randoms is weird as well

civic sundial
acoustic bough
civic sundial
neon leaf
vestal stratus
#

omg leaked ip 192.168.178.67

#

.67 you say

acoustic bough
#

lol

deft wolf
#

Pls no

#

Not this again

acoustic bough
#

I forgor about that magic number

vestal stratus
civic sundial
clever tundra
civic sundial
clever tundra
#

let me give you an example out of my code

civic sundial
clever tundra
#
    @app_commands.user_install()
    @app_commands.command()
    @app_commands.allowed_installs(guilds=True, users=True)
    @app_commands.allowed_contexts(guilds=True, dms=True, private_channels=True)
    async def example(self, interaction: discord.Interaction):
        """Example."""
        await interaction.response.send_message("example")
civic sundial
#

sooo the commands are made as usuall after this ?

stark kestrel
civic sundial
clever tundra
#

bearing in mind this was designed to be integrated into a cog

civic sundial
stark kestrel
#

It does

#

If you sync and install the app on your user

#

And that is why a discord bot isn't a beginner project

civic sundial
clever tundra
#

alright one second

#

let me make you some code

civic sundial
clever tundra
#

try smth like this on its own

#
import discord
from discord.ext import commands
from discord import app_commands

intents = discord.Intents.all()

bot = commands.Bot(command_prefix='!', intents=intents)

@bot.event
async def on_ready():
    print(f'Logged in as {bot.user}')
    print('------')
    print("Bot is ready!")
    await bot.tree.sync()
    
@app_commands.user_install()
@app_commands.command()
@app_commands.allowed_installs(guilds=True, users=True)
@app_commands.allowed_contexts(guilds=True, dms=True, private_channels=True)
async def example(interaction: discord.Interaction):
    """Example."""
    await interaction.response.send_message("example")

bot.run("token")
#

its nothing special

#

wait nvm i forgot smth

#

alright try that. just launch it with your token and reload discord, install it, and it should work

stark kestrel
#

syncing on the ready event is a bad idea

clever tundra
#

i know but for testing once

stark kestrel
#

Should be done manually

clever tundra
#

its easier than a command for the time being

stark kestrel
#

Or at least in the setup hook

clever tundra
#

this is not meant to be permanent

stark kestrel
#

It's already in their code

#

At least use the same code

stark kestrel
clever tundra
#

wut

civic sundial
clever tundra
#

oh

#

just as normal

#

(do not use the code i gave you. that was to prove it works. you should integrate the command structure into your code)

civic sundial
#

and why is it bad

clever tundra
#

alright hold on

civic sundial
clever tundra
stark kestrel
clever tundra
#

its giving mildly chatgpt

civic sundial
stark kestrel
#

more content for my blog post

civic sundial
clever tundra
#

oops

#

just follow the structure and change the bits as needed

clever tundra
#

so instead of @bot.tree.command() you need to use @app_commands.command()

#

and add the other stuff

civic sundial
#

like someone can crack it or stuff

clever tundra
#

unless you do smth really stupid, they cant really 'crack' it.... not entirely sure what you mean though

in terms of organisation, it is best to use cogs, where commands are split into files and loaded into the bot

civic sundial
#

and btw i still cant see commands in dm

clever tundra
#

have you synced, reloaded discord (fully reloaded) and installed the app?

civic sundial
#

yupp

clever tundra
#

lemme test smth

civic sundial
clever tundra
#

ok so

#

this is your issue

civic sundial
clever tundra
#

the indenting (the space before the code) means its a part of the command above

clever tundra
#

that

civic sundial
clever tundra
civic sundial
#

with simple ping commands

clever tundra
#

its working for me

civic sundial
clever tundra
#

thats inside this server

civic sundial
#

how

#

how

#

oh yeahhh

clever tundra
civic sundial
#

it is for me too

clever tundra
#

theres sometimes a glitch where all commands appear

#

i have no idea

#

i dont know why

#

i dont know how to stop it

#

but i hope that helps

civic sundial
#

๐Ÿ˜ญ๐Ÿ˜ญ

civic sundial
#

thanksss

#

should i change the app or acc ?

#

๐Ÿค”

civic sundial
clever tundra
clever tundra
neon flicker
#

ai will replace us all

deft wolf
stark kestrel
neon flicker
#

it will.

#

@deft wolf two years later LOL

stark kestrel
#

Two years later and it's still nowhere close

neon flicker
#

Dw I'm just kidding

#

It was meant to be an ironic quote but I'd also behave the same if I saw someone say that

#

I don't really see why people with zero creativity, problem solving skills and future vision are complaining about being unable to find jobs anywhere

#

Like this is literally how it is supposed to be

prime cliff
#

๐Ÿ™ƒ time to map out all the code for this

queen needle
#

You got this!

lyric mountain
prime cliff
#

C# close ๐Ÿ™‚

lyric mountain
#

:c

#

Oh right, didn't notice the pascalcase

prime cliff
#

๐Ÿ™‚

long marsh
#

it won't "replace" engineers, but it'll certainly augment them. the ones who don't upskill now in how to run agents are losing out in the long run.

stark kestrel
#

People said like 4 years ago in 2 years engineers will get replaced

stark kestrel
#

Augmenting then is not the same wording at all. It's obvious it helps people, just like calculators help mathematicians....

#

We're talking about replacing, not helping/augmenting/whatever

#

So it's still definitely not close

long marsh
#

By mentioning "augmenting", I'm alluding to the the fact that those that choose not to use it will be removed / replace by those that can.

Huge shift

#

Therefore, out of jobs. "replaced"

#

Yeah you're right though, I wasn't clear.

#

I think the days where some (like 80% of engineers) who simply punch in / punch out and work a ticket here and there making six figures are coming close to an ending.