#development

1 messages · Page 1968 of 1

lyric mountain
#

wait how did I use that emote?

#

oh it's in this sv

boreal iron
#

Ffs he said he’s getting horny from c++ and I responded if that’s the reason he’s using Java

neat ingot
#

if you want to use java, i for one am not judging you 🙂

boreal iron
#

Careful… or I’m gonna throw a nuke into this channel

neat ingot
#

I was in a college meeting on teams last night, and the lecturer literally said 'at home i use google chrome, but at work i use internet edge'. I legit died.

spark flint
#

internet edge

#

my fav

neat ingot
#

i should mention, this is my 'web dev' lecturer 😂

#

I lost all respect for that man last night...

boreal iron
#

It’s even more embarrassing installing teams on your pc

neat ingot
#

pretty sure he mistakenly called js java like 6-7 times as well, but i had put music on by that point so not entirely sure.

neat ingot
boreal iron
signal estuary
#
TopGGAPIError: 524 undefined
    at Api._request (/home/nodejs/noah-bot/bot/node_modules/@top-gg/sdk/dist/structs/Api.js:76:19)
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async Api.postStats (/home/nodejs/noah-bot/bot/node_modules/@top-gg/sdk/dist/structs/Api.js:99:9) {
  response: Response {
    size: 0,
    timeout: 0,
    [Symbol(Body internals)]: { body: [PassThrough], disturbed: true, error: null },
    [Symbol(Response internals)]: {
      url: 'https://top.gg/api/bots/stats',
      status: 524,
      statusText: undefined,
      headers: [Headers],
      counter: 0
    }
  }
}

Auto poster is causing this

spark flint
bright thorn
#

my bot is not reponding at real time

#

its in 800 server but

#

its not responding at real time but in same code my test bot responding at real time

#

anyone can help?

earnest phoenix
#

Does anyone know how I can do a perms check with the database, I have a command to add a person in the premium category and I would like her to use only those commands. I use mongodb

spark flint
earnest phoenix
#

so it is in my database

#

@bot_mods_only() @commands.command(help="Remove a premium to a user.") @commands.cooldown(3, 120, commands.BucketType.user) async def remp(self, ctx: commands.Context, user: discord.User = None): prefix = ctx.clean_prefix if user is None: ctx.command.reset_cooldown(ctx) return await ctx.reply(embed=error_embed( f"{EMOJIS['tick_no']} Invalid Usage!", f"Mention who you wanna remove premium next time.\nExample:{prefix}removepremium @egirl" )) for e in self.client.premium_cache: if e['_id'] == user.id: await self.client.premium.delete_one({ "_id": user.id }) await self.client.get_premium_users() return await ctx.message.reply(embed=success_embed( f"{EMOJIS['tick_yes']} User removed from premium list!", f"Done! I have removed the premium access from **{escape_markdown(str(user))}**.\n```yaml\nReason: {e['reason']}\n```" )) ctx.command.reset_cooldown(ctx) return await ctx.message.reply(embed=error_embed( f"{EMOJIS['tick_yes']} User Not Found!", f"Looks like **{escape_markdown(str(user))}** is not a premium user, please try again." ))

#

and this is the code

spark flint
#

ohhh thats python

#

not js

earnest phoenix
#

Yea

spark flint
#

my bad

#

i've never used python with mongo sorry

earnest phoenix
#

Oh it's ok

#

thanks for trying to help me anyway

earnest phoenix
royal herald
#

ok

#

so i need some help about css

#

i wanna make this div horizantal

slender thistle
#

The argument you will use will be the ID of the user

royal herald
slender thistle
#

display: inline

#

?

#

There's also flex-direction: row for flexbox

royal herald
#

its a row

#

nvm did it

#

i didint close the >

#

lol

sharp saddle
#

my bot is having problems on some servers

#

the bot literally stops working on voice channels unless you run the command again

#

and this is very boring to do

slender thistle
digital swan
#

wtf

verbal brook
#

who can help me please ?

#

I add my bot to repl.it and this error i dont know how can fix it

spark flint
#

That’s related to your node version

verbal brook
#

how can i update node version on repl.it ?

lament stump
#

I'm trying to make a skilling system with MongoDB, but the AddEXP function doesn't pull the "Strength" object, when I run a command.
It returns the attached image (it creates another "Strength"-Object with the EXP inside)

Function: https://srcb.in/n0O91I5nFw
Schema: https://srcb.in/LSX5zWlGut

How would I fix that?

lyric mountain
#

puns aside, show how you're saving that

lament stump
#

wdym, like how I get all the elements in there?

#

or the command where I am triggering the function?

#

@lyric mountain

crude juniper
#

the function where u save to the db

lament stump
#

that's in the AddEXP function

#

i mean i am updating it there, but like

#

.-.

crude juniper
#

the link u sent doesnt show updating the user in the db

#

o u left links above too

lament stump
#

wdym

#

what functions am I missing

crude juniper
#

nvm

earnest phoenix
lament stump
#

That did work on another project tho, which is why it's weird

earnest phoenix
#
{ $pull: { skills: { name } } }
#

This will remove the objects in the skills array that have a name property that matches the given value

lament stump
#

oh wait nvm it did

#

it's just not at the top of the list

#

now i just gotta figure out how to move it to the first slot

earnest phoenix
#

You can do that by removing it from the array using the $pull operator and pushing it back to a certain position in the array using the $position operator

#

yo voltrex

#
    const req = await axios("https://discord.com/api/v8/oauth2/token", {
      data: {
        client_id: this._clientID,
        client_secret: this._clientSecret,
        grant_type: 'authorization_code',
        redirect_uri: this._redirectUri,
        scope: 'identify',
        code: code
      },
      headers: {
        'Content-Type': 'application/x-www-form-urlencode'
      }
    })

Why discord giving me a 400 :c

earnest phoenix
earnest phoenix
earnest phoenix
#

both work but both send 400

#

Oh you said 400, I mistakenly read that as 404

lament stump
earnest phoenix
#

Also you seem to be doing a GET request, not a POST request

earnest phoenix
#

yea

#

I was making a get instead of post

#

now it says unsupported grant type tho

#

isn't authorization_code the correct one?

#

I don't think you're supposed to provide scopes when performing an access token exchange

#

And also taking this to account

These are a list of all the OAuth2 scopes that Discord supports. Some scopes require approval from Discord to use. Requesting them from a user without approval from Discord may cause errors or undocumented behavior in the OAuth2 flow.

