00:18:21 | FromDiscord | <Elegantbeef> Just build the compiler with libffi enabled π |
00:48:03 | * | pbsds quit (Quit: Ping timeout (120 seconds)) |
00:48:31 | * | pbsds joined #nim |
01:02:37 | * | Mister_Magister quit (Quit: bye) |
01:04:30 | * | Mister_Magister joined #nim |
02:08:19 | FromDiscord | <kdot_227> is it possible to sleep just a thread in nim similar to python? |
02:08:38 | FromDiscord | <kdot_227> sleep from the OS module while sleep the whole program not just a thread |
02:09:36 | FromDiscord | <kdot_227> pls @ me if you know how im confused asf rn |
02:10:39 | FromDiscord | <leorize> sleep always sleep only the thread you run it on so I'm not sure what you're talking about |
02:12:02 | FromDiscord | <kdot_227> In reply to @leorize "sleep always sleep only": I might be dumb brb |
02:12:53 | FromDiscord | <kdot_227> nvm it was my fault |
02:12:56 | FromDiscord | <kdot_227> thx for help |
02:58:13 | NimEventer | New Nimble package! rssatom - rssatom is a package designed to read and create RSS and Atom feeds, see https://codeberg.org/samsamros/rssatom |
03:07:37 | FromDiscord | <4zv4l> is it possible to pass an `iterator` to a proc in argument ? |
03:15:21 | FromDiscord | <Elegantbeef> Only if it's closure |
03:15:32 | FromDiscord | <Elegantbeef> Welcome to the lack of composabillity with iterators |
03:25:38 | FromDiscord | <4zv4l> sent a code paste, see https://play.nim-lang.org/#ix=html> |
03:27:11 | FromDiscord | <Elegantbeef> Make a `proc []=[T](arr: var openArray[T], ind: Slice[int], val: Slice[int])` |
03:38:05 | FromDiscord | <Elegantbeef> Though a nice `toArray` template could exist |
03:40:32 | FromDiscord | <Elegantbeef> sent a code paste, see https://play.nim-lang.org/#ix=html> |
03:49:14 | FromDiscord | <β Array π΅πΈ π> im working on a nim library but it depends on a javascript npm package, how should handle that with nimble? |
03:50:19 | FromDiscord | <β Array π΅πΈ π> i could write a nimscript or a shell script to download the npm lib but that feels like a hack rather than doing it correctly |
03:50:29 | FromDiscord | <4zv4l> sent a code paste, see https://play.nim-lang.org/#ix=html> |
03:52:35 | FromDiscord | <β Array π΅πΈ π> or ig i could have the user of the nim lib download the npm package? im not sure |
03:54:09 | FromDiscord | <Elegantbeef> @4zv4l `countDown(9, 0)` |
03:55:42 | FromDiscord | <4zv4l> sent a code paste, see https://play.nim-lang.org/#ix=html> |
03:56:57 | FromDiscord | <Elegantbeef> Or make your own `...` operator |
03:56:58 | FromDiscord | <Elegantbeef> π |
03:58:15 | FromDiscord | <Elegantbeef> Preinstallhooks is the "Nimble way" |
04:04:52 | FromDiscord | <β Array π΅πΈ π> i see, that would be written inside the .nimble file |
04:05:51 | FromDiscord | <β Array π΅πΈ π> thank you |
04:36:41 | FromDiscord | <β Array π΅πΈ π> nimble seems to not want to copy over the pnpm-lock.yaml when trying to install |
04:36:47 | FromDiscord | <β Array π΅πΈ π> https://git.inamatrix.xyz/array-in-a-matrix/nimbotsdk |
04:36:56 | FromDiscord | <β Array π΅πΈ π> this is my repo\:β΅https://git.inamatrix.xyz/array-in-a-matrix/nimbotsdk |
04:43:26 | FromDiscord | <β Array π΅πΈ π> looks like an issue with nimble? |
04:44:39 | FromDiscord | <β Array π΅πΈ π> il open an issue in the morning then |
04:51:57 | FromDiscord | <β Array π΅πΈ π> oh nvm i mixed up the command lol |
05:38:37 | * | Batzy joined #nim |
06:30:31 | FromDiscord | <ajusa> In reply to @khazakar "Would be useful π": https://github.com/nim-lang/packages/pull/2790 cleaned it up and requested to officially add it to nimble |
06:31:26 | FromDiscord | <ajusa> oh wow it's been merged already |
06:32:20 | FromDiscord | <khazakar> Nice |
06:32:41 | FromDiscord | <Elegantbeef> Soon we'll have 300 different html macros |
06:33:35 | NimEventer | New Nimble package! dekao - Write HTML templates easily, see https://github.com/ajusa/dekao |
06:38:39 | FromDiscord | <ajusa> In reply to @Elegantbeef "Soon we'll have 300": in my defense beef, this is the only one (other than taggy which is this based on) that supports adding custom tags (required for web elements), and supports autocomplete through the LSP (since the macro heavy ones break down).β΅β΅but yes everyone loves reinventing the wheel haha |
06:39:07 | FromDiscord | <ajusa> this one does come with bindings for HTMX already defined, so it's a bit opinionated I guess |
06:45:48 | FromDiscord | <khazakar> Yeah, and since htmx is on a hypetrain, your package might get some attention |
07:20:41 | FromDiscord | <khazakar> In reply to @ajusa "in my defense beef,": HappyX guy is interested in your lib to check it out π |
07:34:56 | * | rockcavera quit (Remote host closed the connection) |
07:38:11 | * | redj quit (Ping timeout: 252 seconds) |
07:40:22 | * | redj joined #nim |
07:42:50 | * | ehmry quit (Ping timeout: 245 seconds) |
07:44:31 | * | azimut quit (Ping timeout: 240 seconds) |
07:45:20 | * | advesperacit joined #nim |
07:56:53 | Amun-Ra | I'm stuck on very simple thing, I have cstring and its length, how can I convert it to string? `$` won't work obviously |
07:57:20 | Amun-Ra | ah, copyMem |
07:59:19 | Amun-Ra | I had a short brain fart⦠;) |
08:06:41 | _________ | Amun-Ra: or `substr($cstr, 0, len-1)` |
08:07:00 | FromDiscord | <Elegantbeef> That only works if i'ts null terminated |
08:07:12 | FromDiscord | <Elegantbeef> `$cstr` will get you a bunch of garbage π |
08:07:22 | FromDiscord | <Elegantbeef> So I guess yes it's' right but that's a double allocation |
08:07:35 | _________ | and substr will get rid of that garbage ;> |
08:07:45 | FromDiscord | <odexine> it wont if the string contains \0 |
08:08:02 | FromDiscord | <odexine> as useful data |
08:09:19 | Amun-Ra | Elegantbeef: yeah, it's a part of js <-> wasm interop, cstring is really an array of bytes |
08:10:28 | Amun-Ra | I have to add cstring/openArray[byte] types as a source for my "string" stream |
08:10:30 | * | jjido joined #nim |
08:11:34 | FromDiscord | <jerrythegenius> Is there any such thing as an interactive version of nim? Like when you type `python` in a terminal and get the `>>>` prompt |
08:11:45 | FromDiscord | <Elegantbeef> `inim` `nim secret` |
08:12:41 | FromDiscord | <jerrythegenius> thanks |
08:15:04 | Amun-Ra | mind you can't test everything it this repl |
08:15:45 | FromDiscord | <Elegantbeef> You can in inim but it's just making a hidden file so it does not work like a repl from python |
08:15:54 | FromDiscord | <Elegantbeef> Though I personally just make a scratchpad file and type code in there |
08:20:48 | Amun-Ra | same |
08:22:38 | FromDiscord | <nnsee> In reply to @jerrythegenius "Is there any such": alternatively install nlvm and use its REPL |
08:22:41 | FromDiscord | <nnsee> it's fairly good |
08:55:21 | FromDiscord | <jerrythegenius> In reply to @nnsee "alternatively install nlvm and": Thanks, I'll check it out |
09:28:23 | * | PMunch joined #nim |
11:36:50 | * | ehmry joined #nim |
12:09:29 | * | jkl quit (Quit: Gone.) |
12:10:47 | * | jkl joined #nim |
12:19:55 | * | jkl quit (Quit: Gone.) |
12:21:14 | * | jkl joined #nim |
13:02:04 | * | rockcavera joined #nim |
13:05:30 | * | jjido quit (Quit: My laptop has gone to sleep. ZZZzzzβ¦) |
13:08:42 | * | krux02 joined #nim |
14:11:32 | FromDiscord | <penguinite> I am trying to make sense of nimforum's code, and I am unsure whether I should just give up on supporting compilers older than 2.0.0 |
14:14:20 | FromDiscord | <auxym> In reply to @pengwyns "I am trying to": IMO I don't see much reason to support old compilers for an app. Maybe for a library if you want more people using it |
14:14:51 | FromDiscord | <auxym> during the python 2 to 3 migration, most of the larger libraries supported both 2 and 3 for years, then eventually stopped support v2 |
14:15:59 | FromDiscord | <penguinite> yeah thats sort of what I was thinking. Im gonna go with only supporting 2.x compilers then. And since I am already feeling quite ambitious about this project, ill also try to port it to HappyX instead of Jester + Karax. |
15:04:17 | FromDiscord | <khazakar> In reply to @auxym "during the python 2": Not every stopped python 2 support, like scapy - they work to kill py2 |
15:11:27 | Amun-Ra | which is a good thing, py2 is a history |
15:11:44 | * | PMunch quit (Quit: Leaving) |
15:14:15 | Amun-Ra | py2 couldn't differentiate between str and bytes, which was quite important thing for non us-ascii world |
15:15:19 | * | azimut joined #nim |
15:37:22 | FromDiscord | <auxym> In reply to @Amun-Ra "py2 couldn't differentiate between": well, nim doesn't differentiate either π |
15:38:05 | FromDiscord | <nnsee> to me, everything is `char ` |
15:38:07 | FromDiscord | <auxym> the py3 transition was pretty bad. I remember some libs like numpy/scipy didn't support py3 at all for years |
15:38:54 | FromDiscord | <auxym> In reply to @nnsee "to me, everything is": haha, found the C programmer π is it a char? an array? a string? who knows, doesn't matter |
15:40:42 | FromDiscord | <nervecenter> Making a strong case that C is in fact weakly typed lol |
15:40:46 | FromDiscord | <nervecenter> Or even untyped |
15:57:44 | Amun-Ra | and everything in C is an object (they have a particular definition of object in C standard) ;) |
17:22:08 | FromDiscord | <djazz> Time to summon @pmunch ! Trying to get Futhark to output importc: "symbol" pragmas for structs, enums etc... not going well. I want to be able to use header pragma with Futhark to avoid Futhark creating the objects |
17:22:32 | FromDiscord | <djazz> got this far: Error: invalid pragma: importc: "struct stbi_io_callbacks" |
17:22:48 | FromDiscord | <djazz> and template/generic instantiation of `importc` from here |
17:23:14 | FromDiscord | <djazz> probably because its trying to run it at comptime |
17:23:19 | FromDiscord | <djazz> somewhere |
17:23:22 | FromDiscord | <pmunch> Ah, that is a core design of Futhark unfortunately |
17:23:32 | FromDiscord | <djazz> (also why is futhark's macro named importc?) |
17:24:01 | FromDiscord | <pmunch> Good question.. I think my original idea was that you where importing modules from C |
17:24:26 | FromDiscord | <djazz> maybe they collide? haha |
17:24:35 | FromDiscord | <djazz> i tried importcpp and same issue |
17:24:51 | FromDiscord | <djazz> "template/generic instantiation of `importcImpl` from here" |
17:24:55 | FromDiscord | <pmunch> What exactly is your goal here? |
17:25:33 | FromDiscord | <pmunch> Yeah the importc macro is just a DSL frontend for importcimpl |
17:25:42 | FromDiscord | <djazz> do use c libraries wrapped by futhark alongside manually wrapped function from one header file, which depends on headers the futhark wrapper wraps |
17:25:49 | FromDiscord | <djazz> to use |
17:26:31 | FromDiscord | <pmunch> And that doesn't simply just work? |
17:26:37 | FromDiscord | <djazz> but getting duplicate definitions |
17:26:38 | * | cm quit (Quit: Bye.) |
17:27:05 | * | cm joined #nim |
17:27:42 | FromDiscord | <pmunch> I think I have to see a demo |
17:29:24 | FromDiscord | <djazz> it's to be able to wrap static functions (local) I think |
17:33:47 | FromDiscord | <djazz> and other things futhark cant import |
17:37:02 | FromDiscord | <pmunch> Can't you just add them in manually after Futhark is done? |
17:40:04 | FromDiscord | <khazakar> I need to take a closer look at futhark in order to write nim wrapper around libsigrok to be honest, since c2nim failed. Is there any way to use futhark in c2nim way, like pass h file to futhark from cli and let it parse @pmunch ? |
17:40:39 | FromDiscord | <pmunch> Nope, that's not how you're supposed to use Futhark |
17:41:01 | FromDiscord | <pmunch> As you mentioned, c2nim didn't work, so why would I design Futhark to work the same way? |
17:43:29 | FromDiscord | <khazakar> Okay, so I will take closer look how to use it properly |
17:43:44 | FromDiscord | <djazz> ah here, this is what happens when I try to importc with header in the same nim file doing the futhark importc stuff:β΅"/home/djazz/code/nim/picostdlib/src/picostdlib/lib/cyw43_driver.nim:122:68: error: conflicting types for 'cyw43_state'; have 'tyObject_internalcyw43t1526726706s9bywBenUrRpz0rux4qe9bmQ'" |
17:44:07 | FromDiscord | <djazz> "/usr/share/pico-sdk/lib/cyw43-driver/src/cyw43.h:154:16: note: previous declaration of 'cyw43_state' with type 'cyw43_t' {aka 'struct _cyw43_t'}" |
17:44:40 | FromDiscord | <khazakar> In reply to @pmunch "As you mentioned, c2nim": it didn't work, because it was unable to parse #define from another file and apply it to another file |
17:44:53 | FromDiscord | <khazakar> Or I'm just 2 dum |
17:45:26 | FromDiscord | <djazz> so maybe I could do a "sys" file that does the futhark wrapping and import that to the file that does the header importing |
17:47:18 | FromDiscord | <djazz> that seems to work |
17:49:28 | FromDiscord | <pmunch> In reply to @khazakar "it didn't work, because": Not quite sure what you mean by this |
17:49:57 | FromDiscord | <khazakar> In reply to @pmunch "Not quite sure what": I wanted to parse with c2nim header file which uses macro from another header file and it had issues with it. |
17:50:08 | FromDiscord | <khazakar> Was unable to find it |
17:50:08 | FromDiscord | <pmunch> In reply to @djazz "so maybe I could": Ah yes, that could help with collision errors |
17:50:29 | FromDiscord | <djazz> I hope my compiled binary wont grow in size now though? |
17:50:46 | FromDiscord | <pmunch> Well in Futhark you would just tell it where to find the header files and then just import the one you needed. |
17:50:47 | FromDiscord | <djazz> is linker smart enough? |
17:51:12 | FromDiscord | <khazakar> In reply to @pmunch "Well in Futhark you": I'm already linking lib to wrap as git submodule |
17:51:22 | FromDiscord | <pmunch> In reply to @djazz "I hope my compiled": It shouldn't, objects don't really exist |
17:51:23 | FromDiscord | <khazakar> so would be quite simple then, right? |
17:51:48 | FromDiscord | <pmunch> Yeah, that should be easy peasy |
17:52:55 | FromDiscord | <khazakar> Project link if you want to see what I'm working on when I have will to do so π : https://codeberg.org/KhazAkar/libsigrok_nim |
17:53:49 | FromDiscord | <khazakar> In reply to @pmunch "Yeah, that should be": So I will use futhark then to make initial bindings and then proper high-level wrapping |
17:57:49 | * | jjido joined #nim |
17:59:56 | FromDiscord | <pmunch> Yup, that's what I'm doing here: https://github.com/PMunch/libcoap |
18:31:59 | FromDiscord | <aintea> sent a code paste, see https://play.nim-lang.org/#ix=html> |
18:32:57 | FromDiscord | <Phil> In reply to @aintea "Is there a way": Enums can be associated with specific strings for the purposes of parseEnum and `$`.β΅Other than that, you're looking for an object variant |
18:33:40 | FromDiscord | <djazz> object variant + kind enum |
18:34:44 | FromDiscord | <Phil> sent a code paste, see https://play.nim-lang.org/#ix=html> |
18:34:46 | FromDiscord | <djazz> Or in this case, import std/options for an Options type |
18:34:57 | FromDiscord | <Phil> Nah, that's not what you use options for |
18:35:09 | FromDiscord | <Phil> You use options to express "this may exist, or it may not" |
18:35:15 | FromDiscord | <Phil> Using that for result is lying to the reader |
18:35:24 | FromDiscord | <djazz> hmm, right yeah options only have None with no content |
18:35:35 | FromDiscord | <djazz> but idea is similar |
18:35:36 | FromDiscord | <Phil> Not just that, it's also about what the intended meaning of sth is |
18:35:40 | FromDiscord | <Phil> Aye, I agree there |
18:35:46 | FromDiscord | <djazz> is what i wanted to say |
18:36:00 | FromDiscord | <Phil> It's just that Option very specifically is for "Sth or Nothing"β΅While Result is about "Ok or Error" |
18:36:39 | FromDiscord | <djazz> yeah, no enum needed for option |
19:02:21 | * | jjido quit (Quit: My laptop has gone to sleep. ZZZzzzβ¦) |
19:13:39 | FromDiscord | <djazz> @pmunch after some testing modifying only my code i am still getting errors like "error: 'Errenumt' undeclared here (not in a function); did you mean 'err_enum_t'?" |
19:13:59 | FromDiscord | <djazz> Errenumt is the type generated by futhark while err_enum_t is the type in C header |
19:14:06 | FromDiscord | <djazz> the names doesnt match |
19:37:22 | FromDiscord | <djazz> so, i must reimplement the macros in nim |
19:48:15 | * | azimut quit (Remote host closed the connection) |
19:49:02 | * | azimut joined #nim |
20:12:55 | * | azimut quit (Ping timeout: 240 seconds) |
20:23:02 | * | jjido joined #nim |
20:25:39 | FromDiscord | <Robyn [She/Her]> I really wish code was easy to maintain, it gets messy quick and not sure how to solve that, even with measures/standards I put in place to try and avoid that |
20:28:54 | FromDiscord | <Phil> In reply to @chronos.vitaqua "I really wish code": Really the only way to avoid this is writing more code and learning what didn't work |
20:29:05 | FromDiscord | <Phil> Develop your answers over what sucks most in the long run |
20:29:37 | FromDiscord | <Phil> Mine was that if something doesn't belong together in the problem domain and you're just grouping it together for technical convenience (grouping e.g. via inheritance or the like) then you're doing it wrong |
20:29:51 | FromDiscord | <Phil> For that purpose I'm perfectly happy having vast amounts of code duplication |
20:30:07 | FromDiscord | <Phil> Because its different entities, it gets its own piece of code |
20:30:36 | FromDiscord | <Robyn [She/Her]> Fair |
20:30:41 | FromDiscord | <Phil> It also lead me to dislike inheritance, because it leads to indirection on what gets called where |
20:31:19 | FromDiscord | <Phil> It also lead me to "If you're using even remotely non-widespread abbreviations, I'll annoy you until you don't" |
20:31:52 | FromDiscord | <Phil> As well as "unless it's extremely obvious, every if-statement deserves to have a variable that contains the meaning of the condition you're checking, so that it's clear |
20:32:09 | FromDiscord | <Phil> Encode business logic in your code, in your variable names |
20:32:19 | FromDiscord | <Robyn [She/Her]> Yeah already do that |
20:32:20 | FromDiscord | <Phil> And write the most obvious form of the code you can |
20:32:45 | FromDiscord | <Phil> If you're getting clever without good reason (e.g. because the problem is really fuckign hard), you're doing it wrong |
20:33:36 | Amun-Ra | I finally unified my codebase for native build, mingw one, js, nodejs and wasm \o/ |
20:35:04 | FromDiscord | <Phil> In reply to @chronos.vitaqua "Yeah already do that": Also it helps speaking a fair bit with other devs and trying to get into how they thing about problems |
20:35:10 | FromDiscord | <Phil> And how they structure coe |
20:35:12 | FromDiscord | <Phil> (edit) "coe" => "code" |
20:35:49 | FromDiscord | <Phil> It'll inevitably lead you to disgusting places because obviously your own strategies are always the best... until you haven't looked at the code for 6 months πβ΅But you'll likely encounter a pattern here or there that's rather useful |
20:36:12 | FromDiscord | <Phil> I'd honestly claim writing a lot of docs also helps because it helps a bit with trying to understand the though process of others |
20:36:21 | FromDiscord | <Phil> And in turn leads you to a more "obvious" style of programming |
20:36:35 | FromDiscord | <Phil> (edit) "though" => "thought" |
20:36:38 | FromDiscord | <Robyn [She/Her]> I do try and write docs for everything I plan for people to use |
20:36:49 | FromDiscord | <Robyn [She/Her]> But maybe I should also write stuff I don't plan for people to use :p |
20:37:09 | FromDiscord | <Phil> That's an option. Though have you made yourself familiar with the 4 different types of docs? |
20:37:37 | FromDiscord | <Robyn [She/Her]> ...no? |
20:37:50 | FromDiscord | <Robyn [She/Her]> In reply to @Amun-Ra "I finally unified my": Eyyyyy |
20:38:55 | FromDiscord | <Phil> That is the classic image for that https://media.discordapp.net/attachments/371759389889003532/1196554125324853388/overview.png?ex=65b80cde&is=65a597de&hm=b2c3e0755bebc28fa964b48410204dab8c13ac3a55b313addb11a8ded8eeac88& |
20:39:17 | FromDiscord | <Phil> Typically I smosh the 3 of those into a nimibook and the 4th is my compiled doc comments |
20:39:25 | FromDiscord | <Phil> (edit) removed "the" |
20:39:36 | FromDiscord | <Robyn [She/Her]> That makes sense |
20:40:44 | FromDiscord | <Phil> Nimibook tends to open with a Quickstart guide/tutorial, you got usage examples that the nimibookk links to and explains a bit - which are kind of how-to-guides, you have high-level-idea explainers in the later section of the nimibook docs, and the compiled doc comments are for reference |
20:40:59 | * | jmdaemon joined #nim |
20:41:05 | FromDiscord | <Phil> (edit) "Nimibook tends to open with a Quickstart guide/tutorial, you got ... usagein" added "compileable" | "compileableusage examples ... that" added "in a separate folder" |
20:41:13 | FromDiscord | <Phil> (edit) "nimibookk" => "nimibook" |
20:41:42 | FromDiscord | <Phil> It's been a while since I gave that a read myself |
20:41:55 | FromDiscord | <Robyn [She/Her]> Fair |
20:42:07 | FromDiscord | <Robyn [She/Her]> This is still flowing over my head :p |
20:42:09 | FromDiscord | <Phil> You don't necessarily need to read that really, but it helps with how people approach docs in different situations |
20:42:09 | FromDiscord | <Phil> https://documentation.divio.com/ |
20:49:24 | FromDiscord | <pmunch> In reply to @djazz "the names doesnt match": That doesn't make sense.. |
20:50:04 | * | azimut joined #nim |
20:52:43 | FromDiscord | <Robyn [She/Her]> In reply to @isofruit "https://documentation.divio.com/": Reading through it slowly |
20:52:52 | FromDiscord | <Robyn [She/Her]> Not gonna read it all tho bc my attention span is ded :p |
20:53:20 | FromDiscord | <Phil (he/him)> All good, I doN |
20:53:25 | FromDiscord | <Phil (he/him)> \I don't think it's necessary either tbh |
20:53:38 | FromDiscord | <Phil (he/him)> The core thing you should take away is understanding the concept of 4 different goals in docs |
20:53:42 | FromDiscord | <Robyn [She/Her]> Fair |
20:53:42 | FromDiscord | <Phil (he/him)> Or rather 4 different usecases |
20:57:01 | FromDiscord | <Phil (he/him)> And that you should understand these usecases and ideally a bit on how to tailor to each one |
20:57:02 | FromDiscord | <Phil (he/him)> See where you agree and disagree, analyze the merits and see what you want to steal and what not |
20:57:02 | FromDiscord | <Phil (he/him)> Once you have that, write a bit with that in mind, maybe come back to the webpage with the ideas you had and see how they solve it |
20:58:39 | FromDiscord | <Robyn [She/Her]> I can't be bothered to do that rn when my energy is dead :P |
20:59:17 | * | jmdaemon quit (Quit: ZNC 1.8.2 - https://znc.in) |
21:01:00 | * | jmdaemon joined #nim |
21:01:27 | FromDiscord | <Robyn [She/Her]> Is it a stupid idea to make a ternary cpu emulator when I've never written a binary emulator before, let alone an emulator at all |
21:03:48 | FromDiscord | <Robyn [She/Her]> Yes, yes it is, I'm not doing that- |
21:10:24 | * | jmdaemon quit (Ping timeout: 268 seconds) |
21:13:36 | FromDiscord | <Robyn [She/Her]> Hey @nnsee, what do you recommend for Postgres DB stuff, should I just use raw SQL? Any particular library you used? Or |
21:14:22 | FromDiscord | <nnsee> i just used raw sql and the db_connector module because my use case was rather small |
21:14:29 | FromDiscord | <nnsee> but I've heard good things about norm |
21:14:48 | FromDiscord | <nnsee> and someone suggested something that also looked interesting but I've never tried, let me see if I can find it |
21:14:52 | FromDiscord | <Phil> debby |
21:15:03 | FromDiscord | <Phil> there's also allographer and gatabase |
21:16:23 | FromDiscord | <nnsee> allographer was the one I was thinking of |
21:16:41 | FromDiscord | <Robyn [She/Her]> Allographer looks really nice |
21:17:02 | FromDiscord | <Robyn [She/Her]> Pairing it with Jsony for object serialising and deserialising seems like a good idea |
21:17:39 | FromDiscord | <Phil> π€· β΅Generally everything is just a database behind a JSON-(de)serializer |
21:17:42 | * | jmdaemon joined #nim |
21:17:50 | FromDiscord | <Phil> With various amounts of business logic in between |
21:18:46 | FromDiscord | <Robyn [She/Her]> π€·ββοΈ I don't do commercial programming yet |
21:19:56 | FromDiscord | <nnsee> good, I don't like commercials, it's why I use adblock |
21:20:49 | FromDiscord | <nnsee> In reply to @isofruit "With various amounts of": I guess it's _hobby logic_ for you, then |
21:21:15 | FromDiscord | <Elegantbeef> Code code code! Order now and receive 3 more codes at $19.99 and we'll even wave delivery fees! |
21:21:20 | FromDiscord | <Phil> I keep calling it business logic |
21:21:29 | FromDiscord | <Phil> I was half a second away from assuming beef was a cryptobot |
21:21:53 | FromDiscord | <Elegantbeef> Bold of you to assume this is not a long con |
21:23:34 | FromDiscord | <nnsee> In reply to @Elegantbeef "Code code code! Order": wave delivery? Radical, dude |
21:29:05 | FromDiscord | <zectbumo> sent a code paste, see https://play.nim-lang.org/#ix=html> |
21:29:40 | FromDiscord | <Elegantbeef> It's generally best to not use a debugger to find these errors imo |
21:29:47 | FromDiscord | <Elegantbeef> Just compile the code with `./koch temp` and follow the stack trace |
21:30:01 | FromDiscord | <zectbumo> how do I trace the error back to the source? |
21:31:07 | FromDiscord | <zectbumo> oh is that the "garbage" I've been ignoring all this time π |
21:31:09 | FromDiscord | <Elegantbeef> sent a code paste, see https://play.nim-lang.org/#ix=html> |
21:32:12 | FromDiscord | <Elegantbeef> The stack trace shows the compiler path to get to the error, so likely |
21:32:51 | FromDiscord | <Robyn [She/Her]> I wonder what's a small library I could implement that'd prolly be a bit useful |
21:34:19 | FromDiscord | <Elegantbeef> https://github.com/nim-lang/Nim/blob/devel/compiler/ast.nim#L1685C3-L1688 zect you also do stuff like this inside of `newNode` to see when/where nodes are made |
21:34:19 | FromDiscord | <Elegantbeef> Basically you run the code the first time find the node's id you want then you paste it in there and it'll show when it's created |
21:34:54 | FromDiscord | <Elegantbeef> If you're looking for something small to do my package graffiti could use a PR that collates all the messages inbetween version ticks into won π |
21:35:02 | FromDiscord | <Elegantbeef> into one\ |
21:35:07 | FromDiscord | <Phil (he/him)> sent a code paste, see https://play.nim-lang.org/#ix=html> |
21:35:13 | * | azimut quit (Remote host closed the connection) |
21:35:39 | * | azimut joined #nim |
21:36:08 | FromDiscord | <Elegantbeef> Imagine using return |
21:36:40 | FromDiscord | <Robyn [She/Her]> In reply to @Elegantbeef "If you're looking for": Huh? |
21:37:04 | FromDiscord | <Phil (he/him)> Collate messages into won Robyn |
21:37:06 | FromDiscord | <Phil (he/him)> Not that hard |
21:37:07 | FromDiscord | <Phil (he/him)> Just do won |
21:37:19 | FromDiscord | <Elegantbeef> Right now graffiti only makes a tag with a commit message of that version, ideally it should collate all the messages into a single message from the last tick of the nimble version π |
21:37:34 | FromDiscord | <Phil (he/him)> Make them winner messages |
21:37:38 | FromDiscord | <Elegantbeef> I'm an idiot phil, but I'm also slightly sick so uhh fuck you! |
21:37:58 | FromDiscord | <Robyn [She/Her]> In reply to @Elegantbeef "Right now graffiti only": I am too mush brained to understand that atm |
21:38:34 | FromDiscord | <Phil (he/him)> You fell for my trap card, making me the winner of this exchange.β΅For I am also sickly but also exhausted from work from debating architectures for basically 2 platforms |
21:38:44 | FromDiscord | <Phil (he/him)> for around 6h straight |
21:38:51 | FromDiscord | <Elegantbeef> My package graffiti makes a git tag based off ticking nimble files, but presently it only uses the message of the commit that changes the nimble file |
21:39:09 | FromDiscord | <Elegantbeef> Ideally it'd get all the commit messages from that tick to the last tick then make a tag using them |
21:40:29 | FromDiscord | <Robyn [She/Her]> Ah that makes sense |
21:40:32 | FromDiscord | <Robyn [She/Her]> Too much work :p |
21:40:48 | FromDiscord | <Elegantbeef> The hell you asked for something small |
21:41:19 | FromDiscord | <Elegantbeef> Graffiti is presently only 70 loc and uses git through shell! π |
21:41:35 | FromDiscord | <Robyn [She/Her]> My definition of small is mindless, currently :P |
21:41:48 | FromDiscord | <Elegantbeef> So then to answer your question nothing really |
21:42:28 | FromDiscord | <Robyn [She/Her]> Fair :p |
21:42:32 | FromDiscord | <Robyn [She/Her]> I hate being sick |
21:43:23 | FromDiscord | <Robyn [She/Her]> https://nimble.directory/pkg/gitapi deleted nimble package |
21:43:35 | FromDiscord | <Robyn [She/Her]> Why is there no script to regularly scan for deleted packages- |
21:44:11 | FromDiscord | <Elegantbeef> Blame yepoleb |
21:44:24 | FromDiscord | <Elegantbeef> I think they were working on package validation tools |
21:46:10 | FromDiscord | <Robyn [She/Her]> Ah |
21:46:31 | FromDiscord | <Yepoleb> The tool exists, but it is not run automatically |
21:46:42 | FromDiscord | <Robyn [She/Her]> Fair |
21:46:48 | FromDiscord | <Robyn [She/Her]> Could use GitHub Actions tbf |
21:47:42 | FromDiscord | <Yepoleb> Flagging packages as deleted is a manual process since often they are just renamed or moved somewhere else |
21:48:09 | * | tanami quit (Ping timeout: 260 seconds) |
21:48:30 | FromDiscord | <Elegantbeef> There you go robyn go down the rabbit hole of finding where these packages have gone |
21:48:33 | * | tanami joined #nim |
21:48:43 | FromDiscord | <Robyn [She/Her]> In reply to @Yepoleb "Flagging packages as deleted": I feel like that that's the package maintainer's problem :p |
21:48:53 | FromDiscord | <Robyn [She/Her]> In reply to @chronos.vitaqua "https://nimble.directory/pkg/gitapi deleted nimble ": This one just seems to be nuked so |
22:05:13 | * | jmdaemon quit (Ping timeout: 264 seconds) |
22:19:29 | * | tiorock joined #nim |
22:19:30 | * | rockcavera is now known as Guest6093 |
22:19:30 | * | Guest6093 quit (Killed (copper.libera.chat (Nickname regained by services))) |
22:19:30 | * | tiorock is now known as rockcavera |
22:22:41 | * | jkl__ joined #nim |
22:23:13 | * | jkl quit (Ping timeout: 264 seconds) |
22:32:40 | * | redj quit (Remote host closed the connection) |
22:34:16 | * | redj joined #nim |
22:41:52 | * | deadmarshal_ quit (Ping timeout: 245 seconds) |
22:42:42 | * | jmdaemon joined #nim |
22:51:06 | * | termer quit (Excess Flood) |
22:51:41 | * | termer joined #nim |
22:52:01 | * | cornfeedhobo_ quit (Ping timeout: 264 seconds) |
22:52:38 | * | mahlon quit (Ping timeout: 264 seconds) |
22:54:13 | * | advesperacit quit () |
22:56:34 | * | cornfeedhobo joined #nim |
22:57:37 | * | mahlon joined #nim |
22:58:05 | * | jjido quit (Quit: My laptop has gone to sleep. ZZZzzzβ¦) |
23:03:36 | * | redj quit (*.net *.split) |
23:03:36 | * | Onionhammer quit (*.net *.split) |
23:03:37 | * | systemdsucks quit (*.net *.split) |
23:04:31 | * | tiorock joined #nim |
23:04:31 | * | rockcavera is now known as Guest1486 |
23:04:31 | * | Guest1486 quit (Killed (osmium.libera.chat (Nickname regained by services))) |
23:04:31 | * | tiorock is now known as rockcavera |
23:04:56 | * | redj joined #nim |
23:04:56 | * | Onionhammer joined #nim |
23:04:56 | * | systemdsucks joined #nim |
23:05:45 | * | deadmarshal_ joined #nim |
23:20:38 | * | tiorock joined #nim |
23:20:38 | * | rockcavera is now known as Guest6433 |
23:20:39 | * | Guest6433 quit (Killed (zinc.libera.chat (Nickname regained by services))) |
23:20:39 | * | tiorock is now known as rockcavera |
23:52:14 | * | jmdaemon quit (Ping timeout: 260 seconds) |