<< 09-01-2023 >>

00:09:12*tk quit (Quit: Well, this is unexpected.)
00:09:39*tk joined #nim
00:10:08FromDiscord<jtv> What's the pragma to make a return-value optional, so that if it's not discarded or used, there's no error?
00:10:23FromDiscord<jtv> I know I've seen it, but finally want it and can't find it
00:10:27FromDiscord<Gumbercules> Discardable
00:10:35FromDiscord<jtv> Thanks
00:24:51FromDiscord<Phil> jtv! How do you test 😛 ?
00:25:24FromDiscord<Phil> Not testing in general, I mean more specifically your approach to testing in nim
00:26:40FromDiscord<jtv> I've been scraping by with the built-in test stuff. It's definitely got some oddities, but it's okay
00:27:49FromDiscord<Phil> So mostly integration testing, aka testing an entire batch of functionality?
00:28:06FromDiscord<jtv> Well, I do plenty of end-to-end testing too
00:29:26FromDiscord<jtv> I don't do a lot of unit testing in comparison though. Actually, I do, but once it works, I eventually tend to take it out
00:29:49FromDiscord<jtv> Because I usually did it with, isMainModule, and so it gets stale at some point
00:30:34FromDiscord<Phil> Wait, how do you deal with unit-testing?↵You can't mock procs, so don't procs that calll procs from other modules, which call procs from other modules etc. get hard to deal with?
00:30:54FromDiscord<Phil> Or do you avoid that by structuring your code in a specific way?
00:33:04FromDiscord<jtv> No, I generally write my code in a way where, if I'm writing something, and I need X which doesn't exist yet, I go build X first and come back to it. Because building X often will change my view of how to do the thing I was originally doing :). But I do have a macro I use to swap function implementations that I use a tiny bit
00:33:58FromDiscord<Phil> ...can....can that macro deal with generic procs?
00:35:08FromDiscord<Elegantbeef> Phil still after the difficult
00:35:12FromDiscord<Phil> I've got a pragma (not written by myself, I'm not that good with macros, beef sponsored that one as many macro things) that basically swaps out a proc declaration to assigning a proc to a mutable variable of the same name, but that burns on generics
00:35:45FromDiscord<jtv> It is nothing polished, I doubt it would work across modules actually, was just something quick and dirty
00:35:45FromDiscord<Phil> In reply to @Elegantbeef "Phil still after the": If I ever find a solution I'll hold the holy grail to being able to test however I damn well please. I may not actually want to do unit testing as hard as I currently do in my work-code, but at least I'd have the option to choose
00:37:01FromDiscord<jtv> I also have one for "wrapping" so that I can trace inputs and outputs easily, but also is janky, not put a lot of time into having it actually validate stuff, requires me to not be stupid
00:37:36FromDiscord<jtv> I do wish aspect oriented programming had taken off, there are some good use cases for it 🙂
00:38:43FromDiscord<Elegantbeef> Aspect is like concepts?
00:40:07FromDiscord<jtv> No, essentially you would specify functions to wrap, and get to add code before and after the call. With some capabilities around specifying what sets of things to wrap
00:40:27FromDiscord<Phil> sent a code paste, see https://play.nim-lang.org/#ix=4kGT
00:40:33FromDiscord<Gumbercules> Testing edge cases with external services is what is difficult with Nim. I can't write a unit test where my database call times out, etc
00:40:47FromDiscord<Gumbercules> Because no real mocking solution
00:40:53FromDiscord<jtv> The original idea was you'd have a bunch of independent aspects that are separate concerns, like logging, and you could "weave" the program together
00:41:36FromDiscord<jtv> It was a popular research area in the mid '90s, done by a guy Gregor Kizales, who was the main CLOS guy too
00:42:32FromDiscord<Gumbercules> https://docs.spring.io/spring-framework/docs/2.5.5/reference/aop.html
00:43:44FromDiscord<jtv> Yeah, I remember being disappointed by Python's decorators, because they're essentially backwards. I want to be able to "decorate" code that I don't have the source to 🙂
00:44:03FromDiscord<Gumbercules> In a former life I did a lot of work in Java and Groovy with a heavy reliance on the Spring framework
00:44:14FromDiscord<Gumbercules> It was soul sucking
00:44:17FromDiscord<jtv> 🥶
00:45:14FromDiscord<Gumbercules> Coldfusion was worse though
00:45:20FromDiscord<Gumbercules> Way worse...
00:45:28FromDiscord<jtv> Yeah, once I got over the JVM being cool and wrote real things in Java, I immediately hated it. Way too verbose, libraries and frameworks were all horrible
00:45:33FromDiscord<jtv> Never did any coldfusion
00:47:27FromDiscord<Gumbercules> I worked on a fork of the clash royale backend which was written in Java and had very little framework reliance if any, definitely no Spring
00:48:00FromDiscord<Gumbercules> And yeah eventually Java makes you want to crawl into a hole and die
00:48:13FromDiscord<Gumbercules> Best Java codebase I worked on was at ten square games
00:48:16FromDiscord<Phil> In reply to @jtv "Yeah, once I got": Java brought me to the conclusion that OOP just doesn't work for me in general.↵Oh I can read it, understand it and write code in it, but it doesn't feel nice to write that kind of code.↵It's ultimately leading to abstracting problems so many layers away (at least in java) that all your problems are no longer the actual problem you had, but problems with the dozens of abstractions and how to use the
00:48:30FromDiscord<Gumbercules> Their CTO had his shit together and wrote most of the plumbing code
00:48:49FromDiscord<Gumbercules> Java takes OOP to the absolute extreme
00:49:00FromDiscord<Gumbercules> But even C# sucks to write IMO
00:49:08FromDiscord<jtv> Yeah, 100%. There are things like the "fragile base class problem" that I saw strike over and over. And heavy use of inheritance tended to mammothly obfuscate control flow.
00:49:46FromDiscord<jtv> Tho Java did forego multiple inheritance and popularize the interface, for whatever that's worth
00:49:51FromDiscord<Gumbercules> I get to write Elixir now and it's a joy in comparison
00:49:57FromDiscord<Phil> Even in code bases without inheritance, just the usage of libraries and e.g. for object mapping Jackson, you have such an insanely large amount of "hidden magic" happening everywhere
00:50:09FromDiscord<Phil> That you shouldn't know about because it's hidden under an abstraction
00:50:24FromDiscord<Phil> But then you do need to know about it somewhat because suddenly you have to provide an instance for something
00:50:26FromDiscord<Gumbercules> If you think Jackson is magic wait till you use the Spring framework
00:50:48FromDiscord<Gumbercules> You don't really write code anymore, just configuration
00:50:48FromDiscord<jtv> I assume in Java you still have to have a class w/ a static method in it, just to get a "hello world", yes?
00:50:59FromDiscord<Phil> In reply to @Gumbercules "If you think Jackson": I do, I literally had a colleague 3 months ago that bombed all our jobs because they removed the @Scheduling annotation from a random configuration bean
00:51:12FromDiscord<Gumbercules> Hahaha sounds exactly right
00:51:29FromDiscord<jtv> Oh, god, I forgot about Java Beans, 🤮
00:51:41FromDiscord<Phil> Since then I've gone to having a ServerConfiguration bean that solely has the @Scheduling annotation and a short comment explaining why it matters
00:52:11FromDiscord<Phil> As well as instructions that further server-wide config crap goes into that class and that class alone as the central point of obscure java bullshit that should never be touched
00:52:20FromDiscord<Phil> (edit) "java" => "java-spring"
00:53:09FromDiscord<Phil> I've had to deal with Spring throwing out Rest-Templates in favour of the new webclient. I was the main person tasked with swapping all our logj1 code with slf4j, some of which was 10 fucking years old
00:53:26FromDiscord<Phil> I still have to deal with our own ORM-lite system from a monolith that predates Hibernate
00:54:13FromDiscord<jtv> Your job doesn't sound like something I'd enjoy 🙂
00:54:40FromDiscord<Phil> In reply to @jtv "Oh, god, I forgot": I think java beans or rather dependency injection in general is fine.↵What isn't fine is all the abstraction layers and hidden magic crap
00:54:58FromDiscord<jtv> Yeah
00:55:03FromDiscord<Phil> In reply to @jtv "Your job doesn't sound": Eh, I'll likely swap soon enough again. I've only been in the industry for... 3 years now I think
00:55:20FromDiscord<jtv> Meaning, in a programming job?
00:55:45FromDiscord<Phil> Coded marginally longer than that, if I count my master's thesis that's an additional year to tack on
00:55:59FromDiscord<Phil> Yeah, I swapped from biology/bioinformatics to webdev pretty much
00:56:05FromDiscord<jtv> Cool
00:57:16FromDiscord<Phil> Imo it was pretty nice to learn java and get some of the ideas and a deeper look into what the benefits of OOP can be.↵Like, mocking stuff, DI and being able to super granularly unit-test is really sweet
00:58:01FromDiscord<jtv> Yes
00:59:20FromDiscord<Phil> Should I ever actually learn another language it likely will be a functional one... though nim kinda hits the sweet spot for all I'd need (beyond having bindings to everything under the sun and then some)
00:59:27FromDiscord<voidwalker> I want to write an interface for video encoders, and need to pass encoding parameters, key=value. What library would aid me in defining allowed keys for each such encoder, as well as the type of values each key can have ? Like an int range or -1, "word1"/"word2", and so on ?
01:00:19FromDiscord<Phil> Like, you want to ensure that somebody has XY implemented?
01:00:35FromDiscord<Phil> for a givnen video encoder
01:00:49FromDiscord<voidwalker> So that I define them somewhere, and I would get automatic exception/error if they are not correct for that encoder
01:01:18FromDiscord<voidwalker> Or if I simply want to restrict them to a subset of possible values, vs what the encoder can actually do
01:01:22FromDiscord<Phil> So basically validate an imported module?
01:01:51FromDiscord<Phil> That actually makes me wonder if you can iterate over the symbols a module provides...
01:02:06FromDiscord<voidwalker> validate that the set of keys provided are in the ones I define, and theri values also correspond to each key's defined value type(s)
01:02:14FromDiscord<voidwalker> what module are you reffering to ?
01:02:18FromDiscord<voidwalker> .nim module ?
01:02:22FromDiscord<Phil> Yah
01:02:45FromDiscord<voidwalker> Well there is no module, that is why I am asking if there is something that allows me to do this.. Like in a descriptive, not imperative way
01:02:51FromDiscord<Phil> sent a code paste, see https://play.nim-lang.org/#ix=4kGV
01:03:16FromDiscord<voidwalker> There are all sorts of weird stuff people wrote for nim, I am always surprised with the finds
01:03:33FromDiscord<Phil> In reply to @voidwalker "Well there is no": You can write a proc that accepts a static object instance containing multiple procs and validates the contents of that
01:03:59FromDiscord<voidwalker> Huh..
01:03:59FromDiscord<Phil> Actually that would be the most basic way: Use the type system
01:04:34FromDiscord<Gumbercules> In reply to @Isofruit "Should I ever actually": I strongly recommend playing with a lisp or scheme
01:04:58FromDiscord<Phil> By just having the object and type you guarantee immediately you have only either nil or pointers to procs that have exactly the definition you require
01:05:00FromDiscord<Gumbercules> You approach programming much differently with these paradigms
01:05:23FromDiscord<Phil> Once you have that object you then basically only have to ensure that nothing in it is nil
01:05:47FromDiscord<Gumbercules> I also recommend toying with forth and assembly
01:05:56FromDiscord<Gumbercules> Just for the exposure
01:06:09FromDiscord<voidwalker> So basically I would need to validate a.. [string:string] table, that is has keys in a seq, and for each key I need to define a proc (or some other regex or whatever format) that returns true if that value is valid for that key
01:06:10FromDiscord<jtv> Oh, forth was particularly fun
01:06:34FromDiscord<voidwalker> (edit) "is" => "it" | "ithas ... keysseq" added "its" | "seq," => "seq I define,"
01:06:42FromDiscord<Elegantbeef> no↵(@Phil)
01:06:59FromDiscord<Phil> In reply to @Elegantbeef "no (<@180601887916163073>)": My disappointment is immeasurable and my day is ruined
01:07:06FromDiscord<voidwalker> oh elegantbeef, just the kind of beef I was hoping for : )
01:07:16FromDiscord<jtv> I've done plenty of asm, a lot on old Sparc or motorola chips, and enough x86 to hate my life
01:07:30FromDiscord<Elegantbeef> There is an RFC or PR to add it iirc phil
01:07:31FromDiscord<Elegantbeef> But it's not merged
01:07:47FromDiscord<Elegantbeef> Really though it's not a complicated feature to add, dont recall why it wasnt
01:07:54FromDiscord<Elegantbeef> It's one new VM op code
01:07:58FromDiscord<Phil> My disappointment has slightly abated and my day has been infused with a bit of hope
01:08:48FromDiscord<voidwalker> I'm also thinking I'd like to "expand" the definition of such tables like I would do class inheritance. So I can add new keys to a derivative "encoder", redefine some constraints, remove keys..
01:09:32FromDiscord<voidwalker> But that would be merely for keeping 1:1 logical equivalency with the concept
01:09:43FromDiscord<Phil> Okay, I'm outpaced, it's....oh shit I should go to sleep
01:10:10FromDiscord<voidwalker> any ideas Beef, ever heard/done something similar ?
01:10:21FromDiscord<voidwalker> or what should I google for
01:11:00FromDiscord<voidwalker> I guess it would be, schema validation ?
01:11:28FromDiscord<Elegantbeef> I dont know what you mean
01:11:54FromDiscord<voidwalker> https://github.com/PMunch/jsonschema
01:12:01FromDiscord<Phil> God damn, the "day is ruined" meme is only 5 years old
01:12:18FromDiscord<voidwalker> something like this, but where I can also define values that the keys can take
01:12:19FromDiscord<Phil> Ah, wrong channel... should be off to sleep anyway, ciao
01:16:04FromDiscord<jtv> How you'd do it depends on your data representation, but most of schema validation does boil down to a type system, even though most people do it all ad hoc
01:18:25FromDiscord<voidwalker> Doesn't feel right to do it ad hoc : )
01:19:08FromDiscord<jtv> Well, then design a constraint language, write your rules, and build a unification engine 🙂
01:19:33FromDiscord<voidwalker> I've been spoiled by some declarative kind of libraries I used, for things I didn't consider to be anything but imperative. Now they all feel dirty
01:19:45FromDiscord<scipio> I'm not really getting any code completion suggestions on Sublime Text 4, MacOS. ↵Anybody here using macOS for NIm coding?
01:20:38FromDiscord<jtv> Yes, but not in an IDE. I've had friends get the VSCode plugin working fine
01:28:34FromDiscord<jtv> So I have cases where I've got an export symbol exporting a package submodule, but if I, in a new module, import the package and export it myself for the benefit of other files in this new package, sometimes that works fine, and sometimes things using the submodules have to explicitly import themselves, and then it only seems to work if they import the submodule. Anyone seen that? Googling isn't helping me tonight 😦
01:29:27FromDiscord<scipio> In reply to @jtv "Yes, but not in": You're using NeoVim or something you mean? Something else on macOS ?
01:30:21FromDiscord<jtv> Emacs, because I'm old and busted
01:31:43FromDiscord<jtv> I think w/ my export issue, the problem only seems to be with code I have put into subdirectories for organizational purposes. They seem to always need to import the full path to external submodules no matter what I do
01:32:50FromDiscord<jtv> Oh yeah, they don't seem to pick up any exports from if importing from, say, `../config`
02:13:06FromDiscord<RukkaPlus> In reply to @RukkaPlus "Hi there! Do you": Huh... I want to download the stdlib documentation
02:22:10FromDiscord<Gumbercules> In reply to @jtv "Oh yeah, they don't": yeah I've encountered this previously as well, I think when I was first playing around with Karax quite a while back
02:22:36FromDiscord<Gumbercules> I don't use nimble anymore though, so I probably won't be any help on the advice side of things
02:22:45FromDiscord<jtv> I can't really figure out precisely the set of conditions black-box, and I am not going to take the time to track it all down b/c nimble sucks anyway
02:22:54FromDiscord<Gumbercules> chup
02:23:01FromDiscord<Gumbercules> nimble is hot garbage
02:23:07FromDiscord<jtv> Yeah :/
02:23:39FromDiscord<Gumbercules> tis what happens when a fifteen year old writes your package manager I guess
02:23:42FromDiscord<Gumbercules> I think Dom was around 15 back then, not 100% sure
02:23:49FromDiscord<Gumbercules> was def young af
02:24:13FromDiscord<Gumbercules> also used to be called babel
02:24:15FromDiscord<Gumbercules> when Nim was Nimrod
02:24:22FromDiscord<Gumbercules> and we were all biblical and shit
02:24:41FromDiscord<jtv> Yeah, the bible stuff is still a bit heavy actually
02:24:52FromDiscord<jtv> 🤷‍♂️
02:27:33FromDiscord<Gumbercules> missed opportunity to write TowerOS
02:27:46FromDiscord<jtv> LOL
03:54:59FromDiscord<T0lk1en> Hey boys I have a quick question if anyone is on
03:56:32FromDiscord<huantian> no need to ask to ask
03:56:33FromDiscord<huantian> just ask
03:56:38FromDiscord<T0lk1en> How do I enable one function to use a variable from another function without declaring the variable outside the function
03:56:46FromDiscord<T0lk1en> Or sorry “procedure”
03:56:57FromDiscord<huantian> pass the variable to the other function
03:57:18FromDiscord<T0lk1en> Wdym by that?
03:57:22FromDiscord<T0lk1en> Sorry new
03:57:41FromDiscord<huantian> actually can you describe what your problem is/ why you want this?
03:57:58FromDiscord<huantian> you can't really simply use a local variable from one function in another, it doesn't "make sense"
03:59:18FromDiscord<T0lk1en> Sorry for no ss I don’t have discord on the computer
03:59:40FromDiscord<T0lk1en> Also I will be changing the key
03:59:51FromDiscord<T0lk1en> https://media.discordapp.net/attachments/371759389889003532/1061856804411297865/A6E5D8E7-E1FA-4D1B-BC72-0DD82996879A.jpg
04:00:11FromDiscord<T0lk1en> It’s a password manager. I’m trying to encrypt and decrypt the contents
04:01:20FromDiscord<huantian> uhhhhh I'm not too sure what you're going for here
04:01:28FromDiscord<huantian> what do you expect `encrypted_contents` to be?
04:01:32FromDiscord<huantian> in the second function
04:01:58FromDiscord<huantian> you either should read the file you just wrote to, or have `encrypt` return the value of `encrypted_contents`, which you pass to `choice_one`
04:02:52FromDiscord<T0lk1en> Yeah I realized my mistake and fixed it. I now have encrypted contents as the encrypted context of the password file. Now I want to decrypt those encrypted contents
04:10:25FromDiscord<T0lk1en> Never mind I have got around the problem by not being an idiot and by reading from the now encrypted file
04:12:42FromDiscord<ted__> sent a code paste, see https://play.nim-lang.org/#ix=4kHm
04:13:25FromDiscord<demotomohiro> In reply to @T0lk1en "Sorry for no ss": If you are writing password manager, you might be interested in this blog post: https://soatok.blog/2022/12/29/what-we-do-in-the-etc-shadow-cryptography-with-passwords/
04:16:34FromDiscord<Elegantbeef> sent a code paste, see https://play.nim-lang.org/#ix=4kHo
04:16:52FromDiscord<Elegantbeef> sent a code paste, see https://play.nim-lang.org/#ix=4kHp
04:16:59*azimut quit (Ping timeout: 255 seconds)
04:17:09FromDiscord<T0lk1en> Alright boys here’s another one. My program compiles fine however I get this error. https://media.discordapp.net/attachments/371759389889003532/1061861142512795668/E71EDEC1-1EA1-4354-A379-520425EDDE74.jpg
04:17:11FromDiscord<ted__> ah! I'd set it to a variable, but hadn't tried putting the var on the last line
04:18:10FromDiscord<Elegantbeef> or `proc(value: string): int`
04:18:37FromDiscord<demotomohiro> This also compiles:
04:18:56FromDiscord<demotomohiro> sent a code paste, see https://play.nim-lang.org/#ix=4kHr
04:19:00FromDiscord<Gumbercules> In reply to @T0lk1en "Alright boys here’s another": looks like something is asserting that the input to that function is 16 bytes in length
04:19:04FromDiscord<Gumbercules> and your input is not 16 bytes in length
04:19:31FromDiscord<T0lk1en> What does assert do?
04:19:38FromDiscord<Gumbercules> asserts that a condition is true
04:19:39FromDiscord<T0lk1en> And how can I avoid this problem
04:19:49FromDiscord<Gumbercules> provide an input of sixteen bytes in length
04:19:55FromDiscord<Gumbercules> pad your input if you need to
04:20:11FromDiscord<T0lk1en> Lol aight I’ll see what I can do
04:20:36FromDiscord<Gumbercules> it's difficult to figure out what you're doing without seeing actual code but I realize you're not on a machine with discord installed
04:20:40FromDiscord<jtv> @T0lk1en it is VERY clear, per our conversation the other day, that you should NEVER use whatever you end up producing 🙂
04:20:57FromDiscord<Gumbercules> yeah don't roll your own crypto
04:20:59FromDiscord<Gumbercules> it's never a good idea
04:21:01FromDiscord<T0lk1en> @jtv lemme learn bro
04:21:08FromDiscord<Gumbercules> but I mean, have fun
04:21:14FromDiscord<Gumbercules> just don't tell anyone else to use it 🙂
04:21:17FromDiscord<jtv> Learn, but still don't use it
04:21:29FromDiscord<T0lk1en> Never thought intended to
04:21:36FromDiscord<Gumbercules> good stuff
04:21:37FromDiscord<Gumbercules> learning is good
04:21:50FromDiscord<Gumbercules> you know what a really fun book is?
04:21:57FromDiscord<T0lk1en> Lemme hear it
04:22:16FromDiscord<Gumbercules> https://www.amazon.com/Hacking-Art-Exploitation-Jon-Erickson/dp/1593271441
04:22:24FromDiscord<demotomohiro> AES requires at least 128bits keys and keys consists of only with 16 printable characters would not be good enough.
04:22:25FromDiscord<Gumbercules> will teach you quite a bit about programming and computers
04:22:47FromDiscord<jtv> BTW I recently was reminded that I coined the term "roll your own crypto" in 2000. See, https://crypto.stackexchange.com/questions/70445/what-is-the-origin-of-the-phrase-dont-roll-your-own-crypto
04:22:48FromDiscord<Gumbercules> but you probably also need to know a thing or two about programming and computers
04:23:05FromDiscord<T0lk1en> What is roll your own crypto
04:23:23FromDiscord<Gumbercules> you famous
04:23:32FromDiscord<T0lk1en> Book looks good. Might have to cop
04:23:44FromDiscord<Gumbercules> I can probably find you a pdf
04:23:51FromDiscord<jtv> I've done some stuff, esp in cryptography 🙂
04:24:01FromDiscord<Gumbercules> https://repo.zenk-security.com/Magazine%20E-book/Hacking-%20The%20Art%20of%20Exploitation%20(2nd%20ed.%202008)%20-%20Erickson.pdf
04:24:02FromDiscord<Gumbercules> that was easy
04:25:11*jmdaemon joined #nim
04:25:45FromDiscord<Gumbercules> In reply to @T0lk1en "What is roll your": write your own cryptographic code
04:25:54FromDiscord<Gumbercules> so in other words you shouldn't try to implement popular cryptographic algorithms
04:26:04FromDiscord<T0lk1en> I’m using aes tho
04:26:13FromDiscord<jtv> Mark Dowd and John McDonald's book is far deeper on exploitation, though I think it doesn't cover cryptography
04:26:29FromDiscord<jtv> That's not the meaning of the phrase
04:26:40FromDiscord<jtv> AES is like a nail, and you are trying to build a mansion
04:26:54FromDiscord<jtv> The mansion is going to be garbage, no matter how good the shit in your toolbox is
04:27:16FromDiscord<jtv> There is WAY too much knowledge to using it all right
04:27:18FromDiscord<T0lk1en> I guess I’m not catching on. Is the saying meant to say “you all suck leave cryptography to pros”
04:27:37FromDiscord<Gumbercules> In reply to @jtv "Mark Dowd and John": yeah I'm not attempting to suggest this is the end-all be-all reference but it's a nice introduction to intel assembly and it's a subject matter most people relatively new to programming will be interested by
04:27:44FromDiscord<jtv> Not that you suck, just that it's so fundamentally hard that even cryptographers often get it wrong
04:27:55FromDiscord<jtv> Yeah, it's a good book 🙂
04:28:27FromDiscord<T0lk1en> Aight I gotchu. Better safe than sorry. Gimme post code on github in about an hour ish
04:31:04FromDiscord<jtv> @Gumbercules you in computer security, or just knowledgable in it??
04:31:22FromDiscord<Gumbercules> Neither really, most of my professional experience is in game development
04:31:31FromDiscord<Gumbercules> and game engine dev
04:31:50FromDiscord<jtv> Java games?? 😭
04:31:58FromDiscord<Gumbercules> Haha no, that was much earlier in my career
04:32:03FromDiscord<jtv> Okay, phew 🙂
04:32:03FromDiscord<Rika> In reply to @jtv "Java games?? 😭": Don’t mention the demons
04:32:04FromDiscord<Gumbercules> although I've worked at a few studios doing backend stuff on the JVM
04:32:34FromDiscord<jtv> Yeah, even in pretty big tech companies there's still way too much Java out there :/
04:32:37FromDiscord<Gumbercules> yup
04:33:03FromDiscord<Gumbercules> most interesting backend language I've seen was at CA / Sega - got offered a job there to write Erlang but the pay was shit and I had to move to the UK to do it
04:33:15FromDiscord<T0lk1en> What got you into nim
04:33:21FromDiscord<Gumbercules> was living in Helsinki and life wouldn't allow for it at the time
04:33:31FromDiscord<jtv> Oh, Helsinki is nice
04:33:49FromDiscord<Gumbercules> yeah, I very much enjoyed living there
04:33:55FromDiscord<Gumbercules> In reply to @T0lk1en "What got you into": not sure who you're asking this to
04:34:29FromDiscord<T0lk1en> You specifically but everyone should feel free to answer
04:37:02FromDiscord<Gumbercules> mmm I started coding in Nim around 2015 - I taught myself to code and started with higher level languages. Had a strong desire to learn some C/C++ and assembly and Nim was a nice bridge to those.
04:37:23FromDiscord<T0lk1en> Cool
04:37:43FromDiscord<Gumbercules> I also wanted to get out of backend work and try to obtain a job working on game engines so that kind of necessitated me learning some C/C++.
04:38:15FromDiscord<Gumbercules> https://github.com/fragworks/frag was my first project in Nim
04:38:20FromDiscord<Gumbercules> well the first one that really did anything
04:38:41FromDiscord<Gumbercules> it was also a fucking mess
04:38:46FromDiscord<Gumbercules> but, gotta start somewhere
04:38:59FromDiscord<jtv> LOL
04:42:55FromDiscord<Gumbercules> my advice is - don't get into games, and if you do, go the indie route
04:43:53FromDiscord<Gumbercules> you can make a lot more money and avoid lots of burnout elsewhere
04:44:59FromDiscord<Gumbercules> takes a special kind of masochist to make it in the games industry
04:45:15FromDiscord<Gumbercules> which I am not, and ultimately was the reason I got out
04:47:16FromDiscord<Gumbercules> speaking of Java games.... I think Anuke was going to rewrite https://github.com/Anuken/Mindustry in Nim but gave up
04:47:26FromDiscord<Gumbercules> probably because it would have been an F ton of work
04:47:57FromDiscord<Elegantbeef> I dont think they gave up as much as it's a testbed for their framework/engine
04:47:58FromDiscord<Gumbercules> or maybe not... https://github.com/Anuken/fau - haven't spoken to them in a while
04:48:05FromDiscord<Gumbercules> gotcha
05:05:47FromDiscord<Gumbercules> In reply to @jtv "Java games?? 😭": When I worked for Frogmind we were given a copy of Clash Royale's backend to modify for one of our games. The game was quite physics heavy and networked and the game client was written in Objective-C / C++ while the backend was purely Java with some JNI. I distinctly remember they shipped us a tool which given some C++ class would spit out a POJO which we needed for running the physics simulati
05:06:00FromDiscord<Gumbercules> It was something...
05:07:35FromDiscord<Gumbercules> Was a fun company to work for though - like 25 people total, no middle managers, CEO and COO worked along side us and we got shit done. Now they're https://hypehype.com/ though
05:08:06FromDiscord<Gumbercules> we were starting to build out a prototype for that when I left - I wasn't writing any code for the prototype though, was busy working on the existing games we had in production
05:09:08FromDiscord<Gumbercules> Supercell's Java folks were nuts though
05:10:33FromDiscord<jtv> Sounds like a cool place
05:11:00FromDiscord<Gumbercules> Yeah all the companies I interviewed with and worked at in Helsinki, minus one, were pretty awesome
05:11:17FromDiscord<Gumbercules> the guys that run Housemarque are esp cool
05:11:54FromDiscord<jtv> Where do you live now??
05:12:00FromDiscord<Gumbercules> outside of Austin
05:12:10FromDiscord<jtv> Ah. Well, better weather anyway
05:16:00FromDiscord<Gumbercules> I know you went to UVA, not sure if you're from VA though. I grew up outside of DC in Fairfax County
05:16:38FromDiscord<jtv> Yeah, I grew up in Front Royal, and I lived around DC until about 13 years ago
05:16:43FromDiscord<Gumbercules> ah cool
05:16:46FromDiscord<jtv> Maybe 15 now
05:17:32FromDiscord<jtv> Where in Fairfax you from?
05:18:17FromDiscord<Gumbercules> Born in Herndon, moved to Chantilly, then Oakton and then went to VCU
05:18:37FromDiscord<Gumbercules> did not study anything related to computers 😄
05:19:00FromDiscord<Gumbercules> mostly studied keg stands
05:19:07FromDiscord<jtv> All places I know like the back of my hand 🙂 Including VCU, my brother went there
05:19:12FromDiscord<Gumbercules> ah cool!
05:21:41FromDiscord<Gumbercules> I used to stop at Spelunker's whenever I would go camping, which was usually several times a year. Front Royal is nice, much more my style / pace vs ffx county
05:22:28FromDiscord<jtv> Well, it was much more rural when I was growing up. Now it's just an extended suburb
05:22:40FromDiscord<Gumbercules> Yeah, the suburb creep is crazy
05:23:04FromDiscord<Gumbercules> @Varriount and I met up once - they were going to Mason
05:23:05FromDiscord<jtv> Once AOL went in at Dulles, the sprawl down 66 started.
05:23:09FromDiscord<Gumbercules> yeah
05:23:18FromDiscord<jtv> So basically Front Royal is a suburb of Dulles 🙂
05:24:16FromDiscord<Gumbercules> yeah it's wild how fast it all went up - same thing is happening now where I live, the San Antonio / Austin corridor is blowing up - I can't escape sprawling suburbs I guess
05:24:35FromDiscord<jtv> BTW, instead of googling this one, is there a default hash function for object types or ref object types that I can just install, or do I need to write my own?
05:24:51FromDiscord<jtv> Yeah, I like rural, I love urban, I hate the in between
05:25:00FromDiscord<Gumbercules> I agree
05:25:31FromDiscord<Elegantbeef> -d\:nimPreviewHashRef\` enables hashing ref types
05:25:56FromDiscord<Elegantbeef> but they hash the pointer not the data so keep that in mind
05:26:28FromDiscord<jtv> That's good enough for my purposes, thank you!
05:27:32FromDiscord<Gumbercules> did not know about that one
05:27:44FromDiscord<Gumbercules> I had the playground open
05:30:00FromDiscord<Gumbercules> lol why is my name still here? https://github.com/PMunch/nim-playground/blob/master/nim_playground.nimble - PMunch you should put your name there at this point
05:30:29FromDiscord<Gumbercules> I haven't touched that thing since 2016
05:32:06FromDiscord<jtv> Honoring your good initial work 🙂
05:32:09FromDiscord<Gumbercules> It'd be nice to add some more features to it though
05:32:15FromDiscord<Gumbercules> well yeah but they've done a lot more since I think
05:32:54FromDiscord<Gumbercules> I appreciate the nod but I'm worried PMunch will go somewhere and then people will start asking me questions about it xD
05:33:21FromDiscord<jtv> LOL that happens. When maintainers aren't being responsive, I occasionally get questions on software I haven't worked on since '95
05:33:45FromDiscord<Gumbercules> It'd be sweet if we could set compiler switches and choose between versions of Nim
05:34:01FromDiscord<Gumbercules> maybe I'll work up the motivation to PR it
05:34:07FromDiscord<Elegantbeef> You can choose between versions of Nim
05:34:11FromDiscord<Elegantbeef> But yea it'd be nice to have compiler flags
05:34:57FromDiscord<Gumbercules> oh I didn't see that
05:34:59FromDiscord<Gumbercules> nice
05:35:23FromDiscord<Gumbercules> also if we could expose the generated C code
05:35:28FromDiscord<Gumbercules> that'd be pretty rad
05:36:33FromDiscord<Gumbercules> I'm pretty sure google got rid of anonymous gists because of us
05:36:37FromDiscord<Gumbercules> and the nimbot
05:36:51FromDiscord<Gumbercules> !echo 1+1
05:37:11FromDiscord<Gumbercules> wtf nimbot
05:38:23FromDiscord<Gumbercules> oh it's
05:38:31FromDiscord<jtv> Lol by default, embed the source code as an encoded string into the binary so we can extract it 😉
05:38:33FromDiscord<Gumbercules> !eval 1+1
05:38:36NimBotCompile failed: /usercode/in.nim(1, 2) Error: expression '2' is of type 'int literal(2)' and has to be used (or discarded)
05:45:27FromDiscord<Elegantbeef> !eval echo 1 + 1
05:45:32NimBot2
05:50:09FromDiscord<JonasL> In reply to @planetis "yep its double indirection,": Could I use shallow() from systems too, to enforce reference semantics or is it considered unidiomatic? Similar question: Is it possible to have a reference to a stack variable like in C or is that not possible because of lifetime safty?
05:51:01FromDiscord<JonasL> (edit) "safty?" => "safety?"
05:51:22FromDiscord<Rika> For the latter, not possible
05:51:31FromDiscord<Rika> It would be a pointer
05:52:14FromDiscord<jtv> You can take a pointer to a stack variable if you cast, but the object still gets dealloced once the function returns, so your pointer will be pointing at junk
05:53:02FromDiscord<JonasL> Ok thanks
06:12:41FromDiscord<pyryrin> is there any convention to when to put parenthesis after function call?
06:14:31FromDiscord<Rika> What do you mean?
06:15:21FromDiscord<pyryrin> sent a code paste, see https://play.nim-lang.org/#ix=4kHE
06:15:35FromDiscord<Rika> No convention I believe?
06:15:52FromDiscord<pyryrin> so can just use what you want
06:16:53FromDiscord<Rika> Pretty much the spirit of Nim yeah
06:20:14FromDiscord<jtv> God I hate nimble
06:20:30FromDiscord<Elegantbeef> Use nimph and live slightly happier i guess
06:20:42FromDiscord<jtv> Ugh 🙂
06:40:04*ltriant quit (Ping timeout: 260 seconds)
07:30:35*PMunch joined #nim
07:42:43*azimut joined #nim
08:01:37*jjido joined #nim
08:30:52FromDiscord<ShalokShalom> Or the new Atlas?
09:02:44FromDiscord<fbpyr> sent a long message, see http://ix.io/4kHW
09:18:24FromDiscord<planetis> In reply to @JonasL "Could I use shallow()": You could use swallow but with the new memory management it's deprecated. seq/string are no longer just pointers but pointer, length pairs and use deterministic memory management. There are experimental views for that but they might be buggy.
09:19:38*FromDiscord quit (Remote host closed the connection)
09:19:51*FromDiscord joined #nim
09:21:08*jjido quit (Quit: My laptop has gone to sleep. ZZZzzz…)
09:21:30FromDiscord<planetis> You can also write your own destructor-based type that holds a seq and a pointer to a shared counter, or a cow seq/strings type like this one: https://github.com/planetis-m/cowstrings
09:21:57FromDiscord<planetis> Or just use ref seq and be fine
09:22:32FromDiscord<planetis> doubt it makes a difference in performance
09:22:59FromDiscord<planetis> (edit)
09:26:15FromDiscord<fbpyr> @planetis\: \: thx!↵I am not sure it is an actual issue with the path strings, though.↵each spawned proc gets its own let copy of its path string and↵when I comment out unzip without waiting for the flowvar, I also get no error. 🤔
09:33:47*azimut quit (Ping timeout: 255 seconds)
09:38:45*ltriant joined #nim
10:01:35*FromDiscord quit (Ping timeout: 246 seconds)
10:03:41*FromDiscord joined #nim
10:22:36FromDiscord<scruz> sent a code paste, see https://play.nim-lang.org/#ix=4kIf
10:22:44FromDiscord<scruz> (edit) "https://play.nim-lang.org/#ix=4kIf" => "https://paste.rs/RwX"
10:23:04FromDiscord<scruz> Also, is there no easy way to add dependencies to .nimble?
10:23:05FromDiscord<djazz> git commit short hash
10:23:13FromDiscord<scruz> In reply to @djazz "git commit short hash": I see
10:29:08FromDiscord<djazz> So version is pinned to a git commit
10:40:56FromDiscord<Ailuros 💖🧡💛💚💙💜🖤> sent a code paste, see https://play.nim-lang.org/#ix=4kIg
10:42:09FromDiscord<Ailuros 💖🧡💛💚💙💜🖤> At 1 spot I could just remove that toString, as actually the encryption just accepted the byte array/seq, but after decryption I do need to get it to string
10:42:18FromDiscord<Ailuros 💖🧡💛💚💙💜🖤> (edit) "At 1 spot I could just remove that toString, as actually the encryption ... just" added "proc"
10:45:49FromDiscord<Rika> Copy the data
10:51:07*kenran joined #nim
10:58:16*kenran quit (Remote host closed the connection)
11:07:26FromDiscord<nahua> sent a code paste, see https://play.nim-lang.org/#ix=4kIn
11:08:09FromDiscord<Ailuros 💖🧡💛💚💙💜🖤> In reply to @Rika "Copy the data": thanks you inspired me to check other implementations and found this one that works: https://github.com/status-im/nim-stew/blob/f2f9685ec904868bbb48485e72ddc026ed51b230/stew/byteutils.nim#L209↵I really haven't worked with these things before (let alone in nim)
11:26:06*jjido joined #nim
11:27:31FromDiscord<pietroppeter> In reply to @nahua "Quick question: Right now": Nimble tasks, you find the description in this section: https://github.com/nim-lang/nimble#creating-packages
11:33:48*PMunch_ joined #nim
11:33:57*PMunch_ quit (Remote host closed the connection)
11:34:15*PMunch_ joined #nim
11:34:39*PMunch quit (Ping timeout: 260 seconds)
11:36:25*xet7 quit (Quit: Leaving)
11:46:12*jjido quit (Quit: My laptop has gone to sleep. ZZZzzz…)
11:50:00*azimut joined #nim
11:58:28*PMunch_ quit (Read error: Connection reset by peer)
11:58:45*PMunch_ joined #nim
12:20:24*xet7 joined #nim
12:40:13*oddish joined #nim
12:44:19*jjido joined #nim
12:56:51*jmdaemon quit (Ping timeout: 265 seconds)
13:27:22FromDiscord<Jessa> sent a code paste, see https://play.nim-lang.org/#ix=4kIP
13:27:47FromDiscord<Jessa> (edit) "https://play.nim-lang.org/#ix=4kIP" => "https://play.nim-lang.org/#ix=4kIQ"
13:31:03FromDiscord<scipio> In reply to @Gumbercules "also if we could": > _also if we could expose the generated C code_↵This can't be done? i.e. to use Nim as a C code generator?
13:33:33FromDiscord<Rika> In reply to @Jessa "can i somehow change": Not as of now, maybe Nim 2 but I got no idea about Nim 2 since I’ve been gone for a while
13:36:21FromDiscord<hotdog> In reply to @scipio "> _also if we": He means exposing the generated C code to the playground UI ( at https://play.nim-lang.org )
13:38:48FromDiscord<scipio> ahh, but how do I generate C code as in helloworld.c ?
13:38:58FromDiscord<scipio> (edit) "helloworld.c" => "`helloworld.c`"
13:39:14FromDiscord<scipio> (been dabbling with nim since less than a day)
13:41:45FromDiscord<hotdog> In reply to @scipio "ahh, but how do": Compile with nim cc and find the output https://nim-lang.org/docs/nimc.html#compiler-usage-generated-c-code-directory
14:02:46*jjido quit (Quit: My laptop has gone to sleep. ZZZzzz…)
14:30:05FromDiscord<<She>Horizon</Her>> I get `Error: invalid indentation`
14:30:08FromDiscord<<She>Horizon</Her>> sent a code paste, see https://play.nim-lang.org/#ix=4kJa
14:34:25FromDiscord<demotomohiro> At least the code block you give to macro must be valid Nim syntax.
14:36:33FromDiscord<Rika> everything has to be valid nim syntax no matter if its under a macro or not, iirc
14:36:36FromDiscord<demotomohiro> https://nim-lang.org/docs/manual.html#lexical-analysis-operators↵You cannot '.' for operator.
14:37:25FromDiscord<demotomohiro> You cannot use '.' for an operator.
14:39:42FromDiscord<<She>Horizon</Her>> Ah sad
14:39:53FromDiscord<<She>Horizon</Her>> Would've liked to try directly embedding brainfuck
14:43:53*PMunch_ is now known as PMunch
15:09:17*arkurious joined #nim
15:12:08FromDiscord<demotomohiro> You can embed brainfuck code inside string literal and run it in macro or procedure with `{.compiletime.}` pragma.
15:13:26*PMunch quit (Quit: Leaving)
15:19:00FromDiscord<pyryrin> what's the difference between templates and macros
15:22:33FromDiscord<Phil> Templates are copy pasting code. Macros are a lower level representation of your source code where stuff starts getting wonky and rules change
15:24:10FromDiscord<demotomohiro> In template, you write code that template inserts in call site. In macro, you write code that anaylize given ast of code or generate ast that is inserted in call site.
15:24:45FromDiscord<Rika> templates are almost like code as values and just some basic substitution and whatnot, macros are like functions that take code like a value and return code like a value
15:25:25FromDiscord<demotomohiro> https://internet-of-tomohiro.netlify.app/nim/faq.en.html#template-what-is-a-templateqmark↵https://internet-of-tomohiro.netlify.app/nim/faq.en.html#macro-what-is-macroqmark
15:27:12FromDiscord<ShalokShalom> Basically nobody uses templates and macros are very popular
15:27:26FromDiscord<Rika> there are lots of uses for templates and it is not unused
15:27:34FromDiscord<ShalokShalom> Also: Officially, you should always consider using templates, and nobody does 😛
15:27:49FromDiscord<pyryrin> should you use procs or templates for operator overloading
15:27:50FromDiscord<ShalokShalom> @Rika Yeah, I assume it is. Just a very subjective impression from my side
15:28:06FromDiscord<Rika> In reply to @pyryrin "should you use procs": the question doesnt make much sense
15:28:11FromDiscord<Rika> i dont understand
15:29:11FromDiscord<pyryrin> sent a code paste, see https://paste.rs/7kP
15:29:23FromDiscord<demotomohiro> If you can use both procs and templates for operator overloads.
15:29:43FromDiscord<pyryrin> when which one?
15:31:45FromDiscord<Rika> it depends on the situation
15:31:55FromDiscord<demotomohiro> If you can implement the operator with proc, use proc. If you really need template, use template.
15:32:10FromDiscord<Rika> when in doubt just use a proc, i guess
15:35:35FromDiscord<demotomohiro> sent a long message, see http://ix.io/4kJF
16:03:11FromDiscord<pyryrin> sent a code paste, see https://play.nim-lang.org/#ix=4kJL
16:03:37FromDiscord<pyryrin> (edit) "https://play.nim-lang.org/#ix=4kJL" => "https://paste.rs/jaI"
16:04:12FromDiscord<pyryrin> (edit) "https://play.nim-lang.org/#ix=4kJN" => "https://play.nim-lang.org/#ix=4kJM"
16:04:18FromDiscord<Rika> either is fine, first is most common, preference is up to you
16:04:38FromDiscord<huantian> maybe we should have this syntax specified in NEP-1
16:04:53FromDiscord<pyryrin> what is NEP-1
16:04:56FromDiscord<enthus1ast> i use the first, but was criticized for this already, but i still use the first
16:06:03FromDiscord<demotomohiro> @pyryrin https://nim-lang.org/docs/nep1.html
16:14:30Amun-Rathe first one if preferred
17:03:38*azimut quit (Remote host closed the connection)
17:04:14*azimut joined #nim
17:04:53FromDiscord<pyryrin> should you use semicolon to separate arguments in proc declaration?
17:05:22FromDiscord<Rika> semicolon and comma have different functions
17:05:26FromDiscord<Rika> in such case
17:05:51FromDiscord<pyryrin> someone said in the forum that semicolon prevents bugs
17:06:05FromDiscord<Rika> not exactly but it can yes
17:06:44FromDiscord<Rika> lets say you have a proc `proc a(a: int, b, c: string, d: seq[bool], e: float, f: SomeType, g: SomeOther)`
17:07:04FromDiscord<Rika> let's say b was supposed to be a bool but i forgot to annotate it somehow
17:07:28FromDiscord<Rika> now b is a string, and sure the type system can catch that but the error would prolly stump a beginner for a few moments or minutes
17:07:55FromDiscord<Rika> now if i use semicolons `proc a(a: int; b; c: string; d: seq[bool]; e: float; f: SomeType; g: SomeOther)`
17:08:06FromDiscord<Rika> b is not assumed to be a string, there's no type so it's an error
17:08:26FromDiscord<Rika> In reply to @Rika "let's say b was": somehow -> because i couldnt see from the sheer amount of parameters i ahve
17:08:30FromDiscord<Rika> (edit) "ahve" => "have, lets say"
17:08:40FromDiscord<pyryrin> okay. but i don't understand how they have different functions?
17:08:50FromDiscord<Rika> `b, c: string` means both b and c are stringfs
17:08:51FromDiscord<Rika> (edit) "stringfs" => "strings"
17:09:04FromDiscord<Rika> `b; c: string` means b is not known, and c is a string
17:09:06FromDiscord<pyryrin> i know, but they can both be to separate arguments
17:09:10FromDiscord<Rika> wdym?
17:09:37FromDiscord<Rika> sometimes it is intentional, sure yeah
17:09:38FromDiscord<pyryrin> you can use both `;` and `,` to separate arguments
17:09:41FromDiscord<Rika> yes
17:10:02FromDiscord<Rika> but the way the types are "implied" changes between using semicolon and comma
17:10:15FromDiscord<pyryrin> okay
17:10:18FromDiscord<Rika> thats where bugs can be avoided
17:10:24FromDiscord<pyryrin> so semicolons is kind of better
17:10:29FromDiscord<Rika> kinda, not really
17:10:50FromDiscord<Rika> using semicolons by default can help, and using commas when needed is okay too
17:13:35*Batzy joined #nim
17:21:40FromDiscord<Phil> In reply to @pyryrin "should you use semicolon": Personally I don't ever make use of that particular language feature
17:22:08FromDiscord<Phil> I don't find it making code particularly easier to read or anything, it just is marginally less typing
17:22:47FromDiscord<pyryrin> why less typing?
17:24:41FromDiscord<Phil> sent a long message, see http://ix.io/4kK9
17:25:07FromDiscord<Phil> (edit) "http://ix.io/4kK9" => "https://paste.rs/kLg"
17:25:12FromDiscord<pyryrin> oh so you meant using `;` was less typing right
17:25:24FromDiscord<Phil> (edit) "https://paste.rs/yRB" => "http://ix.io/4kKa"
17:26:36FromDiscord<Phil> I was more specifically talking about the feature of nim where `;` starts becoming relevant, less `;` itself.↵`;` is relevant when you want to clearly separate a "group-definition" (I'll call it that) where you declare the type of several variables at once from the definition of another parameter with a different type.
17:26:57FromDiscord<Phil> If you don't do `proc a(x,y: int): string`, then `;` doesn't really matter for you
17:27:13FromDiscord<Phil> afaik, that is
17:27:34FromDiscord<pyolyokh> sent a code paste, see https://play.nim-lang.org/#ix=4kKb
17:28:06FromDiscord<pyolyokh> where `;` is actually needed is the `using` feature, `proc a(x, y; z: float)`
17:28:14FromDiscord<Phil> sent a code paste, see https://play.nim-lang.org/#ix=4kKc
17:28:39FromDiscord<Phil> Ahhh I knew I was forgetting something, yeah using is one where it does matter
17:29:16FromDiscord<Phil> `using` is a mechanism to enforce several procedures using a specific parameter to make that parameter have the same type always
17:29:22FromDiscord<pyolyokh> sent a code paste, see https://play.nim-lang.org/#ix=4kKd
17:29:32FromDiscord<Phil> (for pyryrin)
17:37:33*jjido joined #nim
17:46:11*jjido quit (Quit: My laptop has gone to sleep. ZZZzzz…)
18:10:19FromDiscord<4zv4l> sent a code paste, see https://paste.rs/ErZ
18:10:28FromDiscord<4zv4l> (edit) "https://play.nim-lang.org/#ix=4kKm" => "https://paste.rs/OIR"
18:10:29FromDiscord<4zv4l> (edit)
18:10:32FromDiscord<4zv4l> (edit) "https://play.nim-lang.org/#ix=4kKm" => "https://paste.rs/3z4"
18:12:58FromDiscord<Rika> Remove the period
18:17:06FromDiscord<4zv4l> even with ↵`"{ord(c):#2x} "`↵it doesn't show 0x0a
18:21:20FromDiscord<Rika> Change the 2 to 04
18:21:23FromDiscord<Rika> With the 0
18:28:09FromDiscord<pyolyokh> >If the # character is present, integers use the 'alternate form' for formatting.↵↵looks like that breaks 02x. This works: `&"0x{ord(c):02x} "`
18:28:59FromDiscord<pyolyokh> this is probably a bug.
18:32:03FromDiscord<pyolyokh> ah, maybe not. It's just factoring the 0x into the width
18:32:17FromDiscord<pyolyokh> sent a code paste, see https://play.nim-lang.org/#ix=4kKt
18:32:52FromDiscord<pyolyokh> (edit) "https://play.nim-lang.org/#ix=4kKt" => "https://paste.rs/2IY"
18:53:23om3gaguys, any idea how to convert this to nim? https://play.nim-lang.org/#ix=4kKw
18:58:24FromDiscord<4zv4l> In reply to @Rika "Change the 2 to": this work, but why ?
18:58:52FromDiscord<4zv4l> In reply to @pyolyokh "this is probably a": it considers the '0x' as part of the size ?
18:59:14FromDiscord<pyolyokh> yes.
19:02:47FromDiscord<pyolyokh> In reply to @om3ga "guys, any idea how": om3ga: <https://play.nim-lang.org/#ix=4kKB>
19:04:54om3gapyolyokh, thanks! but what about directives
19:05:42om3ga#define LV2_SYMBOL_EXTERN extern "C" and #define LV2_SYMBOL_EXPORT LV2_SYMBOL_EXTERN __attribute__((visibility("default")))
19:07:34om3gaI tried to use {.compileTime.} , but seems __attribute__((visibility("default"))) is mandatory, so my lib not works without it
19:37:14*PMunch joined #nim
19:37:22*krux02_ joined #nim
19:38:19*krux02 quit (Ping timeout: 248 seconds)
19:40:53FromDiscord<djazz> tried {.cdecl.}?
19:41:12FromDiscord<djazz> exportc?
20:05:15*jmdaemon joined #nim
20:12:19om3gadjazz: no, I will try now!
20:12:49FromDiscord<djazz> try use {.exportc: "lv2_descriptor".}
20:16:26om3ga/Volumes/storage/SRC/MBC/correlometer.nim:99:42: error: conflicting types for 'lv2_descriptor' N_LIB_PRIVATE N_NIMCALL(LV2_Descriptor*, lv2_descriptor)(NU32 index) LV2_Descriptor* result; nimfr_("lv2_descriptor"...
20:16:32om3gadjazz: that gives types conflict error when the things goes to clang ^
20:17:07FromDiscord<djazz> hmm
20:17:22om3gaah.. that might be because I have uint32, and lib utilizes uint32_t
20:17:23FromDiscord<djazz> dunno...
20:17:45FromDiscord<djazz> its a C compiler error
20:17:53FromDiscord<djazz> try add -d:checkAbi
20:18:21FromDiscord<djazz> you might have to make your own pragma... or use exportc to add it
20:20:03om3galooks like no difference with -d:checkAbi
20:20:31om3ga.nim.c:77:42: error: conflicting types for 'lv2_descriptor'
20:20:32om3gaN_LIB_PRIVATE N_NIMCALL(LV2_Descriptor*, lv2_descriptor)(NU32 index);
20:20:45om3gaoh, sorry for big paste here...
20:20:58FromDiscord<djazz> you have cdecl and exportc?
20:21:23om3ga{.exportc: "lv2_descriptor".}
20:21:35FromDiscord<djazz> try {.exportc: "lv2_descriptor", cdecl.}
20:21:40om3gaaha, ok
20:21:55FromDiscord<djazz> not sure if it does anything when exporting tho heh
20:22:48om3gaunfortunately the same...
20:22:55FromDiscord<djazz> hmm, idk
20:23:32om3gaconflicting types for 'lv2_descriptor' N_LIB_PRIVATE N_CDECL(LV2_Descriptor*, lv2_descriptor)(NU32 index)
20:24:04om3gaand it points to the second parameter - lv2_descriptor, of the N_CDECL
20:25:04FromDiscord<djazz> have you defined LV2_Descriptor?
20:25:23FromDiscord<DeLannoy> What does ``mixin init`` do on line 454 of the script below?↵From what I have read mixin defines a reusable code snippet, however I hardly see any indentation marks or curly braces or anything that would define what exactly goes under ``mixin init``. Sorry I'm a noob 😞↵↵https://github.com/cheatfate/nimcrypto/blob/master/nimcrypto/bcmode.nim
20:25:30FromDiscord<djazz> type LV2_Descriptor {.importc: "LV2_Descriptor".} = distinct object
20:25:48PMunchHmm, once again I've forgotten the name of the macro templating package..
20:26:47om3gadjazz: yes, it's well defined, no lint or compile errors
20:27:22om3gathe problem is with that symbol export, if I disable that part of the code, the lib compiles sucessfully
20:28:27om3gadjazz: modified include binding as you suggested: LV2_Descriptor* {.importc: "LV2_Descriptor", header: headerlv2, bycopy.} = distinct object
20:28:31om3gais that ok?
20:28:44FromDiscord<djazz> yeah
20:29:09om3gaoh! that helped, now another err
20:29:20om3gadifferent err I mean
20:29:35om3galet me get into what it says...
20:30:03om3gaError: undeclared field: 'URI' for type lv2.LV2_Descriptor [type declared in /Volumes/storage/SRC/MBC/lv2/lv2.nim(11, 3)] , OMG...
20:30:05om3gahahaha
20:31:51FromDiscord<djazz> do you use the uri?
20:32:46om3gayes, it's mandatory
20:32:59FromDiscord<djazz> then add that as a field too
20:33:00FromDiscord<4zv4l> is that normal that even if I used ↵`server.listen(0)`↵my operating system still accept the clients when my server is busy with another ?↵I thought that was the number of clients it would keep in memory until my program `accept` them
20:33:07om3gaURI* {.importc: "URI".}: cstring
20:33:09FromDiscord<djazz> you can remove the "distinct" now
20:33:42om3gawell it is added
20:33:59om3gaI created object, initialized it completely
20:34:47om3gamaybe that because it has upper case?
20:34:54om3gacan it cause conflict?
20:41:56*jjido joined #nim
20:55:02FromDiscord<System64 ~ Flandre Scarlet> Did someone already tried the IntelliJ plugin for Nim?↵Is it any good?
20:56:52FromDiscord<ShalokShalom> @System64 ~ Flandre Scarlet It got recently an update
20:57:37FromDiscord<ShalokShalom> And considering the state of nimsuggest, it is worth giving it a try
20:57:39om3gano.. changing to lower case not help
20:58:09FromDiscord<ShalokShalom> @System64 ~ Flandre Scarlet It has some issues, as does any other IDE integration of Nim currently
21:11:59PMunchUgh Jester docs are so bad..
21:12:16PMunchIt's a really neat little framework, and has a surprising amount of features, but it's barely documented..
21:13:13PMunchHuh neat, Futhark is "trending" on nimble.directory :)
21:23:57FromDiscord<Elegantbeef> Mixin and bind are for generics and templates which tightly bind the symbols to the invocation↵(@DeLannoy)
21:24:26FromDiscord<Elegantbeef> It's odd that they're mixin'd here
21:25:06FromDiscord<DeLannoy> In reply to @Elegantbeef "Mixin and bind are": Thanks for the answer but honestly I still have no clue
21:26:42FromDiscord<DeLannoy> I mean this was a nice textbook definition but it doesn't answer my question 😞
21:29:05*xet7 quit (Quit: Leaving)
21:29:34FromDiscord<DeLannoy> Sorry if I sounded rude but I'm still lost
21:30:28FromDiscord<DeLannoy> I'm trying to reverse engineer a malware that used this script and I have to figure out what exactly it does in order to reflect it to the assemly representation of the binary
21:30:54FromDiscord<DeLannoy> (edit) "assemly" => "assembly"
21:33:08FromDiscord<Elegantbeef> What that means is that the templates are always added to the scope of the template
21:33:18FromDiscord<Elegantbeef> Which means they can invoke themselves using `a.templateName`
21:33:25FromDiscord<Elegantbeef> Like i said it's very odd that it's done this wat
21:33:28FromDiscord<Elegantbeef> way\
21:35:19FromDiscord<Elegantbeef> I guess it might be for generics so that the template is always in scope and considered
21:35:26FromDiscord<Elegantbeef> I dont really know why it's done this way
21:40:26FromDiscord<choltreppe> hey there, I have just found and fixed a bug in a package of mine, thats in the official packages. And Im not sure how to handle the versioning, since thats my very first public lib contribution. should I make a new version? should I wait for more changes before making a new version? or would it be fine to just move the tag to the new commit?
21:45:29FromDiscord<System64 ~ Flandre Scarlet> In reply to @ShalokShalom "<@380360389377916939> It has some": So what is the best option?
21:46:11FromDiscord<Elegantbeef> @choltreppe\: fix the bug, then tick the patch version in your nimble file
21:46:28FromDiscord<Elegantbeef> The nimble package directory just maps name -\> git url/mercurial url
21:47:47FromDiscord<choltreppe> ok and add the according git tag right?
21:49:18FromDiscord<Elegantbeef> You dont need to git tag, but you can
21:49:44FromDiscord<choltreppe> ah ok
21:49:55FromDiscord<scipio> Has anybody ever tried Nimview on macOS ?↵=> when I execute this `nim c -r -d:release helloworld.nim`, it doesn't open a webview window but launches in Chrome
21:50:47FromDiscord<Elegantbeef> scipio are you using `start` or `startDesktop`?
21:50:53FromDiscord<Elegantbeef> I dont have a mac so cannot say much
21:52:08om3gascipio, is chrome set as default browser?
21:53:00om3gamaybe this is the reason
21:54:45FromDiscord<ShalokShalom> In reply to @System64 "So what is the": VSCode with Nim: Provider set to none plus Nim: Lint on save set to on.
21:54:55FromDiscord<scipio> sent a code paste, see https://play.nim-lang.org/#ix=4kLN
21:55:00FromDiscord<ShalokShalom> Or Jetbrains by default
21:55:07FromDiscord<ShalokShalom> You can try both 😄
21:55:28FromDiscord<ShalokShalom> The Nim plugin is open source, so you can try it with the open source version of IDEA, I guess 🙂
21:55:28FromDiscord<Elegantbeef> @scipio\: and what are you doing in Nim?
21:55:31FromDiscord<System64 ~ Flandre Scarlet> In reply to @ShalokShalom "VSCode with Nim: Provider": What is Provider set to non and Lint on Save?
21:55:36FromDiscord<ShalokShalom> settings
21:56:05FromDiscord<scipio> I am trying to write a desktop GUI app
21:56:07FromDiscord<ShalokShalom> Choose the saem plugin, not the most popular 🙂
21:56:09FromDiscord<ShalokShalom> https://media.discordapp.net/attachments/371759389889003532/1062127664577658902/grafik.png
21:56:25*xet7 joined #nim
21:56:42FromDiscord<Elegantbeef> I mean code wise↵(@scipio)
21:56:45FromDiscord<ShalokShalom> It tends to crash, otherwise
21:57:36FromDiscord<System64 ~ Flandre Scarlet> In reply to @ShalokShalom "Choose the saem plugin,": There is a lot https://media.discordapp.net/attachments/371759389889003532/1062128030908170321/image.png
21:57:56FromDiscord<scipio> @ElegantBeef preferably the entire app coded in Nim, but if I can't find a decent UI framework for Nim, an html, css. JS frontend spawning a webview and message passing (ajax) with a Nim backend would sufice
21:58:50FromDiscord<ShalokShalom> nimsaem
21:58:53FromDiscord<Elegantbeef> What are you doing with nimview and Nim
21:58:55FromDiscord<Elegantbeef> Like what is the program you're making with nimview right now that isnt work
21:58:56FromDiscord<Elegantbeef> working
21:59:25FromDiscord<System64 ~ Flandre Scarlet> In reply to @ShalokShalom "nimsaem": Yeah I have it
21:59:33FromDiscord<ShalokShalom> nice
21:59:36FromDiscord<scipio> It's not opening in an app window, no webview
21:59:51FromDiscord<Elegantbeef> Yes, but what the fuck is your code
21:59:53FromDiscord<System64 ~ Flandre Scarlet> In reply to @ShalokShalom "nice": But if I turn the provider off, I'll lost autocompletion, no?
21:59:53*PMunch quit (Quit: leaving)
22:00:05FromDiscord<scipio> instead it's opening as↵`DEBUG Starting internal webserver on http://localhost:8000`
22:00:16FromDiscord<Elegantbeef> This is like walking into a hardware store going "I need a wrench"
22:00:20FromDiscord<ShalokShalom> In reply to @System64 "But if I turn": Yes
22:00:23FromDiscord<Elegantbeef> That is the least helpful statement
22:00:28*jjido quit (Quit: My laptop has gone to sleep. ZZZzzz…)
22:00:41FromDiscord<ShalokShalom> In reply to @Elegantbeef "This is like walking": Is there any way to benefit from the improved IC today?
22:00:47FromDiscord<scipio> this, literally this
22:00:48FromDiscord<scipio> sent a code paste, see https://play.nim-lang.org/#ix=4kLS
22:00:49FromDiscord<ShalokShalom> Like, is there a version to try it
22:00:52FromDiscord<Elegantbeef> Yes use `startDesktop`
22:00:53FromDiscord<Elegantbeef> Like i said
22:01:03FromDiscord<scipio> you said that?
22:01:07FromDiscord<scipio> hmm, probably missed it
22:01:11FromDiscord<System64 ~ Flandre Scarlet> In reply to @ShalokShalom "Yes": Is there something I can do to have autocompletion?
22:01:20FromDiscord<Elegantbeef> image.png https://media.discordapp.net/attachments/371759389889003532/1062128969564049630/image.png
22:01:21FromDiscord<ShalokShalom> You can it on 😛
22:01:32FromDiscord<ShalokShalom> Nimsuggest tends to crash
22:01:42FromDiscord<Elegantbeef> No clue IC isnt production ready↵(@ShalokShalom)
22:01:42FromDiscord<System64 ~ Flandre Scarlet> In reply to @ShalokShalom "Nimsuggest tends to crash": And LSP?
22:01:53FromDiscord<ShalokShalom> The only solution, that doesnt use it, is Nim on Jetbrains.
22:02:02FromDiscord<ShalokShalom> In reply to @System64 "And LSP?": LSP also depends on nimsuggest
22:02:08FromDiscord<System64 ~ Flandre Scarlet> oof
22:02:08FromDiscord<ShalokShalom> Its a compiler feature
22:02:17FromDiscord<ShalokShalom> And the roadmap plans to improve it
22:02:23FromDiscord<System64 ~ Flandre Scarlet> Oh alright
22:02:27FromDiscord<ShalokShalom> In reply to @Elegantbeef "No clue IC isnt": Thanks a lot dear
22:03:12FromDiscord<ShalokShalom> @System64 ~ Flandre ScarletYou will experience ram usage, cpu usage and similar to get through the roof
22:03:21FromDiscord<Elegantbeef> And Nim on jetbrains doesnt compile the code afaik so good bye a majority of helpful suggestions
22:03:23FromDiscord<scipio> https://media.discordapp.net/attachments/371759389889003532/1062129487837405344/image.png
22:03:27FromDiscord<scipio> Thx @ElegantBeef
22:03:28FromDiscord<scipio> 😁
22:03:36FromDiscord<scipio> sorry, I had really missed your question
22:03:51FromDiscord<ShalokShalom> In reply to @Elegantbeef "And Nim on jetbrains": Did you try the recent update?
22:04:08FromDiscord<scipio> it wasn't startDesktop() in here `https://www.youtube.com/watch?v=OykIbez7Vfc`
22:04:08FromDiscord<Elegantbeef> Does it use a compiler API?
22:04:26FromDiscord<ShalokShalom> Nim on Jetbrains?
22:04:30FromDiscord<Elegantbeef> Yes
22:04:32FromDiscord<ShalokShalom> It uses its own thing
22:04:44FromDiscord<ShalokShalom> The Jetbrains framework
22:04:45FromDiscord<Elegantbeef> So it doesnt compile the code?
22:05:08FromDiscord<scipio> @ElegantBeef another question: how do I, in general I mean, compile to a `.app` extension binary and/or mac installable?
22:05:17FromDiscord<System64 ~ Flandre Scarlet> In reply to @scipio "": HTML stuff?
22:05:21FromDiscord<Elegantbeef> sent a code paste, see https://play.nim-lang.org/#ix=4kLT
22:05:37FromDiscord<scipio> any GUI using Nim @System64 ~ Flandre Scarlet
22:05:49FromDiscord<Elegantbeef> Again i dont use or have a mac so i dont know, what's wrong with `nim c -d:release`?
22:05:49FromDiscord<scipio> I'm only dabbling in Nim since yesterday
22:06:24FromDiscord<scipio> In reply to @Elegantbeef "Again i dont use": it outputs `helloworld` instead of `helloworld.app` from `helloworld.nim`
22:06:41FromDiscord<Elegantbeef> so `--out: helloworld.app`?
22:06:49FromDiscord<Elegantbeef> I dont know mac formats so i dont know what's so special about `.app`
22:06:51FromDiscord<System64 ~ Flandre Scarlet> Nimview is not developped anymore
22:07:09FromDiscord<scipio> then what should I use?
22:07:31FromDiscord<scipio> Nimview's github refers to Tauri, but Tauri doesn't yet support a Nim backend, does it?
22:07:31FromDiscord<ShalokShalom> At which platform do you like to deploy?
22:07:59FromDiscord<scipio> @ShalokShalom are you asking me? I want to code a desktop app running on macOS and Windows
22:08:38FromDiscord<scipio> Any modern, preferably well-documented Nim GUI framework will suffice, happy to spend my time learning it
22:08:54FromDiscord<ShalokShalom> https://github.com/jerous86/nimqt
22:09:01FromDiscord<Elegantbeef> Owlkettle is pretty nice
22:09:03FromDiscord<Elegantbeef> It's gtk
22:09:26FromDiscord<ShalokShalom> https://github.com/can-lehmann/owlkettle
22:09:34FromDiscord<ShalokShalom> Was just about posting it 😄
22:09:52FromDiscord<System64 ~ Flandre Scarlet> In reply to @Elegantbeef "Owlkettle is pretty nice": I can't making it compiling
22:10:15FromDiscord<Elegantbeef> Did you install a 64bit mingw?
22:10:19FromDiscord<ShalokShalom> https://plugins.jetbrains.com/plugin/15128-nim
22:10:22FromDiscord<Elegantbeef> Did you remove your 32bit nim compiler
22:10:57FromDiscord<System64 ~ Flandre Scarlet> In reply to @Elegantbeef "Did you install a": Everything is 64bits right now
22:11:12FromDiscord<Elegantbeef> Did you install gtk4?
22:11:21FromDiscord<scipio> nope, not yet
22:11:48FromDiscord<Elegantbeef> I'm talking to system
22:11:52FromDiscord<System64 ~ Flandre Scarlet> In reply to @Elegantbeef "Did you install gtk4?": Ah yeah I have an error with that
22:12:28FromDiscord<System64 ~ Flandre Scarlet> sent a code paste, see https://play.nim-lang.org/#ix=4kLU
22:12:28FromDiscord<scipio> In reply to @Elegantbeef "*I'm talking to system*": System was also talking to me 😁
22:12:42FromDiscord<scipio> I like the circular referencing
22:13:24FromDiscord<scipio> Only a matter of time before I can answer questions too, other than if I ran `start()` or `startDesktop()`I mean
22:13:43FromDiscord<ElegantBeef> Bridge died yay!
22:13:52FromDiscord<Elegantbeef> They had a 32bit Nim compiler, attempting to use mingw 64 packages that did not work obviously
22:14:00FromDiscord<ElegantBeef> System did you uninstall `mingw-w64-x86_64-gcc-libs`?
22:14:20FromDiscord<ElegantBeef> I dont know if you need 11.2 packages for anything
22:14:36FromDiscord<ElegantBeef> So much easier to use owlkettle on a system with a proper package manager
22:14:37FromDiscord<System64 ~ Flandre Scarlet> Humm how can I uninstall?
22:15:01FromDiscord<scipio> @ShalokShalom I've basically been screening https://github.com/ringabout/awesome-nim , and there is no mention of NimQT / Owlkettle
22:15:15FromDiscord<ElegantBeef> `pacman -Rcs mingw-w64-x86_64-gcc-libs` i assume
22:15:21FromDiscord<scipio> basically everything I ran into wasn't actively being developed, so Nimview seemed a decent starting point
22:15:22FromDiscord<Elegantbeef> Hmm seems bridge is alive again
22:15:34FromDiscord<huantian> I don't know why you even need that old version
22:15:39FromDiscord<huantian> it's updated to v12 already
22:15:41FromDiscord<huantian> https://packages.msys2.org/package/mingw-w64-x86_64-gcc-libs
22:15:50FromDiscord<System64 ~ Flandre Scarlet> In reply to @ElegantBeef "`pacman -Rcs mingw-w64-x86_64-gcc-libs` i": It will remove A LOT of packages, sounds dangerous
22:16:16FromDiscord<huantian> mingw-w64-x86_64-gcc should be version 12 not 11
22:16:56FromDiscord<ShalokShalom> In reply to @scipio "<@208199869301522432> I've basically been": both are very new
22:17:04FromDiscord<ShalokShalom> I will add them to the list asap
22:17:07FromDiscord<Elegantbeef> Owlkettle is like a year old
22:17:16FromDiscord<ShalokShalom> yeah, true
22:17:21FromDiscord<ShalokShalom> I still have its blog post in mind
22:17:28FromDiscord<ShalokShalom> Read that just a short while agi
22:17:32FromDiscord<ShalokShalom> My mistake.
22:17:35FromDiscord<ShalokShalom> (edit) "agi" => "ago"
22:17:38FromDiscord<System64 ~ Flandre Scarlet> Sounds really dangerous https://media.discordapp.net/attachments/371759389889003532/1062133073774387251/message.txt
22:17:50FromDiscord<Elegantbeef> It was gtk3 based originally and updated to gtk4 so we'll say it's new
22:18:10FromDiscord<Elegantbeef> I mean you're going to install a modern version after
22:18:16FromDiscord<huantian> can you do `pacman -Si mingw-w64-x86_64-gcc`
22:18:50FromDiscord<System64 ~ Flandre Scarlet> sent a code paste, see https://play.nim-lang.org/#ix=4kLW
22:19:03FromDiscord<huantian> what about `pacman -Qi mingw-w64-x86_64-gcc`
22:19:23*xet7 quit (Remote host closed the connection)
22:19:23FromDiscord<Elegantbeef> huan making someone use pacman, what a devil
22:19:46FromDiscord<huantian> tee hee
22:19:51FromDiscord<System64 ~ Flandre Scarlet> sent a code paste, see https://play.nim-lang.org/#ix=4kLX
22:20:03FromDiscord<<She>Horizon</Her>> In Nim is there a way to define fields of an object dynamically or something?
22:20:08FromDiscord<System64 ~ Flandre Scarlet> In reply to @Elegantbeef "huan making someone use": I alreadt wrote some php, btw /j
22:20:13FromDiscord<Elegantbeef> No Nim isnt dynamically typed
22:20:13FromDiscord<System64 ~ Flandre Scarlet> (edit) "alreadt" => "already"
22:20:22FromDiscord<huantian> why the heck is your installed version not the same as the version in the repo
22:20:30FromDiscord<Elegantbeef> Perhaps they need to update?
22:20:30FromDiscord<huantian> are you sure you did `sudo pacman -Syyu`
22:20:47FromDiscord<huantian> (edit) "`sudo pacman" => "`pacman"
22:20:54FromDiscord<Elegantbeef> Horizon what are you trying to do?
22:21:13FromDiscord<Elegantbeef> The dumbest way of doing what you want is using a `newJObject`
22:21:27FromDiscord<Elegantbeef> The smartest way is to not need dynamic fields
22:22:40FromDiscord<<She>Horizon</Her>> In reply to @Elegantbeef "No Nim isnt dynamically": Thought so, someone just said that apparently Nim defined fields dynamically for some things? They just meant object variants so it's gucci
22:22:43FromDiscord<<She>Horizon</Her>> I was confused as fuck
22:23:05FromDiscord<System64 ~ Flandre Scarlet> In reply to @huantian "are you sure you": https://media.discordapp.net/attachments/371759389889003532/1062134440039551078/message.txt
22:23:21FromDiscord<huantian> well so you didn't
22:23:27FromDiscord<huantian> because you didn't actually upgrade your system
22:23:33FromDiscord<scipio> @ShalokShalom https://www.youtube.com/watch?v=O44x_la1o_M↵↵This video literally mentions Linux apps with Owlkettle. Isn;t GTK4 Linux only?
22:23:41FromDiscord<Elegantbeef> Nope
22:23:44FromDiscord<System64 ~ Flandre Scarlet> In reply to @huantian "because you didn't actually": Look at the error at the bottom
22:23:47FromDiscord<Elegantbeef> gtk4 runs on mac, windows and linux
22:23:47FromDiscord<huantian> you need to figure out why your upgrade is broken then
22:23:49FromDiscord<huantian> and fix it
22:23:51FromDiscord<huantian> before you do anything else
22:23:57FromDiscord<System64 ~ Flandre Scarlet> > error: failed to commit transaction (conflicting files)↵> mingw-w64-x86_64-ninja: /mingw64/bin/ninja.exe exists in filesystem↵> Errors occurred, no packages were upgraded.
22:23:59FromDiscord<huantian> arch will not work if you have partial upgrades
22:24:09FromDiscord<System64 ~ Flandre Scarlet> I'm on Windows
22:24:24FromDiscord<huantian> ok pacman in mingw will not work if you have partial upgrades
22:24:37FromDiscord<huantian> you need to fix that error and upgrade your system before you install new packages
22:24:59FromDiscord<scipio> https://media.discordapp.net/attachments/371759389889003532/1062134919012298872/image.png
22:25:10FromDiscord<scipio> Would I need libadwaita-dev for macOS ?
22:25:53FromDiscord<Elegantbeef> Well libadwaita is an optional dependency iirc
22:25:59FromDiscord<Elegantbeef> But yes you'd need development packages
22:26:22FromDiscord<Elegantbeef> Assuming you have brew it should be easy
22:26:57FromDiscord<Elegantbeef> I also assume brew ships dev packages with the normal packages
22:27:04FromDiscord<Elegantbeef> If it doesnt i dont know how to get dev packages
22:28:06*azimut quit (Remote host closed the connection)
22:28:30FromDiscord<ShalokShalom> In reply to @scipio "<@208199869301522432> https://www.youtube.com/watch": It is compatible with all OS and Linux is prefered. I personally dislike it for this and several other reasons
22:28:49FromDiscord<ShalokShalom> But Owlkettle provides a really nice API
22:28:51FromDiscord<ShalokShalom> IMHO
22:29:02*azimut joined #nim
22:29:13FromDiscord<Elegantbeef> The only down side is really that depending on your OS it's hard to get static libraries for windows
22:29:26FromDiscord<ShalokShalom> When you like a native look and feel, go for Qt
22:29:48FromDiscord<Elegantbeef> GTK has mac interop to make it look native
22:30:04FromDiscord<ShalokShalom> @System64 ~ Flandre ScarletAlways update, before you install
22:30:16FromDiscord<ShalokShalom> In reply to @Elegantbeef "GTK has mac interop": Since when?
22:30:43FromDiscord<System64 ~ Flandre Scarlet> Why is it so slow when a simple equation can do the check? https://media.discordapp.net/attachments/371759389889003532/1062136363308306573/image.png
22:31:20FromDiscord<Elegantbeef> https://www.gtk.org/docs/installations/macos/
22:32:05FromDiscord<scipio> @ShalokShalom my app is a financial application which should have a realtime updating candlestick chart. I think with Qt that requires some commercial language, which is a bit of a hassle to get while still only learning Nim
22:32:21FromDiscord<Elegantbeef> To be fair i just read it, no clue if it works as it says
22:32:22FromDiscord<ShalokShalom> ?
22:32:29FromDiscord<ShalokShalom> Which commercial language?
22:32:47FromDiscord<scipio> (edit) "language," => "~~language~~ licence,"
22:32:53FromDiscord<scipio> license
22:32:59FromDiscord<System64 ~ Flandre Scarlet> sent a long message, see http://ix.io/4kM1
22:33:15FromDiscord<ShalokShalom> The license of Qt is often misconsidered 🙂
22:33:20FromDiscord<huantian> Well it needs to calculate the needed space for each package
22:33:28FromDiscord<ShalokShalom> You can totally use the open source license for buisness applications
22:33:45FromDiscord<huantian> (edit) "package" => "package, the packages are compressed I’d assume"
22:33:57FromDiscord<huantian> (edit) "assume" => "assume, so it’d have to calculate the inflated sizes of each"
22:34:04FromDiscord<System64 ~ Flandre Scarlet> In reply to @huantian "Well it needs to": > Total Installed Size: 2713.76 MiB
22:34:10FromDiscord<scipio> yes but charts are not included in that
22:34:15FromDiscord<huantian> Well then idk
22:34:21FromDiscord<scipio> that's a non-community module
22:34:32FromDiscord<System64 ~ Flandre Scarlet> QT's licence is weird
22:34:38FromDiscord<ShalokShalom> This could be the case
22:34:49FromDiscord<ShalokShalom> Yes, absolutely.
22:35:01FromDiscord<System64 ~ Flandre Scarlet> Okay seems it upgrades
22:35:05FromDiscord<scipio> I am happy to pay the QT commercial license if I can't find another way and stick with Nim. I mean, I _really want to_ stick with Nim, as I immediately "get it"
22:35:22FromDiscord<scipio> I'd prefer a native robust Nim UI tho
22:35:39FromDiscord<ShalokShalom> I also dont know, if bindings exist
22:35:52FromDiscord<ShalokShalom> The qt binding is actually only for widgets
22:36:23FromDiscord<ShalokShalom> In reply to @scipio "I am happy to": I totally get you
22:36:30FromDiscord<scipio> I'm beginning to feel being the only person on macOS using Nim trying to build a GUI app
22:36:45FromDiscord<ShalokShalom> Nim is spread
22:36:54FromDiscord<ShalokShalom> It has 10 bindings to UI librarys
22:41:36FromDiscord<ShalokShalom> This is sadly not updated, currently
22:41:37FromDiscord<ShalokShalom> https://github.com/Niminem/Neel
22:41:50FromDiscord<Elegantbeef> It also depended on chromium
22:42:56FromDiscord<Elegantbeef> Nimview/webgui are just better than neel due to that dependency
22:43:20FromDiscord<ShalokShalom> i see
22:43:29FromDiscord<Elegantbeef> They both use a single web renderer that's cross platform
22:43:39FromDiscord<Elegantbeef> This means you dont have to fight different render engines
22:43:55FromDiscord<Elegantbeef> They also dont depend on a specific browser being installed
22:44:07FromDiscord<Elegantbeef> Yes i know edge is now chrome based
22:44:18*TakinOver joined #nim
22:44:27FromDiscord<ShalokShalom> Chromium 😛
22:44:46FromDiscord<scipio> In reply to @ShalokShalom "This is sadly not": same thing indeed, I had looked into Neel too
22:45:10FromDiscord<ShalokShalom> Isnt there also one toolkit, that uses the installed system webview or browser?
22:45:14FromDiscord<ShalokShalom> I think this is a Rust one
22:45:27FromDiscord<scipio> in a forum thread where both the Neel and Nimview devs were complimenting eachother, an d now both quit? Saying Nimview development stoped due to Tauri using webview2?
22:45:59*lnxw37 joined #nim
22:46:06FromDiscord<scipio> I have Jonas Kruckenberg (Tauri dev) in my friends list but I don't think Tauri bindings will focus on Nim any time soon
22:46:08FromDiscord<Elegantbeef> Nim is a small community with a seemingly high user turnover rate
22:46:15FromDiscord<scipio> ao why on earth seize Nimview / Neel ?
22:46:33FromDiscord<scipio> In reply to @Elegantbeef "Nim is a small": I wonder why ... should be addressed
22:47:19FromDiscord<System64 ~ Flandre Scarlet> Finally I have GTK4
22:47:30FromDiscord<scipio> if dev retention isn't adressed, it'll remain small until extinct, which would be a shame as Nim's syntax alone is a reason to switch from e.g. Pythnon to Nim
22:47:38FromDiscord<ShalokShalom> 🥳
22:47:42FromDiscord<ShalokShalom> Congrats
22:48:36FromDiscord<scipio> I seriously don't get why a decent UI framework wouldn't be prio 1 for any cross-OS language
22:48:59FromDiscord<Elegantbeef> UI is quite a complex thing
22:48:59*TakinOver quit (Ping timeout: 260 seconds)
22:49:03FromDiscord<scipio> without one, why would a company ever try to hire language devs?
22:49:19FromDiscord<System64 ~ Flandre Scarlet> In reply to @scipio "without one, why would": What about Backend?
22:51:06FromDiscord<scipio> I saw a video presentation about Nim async/await by Dominik Picheta. @dom96 ? Am reading his book too, which got me to join this server and got me totally enthusiastic for Nim.↵↵In the video talk Dominik begins with "I currently work for Facebook, but in the evenings I try to work on Nim whenever I can"
22:51:15FromDiscord<scipio> well ... that could be _indicative_
22:51:41FromDiscord<scipio> a great dev loving a language, but working for another company because there are no jobs in that language. That is the world upside down, no
22:51:55FromDiscord<Elegantbeef> And now he's left the language
22:52:12FromDiscord<scipio> Dominik left Nim?
22:52:45FromDiscord<scipio> Nim has one book and the author dropped the language? Whut?
22:52:58FromDiscord<Elegantbeef> It has 3 books to be fair
22:53:17FromDiscord<System64 ~ Flandre Scarlet> sent a code paste, see https://play.nim-lang.org/#ix=4kM4
22:53:32FromDiscord<auxym> My understanding is that Dom wanted to distance himself from araq following a reddit comment which was, uh, less than delicate?
22:53:40FromDiscord<Elegantbeef> Yep
22:54:05FromDiscord<scipio> And for that somebody drops an entire languag?
22:54:08FromDiscord<scipio> (edit) "languag?" => "language?"
22:54:22FromDiscord<auxym> yeah, its unfortunate, from both people IMO
22:54:46FromDiscord<Phil> I think it was more used as an opportunity, there's a fair bit of history behind the guy
22:54:47FromDiscord<auxym> but I understand Dom's decision, too
22:54:48FromDiscord<scipio> Because of an online comment? I mean, picking up the phone and having a proper conversation about it isn't an option?
22:55:33FromDiscord<ShalokShalom> In reply to @scipio "I saw a video": treeform does work for Reddit
22:55:54FromDiscord<Elegantbeef> And actively uses Nim at reddit
22:56:35FromDiscord<scipio> My background isn't in CS, I hold an M.Sc. / Ph.D in Industrial Management, i.e. managing / pioneering / entrpreneuring any type of organization and I happen to be an auto-didact in coding.↵↵Bottom-line, I'm like a "bridge" between competences of various forms. I "talk tech & commerce". This Nim situation is weird
22:56:38FromDiscord<ShalokShalom> In reply to @scipio "Because of an online": Dom and Araq are very different persons, I would say
22:56:46FromDiscord<ShalokShalom> What connects them, is the code
22:56:57FromDiscord<<She>Horizon</Her>> In reply to @scipio "Because of an online": I mean, it's Dom's choice completely, and sometimes you can't put someone's views to the side and ignore it
22:57:16FromDiscord<<She>Horizon</Her>> Big difference in political (or otherwise) views causes that
22:57:25FromDiscord<auxym> In reply to @scipio "My background isn't in": i'm a mechanical engineer, so is mratsim IIRC, miran (core dev) is a civil engineer, you're welcome here 😉
22:57:36FromDiscord<scipio> Thx 😁
22:57:38FromDiscord<Elegantbeef> Araq does say a lot of things and behaves in a way that detracts many users
22:57:51FromDiscord<Elegantbeef> I'm just a fuckwit so i say you're not welcome here!
22:58:32FromDiscord<auxym> In reply to @Elegantbeef "*Araq does say a": yeah, like I said it's unfortunate, but Linus and other tech leaders have also had their less-than-stellar moments
22:58:40FromDiscord<Phil> In reply to @scipio "Thx 😁": TBH I've met more folks in coding that were non-CS people than actually CS people... but maybe that's because I'm also from the auto-didact front
22:59:26FromDiscord<Phil> While that's true, it's also very fair to say Linus has been an ass
22:59:39FromDiscord<Elegantbeef> Sure but linus actively tried to reduce his outbursts and really has been more sane in the past few years
23:00:13FromDiscord<ShalokShalom> https://www.reddit.com/r/programming/comments/yvc9er/why_i_enjoy_using_the_nim_programming_language_at/ @scipio
23:00:26FromDiscord<scipio> I'll have a read, brb
23:00:46FromDiscord<System64 ~ Flandre Scarlet> Is it normal I still can't compile an Owlkettle sample?
23:00:48FromDiscord<Elegantbeef> Someone not understanding 'they' is a perfectly valid pronoun' is just being purposely obtuse
23:00:56FromDiscord<Elegantbeef> Well i'm looking at the output
23:01:26FromDiscord<Elegantbeef> Oh the issue is that mingw expects `/` paths?
23:01:48FromDiscord<Phil> ... did I accidentally not post my comment or did it get deleted?
23:01:55FromDiscord<huantian> In reply to @Elegantbeef "Oh the issue is": oh that's probably it
23:02:03FromDiscord<Elegantbeef> can you compiler with `--listCmd`
23:02:13FromDiscord<Elegantbeef> compile with rather
23:03:39FromDiscord<System64 ~ Flandre Scarlet> In reply to @Elegantbeef "can you compiler with": still error
23:03:48FromDiscord<Elegantbeef> Of course
23:03:55FromDiscord<Elegantbeef> I want to see the c command
23:04:17FromDiscord<Elegantbeef> If listing things fixed problems lists would be more popular
23:04:18FromDiscord<scipio> btw is Andre Von Houck / Treeform also in this Discord? I was looking at Pixie and Fidget too for UI but it also doesn't seem to be actively developed on ?
23:04:23FromDiscord<Elegantbeef> Yes
23:04:40FromDiscord<Elegantbeef> Fidget has slowed down on development, but he's still actively working in that space
23:04:44FromDiscord<Elegantbeef> boxy exists for instance
23:05:09FromDiscord<Elegantbeef> Elcritch has also forked fidget to make fidgetty
23:05:11FromDiscord<Phil> In reply to @scipio "btw is Andre Von": The man regularly searches through messages that mention him or his projects to throw out answers 😛
23:05:23FromDiscord<System64 ~ Flandre Scarlet> In reply to @Elegantbeef "I want to see": https://media.discordapp.net/attachments/371759389889003532/1062145088622428191/message.txt
23:06:26FromDiscord<Elegantbeef> System can you compiler `echo "hello world"`?
23:06:36FromDiscord<Elegantbeef> Jesus why the hell do i write compiler instead of compile
23:08:23FromDiscord<System64 ~ Flandre Scarlet> sent a code paste, see https://paste.rs/lnW
23:08:32FromDiscord<scipio> ah yes, I can tag him even @treeform : question, hello, new Nim enthusiast here (aus Holland, wir sind Nachbarn! 😉 ) : I saw you passionately talking about your views on UI development / Nim native and how Pixie actively implements the Canvas, but for image rendering? ↵=> wouldn't this be a great basis for a _de facto_ Nim-native UI framework?
23:10:10FromDiscord<ShalokShalom> @scipio My default answer to this question https://medium.com/swlh/what-makes-godot-engine-great-for-advance-gui-applications-b1cfb941df3b
23:10:51FromDiscord<ShalokShalom> Nim supports Godot 3 somewhat. There has been little to no activity for the binding within the last months. The new version of Godot is not supported as of yet.
23:11:12FromDiscord<ShalokShalom> I personally think its far ahead of any other method to create UIs
23:11:27FromDiscord<Elegantbeef> System what do you get when you do `pkg-config --libs gtk4`?
23:11:47FromDiscord<Elegantbeef> Odd that mingw is using `11.1.0`
23:11:50FromDiscord<scipio> In reply to @ShalokShalom "I personally think its": I also looked at GoDot today yes
23:12:00FromDiscord<Elegantbeef> Why did you write `GoDot`?
23:12:00FromDiscord<Elegantbeef> It's godot
23:12:03FromDiscord<Elegantbeef> Godot is a word
23:12:07FromDiscord<scipio> (learning it was written in c++, I thought it would be written in Go)
23:12:29FromDiscord<System64 ~ Flandre Scarlet> sent a code paste, see https://paste.rs/0lH
23:13:07FromDiscord<ShalokShalom> In reply to @scipio "(learning it was written": Godots code base is actually C++ that uses a style that is more close to C
23:13:11FromDiscord<ShalokShalom> And its a joy to read
23:13:30FromDiscord<Elegantbeef> It's quite odd that it's somehow getting `11.1.0`
23:13:39FromDiscord<Elegantbeef> @huantian any ideas?
23:13:40FromDiscord<ShalokShalom> I personally disliked C++ a lot, and Godot did introduce me into beautful Cpp
23:13:55FromDiscord<scipio> @ShalokShalom are you Erik?
23:14:01FromDiscord<ShalokShalom> No
23:14:05FromDiscord<ShalokShalom> who is Erik?
23:14:24FromDiscord<ShalokShalom> But I can also speak German 🙂
23:14:25FromDiscord<scipio> The author of the article you mentioned as your default answer
23:14:30FromDiscord<ShalokShalom> Ah, I see.
23:14:31FromDiscord<ShalokShalom> No
23:14:37FromDiscord<ShalokShalom> I am just some Godot advocate 😄
23:14:43FromDiscord<huantian> sent a code paste, see https://play.nim-lang.org/#ix=4kM9
23:14:48FromDiscord<ShalokShalom> (edit) "beautful" => "beautiful" | "beautifulCpp ... " added "😄"
23:15:32FromDiscord<Elegantbeef> Wait i just noticed Nim is still looking in `dist/mingw64/bin`
23:15:33FromDiscord<huantian> wait no
23:15:35FromDiscord<huantian> yweah
23:15:42FromDiscord<huantian> it's using nim's mingw
23:16:20FromDiscord<scipio> @ShalokShalom well obviously I haven't read the entire article you mentioned yet, but I share the same search for UIs I'm seeing there. So if Godot would be a great solution, why not properly support its bindings in Nim?
23:16:23FromDiscord<System64 ~ Flandre Scarlet> Oh, might be why?
23:16:24FromDiscord<Elegantbeef> Any windows users know how to solve this 😄
23:16:28FromDiscord<treeform> In reply to @scipio "ah yes, I can": yes it would be and that is the plan all along. It's just UI framework that does what I want is a multi year effort. I work on that in spurts of motivation.
23:16:46FromDiscord<treeform> Currently I am doing some AI stuff with the https://theartbutton.ai/
23:16:49FromDiscord<Elegantbeef> Turns out making a usable UI framework takes forever
23:16:50FromDiscord<ShalokShalom> In reply to @scipio "<@208199869301522432> well obviously I": Because somebody has to do it
23:17:00FromDiscord<Elegantbeef> Shalok you look like someone
23:17:28FromDiscord<scipio> In reply to @treeform "yes it would be": Ahh hello Andre! I have been watching your videos today 🙂
23:17:37FromDiscord<ShalokShalom> I decided to bet on fsharp, I am only here today cause I really like this community
23:17:47FromDiscord<huantian> In reply to @Elegantbeef "*Any windows users know": yeah I have no idea how to tell nim how to do use the correct one
23:18:31FromDiscord<ShalokShalom> In reply to @scipio "<@208199869301522432> well obviously I": I am also waiting a little bit for Nimskull. They introduce a new way to create bindings
23:18:34FromDiscord<Saint> Hey what is the syntax for %{ }
23:18:39FromDiscord<ShalokShalom> I am looking forward, how this would look
23:18:39FromDiscord<treeform> In reply to @scipio "Ahh hello Andre! I": I am working on windy (OS low level stuff) pixie (fonts/vector graphics) and boxy (openGL GPU stuff)
23:18:41FromDiscord<Saint> How do I look it up?
23:19:02FromDiscord<Elegantbeef> It's `std/json`
23:19:23FromDiscord<Saint> Ty
23:20:22FromDiscord<Saint> (edit) "Ty" => "Ty!"
23:20:39FromDiscord<voidwalker> In reply to @auxym "My understanding is that": Damn I missed all the fun stuff. Can anyone link me up ? I love this kind of internet drama : D
23:21:14FromDiscord<leetnewb> In reply to @voidwalker "Damn I missed all": I think it's mostly on/linked to from his twitter
23:21:25FromDiscord<scipio> @treeform I was also dabbling a bit with Rust (but its syntax I find to be almost "alien" tbh) and therefore also exploring its UI frameworks (egui, druid, Iced) , and it look a bit like Pixie/Fidget is in the Iced territories, no?
23:21:40FromDiscord<scipio> (edit) "look" => "looks"
23:23:12FromDiscord<treeform> sorry, I don't know about the Rust GUI landscape
23:24:21FromDiscord<scipio> Having played with Nim for literally one day, it seems to me the language has a MASSIVE potential but development is being conducted in silos / people seem to be re-inventing the wheel instead of a coordinated effort to get somewhere.
23:24:44FromDiscord<System64 ~ Flandre Scarlet> I have no idea about how to install this GTK oof
23:24:48FromDiscord<scipio> I've been stumbling on UI frameworks that are either abandoned or not completed yet
23:25:06FromDiscord<cow> the Qt bindings are probably the most mature
23:25:45FromDiscord<voidwalker> yeah @scipio lots of momentary enthusiasm, great ideas being started in projects, but most end up nowhere, author loses enthusiasm, moves on to other things, nobody to pick up their work
23:25:45FromDiscord<cow> unless you want something written in Nim
23:27:00FromDiscord<ShalokShalom> In reply to @scipio "Having played with Nim": Couple of issues: GUI frameworks are huge. Bindings are complicated. The way Nim does create bindings, is both really useful and still complicated. Also: UI frameworks are either minimal or complicated to create bindings for. Again, for all those reasons, I think Godot is the way to go for.
23:27:38FromDiscord<ShalokShalom> The binding for 3 has proven, that its possible
23:28:04FromDiscord<cow> godot bindings need a specific version of godot though, right
23:28:18FromDiscord<ShalokShalom> I am maintaining a list of languages for Godot, and Nim has come up as one of the most consistent on the top:
23:28:36FromDiscord<ShalokShalom> In reply to @cow "godot bindings need a": Well, the interface changed between 3 and 4
23:28:55FromDiscord<ShalokShalom> Here is the list: https://github.com/Vivraan/godot-lang-support
23:29:12FromDiscord<huantian> Yeah I think k the main problem with Nim rn is that it’s mostly a community of hobbies with only a few capable or willing to maintain large projects
23:29:22FromDiscord<cow> In reply to @ShalokShalom "Well, the interface changed": it requires 3.0 iirc
23:29:36FromDiscord<treeform> sent a long message, see http://ix.io/2mgX
23:29:59FromDiscord<ShalokShalom> In reply to @cow "it requires 3.0 iirc": Aaahm, I would highly doubt that
23:30:06FromDiscord<ShalokShalom> It is surely not up to the most current version
23:30:09FromDiscord<cow> https://pragmagic.github.io/godot-nim/master/index.html
23:30:20FromDiscord<cow> the documentation still says it's 3.0
23:30:20FromDiscord<Elegantbeef> It works with modern 3.x
23:30:36FromDiscord<Elegantbeef> Thanks to sane versioning you can use it on godot 3.x
23:30:38FromDiscord<ShalokShalom> Yeah, that is definitely outdated information
23:30:58FromDiscord<ShalokShalom> Elegant, do you have commit rights for this repo?
23:31:05FromDiscord<ShalokShalom> Since I think you do and I send you a PR 😛
23:31:27FromDiscord<ShalokShalom> According to the recommended VSCode extension
23:31:35FromDiscord<ShalokShalom> And we could also change that 3.0 stuff
23:31:39FromDiscord<Elegantbeef> I do not have any commit rights
23:31:58FromDiscord<jmgomez> NimForUE is not too far away from here. UMG is also a great UI framework
23:32:27FromDiscord<ShalokShalom> That would be the most supported then
23:32:43FromDiscord<auxym> In reply to @voidwalker "Damn I missed all": I thought it was on reddit, apparently it was on the D forum, but there was a reddit thread about it. anyways: https://twitter.com/d0m96/status/1592827547582332929?cxt=HHwWgoDQoeSN7posAAAA
23:33:01FromDiscord<ShalokShalom> You seem to have commited directly, Elegant: https://github.com/pragmagic/godot-nim/commits/master
23:33:12FromDiscord<cow> "certificate that is not valid for www.nimble.directory. The certificate is only valid for badges.debian.net." ???
23:33:14FromDiscord<ShalokShalom> Maybe your power is bigger than you thought?
23:33:19FromDiscord<ShalokShalom> Code just commits for you 😛
23:33:33FromDiscord<cow> In reply to @jmgomez "NimForUE is not too": can you link UMG? hard to find it
23:33:35FromDiscord<Elegantbeef> Yea let's grab a non free game engine that's 10+GB to use as a GUI framework
23:33:48FromDiscord<ShalokShalom> In reply to @cow "can you link UMG?": thats the Unreal framework
23:33:49FromDiscord<jmgomez> In reply to @cow "can you link UMG?": sorry, it stands for Unreal Motion Graphics
23:33:56FromDiscord<voidwalker> In reply to @auxym "I thought it was": Looks to me that Araq is some sort of Jordan Peterson : D
23:34:13FromDiscord<ShalokShalom> In reply to @Elegantbeef "Yea let's grab a": I think its 30 to 40 GB
23:34:26FromDiscord<ShalokShalom> Insanely performance constly to build
23:34:28FromDiscord<Elegantbeef> 30 - 40GB is 10+
23:34:31FromDiscord<ShalokShalom> Almost no Linux support
23:34:35FromDiscord<Elegantbeef> I'm no expert in math but 30 \> 10
23:34:35FromDiscord<ShalokShalom> Yeah, thats true ^^
23:34:47FromDiscord<Elegantbeef> It supports linux
23:34:51FromDiscord<ShalokShalom> 🧐
23:34:54FromDiscord<ShalokShalom> Officially
23:34:55FromDiscord<Elegantbeef> They even ship precompiled linux binaries now
23:34:58FromDiscord<ShalokShalom> It doesnt really care
23:35:15FromDiscord<ShalokShalom> It used to run better with WINE than native
23:35:21FromDiscord<Elegantbeef> But it's still a proprietary game engine, that is massive and owned by what i consider a shit company
23:35:27FromDiscord<ShalokShalom> They promised top notch Linux support
23:35:34FromDiscord<ShalokShalom> And surely didnt deliver, imho
23:35:45FromDiscord<jmgomez> around 124GB if you include debug symbols
23:35:47FromDiscord<ShalokShalom> In reply to @Elegantbeef "But it's still a": Its an average company
23:35:51FromDiscord<ShalokShalom> And the source is available
23:36:03FromDiscord<Elegantbeef> "what i consider"
23:36:05FromDiscord<ShalokShalom> In reply to @jmgomez "around 124GB if you": Wunderful 🤩
23:36:05FromDiscord<cow> i guess compiled games are not necessarily that big though
23:36:15FromDiscord<Elegantbeef> I consider epic a very shitty company
23:36:33FromDiscord<ShalokShalom> Godot is just more suited to be used for one person projects
23:36:36FromDiscord<cow> they are owned by tencent right
23:36:43FromDiscord<ShalokShalom> Unreal is massive in almost all measurements
23:36:44FromDiscord<jmgomez> I dont like epic too much neither, but the engine is pretty well made
23:36:49FromDiscord<Elegantbeef> A majority is still owned by tencent
23:36:51FromDiscord<ShalokShalom> And great, potentially.
23:36:54FromDiscord<Elegantbeef> I mean tim sweeny
23:37:00FromDiscord<Elegantbeef> tencent owns a minority share
23:37:09FromDiscord<Elegantbeef> Something like 40% iirc
23:37:29FromDiscord<ShalokShalom> In reply to @Elegantbeef "I consider epic a": They battle Apple and give a lot of money to smaller projects
23:37:31FromDiscord<huantian> In reply to @ShalokShalom "And surely didnt deliver,": What did you expect when EGS is still windows only
23:37:40FromDiscord<ShalokShalom> They spend like 500.000 for both Blender and Godot
23:37:44FromDiscord<ShalokShalom> And many other projects.
23:37:58FromDiscord<cow> In reply to @ShalokShalom "They battle Apple and": they battle apple for the wrong reasons unfortunately
23:38:08FromDiscord<ShalokShalom> They do
23:38:22FromDiscord<ShalokShalom> I mean, considering how many shitty companies are out there
23:38:28FromDiscord<ShalokShalom> Epic isnt the first that comes to my mind
23:38:30FromDiscord<Elegantbeef> Huan i'm still confused about sweeny's linux comments, I'm already Canadian and use Linux. Where do i move?!
23:38:30FromDiscord<Elegantbeef> Yes the mega fund is good, but that doesnt suddenly make them less shit
23:38:32FromDiscord<ShalokShalom> I dont praise them
23:38:38FromDiscord<Elegantbeef> EGS was actively anti consumer
23:38:46FromDiscord<cow> In reply to @ShalokShalom "Epic isnt the first": definitely not, but in epic's niche I very much prefer steam
23:38:51FromDiscord<ShalokShalom> And lots of stuff is pro consumer
23:38:58FromDiscord<Elegantbeef> What?
23:39:10FromDiscord<Elegantbeef> EGS is actively anti consumer, buying exclusivity is anti consumer
23:39:11FromDiscord<ShalokShalom> Like the reduced costs for both hosting stuff on their shop and to use the engine
23:39:12FromDiscord<cow> steam contributes to linux at least
23:39:40FromDiscord<ShalokShalom> In reply to @cow "definitely not, but in": I prefer that they both compete for users
23:39:41FromDiscord<Elegantbeef> EGS doesnt even have user reviews yet
23:39:54FromDiscord<ShalokShalom> In reply to @cow "steam contributes to linux": Also just for egoistic reasons.
23:39:58FromDiscord<cow> In reply to @ShalokShalom "I prefer that they": yes, it's nice that the monopoly has been broken
23:40:12FromDiscord<ShalokShalom> Valce isnt a better company than Epic, isnt?
23:40:21FromDiscord<ShalokShalom> In reply to @cow "yes, it's nice that": Is it?
23:40:31FromDiscord<Elegantbeef> I'd say valve is a better company yes
23:40:34FromDiscord<ShalokShalom> Epic has maybe broken the monopoly of Apple
23:40:37FromDiscord<ShalokShalom> Not Valve
23:40:42FromDiscord<ShalokShalom> imho
23:40:46FromDiscord<cow> epic is also monopolizing some games
23:40:51FromDiscord<cow> to their shitty launcher
23:40:53FromDiscord<cow> like rocket league
23:41:06FromDiscord<Elegantbeef> Valve's steam publishing agreement has a few very pro consumer arrangements
23:41:15FromDiscord<Elegantbeef> But valve also has history of anti consumer practicses
23:41:22FromDiscord<ShalokShalom> In reply to @Elegantbeef "I'd say valve is": They are already at the comfortable position, at which they dont need to do, what Epic is pretty much forced to do
23:41:27FromDiscord<cow> In reply to @ShalokShalom "Also just for egoistic": not sure if steam OS or them making proton was first
23:41:29FromDiscord<ShalokShalom> Valve defends the N1 position
23:41:31FromDiscord<Elegantbeef> Refunding not being existent until australia petitioned it
23:41:34FromDiscord<cow> so i can't answer that
23:41:59FromDiscord<cow> but yeah steam is also proprietary and has DRM
23:42:01FromDiscord<ShalokShalom> In reply to @cow "not sure if steam": Both went hand in hand
23:42:05FromDiscord<jmgomez> In reply to @cow "like rocket league": didnt they buy the whole game?
23:42:20FromDiscord<cow> In reply to @jmgomez "didnt they buy the": possibly, it's a dick move from them nevertheless
23:42:22FromDiscord<Elegantbeef> I dont really care about them buying rocket league and moving to EGS
23:42:25FromDiscord<ShalokShalom> In reply to @cow "epic is also monopolizing": They have to!
23:42:30FromDiscord<Elegantbeef> You can ship your product wherever you want
23:42:34FromDiscord<jmgomez> well, is not like they were force to sell..
23:42:39FromDiscord<Elegantbeef> Purchasing exclusivity is actively anti consumer
23:42:41FromDiscord<ShalokShalom> Steam is monopolising the whole gaming industry
23:43:06FromDiscord<Elegantbeef> DRM is optional though↵(@cow)
23:43:17FromDiscord<jmgomez> I dont really care to what those companies are doing though. If they do wrong, eventually consumers will make them pay
23:43:30FromDiscord<cow> that has surely worked out for facebook
23:43:31FromDiscord<Elegantbeef> I dislike the premise of valve disappearing and steam going away, but many games on steam are DRM Free
23:44:02*xet7 joined #nim
23:44:48FromDiscord<cow> idk, i'll just end up deleting all proprietary software from my PC eventually
23:45:04*xet7 quit (Remote host closed the connection)
23:45:07FromDiscord<voidwalker> Valve did good, ethically speaking, for a company in their position. They gave back much to opensource. DRMs are up to game companies/developers. Of course the model with the loot boxes trading/buying in their own games is somewhat scummy but..
23:45:49FromDiscord<cow> hot take: loot boxes are not scummy, unless they make the game either pay to win or pay to progress
23:45:58FromDiscord<Elegantbeef> Atleast you can resell the digital items on their market place unlike other games
23:46:25FromDiscord<cow> In reply to @Elegantbeef "Atleast you can resell": you can sell games you bought on steam?
23:46:47FromDiscord<System64 ~ Flandre Scarlet> In reply to @cow "epic is also monopolizing": They still give free games
23:46:48FromDiscord<voidwalker> What would really be great for us (not to game companies though), is the ability to resell steam games. They could take a small cut of the resale. If I can sell my ps4 disc after I am done with it, why not digital games? same thing
23:47:44FromDiscord<cow> keys are already being sold, and they are kind of tolerated
23:47:50FromDiscord<cow> as long as the keys aren't fraudulent
23:48:23FromDiscord<cow> In reply to @voidwalker "What would really be": definitely!
23:49:04FromDiscord<voidwalker> I'd actually buy games in this model, feeling I actually "own" my copy, and not just a person/account bound permission to play.
23:49:26FromDiscord<cow> same should apply to ebooks with DRM
23:49:45FromDiscord<cow> but ebooks with DRM is way more abhorrent than software with DRM
23:49:54FromDiscord<cow> for some reason
23:49:59FromDiscord<cow> (edit) "reason" => "reason, I think?"
23:50:04FromDiscord<cow> although I can't really say why
23:50:48FromDiscord<huantian> Why has this chat become DRM talk lamp
23:50:52FromDiscord<huantian> (edit) "lamp" => "lmao"
23:51:08FromDiscord<cow> In reply to @auxym "I thought it was": re: this, a lot of english as a second language teachers don't teach the "they" singular usage, because it used to be archaic, right?
23:51:15FromDiscord<voidwalker> DRM protected nim modules
23:51:25FromDiscord<voidwalker> to stay on topic : D
23:51:37FromDiscord<cow> In reply to @huantian "Why has this chat": unreal engine -> epic -> debate whether epic or valve is shittier
23:52:19FromDiscord<cow> In reply to @cow "re: this, a lot": it's really the english as a second language teacher's fault if they don't pick up the correct contemporary usage of singular they though