#

What exactly am I doing that needs approval

#

The identify scope probably requires approval

#

yea the user's approval

#
    data: {
      error: 'unsupported_grant_type',
      error_description: 'Grant type None is not supported'
    }

but i get this back from axios

#

Is it not sending the request data?

#

Yea its not sending the request data for some reason

earnest phoenix
#

hmmm

#

You're probably sending the data the wrong way using Axios, because it's obviously not the same way as node-fetch

#

I've followed the documentation o nit

eternal osprey
#
let bool = false
  if(message.member.hasPermission("ADMINISTRATOR")){
  } else{return message.channel.send(":x: **You don't have the perms to start this event!**")}
  
  message.channel.send(":white_check_mark: **Event has been started!**")
  let re;
  if(bool === false){
  async function startLunar(){
  //something here

 ps = setTimeout(startLunar, re);
  
  

}
startLunar();
} else {clearTimeout(ps) };```Why is this not correctly closing the function?
earnest phoenix
#

Oh god that formatting

eternal osprey
#

eventhouh i have used the end event: js if(message.content === '!endlunar'){ if(message.member.hasPermission("ADMINISTRATOR")){ } else{return message.channel.send(":x: **You don't have the perms to start this event!**")} bool = true console.log(bool) message.channel.send(":white_check_mark: **Your Lunar event has been cleared!**") }

#

No i had to, as i removed big chunks of code

#

i formatted it earlier with prettier

earnest phoenix
eternal osprey
#

It is sill performin that //something here function

#

Eventhough the bool is set to true.

earnest phoenix
#

Because you're not modifying the bool variable before it reaches that if statement that checks if it's false

eternal osprey
#

Oowh okay.

quartz kindle
#

show full code

eternal osprey
#

Sure

quartz kindle
#

so we can see where exactly each part is relative to the other

earnest phoenix
#

Any idea what data https://discord.com/api/oauth2/token/revoke takes if it takes any?

eternal osprey
#

@quartz kindle

#

i've changed bits up. By not using bool variables, but just plain json files

#

because it is still not stopping the timeout

quartz kindle
# eternal osprey https://pastebin.com/a73Dg1xq

that code is extremely inneficient, you are basically destroying your I/O with multiple fs operations on every single reaction, plus you have an infinite recursion if i understand it correctly, that creates infinite reaction listeners so your code is gradually duplicated until your bot blows up all your cpu and ram

lyric mountain
#

Unless you're benchmarking your cpu/ram, in which case it'd be very efficient at seeing how long can it run

dry imp
ember gust
#

for one it seems like you arent using a command handler

#

two, i would definitely move away from a json database (which isnt a database tbh)

wheat mesa
#

race condition go brr

earnest phoenix
#

wdym json is a database /s

#

How do you think I store your ips

wheat mesa
#

"oh no why is all my data corrupted!"

earnest phoenix
#

Oh no my data...its corrupted!

#

That is what the US government looks like

tawny lava
#

this is what hackers look at

#

you may not realize it but they're actually in the fbi's database

lyric mountain
#

No, this is actually a Dwarf Fortress gameplay

boreal iron
#

It might be the matrix code, colorized of course

blazing umbra
wheat mesa
#

Well, there’s gotta be a reason for it!

dry imp
#

damn sad topggDoge

marble juniper
#

lol final denial

#

the nail in the coffin as they say

#

bruh

#

I thought luca or watcher filtered those

#

or does it not

#

the nitro scams

#

@ripe prairie

earnest phoenix
marble juniper
#

my bot does

#

actually now that I think about it I should make my bot kick those people if possible

feral aspen
#

How can you get the history of a document on MongoDB?
How the data was 10 hours ago, etc.

#

Probably via the MongoDB object ID.

marble juniper
#

don't know if mongodb even has that

feral aspen
#

Oh, man.

marble juniper
#

No I don't think mongodb has it natively

#

but there are open source solutions that can implement it

#

maybe this works for you

#

but I didn't try it so I can't give a garuantee it is gonna work

#

maybe just search online for a solution

#

or check the mongodb docs if they have it

dry imp
#

dont know how tho

small tangle
#

should i worry about level INFO exceptions happen internally an app im using? im getting these logged but not sure how to prevent them. i mean my app still works

feral aspen
split hazel
#

I recommend saving a history manually

#

only save what you need

dry imp
#

the object id is there by default tho

earnest phoenix
#

any1 know any good rank card API's?
(pls ping answers)

cinder patio
#

that's something u do yourself

earnest phoenix
#

I'm not in the mood for making my own rankcard api

cinder patio
#

no not an api... just use canvas or another library

crystal wigeon
#

so umm, apparently non relative module imports are not working on mac m1

#

but works on ubuntu

#

i tried googling, found nothing

#

anyone know any fix?

#

seems like its not reading the tsconfig file at all

#

during run time

#

but its able to detect during compile time

#

wtf

earnest phoenix
boreal iron
#

Bot review now and you will get one

crystal wigeon
#

skem

earnest phoenix
boreal iron
earnest phoenix
#

have been since I booted my laptop

#

¯_(ツ)_/¯

#

welp, guess imma google

#

thanks for the help

boreal iron
#

Yee can’t really you

earnest phoenix
#

🙃

crystal wigeon
#

help me

#

;-;

spark flint
#

with what

#

oh i see

#

what errors?

crystal wigeon
#

It says module not found

cinder patio
#

Is the error coming from VSCode or tsc

#

run tsc

crystal wigeon
#

Tsc throws no error

cinder patio
#

well there you go. So VSCode is using another configuration

crystal wigeon
#

how is it able to find the modules when i compile?

cinder patio
crystal wigeon
#

or when i write code

#

how do i

#

open that

cinder patio
#

you're using vs code right

crystal wigeon
#

ye

cinder patio
#

Go to any typescript file inside your project, it should be in the bottom right corner

crystal wigeon
#

yeah, but i dont see some config

#

or typescript version

#

it opens a drop down on top when i click on typescript

#

and shows "auto detecT"

cinder patio
#

you have to hover over the {}

crystal wigeon
#

its pointing to tsconfig. the correct tsconfig file in my project

#

but when i start the app it says it cannot find module

#

;-;

crystal wigeon
#

but when i try to start the app i keep running into module not found aaaa whyyy

marble juniper
#

Do you have @types/node installed as a dependency

#

Also make sure that moduleResolution in ur ts config is set to node

crystal wigeon
#

Yeah

#

I do

crystal wigeon
#

still the same error.

#

couldn't find anything on google related to it

#

weird part is vscode is able to load the module while coding and importing... and also works on ubuntu

#

its just failing for some reason on mac m1

#

just tried on mac intel didnt work. sad

cinder patio
#

mac's trash

dry imp
#

true

#

but i use mac

cinder patio
#

yes

dry imp
#

like i wanted to do auctions but im scared that discord will flagged my bot as inorganic growth like bruh

cinder patio
#

Do auctions after it's verified

digital lotus
#

About inorganic growth how long does it take to get fixed?!?!

dry imp
#

depends

#

it may not get fixed

digital lotus
#

oof

dry imp
digital lotus
#

May have been a bad idea to ask a buddy to spam it lol

dry imp
dry imp
digital lotus
#

I was flagged :(

dry imp
#

is the decision final?

pale vessel
dry imp
#

ok flaze thats a good one

earnest phoenix
#

Does anyone know how I can do a perms check with the database, I have a command to add a person in the premium category and I would like her to use only those commands. I use mongodb (python)

dry imp
#

use motor

#

and do perms check

#

its complicated to explain but there is a video on youtube explaining saving and retrieving data from mongodb to python

gentle condor
#

This is my code,i want to add a string to a string but why doesn't it work? it prints nothing

r = ""

def add(string:str):
        r+=string

print(r)
earnest phoenix
#

And want to make a check in the database

gentle condor
#

what kind of check?

#

you can do something like

earnest phoenix
#

To see if the user id is in the database or not in order to use the command

gentle condor
#

if collection.find_one({"id":user.id}):
        do your work...
gentle condor
gentle condor
#

yes

earnest phoenix
#

I have multiple collections that have "_id"

gentle condor
pale vessel
#

Where?

earnest phoenix
#

in my db

gentle condor
#

my actual code is kinda different

earnest phoenix
#

I need you to search only in the "premium" collection

#

the code search

#

only in this collection

dry imp
#

then its the same

gentle condor
dry imp
#

userid.premium

dry imp
#

_id is there by default

gentle condor
#

isn't that the user id?

dry imp
#

oh nvm

dry imp
gentle condor
#

hm

#

btw why don't they just make another db for premium users?

dry imp
#

and making custom _id is a bad practice anyway you should leave that by default

spark flint
#

i would recommend using userid or something

#

not _id

gentle condor
#

yeah

spark flint
#

or add premium:true to premium users in a regular user database etc

spark flint
#

and you don't return anything

gentle condor
#

i have called

spark flint
#
r = ""

def add(string:str):
        r+=string
        return r

print(add("whatever"))```
#

