<< 29-03-2024 >>

00:28:02FromDiscord<bosinski2023> In reply to @termer "this sounds like a": not sure, if ts related, but before atomicArc existed, i always had problems with the combinaton of sef/heap-alloced types and arc/orc-managed types. These days - with atomicArc - i have a managed ref-type on the surface that carries a heap-alloced struct-memeber and releases this within `=destroy`. And i can decide to release the struct member or keep it. But maybe your case is different..
00:28:40FromDiscord<Elegantbeef> It's unrelated 😄
00:29:02FromDiscord<Elegantbeef> Termer is creating unsafe views into memory and wants them to tick the life time automatically
00:29:28FromDiscord<Elegantbeef> Which is not impossible to do but it has a bad API
00:29:44FromDiscord<bosinski2023> In reply to @Elegantbeef "Termer is creating unsafe": hey, thats sounds great to me - maybe i want this, too ?
00:31:04FromDiscord<Elegantbeef> Termer basically needs to take a 'path' expression search it for the first `ref` then emit a `(ref, ptr T)`
00:32:23FromDiscord<bosinski2023> In reply to @Elegantbeef "Termer basically needs to": in user-land or compiler-land ?
00:32:31FromDiscord<Elegantbeef> You can do it in macroland
00:33:02FromDiscord<bosinski2023> In reply to @Elegantbeef "You can do it": ok, thats in the twillight-zone...
00:51:48*xutaxkamay quit (Quit: ZNC 1.8.2+deb3.1 - https://znc.in)
00:52:03*xutaxkamay joined #nim
00:58:44FromDiscord<Elegantbeef> It's fine, I don't hear any narrator
00:59:32FromDiscord<albassort> hey beef
01:00:03FromDiscord<albassort> sent a code paste, see https://play.nim-lang.org/#pasty=evUTRXcxDruv
01:01:19FromDiscord<albassort> I haven't been able to figure out why this is happening on my OS
01:02:41FromDiscord<Robyn [She/Her]> In reply to @albassort "does this work on": On my machine (Termux) it returns false
01:02:57FromDiscord<Robyn [She/Her]> Nim 2.0.2
01:03:18FromDiscord<albassort> well, for me, it returns nothing because it segfaults
01:03:36FromDiscord<albassort> It works fine in a debian docker i made
01:03:43FromDiscord<Robyn [She/Her]> Huh...
01:03:54FromDiscord<albassort> yeah idk how this would even happen
01:04:19FromDiscord<Robyn [She/Her]> Maybe it's something to do with the regex library? Does Nim use a C lib for regex?
01:04:59FromDiscord<albassort> ¯\_(ツ)_/¯
01:05:33FromDiscord<Robyn [She/Her]> Okay yeah it uses PCRE
01:07:04FromDiscord<Robyn [She/Her]> Though, I think it ships with Nim considering I doubt it's installed on Windows...? I know shit about this
01:08:10FromDiscord<albassort> interesting
01:08:17FromDiscord<albassort> something somewhere is messed up
01:08:52FromDiscord<albassort> pcre is on my pc
01:10:00FromDiscord<albassort> yeah so its using a re packaged with nim as i removed it and it still works
01:10:05FromDiscord<albassort> or well --- compiel;s
01:10:08FromDiscord<albassort> (edit) "compiel;s" => "compiles"
01:10:19FromDiscord<Robyn [She/Her]> In reply to @albassort "yeah so its using": Segfaults?
01:10:39FromDiscord<Robyn [She/Her]> (edit) "Segfaults?" => "Segfaults still?"
01:11:01FromDiscord<albassort> yeah
01:11:16FromDiscord<Robyn [She/Her]> Ah
01:11:59FromDiscord<Elegantbeef> Don't know what to say it works on my machine
01:12:08FromDiscord<Elegantbeef> regex was a mistake to begin with
01:12:33FromDiscord<Robyn [She/Her]> It doesn't seem to be a compiler bug but also this isn't a user error so maybe ask in #internals asking if someone has had this issue before?
01:12:52FromDiscord<Robyn [She/Her]> In reply to @Elegantbeef "regex was a mistake": Why's that? I don't use regex usually so
01:14:00FromDiscord<albassort> In reply to @Elegantbeef "regex was a mistake": do you have a better solution that isn't ugly and hacky
01:14:26FromDiscord<albassort> i could program that into native code yeah
01:14:33FromDiscord<albassort> but do I want to?
01:14:35FromDiscord<albassort> yeah
01:14:39FromDiscord<albassort> I guess i'll do that.
01:15:26FromDiscord<Robyn [She/Her]> In reply to @albassort "do you have a": Could use an alternative regex library
01:15:32FromDiscord<Robyn [She/Her]> There's multiple
01:16:09FromDiscord<Robyn [She/Her]> https://github.com/nitely/nim-regex
01:26:18termerElegantbeef Yeah, I was thinking of requiring a macro to surround the declaration of the type that'll have the view so I can track it, but that would suck
01:26:49termerFor now I'm creating a type called WeakView that's entirely unsafe to be used for very narrow uses
01:27:07FromDiscord<Elegantbeef> What are you doing?
01:27:22termerYou saw methttp right?
01:27:32termerI'm replacing openArray with my view type in it
01:27:42FromDiscord<ElegantBeef> I see the bridge is only being nice one way
01:27:48termerbasically using views instead of strings to save memory
01:27:53FromDiscord<ElegantBeef> Yea I figured that
01:28:00FromDiscord<Elegantbeef> Bridge dropped messages
01:28:01FromDiscord<Elegantbeef> @albassort what are you doing? 😄
01:28:06FromDiscord<ElegantBeef> Ah there we go
01:28:11termerawesome
01:28:22FromDiscord<ElegantBeef> Maybe when I figure out the matric client api I'll make a bridge that works
01:28:27FromDiscord<albassort> In reply to @Elegantbeef "<@217459674700578816> what are you": playing minecraft
01:28:37FromDiscord<Elegantbeef> Right but i meant with the regex
01:29:40FromDiscord<albassort> @ElegantBeef https://gitlab.com/CAlbassort/universalime/-/blob/main/src/libs/nim/jinput.nim?ref_type=heads#L39
01:30:08FromDiscord<Robyn [She/Her]> In reply to @chronos.vitaqua "https://github.com/nitely/nim-regex": Try this maybe?
01:30:52termerMatrix API is woefully underdocumented
01:30:54FromDiscord<Elegantbeef> One could make a strscans matcher relatively easily if one wanted to avoid regex
01:30:59termerespecially when it comes to encryption
01:31:01FromDiscord<albassort> In reply to @Elegantbeef "One could make a": strscans
01:31:03FromDiscord<albassort> ?
01:31:31FromDiscord<Elegantbeef> I'm not even at the point of being able to get previous messages
01:31:35FromDiscord<albassort> In reply to @Elegantbeef "One could make a": yeah i was just gonna make a function that read into a buffer then checked the 3rd whatever if isdigit
01:31:46FromDiscord<albassort> (edit) "read" => "reads"
01:31:51FromDiscord<albassort> (edit) "checked" => "checks"
01:32:07FromDiscord<Elegantbeef> Yea that works aswell
01:32:31FromDiscord<Elegantbeef> I avoid regex like the plague
01:33:17FromDiscord<albassort> its good for designing searches
01:33:20FromDiscord<albassort> i just left it in
01:33:26FromDiscord<Elegantbeef> Bleh
01:36:09FromDiscord<Elegantbeef> Now something I have no opinion on.... a database for the client data....
01:37:36FromDiscord<bosinski2023> In reply to @Elegantbeef "Now something I have": i have - ZODB is my favourite - a jewel witno nim-bndings yet..
01:38:56FromDiscord<Elegantbeef> I know nothing about DBs so at a loss of what to use
01:39:03FromDiscord<Elegantbeef> I'm at a loss
01:39:27FromDiscord<bosinski2023> In reply to @Elegantbeef "I'm at a loss": sqlite just works.
01:39:29FromDiscord<albassort> In reply to @Elegantbeef "Now something I have": i forgor
01:39:41FromDiscord<albassort> are you talking about my coee
01:39:42FromDiscord<albassort> (edit) "coee" => "code"
01:39:49FromDiscord<albassort> i probably fucking should have done a db
01:39:54FromDiscord<Robyn [She/Her]> In reply to @Elegantbeef "Now something I have": Sqlite /j
01:39:55FromDiscord<Elegantbeef> No i'm not
01:40:04FromDiscord<albassort> I like databases
01:40:05FromDiscord<Elegantbeef> I'm talking about trying to make a matrix client
01:40:09FromDiscord<albassort> oh yeah
01:40:19FromDiscord<albassort> you'll loose a few braincells learning sql bur
01:40:20FromDiscord<albassort> (edit) "bur" => "but"
01:40:24FromDiscord<albassort> once you know it
01:40:32FromDiscord<albassort> like a masocist you'll like it
01:40:36FromDiscord<albassort> (edit) "masocist" => "masochist"
01:40:41FromDiscord<Robyn [She/Her]> SQL doesn't seem too bad
01:40:44FromDiscord<Robyn [She/Her]> Just very tedious
01:41:00FromDiscord<albassort> Its not that its bad it just has weird edge cases and no universal implementation
01:41:06FromDiscord<bosinski2023> In reply to @Elegantbeef "I'm talking about trying": what goes in th db - usertalk ?
01:41:08FromDiscord<Elegantbeef> I know Phil would scream about norm
01:41:24FromDiscord<Robyn [She/Her]> In reply to @albassort "Its not that its": Fair
01:41:51FromDiscord<Robyn [She/Her]> I wonder if someone has made an alternative to SQL (as in the query language)
01:42:01FromDiscord<albassort> i wonder
01:42:16FromDiscord<albassort> In reply to @Elegantbeef "I know Phil would": norm?
01:42:26FromDiscord<albassort> Macdonald?
01:42:33FromDiscord<Elegantbeef> https://norm.nim.town/index.html
01:42:34FromDiscord<Elegantbeef> I mean that too
01:42:43FromDiscord<Elegantbeef> Everyone should scream about Norm
01:43:08FromDiscord<bosinski2023> In reply to @albassort "norm?": norm = nim object-relational-mapper - saves you from learning/writing SQL
01:43:30FromDiscord<albassort> I prefer sql in all cases
01:43:34FromDiscord<Robyn [She/Her]> Debby is another Nim ORM
01:43:58FromDiscord<Elegantbeef> I don't know why you'd not want static typed apis but yea 😄
01:44:34FromDiscord<bosinski2023> In reply to @albassort "I prefer sql in": then sqlite is the king on the hill..
01:45:19FromDiscord<albassort> sqlite is my baby
01:45:22FromDiscord<albassort> although
01:45:25FromDiscord<albassort> i wish it had SP
01:45:27FromDiscord<albassort> (edit) "SP" => "SPs"
01:45:37FromDiscord<Robyn [She/Her]> I'm probably not gonna go for an ORM library, I'm gonna write a simple helper that uses the bare minimum I need for SQL loading, insertion and dumping
01:45:43FromDiscord<Robyn [She/Her]> SPs?
01:45:48FromDiscord<albassort> stored procedures
01:45:55FromDiscord<albassort> functions
01:46:12FromDiscord<bosinski2023> In reply to @albassort "i wish it had": theres a nim-package for SPs
01:46:23FromDiscord<Elegantbeef> Why would you not use an ORM library?
01:46:32FromDiscord<albassort> Trauma
01:46:38FromDiscord<albassort> from LINQ
01:46:49FromDiscord<Robyn [She/Her]> In reply to @Elegantbeef "Why would you not": Nim ORMs don't support a non-int for primary keys
01:46:53FromDiscord<Elegantbeef> Like writing raw strings to do operations is any less traumatic
01:47:04FromDiscord<albassort> i write my code in .sql files
01:47:05FromDiscord<albassort> :)
01:47:07FromDiscord<Robyn [She/Her]> I'm planning on using ULIDs for my primary keys
01:47:12FromDiscord<albassort> and test it
01:47:39FromDiscord<Elegantbeef> I feel like adding support for non-int primary keys is less tedious than manually using query languages
01:47:48FromDiscord<Robyn [She/Her]> Probably
01:48:04FromDiscord<Robyn [She/Her]> But I'm also just gonna write a ton of helpers
01:48:24FromDiscord<Robyn [She/Her]> Ig it'd be kind of like my own minimal ORM ig?
01:48:29FromDiscord<Robyn [She/Her]> 🤷‍♀️
01:48:38FromDiscord<Elegantbeef> It does also seem that ponairi does allow string primaries
01:48:47FromDiscord<Elegantbeef> https://ire4ever1190.github.io/ponairi/ponairi.html#getting-started
01:49:36FromDiscord<bosinski2023> or make a step forward and not use a ORM but a Object-DB - alike Zope-DB
01:50:04FromDiscord<Robyn [She/Her]> In reply to @Elegantbeef "It does also seem": Oh damn that's nice, never saw it before
01:50:13FromDiscord<Robyn [She/Her]> In reply to @bosinski2023 "or make a step": Object DB?
01:52:49FromDiscord<bosinski2023> In reply to @chronos.vitaqua "Object DB?": yep, well thats from OO-land - maybe not so popular here. But very convenient to use. Its an ORM plus one step. The DB knows your Object/Struct plus the methods ..
01:53:45FromDiscord<bosinski2023> and does the instatiation on load, and saves your properties automagically..
01:54:35FromDiscord<Robyn [She/Her]> I don't really understand what you mean :p
01:54:47FromDiscord<Robyn [She/Her]> Could you show an example?
01:58:29FromDiscord<bosinski2023> In reply to @chronos.vitaqua "I don't really understand": when you get some JSON-object from your people-table out of your sql-db, you look at it, maybe check the structure, then decide to make nim-Person-object out of it. Maybe that JSON-object has a array-member 'friends' with some names, you might check if you already have such Person-objects and then reference these as "is friend of".. A Object-DB makes all these steps for you
01:59:33FromDiscord<bosinski2023> including, you add another persons name into your Nim-object, the DB saves/updates that for you..
02:00:43FromDiscord<Robyn [She/Her]> Oh damn
02:04:09FromDiscord<bosinski2023> In reply to @chronos.vitaqua "Oh damn": one can do nice stuff this way - we once did a thing for a museum, where we had artists, artworks, exibitions, etc. that made up a nice object-graph with mayn interconnections. And the people at the museum wanted to be able to add new relations anytime by themselfes - so we had to find some DB that allows for that..
02:09:10*une joined #nim
02:28:55FromDiscord<albassort> so
02:29:00FromDiscord<albassort> I think i found a bug
02:29:04FromDiscord<albassort> @Robyn [She/Her] do you run x11
02:42:00FromDiscord<albassort> nbm
02:42:03FromDiscord<albassort> (edit) "nbm" => "nvm"
02:42:11FromDiscord<albassort> didn't port the re fully
02:51:50FromDiscord<treeform> In reply to @fosster "[Edit](https://discord.com/channels/371759389889003": It will throw an exception. Note it does not check that the buffer is valid. If you need versioning and protocl checking. Flatty will interpret any buffer as your data if it fits into the buffer.
03:44:21FromDiscord<Robyn [She/Her]> In reply to @albassort "<@524288464422830095> do you run": Termux has no X server running, so no?
03:44:41FromDiscord<Robyn [She/Her]> In reply to @bosinski2023 "one can do nice": That makes sense, it does sound useful
03:59:40*ursa-major quit (Read error: Connection reset by peer)
03:59:50*ursa-major joined #nim
04:02:03*pmp-p quit (Quit: No Ping reply in 180 seconds.)
04:03:15*pmp-p joined #nim
04:14:34FromDiscord<bosinski2023> In reply to @chronos.vitaqua "That makes sense, it": this gentleman shows how similar things can be done with sqlite & JSON alone https://www.hytradboi.com/2022/simple-graph-sqlite-as-probably-the-only-graph-database-youll-ever-need - its a tiny github-prj that has no nim-bindings, yet. I think its brilliant and what he demonstrates will be standarized in the next SQL-spec to come.
04:20:02FromDiscord<Robyn [She/Her]> Ah I can't watch videos at the moment unfortunately
04:23:15FromDiscord<bosinski2023> In reply to @chronos.vitaqua "Ah I can't watch": in less than 30-lines of SQL he makes 'The only graph-database you'll ever need.' https://github.com/dpapathanasiou/simple-graph
04:34:21FromDiscord<Robyn [She/Her]> Pretty neat!
04:41:34FromDiscord<bosinski2023> In reply to @chronos.vitaqua "Pretty neat!": nice and compact - it's 18-lines in schema.sql that does the magic. It allows to express - any relation alike a human sentence <subject> <predicate> <object> with JSON - to make these JSON-objects 'alive' one needs some dynamism. E.g. if the person-obj has a "was born"-field a simple function could tell you how old the person is etc.
06:19:28*SchweinDeBurg quit (Quit: WeeChat 4.3.0-dev)
06:19:52*SchweinDeBurg joined #nim
06:44:56NimEventerNew Nimble package! hyperx - Pure Nim http2 client and server, see https://github.com/nitely/nim-hyperx
07:08:25*ntat joined #nim
08:02:01FromDiscord<mratsim> Arraymancer, top of HN: https://news.ycombinator.com/item?id=39860365
08:52:27NimEventerNew thread by nimian: How to combine nim-metrics and chronos for simple rest api?, see https://forum.nim-lang.org/t/11320
09:57:34FromDiscord<whisperecean> What I can do with is not GC-safe as it accesses 'myRegistry' which is a global using GC'ed memory?
10:31:11*tanami quit (Ping timeout: 252 seconds)
10:31:19*tanami joined #nim
12:32:07*lucasta joined #nim
13:59:12Amun-Ramark proc as non-gc safe
13:59:40Amun-Raor cast the part of the code as gcsafe (but I wouldn't recommend it)
15:09:54FromDiscord<itr_> What's the current way of doing a threadsafe seq equivalent in nim?
15:10:15FromDiscord<itr_> What I need specifically is just to write to it from one thread and every now and then copy the list in another thread
15:10:59FromDiscord<itr_> Never need to remove elements from it or modify an element after it's been added
15:12:07FromDiscord<odexine> depends on what kind of consistency you need
15:14:07FromDiscord<itr_> In reply to @odexine "depends on what kind": what do you mean?
15:14:34FromDiscord<itr_> the exact version of the list I get at copy doesn't matter as long as it's not corrupt
17:08:04FromDiscord<Robyn [She/Her]> LowDB or db_connector... Hm.
17:38:26FromDiscord<fosster> how can I index by the position an OrderedTable?
17:46:04FromDiscord<jaar23> anyone has setup nim with helix before? not sure why nimsuggest is always crash when using neovim and vscode.↵while fixiing here and there in neovim, i would like to try helix too.. but helix is never working for me.
17:46:45anddamis nim-template suggested for current work? last commit is 5+ year old
17:49:34FromDiscord<MDuardo> Me↵You need my config?↵(@jaar23)
17:53:09FromDiscord<jaar23> In reply to @MDuardo "Me You need my": yes if you could provide one.
17:54:34FromDiscord<jaar23> the error i getting always was, `nimsuggest for project /xxx/xxxx/xxx stopped, exitcode 139` quite frastruting..
17:59:12FromDiscord<MDuardo> Wait, I realized I didn't set Nim LSP↵(@jaar23)
17:59:23FromDiscord<MDuardo> I'm using the default config
17:59:40FromDiscord<jaar23> In reply to @MDuardo "I'm using the default": default config is working?
18:00:19FromDiscord<MDuardo> Are you using nimsuggest or nimlangserver?
18:00:34FromDiscord<MDuardo> Flawlessly↵(@jaar23)
18:01:55FromDiscord<jaar23> tried with both, none is working for me
18:02:20FromDiscord<MDuardo> 1000062757.jpg https://media.discordapp.net/attachments/371759389889003532/1223331421725266051/1000062757.jpg?ex=6619772b&is=6607022b&hm=ee5b9ade74ef5515e9d36cc738631d28dc7fc19b8bb4adfbd0f6a53775d84e90&
18:03:21FromDiscord<MDuardo> Did you add the .nimble directory to PATH?
18:03:40FromDiscord<jaar23> yes, nimsuggest is in my PATH
18:05:12FromDiscord<MDuardo> What happens if you open nimsuggest/nimlangserver from the terminal?↵↵It crashes?
18:07:16FromDiscord<jaar23> it didn't ↵i can run it https://media.discordapp.net/attachments/371759389889003532/1223332663494971462/image.png?ex=66197853&is=66070353&hm=d722a840ba058ba6edc0dfccf521dfa0c305c196079fc5636b10ec1fb5c2aa22&
18:16:24FromDiscord<jaar23> In reply to @MDuardo "What happens if you": when i start helix, i can see the nimsuggest process is started, however, i don't see any suggesstion when typing `obj.` or so.
18:20:24FromDiscord<MDuardo> What Helix version you have?↵I'm in 23.10
18:22:27FromDiscord<jaar23> In reply to @MDuardo "What Helix version you": same, 23.10
18:24:42*cnx quit (Remote host closed the connection)
18:25:32*cnx joined #nim
18:33:32FromDiscord<jaar23> may be nimsuggest is stop working, although the process still running. how to reinstall nimsuggest? https://media.discordapp.net/attachments/371759389889003532/1223339272556515419/image.png?ex=66197e7b&is=6607097b&hm=0c7b6e3dc11f5d12cae381904d9f7b1727cbe6097ab3235d12e4189d679a1226&
18:44:51Amun-Radoes helix supports block copying yet?
18:46:44*ntat quit (Quit: Leaving)
18:59:24FromDiscord<MDuardo> `nimble uninstall nimsuggest `↵(@jaar23)
18:59:30FromDiscord<MDuardo> And then install
18:59:44FromDiscord<MDuardo> What do you mean?↵(<@709044657232936960_=41mun-=52a=5b=49=52=43=5d>)
19:02:10*Lord_Nightmare quit (Quit: ZNC - http://znc.in)
19:20:56*lucasta quit (Quit: Leaving)
19:21:42*_________ quit (Quit: leaving)
19:28:39*_________ joined #nim
19:35:49*junaid_ joined #nim
19:37:46FromDiscord<norax.2> https://media.discordapp.net/attachments/371759389889003532/1223355438876065902/image.png?ex=66198d89&is=66071889&hm=374cb44bd9f07da3656489dcf04444dfd6bca12b90761d5f1563c0656f95f41a&
19:37:53FromDiscord<norax.2> nimling v2 testing
19:38:12FromDiscord<norax.2> and it actually works too
19:38:17FromDiscord<norax.2> epic
19:39:15FromDiscord<norax.2> im not calling it a fork of normal nimling cause what i keeped is just the name
19:46:15FromDiscord<griffith1deadly> In reply to @norax.2 "": why `if ... == true:` if you can `if ...:`
19:46:40FromDiscord<norax.2> In reply to @griffith1deadly "why `if ... ==": to make it more readable
19:46:55FromDiscord<norax.2> this goes to fresh nim coders
19:47:26FromDiscord<norax.2> thats also the same reason why i created 3 functions in less than 40 lines of code
19:47:48FromDiscord<norax.2> and the same why i use a main function
19:49:07FromDiscord<michaelb.eth> In reply to @norax.2 "to make it more": no, it will just perpetuate the idea that Nim has the concept of "falsy" and "truthy" like JavaScript, which it does not
19:49:37FromDiscord<norax.2> so should i go whit a more efficent approach?
19:50:08FromDiscord<djazz> `while not done:`
19:50:18FromDiscord<norax.2> In reply to @djazz "`while not done:`": !
19:50:23FromDiscord<norax.2> (edit) "In reply to @djazz "`while not done:`": ! ... " added "exists"
19:50:30FromDiscord<norax.2> !done
19:50:53FromDiscord<michaelb.eth> do it like you see in the Nim Manual and in robust Nim codebases, and maybe check the Status Nim Style Guide ( https://status-im.github.io/nim-style-guide/ )
19:51:01FromDiscord<norax.2> okay
19:51:49FromDiscord<norax.2> btw later when i end the base code it will be open to add new stuff
19:51:57FromDiscord<norax.2> such as more tutorials
19:52:01FromDiscord<michaelb.eth> not everyone in the Nim community likes/agrees with the Status guide, but there's some good info in there in any case, worth reading
19:52:52FromDiscord<michaelb.eth> also consider auto-/formatting your code with nph↵https://github.com/arnetheduck/nph
19:53:56FromDiscord<norax.2> well is not that hard to implement is just another line in the makefile
19:54:09FromDiscord<norax.2> (edit) "line" => "few lines"
19:54:17FromDiscord<michaelb.eth> if you're using vscode you can install the plugin and have it format on file save
19:54:24FromDiscord<norax.2> name?
19:54:30FromDiscord<michaelb.eth> https://marketplace.visualstudio.com/items?itemName=arnetheduck.vscode-nph
19:54:51FromDiscord<michaelb.eth> maintained by the author of nph, link is in the readme of nph
19:57:25FromDiscord<norax.2> https://media.discordapp.net/attachments/371759389889003532/1223360380953165884/image.png?ex=66199223&is=66071d23&hm=4bf9186b84b143ceebfb4c6ca45b2c8b87726d40fc1f27e9ad223e1f37035a70&
19:57:26FromDiscord<norax.2> here it is
20:04:35*junaid_ quit (Remote host closed the connection)
20:19:49FromDiscord<norax.2> someone that uses windows could tell me if the 'cls' command works?
20:19:58FromDiscord<norax.2> (edit) "works?" => "works for cleaning the console?"
20:20:20*def- quit (Quit: -)
20:21:14*def- joined #nim
20:21:33*junaid_ joined #nim
20:23:10FromDiscord<michaelb.eth> In reply to @norax.2 "someone that uses windows": pretty sure that works re: cmd.exe, probably in PowerShell too; of course Windows users with good taste will be using an MSYS2 bash shell/environment
20:29:48FromDiscord<guttural666> god, C is painful
20:30:18FromDiscord<Elegantbeef> C puts the C in "I really want to stop programming"
20:31:52FromDiscord<guttural666> I'v been trying to develop a dir scanner to get some experience and it's kinda perverse fun, but a lot of things just seem annoying and cumbersome
20:32:49FromDiscord<guttural666> string handling is absolute dog shit, it's just more work and it doesn't seem to do anything useful for the work you put in
20:33:09FromDiscord<griffith1deadly> In reply to @Elegantbeef "C puts the C": nim sometimes too with it compile errors and slow compile time
20:33:45FromDiscord<griffith1deadly> c++ with cmake with 5k files for ue 4.27 compiles for small change like 2-7 sec
20:35:17FromDiscord<Phil> In reply to @Elegantbeef "C puts the C": There is no C in "I really want to stop programming", was it introduced by some preprocessor?
20:35:52FromDiscord<guttural666> when char[256] = char is hard, I just don't get it, just write the fucking chars into the buffer and stop when it's full god damnit
20:37:28FromDiscord<guttural666> makes me wish I had actually studied CS, but I reckon they'd just have tought me Java 🤮
20:38:09FromDiscord<griffith1deadly> java is good
20:38:15FromDiscord<griffith1deadly> but kotlin better
20:38:30FromDiscord<griffith1deadly> wanna see some kotlin -> nim compiler
20:38:33FromDiscord<Elegantbeef> Yea I don't agree
20:38:39FromDiscord<Elegantbeef> Yes it's not the fastest compile time but it gives you time to sip your water
20:38:39FromDiscord<Robyn [She/Her]> Why is `out` highlighted red and underlined in VSC?
20:38:47FromDiscord<guttural666> dunno, I look at Java projects and I'm horrified
20:39:04FromDiscord<Robyn [She/Her]> In reply to @griffith1deadly "wanna see some kotlin": I'd rather have Nim -> Java or Nim -> Kotlin
20:39:06FromDiscord<Phil> In reply to @griffith1deadly "java is good": We're about to be enemies
20:39:15FromDiscord<Elegantbeef> Postprocessor↵(@Phil)
20:39:16FromDiscord<Elegantbeef> Guttural there is no full in an array
20:39:19FromDiscord<Phil> And I earn some of my money with java
20:39:36FromDiscord<Elegantbeef> The C interface for arrays is a type erasure as such you have no idea when it's full
20:39:39FromDiscord<griffith1deadly> im work at java project
20:39:45FromDiscord<Elegantbeef> you need to do `call(myArr, len)`
20:40:01FromDiscord<Phil> My grief is more with the type of devs that exist in java land I guess than the lang itself, though I'm not a massive fan of OO either
20:40:06FromDiscord<guttural666> this is my problem rn https://media.discordapp.net/attachments/371759389889003532/1223371125166182461/image.png?ex=66199c25&is=66072725&hm=716e854da18b4cd62ded3b774d99643a032eac403507d928da25beb9e6eeed51&
20:40:46FromDiscord<Phil> Because the amount of bad abstractions that make things more complicated than its worth (oh hello there Hibernate) is insane
20:41:05FromDiscord<Phil> And I've never seen it worse anywhere than in java land
20:41:09FromDiscord<Elegantbeef> Yea that should be `&dir[0]`
20:41:31FromDiscord<griffith1deadly> In reply to @isofruit "Because the amount of": i hate hibernate
20:41:44FromDiscord<Elegantbeef> `T[...]` is not compatible with `T`
20:41:50FromDiscord<griffith1deadly> i'm love mongodb driver for kotlin
20:41:51FromDiscord<Phil> I mean, the java logging frameworks aren't much better either for my next example of overcomplication
20:42:52FromDiscord<griffith1deadly> atleast writing jni anticheat for minecraft with nim is painful
20:42:58FromDiscord<Elegantbeef> Guttural why are you even using C, just do this in Nim and learn the same things 😛
20:42:59FromDiscord<Elegantbeef> Wrap your C functions though
20:43:23FromDiscord<Elegantbeef> jni anticheat?
20:43:28FromDiscord<guttural666> In reply to @Elegantbeef "Guttural why are you": to broaden my horizon and learn something new, strictly personal
20:43:46FromDiscord<griffith1deadly> In reply to @Elegantbeef "jni anticheat?": use jni for checking game values
20:44:25FromDiscord<guttural666> figured everybody should know some C, just plugging some holes in my education
20:44:57FromDiscord<Elegantbeef> I never conventionally learned C myself I just learned it incidentally through Nim 😄
20:45:18FromDiscord<griffith1deadly> i'm just learned c/c++ with nim
20:45:29FromDiscord<guttural666> In reply to @Elegantbeef "I never conventionally learned": how so? through Nim's C output?
20:45:32FromDiscord<griffith1deadly> never write before nim c++ code
20:45:38FromDiscord<Elegantbeef> Nope
20:46:01FromDiscord<griffith1deadly> In reply to @guttural666 "how so? through Nim's": try start with lowlevel system api
20:46:07FromDiscord<Elegantbeef> Wrote Nim as a system language and learned the underlying logic then just mapped it to C's syntax when attempting to wrap code
20:46:10FromDiscord<griffith1deadly> not that provide nim stdlib
20:46:52FromDiscord<griffith1deadly> In reply to @chronos.vitaqua "I'd rather have Nim": java -> kotlin already exists
20:46:57FromDiscord<griffith1deadly> but not ideal
20:47:08FromDiscord<griffith1deadly> by jetbrains ide
20:47:14FromDiscord<guttural666> yeah, I just think it's essential to learn some low level language if your day work is writing really high level code, it's just an immense asset
20:47:53FromDiscord<Elegantbeef> Right and Nim is a low level language 😛
20:48:24Amun-Rajni is painful enough by itself
20:48:31FromDiscord<griffith1deadly> nim can make java a way faster, just rebind java zip functions with zippy :p
20:48:42FromDiscord<guttural666> I know, but not #that low level with GC and all and a lot of convenient stuff, you don't really learn what is involved when copying strings etc.
20:49:08FromDiscord<Elegantbeef> I mean just go use `create`, `dealloc` and friends
20:49:32FromDiscord<guttural666> In reply to @Elegantbeef "I mean just go": are those the Nim equivs. of malloc and free?
20:49:37FromDiscord<Elegantbeef> Yes
20:49:44FromDiscord<griffith1deadly> In reply to @guttural666 "I know, but not": learn pointers with nim
20:49:50FromDiscord<Elegantbeef> You can always go make your own `seq[T]` and learn exactly what you did in C
20:50:00FromDiscord<guttural666> In reply to @griffith1deadly "learn pointers with nim": already dipped in to that with multithreading
20:50:03FromDiscord<Elegantbeef> Nim just makes it cleaner to do what C teaches you since it has destructors
20:50:34FromDiscord<griffith1deadly> In reply to @guttural666 "already dipped in to": multithreading in nim is painful
20:50:39FromDiscord<Elegantbeef> Your `=wasMoved` and `=destroy` is your `dealloc_seq(...)` in C
20:51:03FromDiscord<guttural666> yeah, I know Nim's great, but I still think you should know some languages for experience, it's just a great lesson
20:51:16FromDiscord<guttural666> In reply to @griffith1deadly "multithreading in nim is": it kinda is
20:51:55FromDiscord<Elegantbeef> Yea I'm too far into my own sauce that you can learn languages through Nim, I pretend to know Rust, C, and Zig since it's all the same shit
20:52:21FromDiscord<griffith1deadly> i'm tried learn zig and stopped
20:52:24FromDiscord<griffith1deadly> ahah
20:52:32FromDiscord<guttural666> Zig seems fucking awesome
20:52:42FromDiscord<Elegantbeef> Why does it seem awesome
20:52:49FromDiscord<Elegantbeef> I think it seems fucking silly
20:52:51FromDiscord<guttural666> C without the pain
20:53:01FromDiscord<Elegantbeef> You still have to play compiler
20:53:04FromDiscord<griffith1deadly> In reply to @guttural666 "C without the pain": with
20:53:05FromDiscord<MDuardo> That
20:53:44FromDiscord<guttural666> I think Zig and especially the compiler tool chain just make C and cross compiling and Cmake and all that horse shit obsolete
20:53:49FromDiscord<guttural666> it does the same but better
20:53:52FromDiscord<griffith1deadly> c without pain more like nim without bugs and multithreading high level
20:54:00FromDiscord<Elegantbeef> Sure that's cool but that's not really the language
20:54:03FromDiscord<Elegantbeef> That's zigcc
20:54:10FromDiscord<guttural666> yeah that's not the lng
20:54:16FromDiscord<Elegantbeef> It's the year 2024 and people still want to do explicit memory management
20:54:42FromDiscord<guttural666> Zig is just another C style lng, which is great and familiar, metaprogramming and comptime tho
20:54:55FromDiscord<guttural666> just better than C macros
20:55:30FromDiscord<Elegantbeef> With no overloading, explicit generics, and explicit memory management!
20:56:24FromDiscord<MDuardo> I only would like Zig to have Nim-like memory management
20:56:38FromDiscord<Elegantbeef> RAII is fantastic for system languages
20:56:50FromDiscord<Elegantbeef> I find it absurd to want to manually do `dealloc(x)` at the right time
20:56:54FromDiscord<guttural666> In reply to @Elegantbeef "With no overloading, explicit": yeah I was recently scolded in the Zig channel by saying heap allocation should be included in the examples they ship
20:57:06FromDiscord<odexine> In reply to @isofruit "There is no C": "I really want to stop programming\0CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC"
20:57:18FromDiscord<guttural666> defer: deinit() is a good step in the right direction tho
20:57:49FromDiscord<Elegantbeef> `defer` is not an upgrade it's just manual RAII
20:57:56FromDiscord<Elegantbeef> Odin has the same thing
20:58:10FromDiscord<guttural666> it is, but it is definitely better than a block of cleanup which you goto
20:58:17FromDiscord<guttural666> and might forget
20:58:25FromDiscord<Elegantbeef> You might forget a `defer` anyway
20:58:31FromDiscord<MDuardo> Also, I find very hard to ask for user inputs in Zig↵Waaay harder that it should↵(@guttural666)
20:58:44FromDiscord<guttural666> nah, not after a heap alloc, you just put it right after
20:58:48FromDiscord<Elegantbeef> `a := some_proc()`
20:59:00FromDiscord<Elegantbeef> damn does `some_proc()` own memory?!
20:59:25FromDiscord<guttural666> In reply to @MDuardo "Also, I find very": yeah, their philosophy seems to be to force people to learn about low level programming
20:59:58FromDiscord<Elegantbeef> Maybe given that the matrix rest api is kicking my ass I should not espouse my views of what makes a good system language 😄
21:00:10FromDiscord<Elegantbeef> Ever get owned by json
21:01:37FromDiscord<guttural666> In reply to @Elegantbeef "`a := some_proc()`": explain pls, the proc should dealloc its local memory
21:01:50FromDiscord<Elegantbeef> That's odin for a variable declaration
21:02:04FromDiscord<Elegantbeef> You can call a procedure and not realise it owns memory
21:02:19FromDiscord<Elegantbeef> As such you can leak cause you have to manually do `defer: dealloc(T)`
21:02:28FromDiscord<Elegantbeef> So it's not really much better than an exit goto block
21:03:56FromDiscord<guttural666> dunno, the proc should obviously handle its own memory and if it returns anything it should be visible in the signature
21:04:44FromDiscord<Elegantbeef> I mean say it returns a struct that has an internal pointer
21:05:03FromDiscord<Elegantbeef> The type signature does not indicate to the program that it should be deallocated as it's just a struct
21:05:17FromDiscord<Elegantbeef> So you can easily go "Oh this has no heap memory"
21:05:36FromDiscord<Elegantbeef> I'm just too biased to ever want to play compiler
21:06:18FromDiscord<guttural666> probably my knowledge fails me here, but returning a pointer to something you've just allocated in a func should be fine, since now the ownership of that thing has gone to the caller
21:06:39FromDiscord<Elegantbeef> Right but if it's hidden by a struct you will not know the struct has a pointer
21:06:49FromDiscord<Robyn [She/Her]> I need to make a simple connection pool hm... And can you do connection pooling with SQLite??
21:06:50FromDiscord<guttural666> ohhh
21:07:10FromDiscord<guttural666> then the deinit funcs come into play I guess
21:07:20FromDiscord<odexine> In reply to @chronos.vitaqua "I need to make": what point is there to make a connection? SQLite dbs are in memory
21:07:51FromDiscord<Elegantbeef> sent a code paste, see https://play.nim-lang.org/#pasty=EfaOACNomLhe
21:08:11FromDiscord<Robyn [She/Her]> In reply to @odexine "what point is there": I'm gnna have to implement it for PostgreSQL so I wanna get it out of the way
21:08:21FromDiscord<Elegantbeef> if you do `struct myStruct bleh = getIt()` there is no indication at the callsite memory is actually owned
21:08:37FromDiscord<Elegantbeef> This is worse in odin since it has type inference so it's `bleh := getIt()`
21:08:50FromDiscord<guttural666> yeah, and by convention there are deinit(myStruct) functions that do the cleanup and you'd do defer: deinit(myStruct) after the function call
21:08:56FromDiscord<Elegantbeef> yes we can say "the proc should have new in it's name"
21:09:01FromDiscord<Elegantbeef> Right I know how it works
21:09:21FromDiscord<Elegantbeef> The thing is that there can be no clear indication to the programmer that the struct owns memory
21:09:30FromDiscord<guttural666> guess it's something you "have to know", or read the source, but I reckon it's still better than C
21:09:31FromDiscord<Elegantbeef> As such forgetting a destructor is easy
21:09:37FromDiscord<Elegantbeef> This is why RAII exists
21:09:37FromDiscord<guttural666> gotcha
21:09:51FromDiscord<guttural666> yeah totally agree
21:10:44FromDiscord<guttural666> but I've heard complaints about RAII, that it unnessecarily slows down shut down procedures, since the OS cleans up after you anyways
21:10:59FromDiscord<Elegantbeef> Oh noes my program is slow when it shuts down
21:11:09FromDiscord<odexine> In reply to @chronos.vitaqua "I'm gnna have to": probably would abstract this connection pooling api internally and not pool anything for SQLite, while doing so with PostgreSQL
21:11:13FromDiscord<Elegantbeef> For shame!
21:11:14FromDiscord<guttural666> I think that's a legit concern
21:11:40FromDiscord<Elegantbeef> Resources are properly handled and any destructors are fired ensuring the desired behaviour happens
21:11:41FromDiscord<guttural666> it sucks to have your appls or even the OS waiting for some unnecessary steps to be performed
21:12:02FromDiscord<Robyn [She/Her]> In reply to @odexine "probably would abstract this": Wdym exactly?
21:12:18FromDiscord<Elegantbeef> If you have a data type that writes to the disk on destruction do you want it to write to the disk or do you want it to just shut down?
21:12:24FromDiscord<odexine> you're making a connection pool API/library/thing
21:12:27FromDiscord<Elegantbeef> One of these is proper the other is incorrect
21:12:31FromDiscord<guttural666> it does, but it doesn't matter when shutting down something, so it's wasted, I think that's a legit point, apps should start AFAP and shut down AFAP
21:12:39FromDiscord<odexine> in that, for SQLite do no actual connection pooling
21:12:44FromDiscord<Robyn [She/Her]> Oh okay yeah I understand now
21:12:53FromDiscord<Elegantbeef> Apps should shut down as fast as possible whilst maintaining correct state
21:13:01FromDiscord<Elegantbeef> Just as they should start up as fast as possible
21:13:31FromDiscord<guttural666> sure thing, but just throwing away run time stuff that is not critical is okay
21:13:34FromDiscord<Elegantbeef> If destructors are supposed to be called to keep state correct... they should be called
21:13:44FromDiscord<guttural666> agreed
21:13:55FromDiscord<Elegantbeef> I mean if you want to make a program close faster just kill it
21:14:10FromDiscord<Elegantbeef> But you're accepting that when you do that you're possibly losing state
21:14:42FromDiscord<Elegantbeef> "Why is my text editor losing information, I always kill it and it loses the last things I typed"
21:14:42FromDiscord<guttural666> loosing state is another thing, but not all state is worth keeping and writing to disk etc.
21:14:53FromDiscord<guttural666> you know what I'm talking about
21:15:19FromDiscord<Elegantbeef> Sure, but no op destructors are not going to cause your program to stay alive for 5 minutes
21:16:23FromDiscord<Elegantbeef> Plus there is nothing saying you cannot have your own short circuit exit that skips destructors you don't want
21:16:32FromDiscord<Elegantbeef> Not that I'd ever condone it
21:17:00FromDiscord<guttural666> my Linux machine takes 10 seconds to "properly shut down" my VPN, not sure why that is, but something there is excessive, normal shutdowns take 5 seconds, no clue if that has something to do with what I've described, just saying it has impact on UX if you don't shut down fast
21:17:04FromDiscord<odexine> In reply to @Elegantbeef "Plus there is nothing": program sending a sigkill to itself:
21:17:19FromDiscord<odexine> In reply to @guttural666 "my Linux machine takes": thats unlikely related to destructors
21:18:28FromDiscord<odexine> and i mean id say anything related to networking could have a somewhat-long graceful shutdown period cuz theyre prolly still handling data of some sort?
21:18:47FromDiscord<guttural666> I understand the argument that things have to be properly takend care of, writing shit to disk etc. but RAII just blanket destroys everything "properly" if it's not necessary because the OS just nukes your memory space anyways, that was my point
21:19:45FromDiscord<guttural666> In reply to @odexine "and i mean id": yeah, I have no clue what I'm talking about network related but I just see my Linux cmd line saying "waiting for service PIA to shut down" 😄 fucking bothers me because it takes so long
21:20:12FromDiscord<odexine> First mistake using PIA
21:20:16FromDiscord<odexine> Half kidding
21:20:24FromDiscord<guttural666> elaborate please
21:20:43FromDiscord<odexine> One of the VPN companies lots of people accuse of being shady
21:20:47FromDiscord<Robyn [She/Her]> Either way the underlying connection is hidden since the only purpose of it is to belong to a 'Provider` object that can use it under the hood anyway
21:21:00FromDiscord<guttural666> In reply to @odexine "One of the VPN": thought they were not, no logging et al
21:21:16FromDiscord<Elegantbeef> That's what they all say
21:22:06FromDiscord<guttural666> got fd once with piracy, that's all I care about really, not being a prime target for those lawyer IT systems
21:22:26FromDiscord<guttural666> (edit) "with" => "for"
21:23:14FromDiscord<Elegantbeef> fed?
21:23:20FromDiscord<guttural666> for distributing perfectly legal linux distros
21:23:41FromDiscord<guttural666> nah, I'm in europe
21:24:32FromDiscord<odexine> I don’t really trust any VPN company advertising “privacy” or virus avoidance
21:24:48FromDiscord<Elegantbeef> I was commenting on "f\d"
21:25:00FromDiscord<odexine> I wasn’t commenting on anything about you twos sayings
21:25:12FromDiscord<guttural666> well, I know how those lawyer comps work, they just sit in the torrent stream and auto fuck all the people in there
21:25:40FromDiscord<guttural666> good way to earn back your tuition fees
21:26:20FromDiscord<guttural666> VPNs put enough of a barrier to them, so they just go for the low hanging fruit
21:26:40FromDiscord<Elegantbeef> How do you even get a lawyer email from distro torrents
21:26:46FromDiscord<Elegantbeef> I mean secondly how do you even care
21:27:17*cm_ joined #nim
21:28:07FromDiscord<guttural666> obv. ironic, they fucked me for a film that wasn't even good
21:28:36*cm quit (Ping timeout: 268 seconds)
21:28:36*cm_ is now known as cm
21:29:07FromDiscord<guttural666> cared for the 600 quid bill then (didn't realy, but was a pain in the ass to get a lawyer)
21:30:10FromDiscord<Elegantbeef> Oh they actually took action... what a odd thing
21:30:54FromDiscord<guttural666> enough of the highly illegal talk, authorities might be programming in Nim 🤣
21:31:29FromDiscord<Elegantbeef> Well I can only otherwise talk about how much the matrix api is pissing me off since it's not behaving as I expect
21:32:18FromDiscord<guttural666> Matrix as in the chat client, just watched a making of of the Matrix
21:32:29FromDiscord<Elegantbeef> Matrix as in the protocol, yes
21:32:44FromDiscord<guttural666> what is it written in
21:33:35FromDiscord<guttural666> got Cinny installed
21:34:09FromDiscord<Elegantbeef> What?
21:34:11FromDiscord<guttural666> is this actually from Germany? just reading up on this
21:34:18FromDiscord<Elegantbeef> It's a protocol it's written in English
21:34:52FromDiscord<guttural666> TU Dresden
21:34:57FromDiscord<Elegantbeef> https://spec.matrix.org/v1.10/client-server-api/#syncing I'm currently here and crying
21:35:22FromDiscord<guttural666> elaborate, bad API design or what's the prob
21:35:49FromDiscord<Elegantbeef> I'm trying to regenerate the history from the first sync but getting nowhere
21:35:53FromDiscord<Elegantbeef> So... whatever you want to call that
21:37:18FromDiscord<Elegantbeef> I do know Germany uses matrix for the bundeswher communication and also medical chat now
21:37:37FromDiscord<Elegantbeef> https://element.io/matrix-in-germany/projects/bwmessenger
21:38:43FromDiscord<guttural666> that's so interesting
21:39:11FromDiscord<guttural666> probably a result of being fucked in the ass by Russian spies and being butthurt
21:39:45FromDiscord<guttural666> god damn, the Bundeswehr is a joke
21:40:39FromDiscord<Elegantbeef> Hey it's technically not a standing army
21:41:22FromDiscord<guttural666> it's a lying down and Schnitzel eating army
21:41:55FromDiscord<guttural666> but I better stop, enough piracy and shit against the party line for today 🤣
21:42:18*cm quit (Ping timeout: 255 seconds)
21:43:48*cm joined #nim
21:43:56FromDiscord<guttural666> hello Bundeswehr: please program in C so your developers have a fantastic time and produce no vulnerabilities whatsoever
21:44:17FromDiscord<guttural666> and if they do it's a skill issue
21:44:36FromDiscord<Elegantbeef> I think that qualifies as a cybercrime
21:44:36FromDiscord<Elegantbeef> That's like giving legal advice as a lawyer that was wrong
21:44:37FromDiscord<Q-Master> Яussian spies are carefully recording.... \:))
21:44:52FromDiscord<guttural666> hahaha
21:44:53FromDiscord<Elegantbeef> You have written programs therefore you should know C is not good, straight to the gulags
21:45:04FromDiscord<norax.2> I CANT MANAGE TO GET A CLEAR FUNCTIOOON
21:45:04FromDiscord<norax.2> AAAAAAA
21:45:15FromDiscord<Elegantbeef> OH NOES
21:45:23FromDiscord<guttural666> clear function? scientology now? god help me
21:45:34FromDiscord<norax.2> a function to clear terminal
21:45:36FromDiscord<Elegantbeef> Scientolgists don't have a god
21:45:36FromDiscord<norax.2> in nim
21:45:44FromDiscord<norax.2> (edit) "a function to clear ... terminal" added "the"
21:45:47FromDiscord<Elegantbeef> Have you used `clearScreen`?
21:45:50FromDiscord<norax.2> what
21:45:53FromDiscord<norax.2> it exists
21:45:54FromDiscord<Elegantbeef> I hear it clears the screen
21:45:57FromDiscord<guttural666> I've done that before let me look itup
21:46:11FromDiscord<norax.2> wait a second
21:46:24FromDiscord<Elegantbeef> There is also `eraseScreen`
21:47:01FromDiscord<norax.2> what lib?
21:47:53FromDiscord<Elegantbeef> https://nim-lang.org/docs/theindex.html
21:48:16FromDiscord<guttural666> don't have that on my PC, but I think std/terminal and then something like up cursor and delete line?
21:48:59FromDiscord<norax.2> In reply to @Elegantbeef "https://nim-lang.org/docs/theindex.html": https://nim-lang.org/docs/linenoise.html#clearScreen
21:49:02FromDiscord<guttural666> if you're doing CLI stuff
21:50:25FromDiscord<guttural666> std/terminal cursorUp, eraseLine maybe
21:50:29FromDiscord<norax.2> k
21:50:42FromDiscord<norax.2> i tough i could just use cmd exec and then clear
21:50:45FromDiscord<norax.2> But nooo
21:50:47FromDiscord<norax.2> too easy
21:51:09FromDiscord<guttural666> what is your use case
21:51:15FromDiscord<norax.2> like
21:51:17FromDiscord<guttural666> what do you want to achieve
21:51:22FromDiscord<norax.2> to clear the terminal
21:51:30FromDiscord<guttural666> the whole terminal
21:51:30FromDiscord<norax.2> exactly like when i run clear in console
21:51:32FromDiscord<norax.2> yes
21:51:48FromDiscord<guttural666> look in std/terminal and I think you'll find something
21:52:49FromDiscord<guttural666> (edit) "look in std/terminal and I think you'll find something ... " added "https://nim-lang.org/docs/terminal.html"
22:05:41FromDiscord<Robyn [She/Her]> In reply to @Elegantbeef "Scientolgists don't have a": They do...kinda
22:05:46FromDiscord<Robyn [She/Her]> It's very weird lmao
22:06:39FromDiscord<Elegantbeef> A tomato with feelings is hardly a diety
22:06:53*pmp-p quit (Ping timeout: 240 seconds)
22:10:45FromDiscord<Robyn [She/Her]> Lol
22:10:55FromDiscord<Robyn [She/Her]> But the intergalactic federation!!!!!!
22:11:25FromDiscord<Elegantbeef> When you cut a tomato does it scream in A or D?
22:12:24FromDiscord<norax.2> In reply to @guttural666 "look in std/terminal and": that,dint only fix my issue
22:12:47FromDiscord<norax.2> but also found a way to make the bar to show the user at what point they are
22:12:53FromDiscord<norax.2> epic
22:12:57FromDiscord<norax.2> thanks <3
22:25:48FromDiscord<Robyn [She/Her]> I'm naming my storage related functions with a theme of mining lol
22:26:10FromDiscord<Robyn [She/Her]> `store`? Nah, `deposit`↵`load`? Nah, `extract`
22:26:19FromDiscord<Elegantbeef> "bitcoin" "etherum" "doge"
22:26:41FromDiscord<Robyn [She/Her]> Trying to figure out a term for creating a table, but best I can come up with is `claimSite`
22:26:49FromDiscord<Robyn [She/Her]> In reply to @Elegantbeef ""bitcoin" "etherum" "doge"": Not crypto mining :p
22:27:02FromDiscord<Elegantbeef> ledger 😛
22:27:12FromDiscord<Elegantbeef> landClaim
22:28:13FromDiscord<Robyn [She/Her]> In reply to @Elegantbeef "ledger 😛": I mean, hm... Seems like a no but something similar might be good hm
22:29:14FromDiscord<Robyn [She/Her]> `establishMine`?
22:31:14FromDiscord<Robyn [She/Her]> Or just `establish`
22:32:18FromDiscord<Robyn [She/Her]> `establish` it shall be
22:33:17FromDiscord<Robyn [She/Her]> I wonder how I'm going to handle migrations
22:33:25FromDiscord<Robyn [She/Her]> Oh well, problem for future me
22:36:29*junaid_ quit (Remote host closed the connection)
23:04:10FromDiscord<Robyn [She/Her]> My storage provider abstractions are going well I think
23:04:18FromDiscord<Robyn [She/Her]> Still writing up the code but I like the structure
23:10:11FromDiscord<Robyn [She/Her]> With LowDB how would I be inserting blob data? A tad confused here
23:10:58FromDiscord<Robyn [She/Her]> Specifically for PostgreSQL DBs, since LowDB doesn't support that functionality natively
23:11:27FromDiscord<Robyn [She/Her]> `DbOther` hm...
23:21:02FromDiscord<xezcpg_21960_03796> Teen Porn and Onlyfan Leaks here 🍑🍒 : https://discord.gg/MyHq3YEner @everyone
23:23:04FromDiscord<Robyn [She/Her]> <@&371760044473319454>
23:42:40FromDiscord<Robyn [She/Her]> I'm not looking forward to using the low level SQLite bindings oof
23:42:52FromDiscord<Robyn [She/Her]> Might just use something like sqliteral
23:44:02termerHow do I get the underlying array in a string?
23:44:12termerI can't cast someStr.cstring to UncheckedArray[char]
23:44:20termerError: VM does not support 'cast' from tyCstring to tyPtr
23:50:06FromDiscord<Robyn [She/Her]> Try `cast[UncheckedArray[char]](someStr.cstring[0])`
23:55:33FromDiscord<Elegantbeef> You not going to be able to get much at CT in relation to string