<< 07-06-2024 >>

01:27:25*disso-peach joined #nim
02:24:23*lucasta quit (Quit: Leaving)
02:54:53*beholders_eye quit (Ping timeout: 240 seconds)
02:58:24FromDiscord<patitotective> Hi, what was it called the procedure that did min and max?
02:58:31*SchweinDeBurg quit (Quit: WeeChat 4.4.0-dev)
02:58:58FromDiscord<patitotective> (edit) "Hi, what was it called the procedure that did min and max? ... " added "Like clip a value between a range"
03:03:56*krux02 quit (Quit: Leaving)
03:04:20FromDiscord<.bobbbob> clamp? in std/math
03:04:44FromDiscord<.bobbbob> In reply to @patitotective "Hi, what was it": clamp? in std/math
03:05:49FromDiscord<.bobbbob> or system rather
03:05:59FromDiscord<patitotective> That's it, thanks
03:06:03*SchweinDeBurg joined #nim
03:55:07*xet7 joined #nim
04:55:08FromDiscord<xkonti> I've been using `choosenim` to install and update `nim`. Recently I learned that `nimsuggest` is completely broken in VSCode because of `choosenim`... I managed to remove both `choosenim` and all that it installed. I also managed to install Nim 2.0.4 and the lang server. Works great! But now I need the `devel` version of Nim and it's tooling. What is the procedure to switch to devel and then keep updating it? (I'm on Windows)
04:55:11*rockcavera quit (Remote host closed the connection)
04:55:47FromDiscord<xkonti> (edit) "great! But" => "great and there's even working code completion 🤯↵↵But"
05:09:57FromDiscord<pmunch> Well the easiest process is to use choosenim unfortunately..
05:10:58FromDiscord<saiplayz1138> I'ma make a batch script that installs the latest version of Nim for you
05:11:40FromDiscord<pmunch> Second best might be to clone the repo, set your path to the repo-local bin folder, and then checkout and build whichever version you want
05:12:01FromDiscord<pmunch> In reply to @saiplayz1138 "I'ma make a batch": Why not contribute to choosenim instead?
05:12:20FromDiscord<saiplayz1138> In reply to @pmunch "Why not contribute to": I'm not very good at nim, I started like 2 days ago
05:14:42FromDiscord<pmunch> Gotta learn somehow 🤷‍♂️
05:22:40FromDiscord<saiplayz1138> In reply to @pmunch "Gotta learn somehow 🤷‍♂️": I'm learning by making a discord bot
05:26:21FromDiscord<saiplayz1138> how long have you been doing Nim?
05:29:09FromDiscord<pmunch> Good question 🤔 At least 5 years, might be closing in on 10
05:31:02FromDiscord<saiplayz1138> In reply to @pmunch "Good question 🤔 At": wow
05:32:57FromDiscord<bubblie> Does nim have a celery alternative?
05:33:03FromDiscord<Robyn [She/Her]> In reply to @saiplayz1138 "I'm learning by making": Always a good way to learn xD↵It's how I learnt python years ago
05:33:04FromDiscord<bubblie> Celery as in python celery
05:33:23FromDiscord<saiplayz1138> In reply to @chronos.vitaqua "Always a good way": i learned python by making loads of discord bots
05:35:01FromDiscord<Robyn [She/Her]> In reply to @bubblie "Celery as in python": As in, job scheduling? Could that not be done via RabbitMQ or Redis?
05:35:24FromDiscord<Robyn [She/Her]> In reply to @saiplayz1138 "i learned python by": Yeah same lol
05:37:26FromDiscord<bubblie> Well redis has redis queues but rabbitmq and redis themselves are used with celery
05:38:07FromDiscord<Robyn [She/Her]> In reply to @bubblie "Well redis has redis": Ah, I'm assuming Celery is an abstraction layer then, you could always go to https://nimble.directory and search for keywords?
05:38:21FromDiscord<bubblie> Celery does asynchronous tasks and queues
05:38:29FromDiscord<bubblie> And has task scheduling
05:38:34FromDiscord<Robyn [She/Her]> https://nimble.directory/pkg/schedules there's this?
05:38:46FromDiscord<Robyn [She/Her]> No queues here though
05:39:36FromDiscord<Robyn [She/Her]> https://nimble.directory/pkg/taskman there's also this?
05:49:09FromDiscord<sOkam! 🫐> Is there a case where an `nkIfExpr` would show up on its own at the top level, without being part of a `return if .. else ..` or `variable = if ... else ...`?
05:49:38FromDiscord<xkonti> In reply to @pmunch "Second best might be": I mean I don't mind downloading the released binaries from time to time, but I'm not sure if simply replacing the previous installation with the updated one is enough. I recall that when VSCode wants to use nimsuggest it downloads and builds the nimlang server etc. Wouldn't I need to run some extra commands to update all those?
05:50:05FromDiscord<sOkam! 🫐> In reply to @xkonti "I mean I don't": that's done by `build_all.sh` inside the repo
05:50:46FromDiscord<sOkam! 🫐> @xkonti Might be useful as a reference: https://github.com/heysokam/get.Lang/tree/master/src/get/nim
05:51:31FromDiscord<sOkam! 🫐> sent a code paste, see https://play.nim-lang.org/#pasty=lfHKeKjc
06:00:08*disso-peach quit (Quit: Leaving)
06:00:51*PMunch joined #nim
06:01:56FromDiscord<pmunch> In reply to @xkonti "I mean I don't": Depends on the tool, NimLSP requires being rebuilt against the version of nimsuggest you're using. nimlangserver calls whichever nimsuggest executable it can find so it should probably work fine (at least for fairly similar versions)
06:06:28FromDiscord<Robyn [She/Her]> In reply to @heysokam "Is there a case": Maybe when passing it as a parameter for a proc?
06:07:52FromDiscord<morgan> In reply to @chronos.vitaqua "Good luck! It'd definitely": earlier i had started translating parts of the zig lua script for bgfx but i didn't really know what was going on so i started poking at the big table full of stuff, which i will probably write the stuff for from scratch
06:08:20FromDiscord<morgan> oops i didn't see if that was a ping reply, mb if so
06:09:08FromDiscord<morgan> there's this metatable thing in lua which is currently beyond my comprehension lol
06:10:36FromDiscord<Robyn [She/Her]> In reply to @morganalyssa "oops i didn't see": It ain't dw
06:10:55FromDiscord<Robyn [She/Her]> In reply to @morganalyssa "earlier i had started": Yeah good luck aha, I don't know how it works at all
06:11:24FromDiscord<morgan> yea i have absolutely zero lua experience lol
06:11:34FromDiscord<Robyn [She/Her]> Fair honestly
06:11:48FromDiscord<morgan> but it'll be cool seeing it come together as i get to each bit of it
06:12:27FromDiscord<morgan> it looks like there's something that defines each thing rather than parsing c/c++ syntax for it
06:12:35FromDiscord<morgan> which then makes a table
06:12:43FromDiscord<morgan> which im digging thru to find stuff
06:13:25FromDiscord<morgan> i have no clue what these metatables do, they don't seem to contain much of anything other than a couple function pointers
06:13:35FromDiscord<morgan> which idk what they do
06:33:54*coldfeet joined #nim
06:35:16FromDiscord<sOkam! 🫐> In reply to @chronos.vitaqua "Maybe when passing it": tjat
06:35:32FromDiscord<sOkam! 🫐> (edit) "tjat" => "that's a proc argument, not top level... 🤔"
06:58:31FromDiscord<Robyn [She/Her]> In reply to @heysokam "that's a proc argument,": Ah, then probably no
07:06:13FromDiscord<sOkam! 🫐> the reason for the question is to not blind guess 🤷‍♂️
07:06:49FromDiscord<sOkam! 🫐> common sense also tells me that "probably no", but that's just us blind-guessing
07:15:57*coldfeet quit (Remote host closed the connection)
07:24:31FromDiscord<Robyn [She/Her]> Yeahh
07:24:42FromDiscord<Robyn [She/Her]> I don't see how that'd work on top-level tbh
07:35:27*derpydoo joined #nim
07:42:43FromDiscord<morgan> ok this is pretty cool https://media.discordapp.net/attachments/371759389889003532/1248542641092689920/image.png?ex=66640b72&is=6662b9f2&hm=82dbac4f489cd247e36b7573357a215a2d3b25289667d756bcd38a0405d80d87&
07:43:40FromDiscord<morgan> tomorrow i wanna set something up with that to dump it to a file with some initial basic changes and go from there
07:44:07FromDiscord<morgan> i love that it includes comments
07:44:21FromDiscord<morgan> so i'll be able to put them in the generated nim code
07:47:45FromDiscord<Robyn [She/Her]> Fair lol
07:48:02FromDiscord<Robyn [She/Her]> Tbh it would be nice if you could make a generic JSON output and then could use Nim macros to generate the code
07:48:41FromDiscord<sOkam! 🫐> In reply to @chronos.vitaqua "Tbh it would be": there is no benefit to macros in that usecase, though
07:48:48FromDiscord<sOkam! 🫐> the vm is real slow
07:49:28FromDiscord<sOkam! 🫐> _(source: doing the same for C code generation with clang's ast dump into json)_
07:50:31FromDiscord<sOkam! 🫐> it would be way better to generate `PNodes` from that data, and call `renderTree` on them to turn them into nim code
07:52:05*derpydoo quit (Ping timeout: 256 seconds)
07:58:25FromDiscord<sOkam! 🫐> actually, you could even generate a JSON in the format that `futhark` uses, and use futhark instead
08:00:28FromDiscord<Robyn [She/Her]> In reply to @heysokam "there is no benefit": You have a point
08:02:14FromDiscord<Robyn [She/Her]> Uh with the httpclient in the stdlib, for GET requests, how do I add data into the field?
08:03:29FromDiscord<sOkam! 🫐> In reply to @chronos.vitaqua "Uh with the httpclient": I recommend `puppy`. used httpclient for a bit, and its really awkward for portability
08:03:31FromDiscord<bubblie> Do any of you have examples of good structured nim applications that you would deem well programmed and coded or idiomatic
08:04:33FromDiscord<Robyn [She/Her]> In reply to @heysokam "I recommend `puppy`. used": Eesh okay, thanks sOkam!
08:04:56FromDiscord<sOkam! 🫐> httpclient is great, until you try to crosscompile it.... and regret all of it 🙈
08:05:13FromDiscord<sOkam! 🫐> (edit) "httpclient is great, until you try to crosscompile ... it...." added "it or distribute an app that uses"
08:06:15FromDiscord<Robyn [She/Her]> Still has the weirdness with the `get` proc not having the `body` param, I would've thought that'd be standard?
08:06:42FromDiscord<sOkam! 🫐> doesn't the body go into the header?
08:08:22FromDiscord<Robyn [She/Her]> Really??
08:08:27FromDiscord<Robyn [She/Her]> I never knew that
08:09:14FromDiscord<Robyn [She/Her]> God I hate this
08:12:21FromDiscord<Phil> In reply to @bubblie "Do any of you": That highly depends on how you like to structure things
08:14:14FromDiscord<Phil> I would deem my own web app well structured with clear separation of responsibilities and preference towards more smaller files over fewer large ones ↵That same structure can seem overengineered if it didn't suit how you like to do your code splitting etc.
08:14:51FromDiscord<Phil> (edit) "didn't" => "doesn't"
08:17:38*coldfeet joined #nim
08:24:26FromDiscord<pmunch> In reply to @chronos.vitaqua "Tbh it would be": Feel free to generate Futhark compatible JSON 🙂
08:29:44*xet7 quit (Remote host closed the connection)
09:00:05FromDiscord<Robyn [She/Her]> In reply to @pmunch "Feel free to generate": Oh wait so if you generate JSON in the format that Opir outputs, Futhark can process it?
09:00:58FromDiscord<pmunch> Of course
09:01:07FromDiscord<Robyn [She/Her]> Epic
09:24:26*beholders_eye joined #nim
10:00:38FromDiscord<Robyn [She/Her]> Are async iterators a thing? :P
10:02:16PMunchnope
10:02:23PMunchWell, all async is secretly an iterator
10:02:29PMunchBut not in the way you think
10:03:03PMunchI just the other day needed this though, what I ended up with was an iterator yielding a Future
10:04:28PMunchAnd because the iterator needed the results of the last operation it has a waitFor on the Future after the yield
10:04:32PMunchWorks really well
10:07:13FromDiscord<Robyn [She/Her]> Oooh thanks PMunch for the suggestion :>
10:28:31FromDiscord<bubblie> In reply to @isofruit "I would deem my": This is how I like it is it possible for me to use ur web app as an example or if there are any similar examples of this in nim. Ive been finding a bunch of libraries in nim but ive been having a hard time just looking for applications and application examples
10:30:11FromDiscord<Phil> In reply to @bubblie "This is how I": You can look at nimstoryfont , that's my web bacaend
10:30:13FromDiscord<Phil> Backend
10:35:15*dv^_^6 joined #nim
10:36:28*dv^_^ quit (Ping timeout: 246 seconds)
10:36:28*dv^_^6 is now known as dv^_^
10:43:19*derpydoo joined #nim
11:18:23*derpydoo quit (Quit: derpydoo)
11:28:10*GreaseMonkey quit (Remote host closed the connection)
11:29:18*greaser|q joined #nim
11:33:28FromDiscord<cattokomo> sent a code paste, see https://play.nim-lang.org/#pasty=eUFPFqYP
11:34:48FromDiscord<Robyn [She/Her]> I think it does yeah
11:39:04FromDiscord<cattokomo> i guess the only way is to test it
11:40:54FromDiscord<sOkam! 🫐> In reply to @cattokomo "do Nim concat all": yes
12:34:02*rockcavera joined #nim
12:34:33PMunchWhat would the alternative be?
12:36:58*jkl quit (Remote host closed the connection)
12:37:24*jkl joined #nim
12:46:53*beholders_eye quit (Ping timeout: 240 seconds)
13:03:10FromDiscord<sOkam! 🫐> not concatenating them, duh!
13:03:19FromDiscord<sOkam! 🫐> 😄
13:21:36FromDiscord<juancarlospaco> In reply to @cattokomo "do Nim concat all": `-d:lto`
13:25:56FromDiscord<cattokomo> In reply to @juancarlospaco "`-d:lto`": i know how to enable lto in Nim, that's just an example with `passX` flags
13:34:03*PMunch quit (Read error: Connection reset by peer)
13:35:30*PMunch joined #nim
13:35:59*PMunch quit (Remote host closed the connection)
13:37:05*PMunch joined #nim
14:00:49*ntat joined #nim
14:08:03*PMunch quit (Quit: Leaving)
15:22:23*SchweinDeBurg quit (Quit: WeeChat 4.4.0-dev)
15:22:33*SchweinDeBurg joined #nim
15:26:20FromDiscord<__nycto__> Hey -- does anyone know if there is a define that gets set when `nim check` is running?
15:29:16Amun-Rayou can always inspect commandline args
15:30:04Amun-RacommandLine.querySetting
15:30:27FromDiscord<__nycto__> Ah, that's interesting. I'll give that a shot
15:30:29Amun-Raa very crude check: when "check" in commandLine.querySetting: …
15:32:30Amun-Ra(std/compilesettings)
15:37:43Amun-RaI'd use "check " instead of just "check" not to have many false positives
15:43:52FromDiscord<__nycto__> Ah, found the exact thing I needed: `querySetting(SingleValueSetting.command) == "check"`
15:44:07FromDiscord<__nycto__> Thank you for pointing me to `compilesettings`, that's what I was missing
15:44:19FromDiscord<__nycto__> (edit) "Ah, found" => "Found"
15:44:39Amun-Raoh
15:44:45Amun-Rathat's much better option
15:45:05Amun-Rano worries :)
15:45:20Amun-RaI was to lazy to check for specific option… :P
15:45:42FromDiscord<__nycto__> Hey -- as far as I'm concerned you gave me exactly what I needed
15:45:47*ntat quit (Quit: Leaving)
15:47:31FromDiscord<Robyn [She/Her]> In reply to @__nycto__ "Found the exact thing": Could just do `defined(nimcheck)`
15:48:16FromDiscord<odexine> In reply to @chronos.vitaqua "Could just do `defined(nimcheck)`": that was the initial question yes
15:48:30FromDiscord<odexine> In reply to @__nycto__ "Hey -- does anyone": this
15:52:45FromDiscord<Robyn [She/Her]> In reply to @odexine "that was the initial": Yeah
15:53:54FromDiscord<__nycto__> Thanks -- looks like that works too
16:27:14FromDiscord<odexine> nvim
16:27:16FromDiscord<odexine> FUCK
16:29:26FromDiscord<saint.___.> In reply to @odexine "FUCK": Whats the problem
16:29:43FromDiscord<odexine> mistakenly typed nvim here
16:29:47FromDiscord<saint.___.> Oh gotcha
16:38:53*ntat joined #nim
16:40:21*coldfeet quit (Remote host closed the connection)
17:53:05*gst joined #nim
18:04:36*gst quit (Quit: Client closed)
19:18:59*beholders_eye joined #nim
19:21:19*ntat quit (Quit: Leaving)
19:36:24FromDiscord<Robyn [She/Her]> When designing an API and the responses for it, is it advised to make a type for every type of response and then serialise that?
19:36:42FromDiscord<Robyn [She/Her]> (edit) "that?" => "that when returning the data to the endpoint?"
20:00:34FromDiscord<Phil> Not sure if that's officially recommended, but I would generally recommend
20:00:48FromDiscord<Phil> Just as basically an Anti-Corruption-Layer
20:01:19FromDiscord<Phil> Basically you have your Data-Model that goes to the outside-world and you can do whatever the fuck inside your own application, you just need to be able to translate the data inside your application to the "outside"-Data-Model
20:01:48FromDiscord<Phil> Allows easier refactoring "inside" your application with less risk of affecting the external data structure
20:02:39FromDiscord<Phil> However, often times your internal data-structures are very similar to your external data-structures.↵Mapping between the two of them can be insanely tedious.↵Which is why I wrote myself the mapster library to make precisely that usecase easier
20:03:24FromDiscord<double_spiral> Are there any raylib or pygame equivalents for nim yet (or even raylib bindings)?
20:03:56FromDiscord<double_spiral> Ive seen nimgl but that hasnt been updated in a while so im guessing its dead
20:04:47FromDiscord<Phil> I don't have deeper knowledge of the gaming area, but you can use `nimble search raylib` to see which published bindings are out there.
20:05:50FromDiscord<Robyn [She/Her]> In reply to @isofruit "However, often times your": Mapster?
20:06:03FromDiscord<Robyn [She/Her]> In reply to @double_spiral "Are there any raylib": Naylib is the go-to bindings for Raylib in Nim
20:06:10FromDiscord<Phil> https://github.com/PhilippMDoerner/mapster
20:06:18FromDiscord<double_spiral> In reply to @chronos.vitaqua "Naylib is the go-to": gotcha, thanks!
20:09:02*jmdaemon joined #nim
20:09:43FromDiscord<ieltan> In reply to @chronos.vitaqua "When designing an API": There's no "official" way
20:12:35FromDiscord<ieltan> And yeah like Phil said it's good to deserialize to a type, then you can use that type to serialize it again in your response, you also don't have to use objects for everything, use tuples for when you feel like a object is too bloaty because that particular type is only used in this one random response and nowhere else
20:12:51FromDiscord<Robyn [She/Her]> In reply to @isofruit "https://github.com/PhilippMDoerner/mapster": Oh neat!
20:13:04FromDiscord<Robyn [She/Her]> In reply to @ieltan "And yeah like Phil": Hm fair, thanks y'all :)
20:31:07FromDiscord<sOkam! 🫐> why the hell are people still finding `nimgl`? its dead af, it makes no sense that people still find it searching for gamedev libs 😦
20:42:00FromDiscord<TӨMΛ ☠> I love Nim so fricking much↵It's third time I'm just relaxing doing some important task via just making an app dedicated to solve this, and it takes me maybe one day to setup fairly complete program↵So happy to discover this language and spread the love around 🥰
20:44:08*xet7 joined #nim
21:10:15FromDiscord<morgan> In reply to @double_spiral "Are there any raylib": sokol has good autogenerated bindings. if you're willing to wait idk a month or more i'm starting to work on autogenerated bindings for bgfx
21:11:24FromDiscord<morgan> sokol can open a window, give you easy but not too abstracted access to the gpu, kb/mouse events, audio i/o, and more
21:12:14FromDiscord<morgan> assuming you're looking to do like normal rendering stuff and not really really abstracted "draw a shape" or "draw a sprite" type stuff
21:12:39FromDiscord<morgan> you gotta set up shaders and manage render passes and such, but it's incredibly flexible as a result
21:13:49FromDiscord<double_spiral> I'm looking for more of the abstracted stuff, I tried Godot but the only complete bindings are for Godot 3
21:14:09FromDiscord<double_spiral> I found some Godot 4 bindings but they're incomplete and seem to be dead aswell
21:15:03FromDiscord<morgan> im not sure if there's anything that you could just drop in a mesh and move it around, i think you'd have to somewhat handle that abstraction yourself
21:15:27FromDiscord<morgan> what is it you're wanting to do with it, like end product?
21:15:43FromDiscord<double_spiral> A general application
21:16:13FromDiscord<morgan> you might then be interested in koi
21:16:17FromDiscord<double_spiral> Godot in all honesty has the features I need but I've been using gdscript for a while and it kinda sucks
21:16:23FromDiscord<double_spiral> In reply to @morganalyssa "you might then be": What is it
21:16:31FromDiscord<morgan> it's a different backend but it has vector rendering for ui stuff
21:17:08FromDiscord<double_spiral> I'll look into it
21:17:19FromDiscord<morgan> iirc it was developed to make a ttrpg style map making program
21:20:07FromDiscord<Robyn [She/Her]> Apparently `toJson` in `jsony` is not gcsafe :/
21:31:29*krux02 joined #nim
21:32:55FromDiscord<Robyn [She/Her]> sent a code paste, see https://play.nim-lang.org/#pasty=AhWQUstV
21:32:56FromDiscord<Robyn [She/Her]> Ugh...
21:35:33FromDiscord<Robyn [She/Her]> I don't get the fucking issue and now I'm irritated
21:38:05FromDiscord<Robyn [She/Her]> Forward declaring it in the jsony file helped for some reason
21:41:44*jmdaemon quit (Quit: ZNC 1.8.2 - https://znc.in)
21:42:52FromDiscord<Robyn [She/Her]> Can't replicate the error :
21:42:54FromDiscord<Robyn [She/Her]> :/
21:44:49FromDiscord<arthurmiiengineering> question
21:45:02FromDiscord<arthurmiiengineering> what would you guys think of doing a project series for nim?
21:45:26FromDiscord<arthurmiiengineering> host the code on github with lots of comments and whatnot, and write each project as a part of the series for youtube :p
21:45:40FromDiscord<arthurmiiengineering> i saw one like that for rust and i think it would help people learn the language 🙂
22:02:17FromDiscord<Robyn [She/Her]> Hey @treeform, found a bug with Jsony that I can't make a minimal reproduction of, but can verify it exists with my code (which I've linked to in the GitHub issue and the PR), I've made a PR that solves the issue too, though it's just a one liner
22:03:11FromDiscord<Robyn [She/Her]> (edit) "liner" => "liner↵https://github.com/treeform/jsony/issues/88"
22:04:45FromDiscord<treeform> That looks cool. I will take a look when I am back.
22:05:41FromDiscord<Robyn [She/Her]> Alright!
22:34:43FromDiscord<Robyn [She/Her]> Hey @Phil I know you've messed with Nim threading quite a lot now, any libs you'd recommend for spawning code that runs on another thread?
22:35:33FromDiscord<Phil> In reply to @chronos.vitaqua "Hey <@180601887916163073> I know": Nothing beyond the ordinary. Like, taskpool was fairly easy, but do not combine it with async if you value your sanity
22:35:48FromDiscord<Phil> As in, do not try to use async on the thread that will run your task
22:38:12FromDiscord<Robyn [She/Her]> Oh? Why? Wasn't planning to, but I'm curious
22:48:48FromDiscord<morgan> so i was thinking about how i am not enjoying string manipulation in lua and how nim does it so much more pleasantly, and it got me thinking about the other side of bindings, not just the types but getting nim to see the functions in the right place and hook them up
22:49:24FromDiscord<morgan> i haven't had to bother with that for clap since it's literally all function pointers, with the entry point that it gets called at and has that passed in
22:49:40FromDiscord<morgan> while for bgfx, nim has to know what to go looking for to compile in
22:50:48FromDiscord<Robyn [She/Her]> In reply to @morganalyssa "so i was thinking": Have you tried Futhark? :P
22:50:54FromDiscord<morgan> yes
22:51:10FromDiscord<morgan> it would probably be easier to just use futhark yes
22:52:23FromDiscord<saint.___.> lua is so weird
22:53:30FromDiscord<morgan> looking at the bgfx code again, i think it's mainly in c++ with some way of exposing it to c
22:53:55FromDiscord<morgan> it has this IDL thing which makes it easier to get that info and that provides a c name version for stuff
23:02:17FromDiscord<morgan> ok i think inl is related to that, seems to be where a lot of stuff is defined
23:03:25FromDiscord<morgan> i kiiiiinda wanna do this in nimscript but i should keep it lua to not impose another dependency on them lol
23:13:14FromDiscord<Robyn [She/Her]> Probably yeah lol
23:18:32*beholders_eye quit (Read error: Connection reset by peer)
23:21:16FromDiscord<Phil> In reply to @chronos.vitaqua "Oh? Why? Wasn't planning": Because it will fuck up and hotspin.↵More like it isn't coded to deal with that properly
23:24:15*beholders_eye joined #nim
23:29:15FromDiscord<Robyn [She/Her]> In reply to @isofruit "Because it will fuck": Hotspin?
23:29:29FromDiscord<Phil> 100% cpu core
23:31:40FromDiscord<Robyn [She/Her]> Ah-
23:39:08FromDiscord<Robyn [She/Her]> Random question to anyone here: How does ratelimiting in an API work? How am I supposed to implement it?
23:39:30FromDiscord<ElegantBeef> On the server or a client?
23:46:50FromDiscord<Robyn [She/Her]> In reply to @elegantbeef "On the server or": On the server
23:47:01FromDiscord<Robyn [She/Her]> Oh the client it seems pretty easy
23:49:06FromDiscord<ElegantBeef> Add the credentials to your database with the current time stamp, add it to some queue to be removed in the time of the rate limit being over. Remove it when that timer is done. Every time you get a request increment the current usage amount and move the ratelimit timestamp if needed
23:56:30FromDiscord<Robyn [She/Her]> In reply to @elegantbeef "Add the credentials to": That seems like it'd be slow for something like PostgreSQL with 100 active users (not that I'm expecting that, just curious how big servers navigate that)
23:59:06FromDiscord<ElegantBeef> Well I've never done backend. I just know you need to associate credentials with a counter of how many requests so seems sensible and efficient to use a DB
23:59:20FromDiscord<Robyn [She/Her]> Fair enough