like that

earnest phoenix
#

I took the blacklist system and changed it so I can add a person as a premium in another collection

gentle condor
#

what if it's not in a function

#

what to do?

spark flint
earnest phoenix
#

If you want I can give you the code to add / remove a person in the database

gentle condor
#

i mean i want to use it outside a function

#

i want to use it in a if statement

#

like

 
r = ""
if i == 1:
    r+="string"
dry imp
#

isnt it the same?

gentle condor
#

it says local variable 'r' defined in enclosing scope

#

and this if statement is in a command dpy

dry imp
#
def add(string:str):
        r = ""
        r+=string
        return r


@bot.command()
async def idkbro(ctx,x:str):
         print(add(x))
gentle condor
#

hm

#

ty

dry imp
#

or do you not know how function works

pale vessel
#

that basically just returns the string

dry imp
#

true

gentle condor
#

this make "r" inaccessible in other functions

modest maple
#

well, it makes a local variable

dry imp
#

then make it global if you want

gentle condor
#

yeah how?

#

just define it outside?

#

i tried it

dry imp
#

i wanna cri

#

also wdym by you cant access r?

#

is it the r before addition?

gentle condor
#

i did this , it says local variable'r' defined in enclosing scope on line 1 referenced before assignment

r = ""
def add(string:str):
        r+=string
        return r
dry imp
#

do you know what the error means?

gentle condor
#

i do not that's the problem

dry imp
#

well you should learn local and global variable in python

#

r in that scope is global

gentle condor
#

i read it in Google

dry imp
#

while you want to access r without getting the variable r

gentle condor
#

how to get

#

please 🙏

dry imp
#

you can google it

gentle condor
#

hm

#

let me try

high crown
#

hey how to make a 404 page in replit

#

I tried googling but no clue

lament rock
#

aren't those only static pages

cinder patio
#

no backend

#

I guess static pages can also mean no js, but in this context it means no backend

#

static pages are html + css + js only and mainly are used to give information only. You can download them and use them offline

#

dynamic pages are pages which show you different things based on different factors, for example if you're logged in or not, etc. To do most of the things they communicate with an API

#

If viewed offline, no

#

It's very broad

#

yes

stiff lynx
#

how can I set that an interaction.followUp can be seen only by the interaction.user? [discord.js]

lament rock
#

Pretty sure followUps can't be ephemeral since the endpoint always returns a Message object, but that wouldn't make sense in the case of ephemerals

#

You just have to reply with ephemeral only

#

Messages can have multiple message embeds, so you can fake multiple messages to an extent by editing your reply

pulsar bone
#
Traceback (most recent call last):
  File "main.py", line 1, in <module>
    import discord
  File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/__init__.py", line 25, in <module>
    from .client import Client
  File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/client.py", line 53, in <module>
    from .webhook import Webhook
  File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/webhook/__init__.py", line 12, in <module>
    from .async_ import *
  File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/webhook/async_.py", line 46, in <module>
    from ..channel import PartialMessageable
ImportError: cannot import name 'PartialMessageable' from 'discord.channel' (/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/channel.py)
#

what this error is all about

cinder patio
#

please kill me... I've been trying to make custom marked extensions work for an hour now 😭

pulsar bone
dry imp
#

you didnt install pycord or discord correctly

#

also replit sucks

#

auto install dependancies cringe

pulsar bone
crystal wigeon
#

Man someone help

earnest phoenix
#

my bad there are no comments

earnest phoenix
lyric mountain
earnest phoenix
#

oh right this aint js

lyric mountain
#

Does python even have lambda expressions?

#

Or anything akin

#

Actually, I don't even see the reason for that function

modest maple
#

litterally just called lambda

modest maple
#

+= is an implicit mutation

earnest phoenix
#

this might not work but here you go: +[r, str]

modest maple
earnest phoenix
modest maple
#

I litterally use like 8 languages one of which includes JS

#

but meh

modest maple
#

Python
Rust
JS
TS
Java
C#
Lua (sort of)
Ruby
Go
C

earnest phoenix
#

why ts

#

go to typescript jail like sayuri

modest maple
#

Because Big react JS projects without TS are pain?

earnest phoenix
#

why c when rust

modest maple
#

Because diffrent clients have diffrent requirements

earnest phoenix
modest maple
#

and interfacing with C with Rust still helps to have knowledge of C

earnest phoenix
#

some magic: assembly

lyric mountain
#

Who assembled assembly?

wheat mesa
#

The assemblers

cinder patio
#

me

split hazel
crystal wigeon
#

;_; still no luck with this non relative imports shit

#

man

#

i've used them in my entire project aaaa

earnest phoenix
#

does he even know how to merge prs

#

i am seriously offended by the last line at the bottom of the page

#

gigachad using raw html for a website without a framework

#

@hoary hill OH MY GOD I TRIED CHECKING OUT THE SITE BEFORE YOU COMMITED

#

IT USES <font> TAGS

#

HOW MANY <br> ARE IN THAT FILE

#

USE A FRICKING <pre> TAG PLEASE

lyric mountain
#

what does pre do?

earnest phoenix
#

AAAAAAAAAA

<div align="center">
      <div align="center">&nbsp;&nbsp;
        <div align="center">
earnest phoenix
lyric mountain
#

oh

earnest phoenix
#

however if your code is indented...

lyric mountain
#

so with pre you're forced to write it right at the left border?

earnest phoenix
#

yes

lyric mountain
#

dat sucks

#

good idea, bad implementation

earnest phoenix
#

same happens for template strings in js

#

or for any programming language that supports multi line string literals

lyric mountain
#

in java we don't have such weakness

earnest phoenix
lyric mountain
#
{
  {
    {
      String s = """
        This will be written
        exactly as you'd expect
        """;
    }
  }
}
#

groovy also doesn't have indentation issues with multiline literal strings

#

actually none of the jvm langs have either

earnest phoenix
#

what about intentional indentation

lyric mountain
#

also works

#

the bottom quotes define the left margin

boreal iron
#

You must be crazy…

lyric mountain
#

not in the code

boreal iron
earnest phoenix
#

intentionally deteriorating ux :)

lyric mountain
#

make the site generate a new random bug every 10 minutes of session

boreal iron
lyric mountain
#

the longer you stay in it, the more uncanny it'll become

boreal iron
#

Sounds like what topgg does

earnest phoenix
lyric mountain
boreal iron
#

pepowot 🔫

earnest phoenix
#

f

lyric mountain
#

I miss joke websites trend

#

nowadays it doesn't even work anymore damn

earnest phoenix
split hazel
#

multiline strings are never pretty

#

either write with no identation or write a very long string with \ns separating the lines

earnest phoenix
#

FaKe has pfp kannaWhat

split hazel
#

getting too old

split hazel
#

java? never heard of it

lyric mountain
#

it supports indentation within strings, doesn't get rekt with code indentation nor use long strings with \n separating

split hazel
#

what if i wanted to add a space before that

#

exactly

#

sit downn

lyric mountain
#

...you can

split hazel
#

prove it

lyric mountain
#

how?

split hazel
#

idk print something

lyric mountain
simple stump
#

When I use .permissionOverwrites, it overwrites the permissions and adds new ones. But how would I update existing permissions to a channel? Ex. If I deny send message permissions to user1, if I use .permissionOverwrites to deny send message permissions to user2, user1 can now send messages. I would like to deny send permissions to user1, but ALSO deny send permissions to user2 as well.

boreal iron
simple stump
#

upsert?

lyric mountain
boreal iron
#

You and your dirty mind... They obivously do sports...

lyric mountain
#

depends on the lib

#

just search in the docs

earnest phoenix
#

@boreal iron nice pfp

wheat mesa
#

sus

boreal iron
simple stump
wheat mesa
#

What's the best way to go about making a lock channel command? I'm thinking something like looping over all roles without the MANAGE_CHANNELS permission, but that seems inefficient

earnest phoenix
#

Can't you just filter all roles who do not have the MANAGE_CHANNELS perms and then make it so those roles can't speak in the channel?

earnest phoenix
#

no one help waffle he called me stupid

boreal iron
#

Well he's using Java... doesn't really "speak" for him

earnest phoenix
#

Hes not using java?

wheat mesa
#

unlucky really

split hazel
#

pov you use java

boreal iron
#

Suffer the consequences - feel the hate!

split hazel
#

yeah

#

by the way have you guys heard of the new hit game?

#

it's called among us

#

have you played it?

boreal iron
#

Not yet but isn't it already "old"?

split hazel
#

no

#

its new

boreal iron
#

shut up

#

go on troll yourself doing OS dev

split hazel
#

bruh you are cringe

#

in fact my os is evolving

#

instead of studying at school i spent my time fixing a bug i had with an iterator i made

#

@boreal ironive reached a point to where I avoid if statements because i consider them slow and risky

#

though i make some exceptions because a linear operating system that cant do anything other than one thing isnt all that fun

#

if statements are costly

#

can cost 20-30 clock cycles if the cpu predicts the outcome of the if statement wrong

#

thats a lot

pale oasis
#

Suggestions for the embed?

#

The color is random btw.

split hazel
#

@quartz kindle ops on the iterator i made?

#

cant think of a better implementation

#

cant use indexes to iterate because it is a linked list so i made an iterator that moves up the links

#

actually i can go a step above and avoid the "creating a struct and iterator" overhead by placing it in a static variable and calling the reset method i made on the iterator to start over

#

win win

#

its all about the optimisation

boreal iron
#

It pretty much is, yeah

#

For people who know what they do

#

For anyone else it’s just, how tf can I get it working

#

Can’t find anything to copy&paste on Google

split hazel
#

the inefficiency i see in modern code

#

it makes me sick

#

it already hurts enough adding a single if statement to a very performance sensitive function

#

while fuckers here make whole unity games that run at about 5fps on older computers

boreal iron
#

I’m gonna get something to eat

cinder patio
#

I've figured out how to hack js to get the best performance ever 😎

boreal iron
#

Don’t using JS?

cinder patio
#

but on another node, I can't believe how outdated the marked typings are

#

note*

#

nothing ever goes right for me when I'm using marked.js 😩

split hazel
#

js is fast

#

but think of the overhead associated with interpreting the language in real time with objects serving as a type basis for the language 😭 🤮

#

WITH UNKNOWN TYPE SIZES AND NAMES TOO

#

😭 😭 😭 😭 😭 😭

#

i need therapy

cinder patio
#

V8 performs a TON of clever optimizations

#

for example...

#

Objects actually store indexed properties separately from named properties

#

and every object has hidden "class" which describes how it looks, so similar objects get stored more efficiently in the future

split hazel
#

that is sexy

cinder patio
#

What's also cool is that functions created by the Function constructor also get optimized after they're first called

#

the power that gives you is insane

split hazel
#

optimised how??!!!

#

TELL ME MORE

cinder patio
#

the same way your code gets optimized

#

which means you can write JS code in your JS code, which will be almost as fast as your JS code

#

Obviously creating the function itself is going to be slow, BUT, if you're calling that function 1000 times it's totally worth it

#

create it once, call it a lot

modest maple
#

welcome to a JIT compiler

earnest phoenix
#

or pure v8

earnest phoenix
#

since js is much more optimized

coral palm
#

How could I limit a command to people with a specific role in discord V13?

lament rock
#

check if the member.roles has the role ID

dry imp
dry imp
novel jetty
#

How can i make my bot delete all the messages in DMs?

dry imp
lyric mountain
#

Almost In Time

#

like, it almost compiles ur code

still storm
#

Guys, i tested my bot with multiple of people (about 20) and no one said it gives interaction failed. Myself i also never got interaction failed but some people have shitty internet and they are blaming me that my bot doesnt work, so i got free three 1 star reviews, reviewers offline for months and reviews are in guidelines

#

Top.gg support sayin that its my bot problem

#

But when internet is bad then it wont even get back to user in 3 sec, even when interaction defered then it fails for these people (tested on slowest internet possible)

dry imp
#

i know that might happen usually comes in ephemeral message, but now that i think abt it my connection is fine and i still cant use the slash command on my test bot so eh

#

it is an edge cases you just gotta deal with it i guess

still storm
dry imp
#

as i said its an edge cases

still storm
#

So because someone tries to use discord with free internet then he gives me 1 star review that bot doesnt work

#

Instead of having 5 star i have 4.48

winter pasture
#

You could give users a backup option I guess for users with slow internet
After message intents will become enforced, the bot will still be able to see messages if the bot is tagged
So as an example mirror “/help” to also be accessible via “@mention help”

So guess you can keep that as a option? Guess it would only work if you have a bot user linked tho

still storm
dry imp
#

not if you implement it

winter pasture
#

Ye… I guess open a GitHub discussion on the docs reporting it as a annoying issue, or upvote a existing one if there is

still storm
#

Some people aint clever enough to use normal commands instead of slash ones when slash ones fail. They would still give 1 star

winter pasture
#

Had the same issues with slash command list not even loading on android on slow connection, and as you said, the 3 sec timeout is client side not server side… they should really have the client wait forever until backend then comes back saying it times out lol

solemn latch
#

How does that work?

still storm
#

timeout is client side

solemn latch
#

I'll try and replicate that by artificially increasing my ping I guess. But I've never heard of that

winter pasture
dry imp
#

this is true

still storm
winter pasture
#

Wish I had the ability to reproduce quickly as well. Got no access to a computer atm

still storm
#

same

#

Ima go sleep now, gonna check this channel later

winter pasture
#

Actually does not seem like that’s a thing anymore? 🤔 Yeah the bot is offline, but it waited until I came back online

still storm
still storm
#

Cuz they were probably before this update

winter pasture
#

The more reviews you get, the less the bad reviews will matter luckily

#

@solemn latch do you know if Top.gg use a drawing review system? So the total stars of a bot is only based on X amount of the latest reviews?

solemn latch
#

I have no idea tbh

winter pasture
#

If not, you could suggest it at the https://feedback.top.gg site. So old bugs, issues or missing features won’t affect total score

#

Pretty sure Uber does a draining review system too

Your driver rating is an average of the last 500 ratings from your riders.

solemn latch
#

I have a feeling that if we implemented that in that way it wouldnt apply to 95% of bots/servers

#

like in their lifetime it still would be under the minimum review count to matter

winter pasture
#

I mean, 500 reviews would probably not be a good limit xD

solemn latch
#

well, it would have to be quite high, as larger bots and servers exist

winter pasture
#

Could segment bots into buckets. Small bots have reviews rotated after every 20 reviews, larger bots rotate every 100 etc
Or even put it at a percentage, where only the most recent 40% of reviews are counted after X amount of reviews.

#

But again, complicated. Probably worth putting on feedback, but implementation and user research would definitely need to be heavily discussed

fresh verge
#
            const overridepermissions = new Permissions(message.guild.me.permissionsIn(message.channel));
            if (overridepermissions.has(Permissions.FLAGS.VIEW_CHANNEL) == false || overridepermissions.has(Permissions.FLAGS.READ_MESSAGE_HISTORY) == false || overridepermissions.has(Permissions.FLAGS.SEND_MESSAGES) == false && !message.member.guild.me.hasPermission("ADMINISTRATOR")) return;``` what am I doing wrong? :C
lyric mountain
#

overridepermissions.has(Permissions.FLAGS.VIEW_CHANNEL) == false just use !

#

your issue is having a not OR not OR not AND not

#

not OR not alone won't work

#

you took it to a whole new level

dry imp
#

lets go pycord v2, now i gotta fkin rewrite all of my commands

trim perch
dry imp
#

its better because i dont need to change anything in the import

#

and i dont really know nextcord features so yea

dense gulch
#

Lol

#

K wait howdwe get bot developer role

wheat mesa
dense gulch
#

Owoooo

tribal crow
#

Heeey

#

Do u know how i would reset all the slash commands my bot have?

#

Like completely remove them

boreal iron
#

client.application.commands.set([]);

#

Which will update all global commands to nothing - represented by the empty array

#

Aka. it removes all commands

lament rock
#

Tfw my bot migrated to slash commands and I managed to lose 1000 guilds in a few days

#

vrcTupCry 📉

trim perch
#

stonks

hybrid cargo
#

reverse stonks

trim perch
#

except you won't be working at mcdonalds to repay it

lament rock
#

people are actually livid I couldn't migrate all of my existing commands because of 50 command limit and no custom prefix support. And everyone thinks bot doesnt work because not the same prefix

trim perch
#

users are dumb and that's a good thing

#

also isn't the limit 100

lament rock
#

not in this case

hybrid cargo
#

Yeah thats a problem with users who are new to discord or dont know the new discord updates

#

Isnt the global slash limit 100?

lament rock
#

I've been told its 50 and I tried loading all commands and got shit on

#

ended up deleting all of the modules unrelated to main bot focus

hybrid cargo
#

Oof

#

You got approval for message intents?

lament rock
#

nope. No unique features that actually depend on it

#

They denied even though I had message collector prompts

hybrid cargo
#

Oof

warm swan
#

Uh

#

how do i fix this?

hybrid cargo
#

this is just my suggestion tho, but you could have made the transition a bit slower... Like move to slash commands but also have the normal commands with the prefix being the bot's ping 👀

warm swan
#

??

hybrid cargo
#

Bots get message content of messages which has them mentioned, so

lament rock
#

I could have, but I was also starting to reach an upper limit for what my db could handle because I had to cache perms and everything

hybrid cargo
#

Ahh

trim perch
#

Well how many servers do you have in total

lament rock
#

6500

trim perch
#

oo yikes

hybrid cargo
#

now? or before losing 1000?

lament rock
#

Now

hybrid cargo
#

Oh

#

Oof

winter pasture
# warm swan

The image src needs to be a remote url. If it starts with a / like you have there, it will look for the image on the top,gg domain, but the image is not there

warm swan
#

I don't get how to fix it

lament rock
#

does not helping my mood since I took a long time rewriting and moving to TypeScript which was very painful. Debated on tossing in the towel a few times and possibly stopping Discord related dev work in general, but I maintain some relatively popular libs, so decided against it

warm swan
#

do i use the image as a link?

hybrid cargo
quartz kindle
lament rock
#

4 years to get to 7.5k

#

Sure maybe I will

shadow sundial
# warm swan

i dont recommend discord as a permanent solution though

lament rock
#

if its for a Discord bot, using Discord's cdn will be fine because both would go offline at the same time if Discord decided to kick the can

warm swan
#

Alr

trim perch
#

Discord is probably the best storage in that context

#

unless you want to run your own service, but have fun if top.gg decides to enforce any origin restrictions

lament rock
#

One of my colleagues turned Discord into a database once

#

messages

boreal iron
sullen crater
#

@round cove i don't really hate on firefox too much im glad there is more than chrome out there and obvs it being broken is not ideal iara_lul_haha its on the list though

#

also moving here since isnt auctions im just babbling about browser

round cove
#

It's my continued thing as I was giving veld shit about it a year ago lmao

sullen crater
#

ohhhh makes sense makes sense

round cove
#

It has api secrets in it and shit just in the js*

#

so I think it's funny it's still there

sullen crater
round cove
#

This is like oily era code

sullen crater
#

😭

round cove
#

Adding service workers when

#

:^)

#

pelase

sullen crater
#

:3 lots of stuff changin

round cove
#

good !

#

I can't wait til Top.gg is a PWA and I can keep it pinned forever

#

Okay Cassie

#

Now help me create EF lambda's so I can talk to AWS' RDS shit all for my shitty site

#

:^)

sullen crater
crystal wigeon
#

I need help

#

Aaa why is this dumb thing not working on mac

#

Non relative imports aaaa typescript

dry imp
#

mac suck

#

i cant even use speechrecognition library due to vscode not asking perms on mac

lament rock
#

cant you manually give it permissions

dry imp
#

nope thats what sucks

#

mac poggythumbsup

lament rock
#

📈

#

sounds like a great time to be alive

#

How you fix it is; fork it and fix it.
Or make it yourself.
Or fuck it

dry imp
#

or sell your mac

crystal wigeon
#

well doesnt help

#

aaaa

#

there should be some solution

marble juniper
crystal wigeon
#

like it makes no sense at all

lament rock
#

My turn around time for features in my bot has been a lot quicker ever since I migrated to first party software almost entirely. I remade LavaLink in TypeScript. I made a cacheless version of Discord.js
I now maintain modular Discord interfaces for rest and gateway
I made my own orm.

My existence has been painful, but everything is my fault if there's issues and I can fix it at my own leisure.

crystal wigeon
#

vscode can detect the tsconfig basurl but when i execute ts-node

#

it keeps trying to look in the node modules for non relative imports

marble juniper
#

imagine coding in ur own linux distro with ur own code editor with only ur own libs in that programming language

lament rock
#

Software devs in the early days of their language

crystal wigeon
#

welp, hope i get there one day hahaha coding my own compiler

marble juniper
#

nah even better

#

code ur own kernel

#

and ditch linux entirely

#

make ur own custom kernel and os based on it

marble juniper
#

ofc

crystal wigeon
#

it still isnt solving my current problem

#

TT

lament rock
#

Source your own silicon

marble juniper
#

with ur own hardware and chip

crystal wigeon
#

potato chip indeed

marble juniper
#

completely self built

#

from the hardware to the os

lament rock
#

Now I'm motivated to do just that

#

give me a few years

marble juniper
#

give me 10 years

lament rock
#

I'll make the chip operate on NaN and Infinity only instead of 0 and 1

dry imp
#

its either exists or not

lament rock
#

the message I was trying to get across though is that there's no shame in making your own software. It only becomes an issue when you make it public domain and people use it in ways that weren't intended and start to discover bugs and then you have to develop your software in such a way where it's idiot proof until someone who's a bigger idiot comes along until you end up with your own plain english high level language

#

I think I'm on the part where bigger idiots are coming along to find my software and expect things to be higher level even though the purpose of my stuff is supposed to be low level abstraction layers that make use of modern language features

low river
#

error is a image cause i realised i posted it somewhere else

slender wagon
dry imp
#

known issue

split hazel
pale oasis
#

Is it a good idea to use Redis as an economy?

trim perch
#

It's a general-purpose database, so it'll be fine

#

Unless you have a lot of activity, then maybe not.

#

Redis is used as a cache, but many people just use it as a generic database.

#

Less powerful than SQL, but drastically simpler to use.

pale oasis
#

I’m just trying to make my bot as simple as possible for my developers to understand what i’m trying to do. Since we are a team of 3, and one of them is unexperienced.

pale vessel
#

could tell that was Klay without even looking at the pfp/name

trim perch
#

My disguise has been foiled!

#

Klay is no more.

woeful pike
#

redis has caused so many issues for us that I would never trust it as a reliable db

trim perch
#

define issues

lyric mountain
#

No need to sacrifice features for simplicity

split hazel
pale oasis
lament rock
#

I had tried to use redis as a cache for data returned by Discord, but I somehow managed to bottleneck it

woeful pike
# trim perch define issues

not sure, we've had problems with persistence failing and corrupting the db and forcing a full reset on redis multiple times in the past which is totally fine with redis as a cache but completely unacceptable for a persistent storage

blissful palm
#

Hi

woeful pike
#

if I had to guess it's related to persistence intervals like how many keys need to update before it does an async save to disk and high traffic

split hazel
#

pretty sure redis is acid compliant

#

kind of

modest maple
#

redis isnt no

split hazel
#

only on weekends

modest maple
#

but also, you shouldn't be using redis and relying on it's persistent store

#

it fundamentally cannot handle large snapshots well

pale oasis
#

Looks like I encountered my first official error with Redis I guess.

modest maple
#

I doubt it

#

i mean

#

most people never need redis

#

they just choose to use it because "OMG cache! must have! my database knows nothing and they've never thought about caching!"

pale oasis
#

If people use Redis for caching why not use node-cache if you use Node.js?

modest maple
#

Realistically top.gg shouldnt need redis either

trim perch
#

nooo materialized views are scary

modest maple
#

unless there is some awfully janky shit on the backend (which wouldn't suprise me)

split hazel
#

redis lets you flex

#

what more do you need

modest maple
#

It lets you flex to people of equal incompetence in places where they dont need it

#

to anyone else you just look like a clown

trim perch
#

but dude it's fast! perf!

#

plus how else will you feel better than other devs

woeful pike
modest maple
#

I mean even then, its very specific cases

woeful pike
#

I think we could throw away like 80% of all our redis uses and not feel any difference

modest maple
#

at a large scale even becomes negative point relying on redis because you just fuck up your database's buffer pool system

#

"Oh we dedicate like 4TB of memory to our cluster backed by our 4TB memory redis cluster"

woeful pike
#

we're probably gonna yeet redis completely once everything is inside the same vpc

#

I think redis should only be introduced once there's a tangible problem otherwise it becomes the problem itself 🧍‍♀️

#

well it becomes the problem regardless

modest maple
#

Database systems: Invest hundreds millions of dollars of work into smart caching systems for the database

Developers: puts redis infront of it

Database: 🤡

lament rock
#

time to cache everything in postgres instead

modest maple
#

yes

#

you would be, amazed at how much it can handle

#

if you actually configure it correctly

lament rock
#

I am amazed at how much it can handle. I've tossed a ton of shit at it. Although a super volume of requests seriously hurt it, so I had to make a system to buffer insert statements together

modest maple
#

People complain about postgres performance at high loads when they're using the default config which pretends that it's been ran on your mom's phone from 10 years ago

split hazel
#

@boreal iron wanna have a word?

drowsy flume
#

anyone know how I can find out why my bot is randomly going offline, with no errors at all

trim perch
#

pray you find it

#

without any errors or indications? good luck

#

try setting up logs

#

or if your host logs info

drowsy flume
#

;-;

split hazel
#

if you want to feel better when writing an operating system and if something goes wrong you wont know until you notice somethings off

#

theres no errors

#

its all just guess work

trim perch
#

that's what c is all about

austere zealot
#
<style>
h1 {
font-size: 20px;
}
</style>
``` im trying to change my font style for heading on my bots top.gg page but its not changing it. any idea why?
#

nvm

split hazel
#

compiled languages stink

#

tho rust apparently forces you to write safe code

slender thistle
#

Yeah

#

Pretty much if your program compiles without warnings, you already did something good

trim perch
#

very rough, but true

#

Rust's about the only language where passing the type checker actually means your program will work

#

except when it doesn't

#

but those are rare

#

I'd like to use Rust some time in the future again

split hazel
#

only thing i dont like about rust is the syntax

#

other than that I think its a great concept

boreal iron
woeful pike
#

i wanna use a proof assistant where passing the typechecker is a near guarantee that your program works

wheat mesa
#

What's the max channel name length?

#

32 chars?

#

oh crap apparently it looks like 100 chars

split hazel
sage bobcat
#

One message removed from a suspended account.

boreal iron
gleaming solar
#

Does anyone know how to set a timeout for sharding in discord.js?

lyric mountain
#

timeout for sharding?

earnest phoenix
split hazel
#

and the biggest 16 bit unmber is 65535

trim perch
#

What the heck fake

#

You have an avatar?

gleaming solar
woeful pike
#

completely unrelated but I once got u16::MAX as my 2fa code I still can't believe it

gleaming solar
#

Does anyone know how to set a timeout for sharding in discord.js?

solemn latch
#

timeout in what way? like setting the connection timeout?

gleaming solar
#

const manager = new ShardingManager('./index.js', { token: process.env["TOKEN"] });

manager.on('shardCreate', shard => console.log(`Launched shard ${shard.id}`));

manager.spawn([90000]);```

This the code I have
#

?

earnest phoenix
lyric mountain
#

if anything changing the shard spawn cooldown would be a BAD idea

gleaming solar
#

But there is error for a timeout

#

So I need to change the spawn cooldown

lyric mountain
#

not really

gleaming solar
#

Shard 0's Client took too long to become ready.

lyric mountain
#

check if ur nameservers aren't faliling to connect to discord.com

gleaming solar
#

Thats the error I get

gleaming solar
earnest phoenix
gleaming solar
#

Thats what I am saying so how do I change its timeout so the error or the server's internet connection wouldnt matter?

#

nvm found how

boreal iron
round cove
#

My shards are all dead

#

SHARDING_IN_PROCESS ???

#

First time running into this issue. Any thoughts?

lyric mountain
round cove
#

As in fetching from Discord.

lyric mountain
#

idk then

round cove
#

Using the token with different code that isn't sharded

#

It looks like the bot takes a long time to connect via discord.

#

And once it tries to connect again this is thrown.

lyric mountain
#

u said it's been a long time since u modified the code

#

could it be library being outdated?

hallow shell
#

little bit late but it’s pretty obvious what a and b are, there’s not really a better way to describe them

pale vessel
#

bruh

#

just a little late

trim perch
#

It's still an interesting question.

#

Another solution would be to have functions explain what it's for.

function ascend(x, y) {
  return x - y;
}

function descend(x, y) {
  return y - x;
}

// Now any place you see the two used, the intent is clear and declarative.
data.sort(ascend).sort(descend);
hallow shell
#

Ya

proven lantern
#

did amazon mess up their typescript or is intellij confused. this code works

grizzled raven
stiff lynx
#

I have an idea about an command but idk if it's possible.

Can I search in the chat for the last message sent by the bot and delete it, then send a new message?

trim perch
#

Yes.

#

Assuming it's a regular message (not an interaction response), you'd listen for message create events and record the last instance of your bot sending a message (e.g. store message ID in a database).

#

You could make an HTTP request for messages and try searching, but there's no guarantee the last message will be included, so you may end up making multiple requests or give up halfway

#

After that, delete your message by ID and post your new message.

#

The nice thing about the HTTP solution is the data won't go stale, as opposed to the ID in the database pointing to a potentially deleted message.

mortal snow
#

Anyone know why my bot can't use this custom emoji in its embeds?
<a:Nine :937089466986819625>
There is no space between the Nine and the : just had to put that so you can see what I put

#

nvm fixed it kek

#

I wasn't meant to put an A because its not animated

eternal osprey
#

Hey how do i download an attachment in v12?

#

With the bot ofc

#

I can already reach the attachment link, but got no clue on how to write the attachment contents (it's text) to a different file (as i am trying to obfuscate the contents).

earnest phoenix
eternal osprey
#

voltrex you are always helping! I appreciate you!

wheat mesa
#

...still using v12!

eternal osprey
wheat mesa
#

I’m just wondering why

#

Not shaming or anything, just don’t know why

earnest phoenix
split hazel
lyric mountain
#

imagine using a lib that announces deprecation many versions earlier

#

and still tries to preserve methods to cause minimum havok during update

#

can't be d.js of course

spark flint
#

ok so gamers

#

how do i download image from data url with nodejs

boreal iron
#

Impossible to see on mobile but it looks like a base64 buffer

spark flint
#

yep

#

it is

boreal iron
#

Decode the base64, then you get your image buffer

#

I don’t remember what it was in JS

#

toString() or toString(“base64”)

quartz kindle
#

in node it should be Buffer.from("iVBORw0KGgoAAAANSUhEUgA...", "base64")

#

you have to remove the first part

wheat mesa
lyric mountain
#

or btoa in this case

wheat mesa
#

plus at some point v12 will no longer work afaik

#

might as well just update to v13, that way when they eventually update to v14 and get rid of v12, there's less changes to go through

lyric mountain
#

what I mean is, with d.js you have basically no means to stay in-between versions

#

like, with it something either works or doesn't

#

while the correct way would be support legacy methods and delete them ONLY several versions later

#

that's why "deprecation" exists after all

wheat mesa
#

yeah

#

staying on v12 is more work than moving to v13 imo

#

no new features unless you want to use scuffed methods, etc

exotic meadow
#

hey so im making a http request to bloxlink and im getting some errors with the parsing-- any body know what to do?

Error:

undefined:1
[object Object]
 ^

SyntaxError: Unexpected token o in JSON at position 1

Code:

var data  JSON.parse(body)

Body is what was returned in the body of the http request.

wheat mesa
#

looks like body is already an object, no need to parse it

exotic meadow
#
undefined:1
<!DOCTYPE html>
^

SyntaxError: Unexpected token < in JSON at position 0

I just got this error.

wheat mesa
#

oh

#

that is returning the html document from what it looks like

#

does this endpoint you're hitting have documentation?

exotic meadow
#

wait

#

when i rewrote my code i made a typo in my link

#

ill see what it returns this time

wheat mesa
#

that's probably the issue

exotic meadow
#

the first time the link was alright

#

so idk

#

hm

#

it seems to be working now

#

idk what was up with the original code

wheat mesa
#

when you send a GET request to a static site, it'll return the html document associated with said site afaik

#

you were trying to parse a string

#

or something similar

#

that wasn't in JSON format

exotic meadow
#

yeah

pulsar bone
#
if message.content.startswith("$help" or ".help" or "?help" or "!help" or "@help" or "#help" or "%help" or "help" or "^^help" or "&help" or "*help" or "/help" or "\help"):

well it works but only in first case how can i make it work in all cases

eternal osprey
#

Is there any way to obfuscate lua code using node.js

wheat mesa
#

instead of 30 logical ORs

lyric mountain
trim perch
#

that is so aggressive

#

and greedy

#

Just adopt a single prefix or let the user customize it.

#

Don't be so greedy and try to make sure it almost never fails.

#

Since there are other bots.

lyric mountain
#

God forbid if u repeated that for every single command

earnest phoenix
#

bruh yeah

dry imp
#

lmao dudes tryna use every char on the keyboard as prefix

hybrid cargo
#

Even the backslash 😭

#

And it works for no prefix too 😭

dry imp
#

is the dude gonna do that for every other command lmao

novel pier
#

hey

#

Looking for help setting up a discord for a gaming type community?

#

any idea

#

fr lol

#

Just need hands to be fair

dry imp
#

no idea i dont socialize

earnest phoenix
#

How do you guys advertise your bots

#

if you do

solemn latch
coral palm
#

Someone Help me

Error:
TypeError: Cannot read properties of undefined (reading 'cache')[object Promise]

And the Code

 let servidor = message.guild.id;
        let evento = client.guilds.cache.get(servidor).roles.cache.get('931640452954853376');
    if(!message.author.roles.cache.has(evento)) return message.reply(`${user} **Pelo vistos você não esta participando do evento!**`);```
solemn latch
#

users dont have roles, members do

#

.author is a user not a member

quartz kindle
#

why is timekeeping so damn complicated

trim perch
#

because time is a bitch

#

and so are our planets

#

they suck at keeping time

#

leap days and leap seconds

quartz kindle
#

ye fuck the earth right?

#

lmao

#

leap days and leap seconds are the least of the problems

tawny lava
#

new Date() lol haha so easy

quartz kindle
#

precession, nutation, mean equinox, true equinox, mean time, apparent/solar time

#

@_@

#

julian / gregorian calendar

crimson vapor
#

we should just base time off a universal constant and remove years and months and weeks

trim perch
#

that'll probably disappear in the next millennium

quartz kindle
#

thank god i dont have to deal with other cultures' calendars like chinese/hindu etc

crimson vapor
#

do people even deal with time using those calendars or are they just for traditional stuff

trim perch
#

yes

quartz kindle
#

mostly for traditional and historical stuff

crimson vapor
#

yes is not a valid answer to an "or" question

trim perch
#

yes