00:09:12 | * | tk quit (Quit: Well, this is unexpected.) |
00:09:39 | * | tk joined #nim |
00:10:08 | FromDiscord | <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:23 | FromDiscord | <jtv> I know I've seen it, but finally want it and can't find it |
00:10:27 | FromDiscord | <Gumbercules> Discardable |
00:10:35 | FromDiscord | <jtv> Thanks |
00:24:51 | FromDiscord | <Phil> jtv! How do you test 😛 ? |
00:25:24 | FromDiscord | <Phil> Not testing in general, I mean more specifically your approach to testing in nim |
00:26:40 | FromDiscord | <jtv> I've been scraping by with the built-in test stuff. It's definitely got some oddities, but it's okay |
00:27:49 | FromDiscord | <Phil> So mostly integration testing, aka testing an entire batch of functionality? |
00:28:06 | FromDiscord | <jtv> Well, I do plenty of end-to-end testing too |
00:29:26 | FromDiscord | <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:49 | FromDiscord | <jtv> Because I usually did it with, isMainModule, and so it gets stale at some point |
00:30:34 | FromDiscord | <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:54 | FromDiscord | <Phil> Or do you avoid that by structuring your code in a specific way? |
00:33:04 | FromDiscord | <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:58 | FromDiscord | <Phil> ...can....can that macro deal with generic procs? |
00:35:08 | FromDiscord | <Elegantbeef> Phil still after the difficult |
00:35:12 | FromDiscord | <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:45 | FromDiscord | <jtv> It is nothing polished, I doubt it would work across modules actually, was just something quick and dirty |
00:35:45 | FromDiscord | <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:01 | FromDiscord | <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:36 | FromDiscord | <jtv> I do wish aspect oriented programming had taken off, there are some good use cases for it 🙂 |
00:38:43 | FromDiscord | <Elegantbeef> Aspect is like concepts? |
00:40:07 | FromDiscord | <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:27 | FromDiscord | <Phil> sent a code paste, see https://play.nim-lang.org/#ix=4kGT |
00:40:33 | FromDiscord | <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:47 | FromDiscord | <Gumbercules> Because no real mocking solution |
00:40:53 | FromDiscord | <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:36 | FromDiscord | <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:32 | FromDiscord | <Gumbercules> https://docs.spring.io/spring-framework/docs/2.5.5/reference/aop.html |
00:43:44 | FromDiscord | <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:03 | FromDiscord | <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:14 | FromDiscord | <Gumbercules> It was soul sucking |
00:44:17 | FromDiscord | <jtv> 🥶 |
00:45:14 | FromDiscord | <Gumbercules> Coldfusion was worse though |
00:45:20 | FromDiscord | <Gumbercules> Way worse... |
00:45:28 | FromDiscord | <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:33 | FromDiscord | <jtv> Never did any coldfusion |
00:47:27 | FromDiscord | <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:00 | FromDiscord | <Gumbercules> And yeah eventually Java makes you want to crawl into a hole and die |
00:48:13 | FromDiscord | <Gumbercules> Best Java codebase I worked on was at ten square games |
00:48:16 | FromDiscord | <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:30 | FromDiscord | <Gumbercules> Their CTO had his shit together and wrote most of the plumbing code |
00:48:49 | FromDiscord | <Gumbercules> Java takes OOP to the absolute extreme |
00:49:00 | FromDiscord | <Gumbercules> But even C# sucks to write IMO |
00:49:08 | FromDiscord | <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:46 | FromDiscord | <jtv> Tho Java did forego multiple inheritance and popularize the interface, for whatever that's worth |
00:49:51 | FromDiscord | <Gumbercules> I get to write Elixir now and it's a joy in comparison |
00:49:57 | FromDiscord | <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:09 | FromDiscord | <Phil> That you shouldn't know about because it's hidden under an abstraction |
00:50:24 | FromDiscord | <Phil> But then you do need to know about it somewhat because suddenly you have to provide an instance for something |
00:50:26 | FromDiscord | <Gumbercules> If you think Jackson is magic wait till you use the Spring framework |
00:50:48 | FromDiscord | <Gumbercules> You don't really write code anymore, just configuration |
00:50:48 | FromDiscord | <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:59 | FromDiscord | <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:12 | FromDiscord | <Gumbercules> Hahaha sounds exactly right |
00:51:29 | FromDiscord | <jtv> Oh, god, I forgot about Java Beans, 🤮 |
00:51:41 | FromDiscord | <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:11 | FromDiscord | <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:20 | FromDiscord | <Phil> (edit) "java" => "java-spring" |
00:53:09 | FromDiscord | <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:26 | FromDiscord | <Phil> I still have to deal with our own ORM-lite system from a monolith that predates Hibernate |
00:54:13 | FromDiscord | <jtv> Your job doesn't sound like something I'd enjoy 🙂 |
00:54:40 | FromDiscord | <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:58 | FromDiscord | <jtv> Yeah |
00:55:03 | FromDiscord | <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:20 | FromDiscord | <jtv> Meaning, in a programming job? |
00:55:45 | FromDiscord | <Phil> Coded marginally longer than that, if I count my master's thesis that's an additional year to tack on |
00:55:59 | FromDiscord | <Phil> Yeah, I swapped from biology/bioinformatics to webdev pretty much |
00:56:05 | FromDiscord | <jtv> Cool |
00:57:16 | FromDiscord | <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:01 | FromDiscord | <jtv> Yes |
00:59:20 | FromDiscord | <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:27 | FromDiscord | <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:19 | FromDiscord | <Phil> Like, you want to ensure that somebody has XY implemented? |
01:00:35 | FromDiscord | <Phil> for a givnen video encoder |
01:00:49 | FromDiscord | <voidwalker> So that I define them somewhere, and I would get automatic exception/error if they are not correct for that encoder |
01:01:18 | FromDiscord | <voidwalker> Or if I simply want to restrict them to a subset of possible values, vs what the encoder can actually do |
01:01:22 | FromDiscord | <Phil> So basically validate an imported module? |
01:01:51 | FromDiscord | <Phil> That actually makes me wonder if you can iterate over the symbols a module provides... |
01:02:06 | FromDiscord | <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:14 | FromDiscord | <voidwalker> what module are you reffering to ? |
01:02:18 | FromDiscord | <voidwalker> .nim module ? |
01:02:22 | FromDiscord | <Phil> Yah |
01:02:45 | FromDiscord | <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:51 | FromDiscord | <Phil> sent a code paste, see https://play.nim-lang.org/#ix=4kGV |
01:03:16 | FromDiscord | <voidwalker> There are all sorts of weird stuff people wrote for nim, I am always surprised with the finds |
01:03:33 | FromDiscord | <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:59 | FromDiscord | <voidwalker> Huh.. |
01:03:59 | FromDiscord | <Phil> Actually that would be the most basic way: Use the type system |
01:04:34 | FromDiscord | <Gumbercules> In reply to @Isofruit "Should I ever actually": I strongly recommend playing with a lisp or scheme |
01:04:58 | FromDiscord | <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:00 | FromDiscord | <Gumbercules> You approach programming much differently with these paradigms |
01:05:23 | FromDiscord | <Phil> Once you have that object you then basically only have to ensure that nothing in it is nil |
01:05:47 | FromDiscord | <Gumbercules> I also recommend toying with forth and assembly |
01:05:56 | FromDiscord | <Gumbercules> Just for the exposure |
01:06:09 | FromDiscord | <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:10 | FromDiscord | <jtv> Oh, forth was particularly fun |
01:06:34 | FromDiscord | <voidwalker> (edit) "is" => "it" | "ithas ... keysseq" added "its" | "seq," => "seq I define," |
01:06:42 | FromDiscord | <Elegantbeef> no↵(@Phil) |
01:06:59 | FromDiscord | <Phil> In reply to @Elegantbeef "no (<@180601887916163073>)": My disappointment is immeasurable and my day is ruined |
01:07:06 | FromDiscord | <voidwalker> oh elegantbeef, just the kind of beef I was hoping for : ) |
01:07:16 | FromDiscord | <jtv> I've done plenty of asm, a lot on old Sparc or motorola chips, and enough x86 to hate my life |
01:07:30 | FromDiscord | <Elegantbeef> There is an RFC or PR to add it iirc phil |
01:07:31 | FromDiscord | <Elegantbeef> But it's not merged |
01:07:47 | FromDiscord | <Elegantbeef> Really though it's not a complicated feature to add, dont recall why it wasnt |
01:07:54 | FromDiscord | <Elegantbeef> It's one new VM op code |
01:07:58 | FromDiscord | <Phil> My disappointment has slightly abated and my day has been infused with a bit of hope |
01:08:48 | FromDiscord | <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:32 | FromDiscord | <voidwalker> But that would be merely for keeping 1:1 logical equivalency with the concept |
01:09:43 | FromDiscord | <Phil> Okay, I'm outpaced, it's....oh shit I should go to sleep |
01:10:10 | FromDiscord | <voidwalker> any ideas Beef, ever heard/done something similar ? |
01:10:21 | FromDiscord | <voidwalker> or what should I google for |
01:11:00 | FromDiscord | <voidwalker> I guess it would be, schema validation ? |
01:11:28 | FromDiscord | <Elegantbeef> I dont know what you mean |
01:11:54 | FromDiscord | <voidwalker> https://github.com/PMunch/jsonschema |
01:12:01 | FromDiscord | <Phil> God damn, the "day is ruined" meme is only 5 years old |
01:12:18 | FromDiscord | <voidwalker> something like this, but where I can also define values that the keys can take |
01:12:19 | FromDiscord | <Phil> Ah, wrong channel... should be off to sleep anyway, ciao |
01:16:04 | FromDiscord | <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:25 | FromDiscord | <voidwalker> Doesn't feel right to do it ad hoc : ) |
01:19:08 | FromDiscord | <jtv> Well, then design a constraint language, write your rules, and build a unification engine 🙂 |
01:19:33 | FromDiscord | <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:45 | FromDiscord | <scipio> I'm not really getting any code completion suggestions on Sublime Text 4, MacOS. ↵Anybody here using macOS for NIm coding? |
01:20:38 | FromDiscord | <jtv> Yes, but not in an IDE. I've had friends get the VSCode plugin working fine |
01:28:34 | FromDiscord | <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:27 | FromDiscord | <scipio> In reply to @jtv "Yes, but not in": You're using NeoVim or something you mean? Something else on macOS ? |
01:30:21 | FromDiscord | <jtv> Emacs, because I'm old and busted |
01:31:43 | FromDiscord | <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:50 | FromDiscord | <jtv> Oh yeah, they don't seem to pick up any exports from if importing from, say, `../config` |
02:13:06 | FromDiscord | <RukkaPlus> In reply to @RukkaPlus "Hi there! Do you": Huh... I want to download the stdlib documentation |
02:22:10 | FromDiscord | <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:36 | FromDiscord | <Gumbercules> I don't use nimble anymore though, so I probably won't be any help on the advice side of things |
02:22:45 | FromDiscord | <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:54 | FromDiscord | <Gumbercules> chup |
02:23:01 | FromDiscord | <Gumbercules> nimble is hot garbage |
02:23:07 | FromDiscord | <jtv> Yeah :/ |
02:23:39 | FromDiscord | <Gumbercules> tis what happens when a fifteen year old writes your package manager I guess |
02:23:42 | FromDiscord | <Gumbercules> I think Dom was around 15 back then, not 100% sure |
02:23:49 | FromDiscord | <Gumbercules> was def young af |
02:24:13 | FromDiscord | <Gumbercules> also used to be called babel |
02:24:15 | FromDiscord | <Gumbercules> when Nim was Nimrod |
02:24:22 | FromDiscord | <Gumbercules> and we were all biblical and shit |
02:24:41 | FromDiscord | <jtv> Yeah, the bible stuff is still a bit heavy actually |
02:24:52 | FromDiscord | <jtv> 🤷♂️ |
02:27:33 | FromDiscord | <Gumbercules> missed opportunity to write TowerOS |
02:27:46 | FromDiscord | <jtv> LOL |
03:54:59 | FromDiscord | <T0lk1en> Hey boys I have a quick question if anyone is on |
03:56:32 | FromDiscord | <huantian> no need to ask to ask |
03:56:33 | FromDiscord | <huantian> just ask |
03:56:38 | FromDiscord | <T0lk1en> How do I enable one function to use a variable from another function without declaring the variable outside the function |
03:56:46 | FromDiscord | <T0lk1en> Or sorry “procedure” |
03:56:57 | FromDiscord | <huantian> pass the variable to the other function |
03:57:18 | FromDiscord | <T0lk1en> Wdym by that? |
03:57:22 | FromDiscord | <T0lk1en> Sorry new |
03:57:41 | FromDiscord | <huantian> actually can you describe what your problem is/ why you want this? |
03:57:58 | FromDiscord | <huantian> you can't really simply use a local variable from one function in another, it doesn't "make sense" |
03:59:18 | FromDiscord | <T0lk1en> Sorry for no ss I don’t have discord on the computer |
03:59:40 | FromDiscord | <T0lk1en> Also I will be changing the key |
03:59:51 | FromDiscord | <T0lk1en> https://media.discordapp.net/attachments/371759389889003532/1061856804411297865/A6E5D8E7-E1FA-4D1B-BC72-0DD82996879A.jpg |
04:00:11 | FromDiscord | <T0lk1en> It’s a password manager. I’m trying to encrypt and decrypt the contents |
04:01:20 | FromDiscord | <huantian> uhhhhh I'm not too sure what you're going for here |
04:01:28 | FromDiscord | <huantian> what do you expect `encrypted_contents` to be? |
04:01:32 | FromDiscord | <huantian> in the second function |
04:01:58 | FromDiscord | <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:52 | FromDiscord | <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:25 | FromDiscord | <T0lk1en> Never mind I have got around the problem by not being an idiot and by reading from the now encrypted file |
04:12:42 | FromDiscord | <ted__> sent a code paste, see https://play.nim-lang.org/#ix=4kHm |
04:13:25 | FromDiscord | <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:34 | FromDiscord | <Elegantbeef> sent a code paste, see https://play.nim-lang.org/#ix=4kHo |
04:16:52 | FromDiscord | <Elegantbeef> sent a code paste, see https://play.nim-lang.org/#ix=4kHp |
04:16:59 | * | azimut quit (Ping timeout: 255 seconds) |
04:17:09 | FromDiscord | <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:11 | FromDiscord | <ted__> ah! I'd set it to a variable, but hadn't tried putting the var on the last line |
04:18:10 | FromDiscord | <Elegantbeef> or `proc(value: string): int` |
04:18:37 | FromDiscord | <demotomohiro> This also compiles: |
04:18:56 | FromDiscord | <demotomohiro> sent a code paste, see https://play.nim-lang.org/#ix=4kHr |
04:19:00 | FromDiscord | <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:04 | FromDiscord | <Gumbercules> and your input is not 16 bytes in length |
04:19:31 | FromDiscord | <T0lk1en> What does assert do? |
04:19:38 | FromDiscord | <Gumbercules> asserts that a condition is true |
04:19:39 | FromDiscord | <T0lk1en> And how can I avoid this problem |
04:19:49 | FromDiscord | <Gumbercules> provide an input of sixteen bytes in length |
04:19:55 | FromDiscord | <Gumbercules> pad your input if you need to |
04:20:11 | FromDiscord | <T0lk1en> Lol aight I’ll see what I can do |
04:20:36 | FromDiscord | <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:40 | FromDiscord | <jtv> @T0lk1en it is VERY clear, per our conversation the other day, that you should NEVER use whatever you end up producing 🙂 |
04:20:57 | FromDiscord | <Gumbercules> yeah don't roll your own crypto |
04:20:59 | FromDiscord | <Gumbercules> it's never a good idea |
04:21:01 | FromDiscord | <T0lk1en> @jtv lemme learn bro |
04:21:08 | FromDiscord | <Gumbercules> but I mean, have fun |
04:21:14 | FromDiscord | <Gumbercules> just don't tell anyone else to use it 🙂 |
04:21:17 | FromDiscord | <jtv> Learn, but still don't use it |
04:21:29 | FromDiscord | <T0lk1en> Never thought intended to |
04:21:36 | FromDiscord | <Gumbercules> good stuff |
04:21:37 | FromDiscord | <Gumbercules> learning is good |
04:21:50 | FromDiscord | <Gumbercules> you know what a really fun book is? |
04:21:57 | FromDiscord | <T0lk1en> Lemme hear it |
04:22:16 | FromDiscord | <Gumbercules> https://www.amazon.com/Hacking-Art-Exploitation-Jon-Erickson/dp/1593271441 |
04:22:24 | FromDiscord | <demotomohiro> AES requires at least 128bits keys and keys consists of only with 16 printable characters would not be good enough. |
04:22:25 | FromDiscord | <Gumbercules> will teach you quite a bit about programming and computers |
04:22:47 | FromDiscord | <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:48 | FromDiscord | <Gumbercules> but you probably also need to know a thing or two about programming and computers |
04:23:05 | FromDiscord | <T0lk1en> What is roll your own crypto |
04:23:23 | FromDiscord | <Gumbercules> you famous |
04:23:32 | FromDiscord | <T0lk1en> Book looks good. Might have to cop |
04:23:44 | FromDiscord | <Gumbercules> I can probably find you a pdf |
04:23:51 | FromDiscord | <jtv> I've done some stuff, esp in cryptography 🙂 |
04:24:01 | FromDiscord | <Gumbercules> https://repo.zenk-security.com/Magazine%20E-book/Hacking-%20The%20Art%20of%20Exploitation%20(2nd%20ed.%202008)%20-%20Erickson.pdf |
04:24:02 | FromDiscord | <Gumbercules> that was easy |
04:25:11 | * | jmdaemon joined #nim |
04:25:45 | FromDiscord | <Gumbercules> In reply to @T0lk1en "What is roll your": write your own cryptographic code |
04:25:54 | FromDiscord | <Gumbercules> so in other words you shouldn't try to implement popular cryptographic algorithms |
04:26:04 | FromDiscord | <T0lk1en> I’m using aes tho |
04:26:13 | FromDiscord | <jtv> Mark Dowd and John McDonald's book is far deeper on exploitation, though I think it doesn't cover cryptography |
04:26:29 | FromDiscord | <jtv> That's not the meaning of the phrase |
04:26:40 | FromDiscord | <jtv> AES is like a nail, and you are trying to build a mansion |
04:26:54 | FromDiscord | <jtv> The mansion is going to be garbage, no matter how good the shit in your toolbox is |
04:27:16 | FromDiscord | <jtv> There is WAY too much knowledge to using it all right |
04:27:18 | FromDiscord | <T0lk1en> I guess I’m not catching on. Is the saying meant to say “you all suck leave cryptography to pros” |
04:27:37 | FromDiscord | <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:44 | FromDiscord | <jtv> Not that you suck, just that it's so fundamentally hard that even cryptographers often get it wrong |
04:27:55 | FromDiscord | <jtv> Yeah, it's a good book 🙂 |
04:28:27 | FromDiscord | <T0lk1en> Aight I gotchu. Better safe than sorry. Gimme post code on github in about an hour ish |
04:31:04 | FromDiscord | <jtv> @Gumbercules you in computer security, or just knowledgable in it?? |
04:31:22 | FromDiscord | <Gumbercules> Neither really, most of my professional experience is in game development |
04:31:31 | FromDiscord | <Gumbercules> and game engine dev |
04:31:50 | FromDiscord | <jtv> Java games?? 😭 |
04:31:58 | FromDiscord | <Gumbercules> Haha no, that was much earlier in my career |
04:32:03 | FromDiscord | <jtv> Okay, phew 🙂 |
04:32:03 | FromDiscord | <Rika> In reply to @jtv "Java games?? 😭": Don’t mention the demons |
04:32:04 | FromDiscord | <Gumbercules> although I've worked at a few studios doing backend stuff on the JVM |
04:32:34 | FromDiscord | <jtv> Yeah, even in pretty big tech companies there's still way too much Java out there :/ |
04:32:37 | FromDiscord | <Gumbercules> yup |
04:33:03 | FromDiscord | <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:15 | FromDiscord | <T0lk1en> What got you into nim |
04:33:21 | FromDiscord | <Gumbercules> was living in Helsinki and life wouldn't allow for it at the time |
04:33:31 | FromDiscord | <jtv> Oh, Helsinki is nice |
04:33:49 | FromDiscord | <Gumbercules> yeah, I very much enjoyed living there |
04:33:55 | FromDiscord | <Gumbercules> In reply to @T0lk1en "What got you into": not sure who you're asking this to |
04:34:29 | FromDiscord | <T0lk1en> You specifically but everyone should feel free to answer |
04:37:02 | FromDiscord | <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:23 | FromDiscord | <T0lk1en> Cool |
04:37:43 | FromDiscord | <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:15 | FromDiscord | <Gumbercules> https://github.com/fragworks/frag was my first project in Nim |
04:38:20 | FromDiscord | <Gumbercules> well the first one that really did anything |
04:38:41 | FromDiscord | <Gumbercules> it was also a fucking mess |
04:38:46 | FromDiscord | <Gumbercules> but, gotta start somewhere |
04:38:59 | FromDiscord | <jtv> LOL |
04:42:55 | FromDiscord | <Gumbercules> my advice is - don't get into games, and if you do, go the indie route |
04:43:53 | FromDiscord | <Gumbercules> you can make a lot more money and avoid lots of burnout elsewhere |
04:44:59 | FromDiscord | <Gumbercules> takes a special kind of masochist to make it in the games industry |
04:45:15 | FromDiscord | <Gumbercules> which I am not, and ultimately was the reason I got out |
04:47:16 | FromDiscord | <Gumbercules> speaking of Java games.... I think Anuke was going to rewrite https://github.com/Anuken/Mindustry in Nim but gave up |
04:47:26 | FromDiscord | <Gumbercules> probably because it would have been an F ton of work |
04:47:57 | FromDiscord | <Elegantbeef> I dont think they gave up as much as it's a testbed for their framework/engine |
04:47:58 | FromDiscord | <Gumbercules> or maybe not... https://github.com/Anuken/fau - haven't spoken to them in a while |
04:48:05 | FromDiscord | <Gumbercules> gotcha |
05:05:47 | FromDiscord | <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:00 | FromDiscord | <Gumbercules> It was something... |
05:07:35 | FromDiscord | <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:06 | FromDiscord | <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:08 | FromDiscord | <Gumbercules> Supercell's Java folks were nuts though |
05:10:33 | FromDiscord | <jtv> Sounds like a cool place |
05:11:00 | FromDiscord | <Gumbercules> Yeah all the companies I interviewed with and worked at in Helsinki, minus one, were pretty awesome |
05:11:17 | FromDiscord | <Gumbercules> the guys that run Housemarque are esp cool |
05:11:54 | FromDiscord | <jtv> Where do you live now?? |
05:12:00 | FromDiscord | <Gumbercules> outside of Austin |
05:12:10 | FromDiscord | <jtv> Ah. Well, better weather anyway |
05:16:00 | FromDiscord | <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:38 | FromDiscord | <jtv> Yeah, I grew up in Front Royal, and I lived around DC until about 13 years ago |
05:16:43 | FromDiscord | <Gumbercules> ah cool |
05:16:46 | FromDiscord | <jtv> Maybe 15 now |
05:17:32 | FromDiscord | <jtv> Where in Fairfax you from? |
05:18:17 | FromDiscord | <Gumbercules> Born in Herndon, moved to Chantilly, then Oakton and then went to VCU |
05:18:37 | FromDiscord | <Gumbercules> did not study anything related to computers 😄 |
05:19:00 | FromDiscord | <Gumbercules> mostly studied keg stands |
05:19:07 | FromDiscord | <jtv> All places I know like the back of my hand 🙂 Including VCU, my brother went there |
05:19:12 | FromDiscord | <Gumbercules> ah cool! |
05:21:41 | FromDiscord | <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:28 | FromDiscord | <jtv> Well, it was much more rural when I was growing up. Now it's just an extended suburb |
05:22:40 | FromDiscord | <Gumbercules> Yeah, the suburb creep is crazy |
05:23:04 | FromDiscord | <Gumbercules> @Varriount and I met up once - they were going to Mason |
05:23:05 | FromDiscord | <jtv> Once AOL went in at Dulles, the sprawl down 66 started. |
05:23:09 | FromDiscord | <Gumbercules> yeah |
05:23:18 | FromDiscord | <jtv> So basically Front Royal is a suburb of Dulles 🙂 |
05:24:16 | FromDiscord | <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:35 | FromDiscord | <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:51 | FromDiscord | <jtv> Yeah, I like rural, I love urban, I hate the in between |
05:25:00 | FromDiscord | <Gumbercules> I agree |
05:25:31 | FromDiscord | <Elegantbeef> -d\:nimPreviewHashRef\` enables hashing ref types |
05:25:56 | FromDiscord | <Elegantbeef> but they hash the pointer not the data so keep that in mind |
05:26:28 | FromDiscord | <jtv> That's good enough for my purposes, thank you! |
05:27:32 | FromDiscord | <Gumbercules> did not know about that one |
05:27:44 | FromDiscord | <Gumbercules> I had the playground open |
05:30:00 | FromDiscord | <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:29 | FromDiscord | <Gumbercules> I haven't touched that thing since 2016 |
05:32:06 | FromDiscord | <jtv> Honoring your good initial work 🙂 |
05:32:09 | FromDiscord | <Gumbercules> It'd be nice to add some more features to it though |
05:32:15 | FromDiscord | <Gumbercules> well yeah but they've done a lot more since I think |
05:32:54 | FromDiscord | <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:21 | FromDiscord | <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:45 | FromDiscord | <Gumbercules> It'd be sweet if we could set compiler switches and choose between versions of Nim |
05:34:01 | FromDiscord | <Gumbercules> maybe I'll work up the motivation to PR it |
05:34:07 | FromDiscord | <Elegantbeef> You can choose between versions of Nim |
05:34:11 | FromDiscord | <Elegantbeef> But yea it'd be nice to have compiler flags |
05:34:57 | FromDiscord | <Gumbercules> oh I didn't see that |
05:34:59 | FromDiscord | <Gumbercules> nice |
05:35:23 | FromDiscord | <Gumbercules> also if we could expose the generated C code |
05:35:28 | FromDiscord | <Gumbercules> that'd be pretty rad |
05:36:33 | FromDiscord | <Gumbercules> I'm pretty sure google got rid of anonymous gists because of us |
05:36:37 | FromDiscord | <Gumbercules> and the nimbot |
05:36:51 | FromDiscord | <Gumbercules> !echo 1+1 |
05:37:11 | FromDiscord | <Gumbercules> wtf nimbot |
05:38:23 | FromDiscord | <Gumbercules> oh it's |
05:38:31 | FromDiscord | <jtv> Lol by default, embed the source code as an encoded string into the binary so we can extract it 😉 |
05:38:33 | FromDiscord | <Gumbercules> !eval 1+1 |
05:38:36 | NimBot | Compile failed: /usercode/in.nim(1, 2) Error: expression '2' is of type 'int literal(2)' and has to be used (or discarded) |
05:45:27 | FromDiscord | <Elegantbeef> !eval echo 1 + 1 |
05:45:32 | NimBot | 2 |
05:50:09 | FromDiscord | <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:01 | FromDiscord | <JonasL> (edit) "safty?" => "safety?" |
05:51:22 | FromDiscord | <Rika> For the latter, not possible |
05:51:31 | FromDiscord | <Rika> It would be a pointer |
05:52:14 | FromDiscord | <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:02 | FromDiscord | <JonasL> Ok thanks |
06:12:41 | FromDiscord | <pyryrin> is there any convention to when to put parenthesis after function call? |
06:14:31 | FromDiscord | <Rika> What do you mean? |
06:15:21 | FromDiscord | <pyryrin> sent a code paste, see https://play.nim-lang.org/#ix=4kHE |
06:15:35 | FromDiscord | <Rika> No convention I believe? |
06:15:52 | FromDiscord | <pyryrin> so can just use what you want |
06:16:53 | FromDiscord | <Rika> Pretty much the spirit of Nim yeah |
06:20:14 | FromDiscord | <jtv> God I hate nimble |
06:20:30 | FromDiscord | <Elegantbeef> Use nimph and live slightly happier i guess |
06:20:42 | FromDiscord | <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:52 | FromDiscord | <ShalokShalom> Or the new Atlas? |
09:02:44 | FromDiscord | <fbpyr> sent a long message, see http://ix.io/4kHW |
09:18:24 | FromDiscord | <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:30 | FromDiscord | <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:57 | FromDiscord | <planetis> Or just use ref seq and be fine |
09:22:32 | FromDiscord | <planetis> doubt it makes a difference in performance |
09:22:59 | FromDiscord | <planetis> (edit) |
09:26:15 | FromDiscord | <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:36 | FromDiscord | <scruz> sent a code paste, see https://play.nim-lang.org/#ix=4kIf |
10:22:44 | FromDiscord | <scruz> (edit) "https://play.nim-lang.org/#ix=4kIf" => "https://paste.rs/RwX" |
10:23:04 | FromDiscord | <scruz> Also, is there no easy way to add dependencies to .nimble? |
10:23:05 | FromDiscord | <djazz> git commit short hash |
10:23:13 | FromDiscord | <scruz> In reply to @djazz "git commit short hash": I see |
10:29:08 | FromDiscord | <djazz> So version is pinned to a git commit |
10:40:56 | FromDiscord | <Ailuros 💖🧡💛💚💙💜🖤> sent a code paste, see https://play.nim-lang.org/#ix=4kIg |
10:42:09 | FromDiscord | <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:18 | FromDiscord | <Ailuros 💖🧡💛💚💙💜🖤> (edit) "At 1 spot I could just remove that toString, as actually the encryption ... just" added "proc" |
10:45:49 | FromDiscord | <Rika> Copy the data |
10:51:07 | * | kenran joined #nim |
10:58:16 | * | kenran quit (Remote host closed the connection) |
11:07:26 | FromDiscord | <nahua> sent a code paste, see https://play.nim-lang.org/#ix=4kIn |
11:08:09 | FromDiscord | <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:31 | FromDiscord | <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:22 | FromDiscord | <Jessa> sent a code paste, see https://play.nim-lang.org/#ix=4kIP |
13:27:47 | FromDiscord | <Jessa> (edit) "https://play.nim-lang.org/#ix=4kIP" => "https://play.nim-lang.org/#ix=4kIQ" |
13:31:03 | FromDiscord | <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:33 | FromDiscord | <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:21 | FromDiscord | <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:48 | FromDiscord | <scipio> ahh, but how do I generate C code as in helloworld.c ? |
13:38:58 | FromDiscord | <scipio> (edit) "helloworld.c" => "`helloworld.c`" |
13:39:14 | FromDiscord | <scipio> (been dabbling with nim since less than a day) |
13:41:45 | FromDiscord | <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:05 | FromDiscord | <<She>Horizon</Her>> I get `Error: invalid indentation` |
14:30:08 | FromDiscord | <<She>Horizon</Her>> sent a code paste, see https://play.nim-lang.org/#ix=4kJa |
14:34:25 | FromDiscord | <demotomohiro> At least the code block you give to macro must be valid Nim syntax. |
14:36:33 | FromDiscord | <Rika> everything has to be valid nim syntax no matter if its under a macro or not, iirc |
14:36:36 | FromDiscord | <demotomohiro> https://nim-lang.org/docs/manual.html#lexical-analysis-operators↵You cannot '.' for operator. |
14:37:25 | FromDiscord | <demotomohiro> You cannot use '.' for an operator. |
14:39:42 | FromDiscord | <<She>Horizon</Her>> Ah sad |
14:39:53 | FromDiscord | <<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:08 | FromDiscord | <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:00 | FromDiscord | <pyryrin> what's the difference between templates and macros |
15:22:33 | FromDiscord | <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:10 | FromDiscord | <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:45 | FromDiscord | <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:25 | FromDiscord | <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:12 | FromDiscord | <ShalokShalom> Basically nobody uses templates and macros are very popular |
15:27:26 | FromDiscord | <Rika> there are lots of uses for templates and it is not unused |
15:27:34 | FromDiscord | <ShalokShalom> Also: Officially, you should always consider using templates, and nobody does 😛 |
15:27:49 | FromDiscord | <pyryrin> should you use procs or templates for operator overloading |
15:27:50 | FromDiscord | <ShalokShalom> @Rika Yeah, I assume it is. Just a very subjective impression from my side |
15:28:06 | FromDiscord | <Rika> In reply to @pyryrin "should you use procs": the question doesnt make much sense |
15:28:11 | FromDiscord | <Rika> i dont understand |
15:29:11 | FromDiscord | <pyryrin> sent a code paste, see https://paste.rs/7kP |
15:29:23 | FromDiscord | <demotomohiro> If you can use both procs and templates for operator overloads. |
15:29:43 | FromDiscord | <pyryrin> when which one? |
15:31:45 | FromDiscord | <Rika> it depends on the situation |
15:31:55 | FromDiscord | <demotomohiro> If you can implement the operator with proc, use proc. If you really need template, use template. |
15:32:10 | FromDiscord | <Rika> when in doubt just use a proc, i guess |
15:35:35 | FromDiscord | <demotomohiro> sent a long message, see http://ix.io/4kJF |
16:03:11 | FromDiscord | <pyryrin> sent a code paste, see https://play.nim-lang.org/#ix=4kJL |
16:03:37 | FromDiscord | <pyryrin> (edit) "https://play.nim-lang.org/#ix=4kJL" => "https://paste.rs/jaI" |
16:04:12 | FromDiscord | <pyryrin> (edit) "https://play.nim-lang.org/#ix=4kJN" => "https://play.nim-lang.org/#ix=4kJM" |
16:04:18 | FromDiscord | <Rika> either is fine, first is most common, preference is up to you |
16:04:38 | FromDiscord | <huantian> maybe we should have this syntax specified in NEP-1 |
16:04:53 | FromDiscord | <pyryrin> what is NEP-1 |
16:04:56 | FromDiscord | <enthus1ast> i use the first, but was criticized for this already, but i still use the first |
16:06:03 | FromDiscord | <demotomohiro> @pyryrin https://nim-lang.org/docs/nep1.html |
16:14:30 | Amun-Ra | the first one if preferred |
17:03:38 | * | azimut quit (Remote host closed the connection) |
17:04:14 | * | azimut joined #nim |
17:04:53 | FromDiscord | <pyryrin> should you use semicolon to separate arguments in proc declaration? |
17:05:22 | FromDiscord | <Rika> semicolon and comma have different functions |
17:05:26 | FromDiscord | <Rika> in such case |
17:05:51 | FromDiscord | <pyryrin> someone said in the forum that semicolon prevents bugs |
17:06:05 | FromDiscord | <Rika> not exactly but it can yes |
17:06:44 | FromDiscord | <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:04 | FromDiscord | <Rika> let's say b was supposed to be a bool but i forgot to annotate it somehow |
17:07:28 | FromDiscord | <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:55 | FromDiscord | <Rika> now if i use semicolons `proc a(a: int; b; c: string; d: seq[bool]; e: float; f: SomeType; g: SomeOther)` |
17:08:06 | FromDiscord | <Rika> b is not assumed to be a string, there's no type so it's an error |
17:08:26 | FromDiscord | <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:30 | FromDiscord | <Rika> (edit) "ahve" => "have, lets say" |
17:08:40 | FromDiscord | <pyryrin> okay. but i don't understand how they have different functions? |
17:08:50 | FromDiscord | <Rika> `b, c: string` means both b and c are stringfs |
17:08:51 | FromDiscord | <Rika> (edit) "stringfs" => "strings" |
17:09:04 | FromDiscord | <Rika> `b; c: string` means b is not known, and c is a string |
17:09:06 | FromDiscord | <pyryrin> i know, but they can both be to separate arguments |
17:09:10 | FromDiscord | <Rika> wdym? |
17:09:37 | FromDiscord | <Rika> sometimes it is intentional, sure yeah |
17:09:38 | FromDiscord | <pyryrin> you can use both `;` and `,` to separate arguments |
17:09:41 | FromDiscord | <Rika> yes |
17:10:02 | FromDiscord | <Rika> but the way the types are "implied" changes between using semicolon and comma |
17:10:15 | FromDiscord | <pyryrin> okay |
17:10:18 | FromDiscord | <Rika> thats where bugs can be avoided |
17:10:24 | FromDiscord | <pyryrin> so semicolons is kind of better |
17:10:29 | FromDiscord | <Rika> kinda, not really |
17:10:50 | FromDiscord | <Rika> using semicolons by default can help, and using commas when needed is okay too |
17:13:35 | * | Batzy joined #nim |
17:21:40 | FromDiscord | <Phil> In reply to @pyryrin "should you use semicolon": Personally I don't ever make use of that particular language feature |
17:22:08 | FromDiscord | <Phil> I don't find it making code particularly easier to read or anything, it just is marginally less typing |
17:22:47 | FromDiscord | <pyryrin> why less typing? |
17:24:41 | FromDiscord | <Phil> sent a long message, see http://ix.io/4kK9 |
17:25:07 | FromDiscord | <Phil> (edit) "http://ix.io/4kK9" => "https://paste.rs/kLg" |
17:25:12 | FromDiscord | <pyryrin> oh so you meant using `;` was less typing right |
17:25:24 | FromDiscord | <Phil> (edit) "https://paste.rs/yRB" => "http://ix.io/4kKa" |
17:26:36 | FromDiscord | <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:57 | FromDiscord | <Phil> If you don't do `proc a(x,y: int): string`, then `;` doesn't really matter for you |
17:27:13 | FromDiscord | <Phil> afaik, that is |
17:27:34 | FromDiscord | <pyolyokh> sent a code paste, see https://play.nim-lang.org/#ix=4kKb |
17:28:06 | FromDiscord | <pyolyokh> where `;` is actually needed is the `using` feature, `proc a(x, y; z: float)` |
17:28:14 | FromDiscord | <Phil> sent a code paste, see https://play.nim-lang.org/#ix=4kKc |
17:28:39 | FromDiscord | <Phil> Ahhh I knew I was forgetting something, yeah using is one where it does matter |
17:29:16 | FromDiscord | <Phil> `using` is a mechanism to enforce several procedures using a specific parameter to make that parameter have the same type always |
17:29:22 | FromDiscord | <pyolyokh> sent a code paste, see https://play.nim-lang.org/#ix=4kKd |
17:29:32 | FromDiscord | <Phil> (for pyryrin) |
17:37:33 | * | jjido joined #nim |
17:46:11 | * | jjido quit (Quit: My laptop has gone to sleep. ZZZzzz…) |
18:10:19 | FromDiscord | <4zv4l> sent a code paste, see https://paste.rs/ErZ |
18:10:28 | FromDiscord | <4zv4l> (edit) "https://play.nim-lang.org/#ix=4kKm" => "https://paste.rs/OIR" |
18:10:29 | FromDiscord | <4zv4l> (edit) |
18:10:32 | FromDiscord | <4zv4l> (edit) "https://play.nim-lang.org/#ix=4kKm" => "https://paste.rs/3z4" |
18:12:58 | FromDiscord | <Rika> Remove the period |
18:17:06 | FromDiscord | <4zv4l> even with ↵`"{ord(c):#2x} "`↵it doesn't show 0x0a |
18:21:20 | FromDiscord | <Rika> Change the 2 to 04 |
18:21:23 | FromDiscord | <Rika> With the 0 |
18:28:09 | FromDiscord | <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:59 | FromDiscord | <pyolyokh> this is probably a bug. |
18:32:03 | FromDiscord | <pyolyokh> ah, maybe not. It's just factoring the 0x into the width |
18:32:17 | FromDiscord | <pyolyokh> sent a code paste, see https://play.nim-lang.org/#ix=4kKt |
18:32:52 | FromDiscord | <pyolyokh> (edit) "https://play.nim-lang.org/#ix=4kKt" => "https://paste.rs/2IY" |
18:53:23 | om3ga | guys, any idea how to convert this to nim? https://play.nim-lang.org/#ix=4kKw |
18:58:24 | FromDiscord | <4zv4l> In reply to @Rika "Change the 2 to": this work, but why ? |
18:58:52 | FromDiscord | <4zv4l> In reply to @pyolyokh "this is probably a": it considers the '0x' as part of the size ? |
18:59:14 | FromDiscord | <pyolyokh> yes. |
19:02:47 | FromDiscord | <pyolyokh> In reply to @om3ga "guys, any idea how": om3ga: <https://play.nim-lang.org/#ix=4kKB> |
19:04:54 | om3ga | pyolyokh, thanks! but what about directives |
19:05:42 | om3ga | #define LV2_SYMBOL_EXTERN extern "C" and #define LV2_SYMBOL_EXPORT LV2_SYMBOL_EXTERN __attribute__((visibility("default"))) |
19:07:34 | om3ga | I 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:53 | FromDiscord | <djazz> tried {.cdecl.}? |
19:41:12 | FromDiscord | <djazz> exportc? |
20:05:15 | * | jmdaemon joined #nim |
20:12:19 | om3ga | djazz: no, I will try now! |
20:12:49 | FromDiscord | <djazz> try use {.exportc: "lv2_descriptor".} |
20:16:26 | om3ga | /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:32 | om3ga | djazz: that gives types conflict error when the things goes to clang ^ |
20:17:07 | FromDiscord | <djazz> hmm |
20:17:22 | om3ga | ah.. that might be because I have uint32, and lib utilizes uint32_t |
20:17:23 | FromDiscord | <djazz> dunno... |
20:17:45 | FromDiscord | <djazz> its a C compiler error |
20:17:53 | FromDiscord | <djazz> try add -d:checkAbi |
20:18:21 | FromDiscord | <djazz> you might have to make your own pragma... or use exportc to add it |
20:20:03 | om3ga | looks like no difference with -d:checkAbi |
20:20:31 | om3ga | .nim.c:77:42: error: conflicting types for 'lv2_descriptor' |
20:20:32 | om3ga | N_LIB_PRIVATE N_NIMCALL(LV2_Descriptor*, lv2_descriptor)(NU32 index); |
20:20:45 | om3ga | oh, sorry for big paste here... |
20:20:58 | FromDiscord | <djazz> you have cdecl and exportc? |
20:21:23 | om3ga | {.exportc: "lv2_descriptor".} |
20:21:35 | FromDiscord | <djazz> try {.exportc: "lv2_descriptor", cdecl.} |
20:21:40 | om3ga | aha, ok |
20:21:55 | FromDiscord | <djazz> not sure if it does anything when exporting tho heh |
20:22:48 | om3ga | unfortunately the same... |
20:22:55 | FromDiscord | <djazz> hmm, idk |
20:23:32 | om3ga | conflicting types for 'lv2_descriptor' N_LIB_PRIVATE N_CDECL(LV2_Descriptor*, lv2_descriptor)(NU32 index) |
20:24:04 | om3ga | and it points to the second parameter - lv2_descriptor, of the N_CDECL |
20:25:04 | FromDiscord | <djazz> have you defined LV2_Descriptor? |
20:25:23 | FromDiscord | <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:30 | FromDiscord | <djazz> type LV2_Descriptor {.importc: "LV2_Descriptor".} = distinct object |
20:25:48 | PMunch | Hmm, once again I've forgotten the name of the macro templating package.. |
20:26:47 | om3ga | djazz: yes, it's well defined, no lint or compile errors |
20:27:22 | om3ga | the problem is with that symbol export, if I disable that part of the code, the lib compiles sucessfully |
20:28:27 | om3ga | djazz: modified include binding as you suggested: LV2_Descriptor* {.importc: "LV2_Descriptor", header: headerlv2, bycopy.} = distinct object |
20:28:31 | om3ga | is that ok? |
20:28:44 | FromDiscord | <djazz> yeah |
20:29:09 | om3ga | oh! that helped, now another err |
20:29:20 | om3ga | different err I mean |
20:29:35 | om3ga | let me get into what it says... |
20:30:03 | om3ga | Error: undeclared field: 'URI' for type lv2.LV2_Descriptor [type declared in /Volumes/storage/SRC/MBC/lv2/lv2.nim(11, 3)] , OMG... |
20:30:05 | om3ga | hahaha |
20:31:51 | FromDiscord | <djazz> do you use the uri? |
20:32:46 | om3ga | yes, it's mandatory |
20:32:59 | FromDiscord | <djazz> then add that as a field too |
20:33:00 | FromDiscord | <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:07 | om3ga | URI* {.importc: "URI".}: cstring |
20:33:09 | FromDiscord | <djazz> you can remove the "distinct" now |
20:33:42 | om3ga | well it is added |
20:33:59 | om3ga | I created object, initialized it completely |
20:34:47 | om3ga | maybe that because it has upper case? |
20:34:54 | om3ga | can it cause conflict? |
20:41:56 | * | jjido joined #nim |
20:55:02 | FromDiscord | <System64 ~ Flandre Scarlet> Did someone already tried the IntelliJ plugin for Nim?↵Is it any good? |
20:56:52 | FromDiscord | <ShalokShalom> @System64 ~ Flandre Scarlet It got recently an update |
20:57:37 | FromDiscord | <ShalokShalom> And considering the state of nimsuggest, it is worth giving it a try |
20:57:39 | om3ga | no.. changing to lower case not help |
20:58:09 | FromDiscord | <ShalokShalom> @System64 ~ Flandre Scarlet It has some issues, as does any other IDE integration of Nim currently |
21:11:59 | PMunch | Ugh Jester docs are so bad.. |
21:12:16 | PMunch | It's a really neat little framework, and has a surprising amount of features, but it's barely documented.. |
21:13:13 | PMunch | Huh neat, Futhark is "trending" on nimble.directory :) |
21:23:57 | FromDiscord | <Elegantbeef> Mixin and bind are for generics and templates which tightly bind the symbols to the invocation↵(@DeLannoy) |
21:24:26 | FromDiscord | <Elegantbeef> It's odd that they're mixin'd here |
21:25:06 | FromDiscord | <DeLannoy> In reply to @Elegantbeef "Mixin and bind are": Thanks for the answer but honestly I still have no clue |
21:26:42 | FromDiscord | <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:34 | FromDiscord | <DeLannoy> Sorry if I sounded rude but I'm still lost |
21:30:28 | FromDiscord | <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:54 | FromDiscord | <DeLannoy> (edit) "assemly" => "assembly" |
21:33:08 | FromDiscord | <Elegantbeef> What that means is that the templates are always added to the scope of the template |
21:33:18 | FromDiscord | <Elegantbeef> Which means they can invoke themselves using `a.templateName` |
21:33:25 | FromDiscord | <Elegantbeef> Like i said it's very odd that it's done this wat |
21:33:28 | FromDiscord | <Elegantbeef> way\ |
21:35:19 | FromDiscord | <Elegantbeef> I guess it might be for generics so that the template is always in scope and considered |
21:35:26 | FromDiscord | <Elegantbeef> I dont really know why it's done this way |
21:40:26 | FromDiscord | <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:29 | FromDiscord | <System64 ~ Flandre Scarlet> In reply to @ShalokShalom "<@380360389377916939> It has some": So what is the best option? |
21:46:11 | FromDiscord | <Elegantbeef> @choltreppe\: fix the bug, then tick the patch version in your nimble file |
21:46:28 | FromDiscord | <Elegantbeef> The nimble package directory just maps name -\> git url/mercurial url |
21:47:47 | FromDiscord | <choltreppe> ok and add the according git tag right? |
21:49:18 | FromDiscord | <Elegantbeef> You dont need to git tag, but you can |
21:49:44 | FromDiscord | <choltreppe> ah ok |
21:49:55 | FromDiscord | <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:47 | FromDiscord | <Elegantbeef> scipio are you using `start` or `startDesktop`? |
21:50:53 | FromDiscord | <Elegantbeef> I dont have a mac so cannot say much |
21:52:08 | om3ga | scipio, is chrome set as default browser? |
21:53:00 | om3ga | maybe this is the reason |
21:54:45 | FromDiscord | <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:55 | FromDiscord | <scipio> sent a code paste, see https://play.nim-lang.org/#ix=4kLN |
21:55:00 | FromDiscord | <ShalokShalom> Or Jetbrains by default |
21:55:07 | FromDiscord | <ShalokShalom> You can try both 😄 |
21:55:28 | FromDiscord | <ShalokShalom> The Nim plugin is open source, so you can try it with the open source version of IDEA, I guess 🙂 |
21:55:28 | FromDiscord | <Elegantbeef> @scipio\: and what are you doing in Nim? |
21:55:31 | FromDiscord | <System64 ~ Flandre Scarlet> In reply to @ShalokShalom "VSCode with Nim: Provider": What is Provider set to non and Lint on Save? |
21:55:36 | FromDiscord | <ShalokShalom> settings |
21:56:05 | FromDiscord | <scipio> I am trying to write a desktop GUI app |
21:56:07 | FromDiscord | <ShalokShalom> Choose the saem plugin, not the most popular 🙂 |
21:56:09 | FromDiscord | <ShalokShalom> https://media.discordapp.net/attachments/371759389889003532/1062127664577658902/grafik.png |
21:56:25 | * | xet7 joined #nim |
21:56:42 | FromDiscord | <Elegantbeef> I mean code wise↵(@scipio) |
21:56:45 | FromDiscord | <ShalokShalom> It tends to crash, otherwise |
21:57:36 | FromDiscord | <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:56 | FromDiscord | <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:50 | FromDiscord | <ShalokShalom> nimsaem |
21:58:53 | FromDiscord | <Elegantbeef> What are you doing with nimview and Nim |
21:58:55 | FromDiscord | <Elegantbeef> Like what is the program you're making with nimview right now that isnt work |
21:58:56 | FromDiscord | <Elegantbeef> working |
21:59:25 | FromDiscord | <System64 ~ Flandre Scarlet> In reply to @ShalokShalom "nimsaem": Yeah I have it |
21:59:33 | FromDiscord | <ShalokShalom> nice |
21:59:36 | FromDiscord | <scipio> It's not opening in an app window, no webview |
21:59:51 | FromDiscord | <Elegantbeef> Yes, but what the fuck is your code |
21:59:53 | FromDiscord | <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:05 | FromDiscord | <scipio> instead it's opening as↵`DEBUG Starting internal webserver on http://localhost:8000` |
22:00:16 | FromDiscord | <Elegantbeef> This is like walking into a hardware store going "I need a wrench" |
22:00:20 | FromDiscord | <ShalokShalom> In reply to @System64 "But if I turn": Yes |
22:00:23 | FromDiscord | <Elegantbeef> That is the least helpful statement |
22:00:28 | * | jjido quit (Quit: My laptop has gone to sleep. ZZZzzz…) |
22:00:41 | FromDiscord | <ShalokShalom> In reply to @Elegantbeef "This is like walking": Is there any way to benefit from the improved IC today? |
22:00:47 | FromDiscord | <scipio> this, literally this |
22:00:48 | FromDiscord | <scipio> sent a code paste, see https://play.nim-lang.org/#ix=4kLS |
22:00:49 | FromDiscord | <ShalokShalom> Like, is there a version to try it |
22:00:52 | FromDiscord | <Elegantbeef> Yes use `startDesktop` |
22:00:53 | FromDiscord | <Elegantbeef> Like i said |
22:01:03 | FromDiscord | <scipio> you said that? |
22:01:07 | FromDiscord | <scipio> hmm, probably missed it |
22:01:11 | FromDiscord | <System64 ~ Flandre Scarlet> In reply to @ShalokShalom "Yes": Is there something I can do to have autocompletion? |
22:01:20 | FromDiscord | <Elegantbeef> image.png https://media.discordapp.net/attachments/371759389889003532/1062128969564049630/image.png |
22:01:21 | FromDiscord | <ShalokShalom> You can it on 😛 |
22:01:32 | FromDiscord | <ShalokShalom> Nimsuggest tends to crash |
22:01:42 | FromDiscord | <Elegantbeef> No clue IC isnt production ready↵(@ShalokShalom) |
22:01:42 | FromDiscord | <System64 ~ Flandre Scarlet> In reply to @ShalokShalom "Nimsuggest tends to crash": And LSP? |
22:01:53 | FromDiscord | <ShalokShalom> The only solution, that doesnt use it, is Nim on Jetbrains. |
22:02:02 | FromDiscord | <ShalokShalom> In reply to @System64 "And LSP?": LSP also depends on nimsuggest |
22:02:08 | FromDiscord | <System64 ~ Flandre Scarlet> oof |
22:02:08 | FromDiscord | <ShalokShalom> Its a compiler feature |
22:02:17 | FromDiscord | <ShalokShalom> And the roadmap plans to improve it |
22:02:23 | FromDiscord | <System64 ~ Flandre Scarlet> Oh alright |
22:02:27 | FromDiscord | <ShalokShalom> In reply to @Elegantbeef "No clue IC isnt": Thanks a lot dear |
22:03:12 | FromDiscord | <ShalokShalom> @System64 ~ Flandre ScarletYou will experience ram usage, cpu usage and similar to get through the roof |
22:03:21 | FromDiscord | <Elegantbeef> And Nim on jetbrains doesnt compile the code afaik so good bye a majority of helpful suggestions |
22:03:23 | FromDiscord | <scipio> https://media.discordapp.net/attachments/371759389889003532/1062129487837405344/image.png |
22:03:27 | FromDiscord | <scipio> Thx @ElegantBeef |
22:03:28 | FromDiscord | <scipio> 😁 |
22:03:36 | FromDiscord | <scipio> sorry, I had really missed your question |
22:03:51 | FromDiscord | <ShalokShalom> In reply to @Elegantbeef "And Nim on jetbrains": Did you try the recent update? |
22:04:08 | FromDiscord | <scipio> it wasn't startDesktop() in here `https://www.youtube.com/watch?v=OykIbez7Vfc` |
22:04:08 | FromDiscord | <Elegantbeef> Does it use a compiler API? |
22:04:26 | FromDiscord | <ShalokShalom> Nim on Jetbrains? |
22:04:30 | FromDiscord | <Elegantbeef> Yes |
22:04:32 | FromDiscord | <ShalokShalom> It uses its own thing |
22:04:44 | FromDiscord | <ShalokShalom> The Jetbrains framework |
22:04:45 | FromDiscord | <Elegantbeef> So it doesnt compile the code? |
22:05:08 | FromDiscord | <scipio> @ElegantBeef another question: how do I, in general I mean, compile to a `.app` extension binary and/or mac installable? |
22:05:17 | FromDiscord | <System64 ~ Flandre Scarlet> In reply to @scipio "": HTML stuff? |
22:05:21 | FromDiscord | <Elegantbeef> sent a code paste, see https://play.nim-lang.org/#ix=4kLT |
22:05:37 | FromDiscord | <scipio> any GUI using Nim @System64 ~ Flandre Scarlet |
22:05:49 | FromDiscord | <Elegantbeef> Again i dont use or have a mac so i dont know, what's wrong with `nim c -d:release`? |
22:05:49 | FromDiscord | <scipio> I'm only dabbling in Nim since yesterday |
22:06:24 | FromDiscord | <scipio> In reply to @Elegantbeef "Again i dont use": it outputs `helloworld` instead of `helloworld.app` from `helloworld.nim` |
22:06:41 | FromDiscord | <Elegantbeef> so `--out: helloworld.app`? |
22:06:49 | FromDiscord | <Elegantbeef> I dont know mac formats so i dont know what's so special about `.app` |
22:06:51 | FromDiscord | <System64 ~ Flandre Scarlet> Nimview is not developped anymore |
22:07:09 | FromDiscord | <scipio> then what should I use? |
22:07:31 | FromDiscord | <scipio> Nimview's github refers to Tauri, but Tauri doesn't yet support a Nim backend, does it? |
22:07:31 | FromDiscord | <ShalokShalom> At which platform do you like to deploy? |
22:07:59 | FromDiscord | <scipio> @ShalokShalom are you asking me? I want to code a desktop app running on macOS and Windows |
22:08:38 | FromDiscord | <scipio> Any modern, preferably well-documented Nim GUI framework will suffice, happy to spend my time learning it |
22:08:54 | FromDiscord | <ShalokShalom> https://github.com/jerous86/nimqt |
22:09:01 | FromDiscord | <Elegantbeef> Owlkettle is pretty nice |
22:09:03 | FromDiscord | <Elegantbeef> It's gtk |
22:09:26 | FromDiscord | <ShalokShalom> https://github.com/can-lehmann/owlkettle |
22:09:34 | FromDiscord | <ShalokShalom> Was just about posting it 😄 |
22:09:52 | FromDiscord | <System64 ~ Flandre Scarlet> In reply to @Elegantbeef "Owlkettle is pretty nice": I can't making it compiling |
22:10:15 | FromDiscord | <Elegantbeef> Did you install a 64bit mingw? |
22:10:19 | FromDiscord | <ShalokShalom> https://plugins.jetbrains.com/plugin/15128-nim |
22:10:22 | FromDiscord | <Elegantbeef> Did you remove your 32bit nim compiler |
22:10:57 | FromDiscord | <System64 ~ Flandre Scarlet> In reply to @Elegantbeef "Did you install a": Everything is 64bits right now |
22:11:12 | FromDiscord | <Elegantbeef> Did you install gtk4? |
22:11:21 | FromDiscord | <scipio> nope, not yet |
22:11:48 | FromDiscord | <Elegantbeef> I'm talking to system |
22:11:52 | FromDiscord | <System64 ~ Flandre Scarlet> In reply to @Elegantbeef "Did you install gtk4?": Ah yeah I have an error with that |
22:12:28 | FromDiscord | <System64 ~ Flandre Scarlet> sent a code paste, see https://play.nim-lang.org/#ix=4kLU |
22:12:28 | FromDiscord | <scipio> In reply to @Elegantbeef "*I'm talking to system*": System was also talking to me 😁 |
22:12:42 | FromDiscord | <scipio> I like the circular referencing |
22:13:24 | FromDiscord | <scipio> Only a matter of time before I can answer questions too, other than if I ran `start()` or `startDesktop()`I mean |
22:13:43 | FromDiscord | <ElegantBeef> Bridge died yay! |
22:13:52 | FromDiscord | <Elegantbeef> They had a 32bit Nim compiler, attempting to use mingw 64 packages that did not work obviously |
22:14:00 | FromDiscord | <ElegantBeef> System did you uninstall `mingw-w64-x86_64-gcc-libs`? |
22:14:20 | FromDiscord | <ElegantBeef> I dont know if you need 11.2 packages for anything |
22:14:36 | FromDiscord | <ElegantBeef> So much easier to use owlkettle on a system with a proper package manager |
22:14:37 | FromDiscord | <System64 ~ Flandre Scarlet> Humm how can I uninstall? |
22:15:01 | FromDiscord | <scipio> @ShalokShalom I've basically been screening https://github.com/ringabout/awesome-nim , and there is no mention of NimQT / Owlkettle |
22:15:15 | FromDiscord | <ElegantBeef> `pacman -Rcs mingw-w64-x86_64-gcc-libs` i assume |
22:15:21 | FromDiscord | <scipio> basically everything I ran into wasn't actively being developed, so Nimview seemed a decent starting point |
22:15:22 | FromDiscord | <Elegantbeef> Hmm seems bridge is alive again |
22:15:34 | FromDiscord | <huantian> I don't know why you even need that old version |
22:15:39 | FromDiscord | <huantian> it's updated to v12 already |
22:15:41 | FromDiscord | <huantian> https://packages.msys2.org/package/mingw-w64-x86_64-gcc-libs |
22:15:50 | FromDiscord | <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:16 | FromDiscord | <huantian> mingw-w64-x86_64-gcc should be version 12 not 11 |
22:16:56 | FromDiscord | <ShalokShalom> In reply to @scipio "<@208199869301522432> I've basically been": both are very new |
22:17:04 | FromDiscord | <ShalokShalom> I will add them to the list asap |
22:17:07 | FromDiscord | <Elegantbeef> Owlkettle is like a year old |
22:17:16 | FromDiscord | <ShalokShalom> yeah, true |
22:17:21 | FromDiscord | <ShalokShalom> I still have its blog post in mind |
22:17:28 | FromDiscord | <ShalokShalom> Read that just a short while agi |
22:17:32 | FromDiscord | <ShalokShalom> My mistake. |
22:17:35 | FromDiscord | <ShalokShalom> (edit) "agi" => "ago" |
22:17:38 | FromDiscord | <System64 ~ Flandre Scarlet> Sounds really dangerous https://media.discordapp.net/attachments/371759389889003532/1062133073774387251/message.txt |
22:17:50 | FromDiscord | <Elegantbeef> It was gtk3 based originally and updated to gtk4 so we'll say it's new |
22:18:10 | FromDiscord | <Elegantbeef> I mean you're going to install a modern version after |
22:18:16 | FromDiscord | <huantian> can you do `pacman -Si mingw-w64-x86_64-gcc` |
22:18:50 | FromDiscord | <System64 ~ Flandre Scarlet> sent a code paste, see https://play.nim-lang.org/#ix=4kLW |
22:19:03 | FromDiscord | <huantian> what about `pacman -Qi mingw-w64-x86_64-gcc` |
22:19:23 | * | xet7 quit (Remote host closed the connection) |
22:19:23 | FromDiscord | <Elegantbeef> huan making someone use pacman, what a devil |
22:19:46 | FromDiscord | <huantian> tee hee |
22:19:51 | FromDiscord | <System64 ~ Flandre Scarlet> sent a code paste, see https://play.nim-lang.org/#ix=4kLX |
22:20:03 | FromDiscord | <<She>Horizon</Her>> In Nim is there a way to define fields of an object dynamically or something? |
22:20:08 | FromDiscord | <System64 ~ Flandre Scarlet> In reply to @Elegantbeef "huan making someone use": I alreadt wrote some php, btw /j |
22:20:13 | FromDiscord | <Elegantbeef> No Nim isnt dynamically typed |
22:20:13 | FromDiscord | <System64 ~ Flandre Scarlet> (edit) "alreadt" => "already" |
22:20:22 | FromDiscord | <huantian> why the heck is your installed version not the same as the version in the repo |
22:20:30 | FromDiscord | <Elegantbeef> Perhaps they need to update? |
22:20:30 | FromDiscord | <huantian> are you sure you did `sudo pacman -Syyu` |
22:20:47 | FromDiscord | <huantian> (edit) "`sudo pacman" => "`pacman" |
22:20:54 | FromDiscord | <Elegantbeef> Horizon what are you trying to do? |
22:21:13 | FromDiscord | <Elegantbeef> The dumbest way of doing what you want is using a `newJObject` |
22:21:27 | FromDiscord | <Elegantbeef> The smartest way is to not need dynamic fields |
22:22:40 | FromDiscord | <<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:43 | FromDiscord | <<She>Horizon</Her>> I was confused as fuck |
22:23:05 | FromDiscord | <System64 ~ Flandre Scarlet> In reply to @huantian "are you sure you": https://media.discordapp.net/attachments/371759389889003532/1062134440039551078/message.txt |
22:23:21 | FromDiscord | <huantian> well so you didn't |
22:23:27 | FromDiscord | <huantian> because you didn't actually upgrade your system |
22:23:33 | FromDiscord | <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:41 | FromDiscord | <Elegantbeef> Nope |
22:23:44 | FromDiscord | <System64 ~ Flandre Scarlet> In reply to @huantian "because you didn't actually": Look at the error at the bottom |
22:23:47 | FromDiscord | <Elegantbeef> gtk4 runs on mac, windows and linux |
22:23:47 | FromDiscord | <huantian> you need to figure out why your upgrade is broken then |
22:23:49 | FromDiscord | <huantian> and fix it |
22:23:51 | FromDiscord | <huantian> before you do anything else |
22:23:57 | FromDiscord | <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:59 | FromDiscord | <huantian> arch will not work if you have partial upgrades |
22:24:09 | FromDiscord | <System64 ~ Flandre Scarlet> I'm on Windows |
22:24:24 | FromDiscord | <huantian> ok pacman in mingw will not work if you have partial upgrades |
22:24:37 | FromDiscord | <huantian> you need to fix that error and upgrade your system before you install new packages |
22:24:59 | FromDiscord | <scipio> https://media.discordapp.net/attachments/371759389889003532/1062134919012298872/image.png |
22:25:10 | FromDiscord | <scipio> Would I need libadwaita-dev for macOS ? |
22:25:53 | FromDiscord | <Elegantbeef> Well libadwaita is an optional dependency iirc |
22:25:59 | FromDiscord | <Elegantbeef> But yes you'd need development packages |
22:26:22 | FromDiscord | <Elegantbeef> Assuming you have brew it should be easy |
22:26:57 | FromDiscord | <Elegantbeef> I also assume brew ships dev packages with the normal packages |
22:27:04 | FromDiscord | <Elegantbeef> If it doesnt i dont know how to get dev packages |
22:28:06 | * | azimut quit (Remote host closed the connection) |
22:28:30 | FromDiscord | <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:49 | FromDiscord | <ShalokShalom> But Owlkettle provides a really nice API |
22:28:51 | FromDiscord | <ShalokShalom> IMHO |
22:29:02 | * | azimut joined #nim |
22:29:13 | FromDiscord | <Elegantbeef> The only down side is really that depending on your OS it's hard to get static libraries for windows |
22:29:26 | FromDiscord | <ShalokShalom> When you like a native look and feel, go for Qt |
22:29:48 | FromDiscord | <Elegantbeef> GTK has mac interop to make it look native |
22:30:04 | FromDiscord | <ShalokShalom> @System64 ~ Flandre ScarletAlways update, before you install |
22:30:16 | FromDiscord | <ShalokShalom> In reply to @Elegantbeef "GTK has mac interop": Since when? |
22:30:43 | FromDiscord | <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:20 | FromDiscord | <Elegantbeef> https://www.gtk.org/docs/installations/macos/ |
22:32:05 | FromDiscord | <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:21 | FromDiscord | <Elegantbeef> To be fair i just read it, no clue if it works as it says |
22:32:22 | FromDiscord | <ShalokShalom> ? |
22:32:29 | FromDiscord | <ShalokShalom> Which commercial language? |
22:32:47 | FromDiscord | <scipio> (edit) "language," => "~~language~~ licence," |
22:32:53 | FromDiscord | <scipio> license |
22:32:59 | FromDiscord | <System64 ~ Flandre Scarlet> sent a long message, see http://ix.io/4kM1 |
22:33:15 | FromDiscord | <ShalokShalom> The license of Qt is often misconsidered 🙂 |
22:33:20 | FromDiscord | <huantian> Well it needs to calculate the needed space for each package |
22:33:28 | FromDiscord | <ShalokShalom> You can totally use the open source license for buisness applications |
22:33:45 | FromDiscord | <huantian> (edit) "package" => "package, the packages are compressed I’d assume" |
22:33:57 | FromDiscord | <huantian> (edit) "assume" => "assume, so it’d have to calculate the inflated sizes of each" |
22:34:04 | FromDiscord | <System64 ~ Flandre Scarlet> In reply to @huantian "Well it needs to": > Total Installed Size: 2713.76 MiB |
22:34:10 | FromDiscord | <scipio> yes but charts are not included in that |
22:34:15 | FromDiscord | <huantian> Well then idk |
22:34:21 | FromDiscord | <scipio> that's a non-community module |
22:34:32 | FromDiscord | <System64 ~ Flandre Scarlet> QT's licence is weird |
22:34:38 | FromDiscord | <ShalokShalom> This could be the case |
22:34:49 | FromDiscord | <ShalokShalom> Yes, absolutely. |
22:35:01 | FromDiscord | <System64 ~ Flandre Scarlet> Okay seems it upgrades |
22:35:05 | FromDiscord | <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:22 | FromDiscord | <scipio> I'd prefer a native robust Nim UI tho |
22:35:39 | FromDiscord | <ShalokShalom> I also dont know, if bindings exist |
22:35:52 | FromDiscord | <ShalokShalom> The qt binding is actually only for widgets |
22:36:23 | FromDiscord | <ShalokShalom> In reply to @scipio "I am happy to": I totally get you |
22:36:30 | FromDiscord | <scipio> I'm beginning to feel being the only person on macOS using Nim trying to build a GUI app |
22:36:45 | FromDiscord | <ShalokShalom> Nim is spread |
22:36:54 | FromDiscord | <ShalokShalom> It has 10 bindings to UI librarys |
22:41:36 | FromDiscord | <ShalokShalom> This is sadly not updated, currently |
22:41:37 | FromDiscord | <ShalokShalom> https://github.com/Niminem/Neel |
22:41:50 | FromDiscord | <Elegantbeef> It also depended on chromium |
22:42:56 | FromDiscord | <Elegantbeef> Nimview/webgui are just better than neel due to that dependency |
22:43:20 | FromDiscord | <ShalokShalom> i see |
22:43:29 | FromDiscord | <Elegantbeef> They both use a single web renderer that's cross platform |
22:43:39 | FromDiscord | <Elegantbeef> This means you dont have to fight different render engines |
22:43:55 | FromDiscord | <Elegantbeef> They also dont depend on a specific browser being installed |
22:44:07 | FromDiscord | <Elegantbeef> Yes i know edge is now chrome based |
22:44:18 | * | TakinOver joined #nim |
22:44:27 | FromDiscord | <ShalokShalom> Chromium 😛 |
22:44:46 | FromDiscord | <scipio> In reply to @ShalokShalom "This is sadly not": same thing indeed, I had looked into Neel too |
22:45:10 | FromDiscord | <ShalokShalom> Isnt there also one toolkit, that uses the installed system webview or browser? |
22:45:14 | FromDiscord | <ShalokShalom> I think this is a Rust one |
22:45:27 | FromDiscord | <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:06 | FromDiscord | <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:08 | FromDiscord | <Elegantbeef> Nim is a small community with a seemingly high user turnover rate |
22:46:15 | FromDiscord | <scipio> ao why on earth seize Nimview / Neel ? |
22:46:33 | FromDiscord | <scipio> In reply to @Elegantbeef "Nim is a small": I wonder why ... should be addressed |
22:47:19 | FromDiscord | <System64 ~ Flandre Scarlet> Finally I have GTK4 |
22:47:30 | FromDiscord | <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:38 | FromDiscord | <ShalokShalom> 🥳 |
22:47:42 | FromDiscord | <ShalokShalom> Congrats |
22:48:36 | FromDiscord | <scipio> I seriously don't get why a decent UI framework wouldn't be prio 1 for any cross-OS language |
22:48:59 | FromDiscord | <Elegantbeef> UI is quite a complex thing |
22:48:59 | * | TakinOver quit (Ping timeout: 260 seconds) |
22:49:03 | FromDiscord | <scipio> without one, why would a company ever try to hire language devs? |
22:49:19 | FromDiscord | <System64 ~ Flandre Scarlet> In reply to @scipio "without one, why would": What about Backend? |
22:51:06 | FromDiscord | <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:15 | FromDiscord | <scipio> well ... that could be _indicative_ |
22:51:41 | FromDiscord | <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:55 | FromDiscord | <Elegantbeef> And now he's left the language |
22:52:12 | FromDiscord | <scipio> Dominik left Nim? |
22:52:45 | FromDiscord | <scipio> Nim has one book and the author dropped the language? Whut? |
22:52:58 | FromDiscord | <Elegantbeef> It has 3 books to be fair |
22:53:17 | FromDiscord | <System64 ~ Flandre Scarlet> sent a code paste, see https://play.nim-lang.org/#ix=4kM4 |
22:53:32 | FromDiscord | <auxym> My understanding is that Dom wanted to distance himself from araq following a reddit comment which was, uh, less than delicate? |
22:53:40 | FromDiscord | <Elegantbeef> Yep |
22:54:05 | FromDiscord | <scipio> And for that somebody drops an entire languag? |
22:54:08 | FromDiscord | <scipio> (edit) "languag?" => "language?" |
22:54:22 | FromDiscord | <auxym> yeah, its unfortunate, from both people IMO |
22:54:46 | FromDiscord | <Phil> I think it was more used as an opportunity, there's a fair bit of history behind the guy |
22:54:47 | FromDiscord | <auxym> but I understand Dom's decision, too |
22:54:48 | FromDiscord | <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:33 | FromDiscord | <ShalokShalom> In reply to @scipio "I saw a video": treeform does work for Reddit |
22:55:54 | FromDiscord | <Elegantbeef> And actively uses Nim at reddit |
22:56:35 | FromDiscord | <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:38 | FromDiscord | <ShalokShalom> In reply to @scipio "Because of an online": Dom and Araq are very different persons, I would say |
22:56:46 | FromDiscord | <ShalokShalom> What connects them, is the code |
22:56:57 | FromDiscord | <<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:16 | FromDiscord | <<She>Horizon</Her>> Big difference in political (or otherwise) views causes that |
22:57:25 | FromDiscord | <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:36 | FromDiscord | <scipio> Thx 😁 |
22:57:38 | FromDiscord | <Elegantbeef> Araq does say a lot of things and behaves in a way that detracts many users |
22:57:51 | FromDiscord | <Elegantbeef> I'm just a fuckwit so i say you're not welcome here! |
22:58:32 | FromDiscord | <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:40 | FromDiscord | <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:26 | FromDiscord | <Phil> While that's true, it's also very fair to say Linus has been an ass |
22:59:39 | FromDiscord | <Elegantbeef> Sure but linus actively tried to reduce his outbursts and really has been more sane in the past few years |
23:00:13 | FromDiscord | <ShalokShalom> https://www.reddit.com/r/programming/comments/yvc9er/why_i_enjoy_using_the_nim_programming_language_at/ @scipio |
23:00:26 | FromDiscord | <scipio> I'll have a read, brb |
23:00:46 | FromDiscord | <System64 ~ Flandre Scarlet> Is it normal I still can't compile an Owlkettle sample? |
23:00:48 | FromDiscord | <Elegantbeef> Someone not understanding 'they' is a perfectly valid pronoun' is just being purposely obtuse |
23:00:56 | FromDiscord | <Elegantbeef> Well i'm looking at the output |
23:01:26 | FromDiscord | <Elegantbeef> Oh the issue is that mingw expects `/` paths? |
23:01:48 | FromDiscord | <Phil> ... did I accidentally not post my comment or did it get deleted? |
23:01:55 | FromDiscord | <huantian> In reply to @Elegantbeef "Oh the issue is": oh that's probably it |
23:02:03 | FromDiscord | <Elegantbeef> can you compiler with `--listCmd` |
23:02:13 | FromDiscord | <Elegantbeef> compile with rather |
23:03:39 | FromDiscord | <System64 ~ Flandre Scarlet> In reply to @Elegantbeef "can you compiler with": still error |
23:03:48 | FromDiscord | <Elegantbeef> Of course |
23:03:55 | FromDiscord | <Elegantbeef> I want to see the c command |
23:04:17 | FromDiscord | <Elegantbeef> If listing things fixed problems lists would be more popular |
23:04:18 | FromDiscord | <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:23 | FromDiscord | <Elegantbeef> Yes |
23:04:40 | FromDiscord | <Elegantbeef> Fidget has slowed down on development, but he's still actively working in that space |
23:04:44 | FromDiscord | <Elegantbeef> boxy exists for instance |
23:05:09 | FromDiscord | <Elegantbeef> Elcritch has also forked fidget to make fidgetty |
23:05:11 | FromDiscord | <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:23 | FromDiscord | <System64 ~ Flandre Scarlet> In reply to @Elegantbeef "I want to see": https://media.discordapp.net/attachments/371759389889003532/1062145088622428191/message.txt |
23:06:26 | FromDiscord | <Elegantbeef> System can you compiler `echo "hello world"`? |
23:06:36 | FromDiscord | <Elegantbeef> Jesus why the hell do i write compiler instead of compile |
23:08:23 | FromDiscord | <System64 ~ Flandre Scarlet> sent a code paste, see https://paste.rs/lnW |
23:08:32 | FromDiscord | <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:10 | FromDiscord | <ShalokShalom> @scipio My default answer to this question https://medium.com/swlh/what-makes-godot-engine-great-for-advance-gui-applications-b1cfb941df3b |
23:10:51 | FromDiscord | <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:12 | FromDiscord | <ShalokShalom> I personally think its far ahead of any other method to create UIs |
23:11:27 | FromDiscord | <Elegantbeef> System what do you get when you do `pkg-config --libs gtk4`? |
23:11:47 | FromDiscord | <Elegantbeef> Odd that mingw is using `11.1.0` |
23:11:50 | FromDiscord | <scipio> In reply to @ShalokShalom "I personally think its": I also looked at GoDot today yes |
23:12:00 | FromDiscord | <Elegantbeef> Why did you write `GoDot`? |
23:12:00 | FromDiscord | <Elegantbeef> It's godot |
23:12:03 | FromDiscord | <Elegantbeef> Godot is a word |
23:12:07 | FromDiscord | <scipio> (learning it was written in c++, I thought it would be written in Go) |
23:12:29 | FromDiscord | <System64 ~ Flandre Scarlet> sent a code paste, see https://paste.rs/0lH |
23:13:07 | FromDiscord | <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:11 | FromDiscord | <ShalokShalom> And its a joy to read |
23:13:30 | FromDiscord | <Elegantbeef> It's quite odd that it's somehow getting `11.1.0` |
23:13:39 | FromDiscord | <Elegantbeef> @huantian any ideas? |
23:13:40 | FromDiscord | <ShalokShalom> I personally disliked C++ a lot, and Godot did introduce me into beautful Cpp |
23:13:55 | FromDiscord | <scipio> @ShalokShalom are you Erik? |
23:14:01 | FromDiscord | <ShalokShalom> No |
23:14:05 | FromDiscord | <ShalokShalom> who is Erik? |
23:14:24 | FromDiscord | <ShalokShalom> But I can also speak German 🙂 |
23:14:25 | FromDiscord | <scipio> The author of the article you mentioned as your default answer |
23:14:30 | FromDiscord | <ShalokShalom> Ah, I see. |
23:14:31 | FromDiscord | <ShalokShalom> No |
23:14:37 | FromDiscord | <ShalokShalom> I am just some Godot advocate 😄 |
23:14:43 | FromDiscord | <huantian> sent a code paste, see https://play.nim-lang.org/#ix=4kM9 |
23:14:48 | FromDiscord | <ShalokShalom> (edit) "beautful" => "beautiful" | "beautifulCpp ... " added "😄" |
23:15:32 | FromDiscord | <Elegantbeef> Wait i just noticed Nim is still looking in `dist/mingw64/bin` |
23:15:33 | FromDiscord | <huantian> wait no |
23:15:35 | FromDiscord | <huantian> yweah |
23:15:42 | FromDiscord | <huantian> it's using nim's mingw |
23:16:20 | FromDiscord | <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:23 | FromDiscord | <System64 ~ Flandre Scarlet> Oh, might be why? |
23:16:24 | FromDiscord | <Elegantbeef> Any windows users know how to solve this 😄 |
23:16:28 | FromDiscord | <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:46 | FromDiscord | <treeform> Currently I am doing some AI stuff with the https://theartbutton.ai/ |
23:16:49 | FromDiscord | <Elegantbeef> Turns out making a usable UI framework takes forever |
23:16:50 | FromDiscord | <ShalokShalom> In reply to @scipio "<@208199869301522432> well obviously I": Because somebody has to do it |
23:17:00 | FromDiscord | <Elegantbeef> Shalok you look like someone |
23:17:28 | FromDiscord | <scipio> In reply to @treeform "yes it would be": Ahh hello Andre! I have been watching your videos today 🙂 |
23:17:37 | FromDiscord | <ShalokShalom> I decided to bet on fsharp, I am only here today cause I really like this community |
23:17:47 | FromDiscord | <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:31 | FromDiscord | <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:34 | FromDiscord | <Saint> Hey what is the syntax for %{ } |
23:18:39 | FromDiscord | <ShalokShalom> I am looking forward, how this would look |
23:18:39 | FromDiscord | <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:41 | FromDiscord | <Saint> How do I look it up? |
23:19:02 | FromDiscord | <Elegantbeef> It's `std/json` |
23:19:23 | FromDiscord | <Saint> Ty |
23:20:22 | FromDiscord | <Saint> (edit) "Ty" => "Ty!" |
23:20:39 | FromDiscord | <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:14 | FromDiscord | <leetnewb> In reply to @voidwalker "Damn I missed all": I think it's mostly on/linked to from his twitter |
23:21:25 | FromDiscord | <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:40 | FromDiscord | <scipio> (edit) "look" => "looks" |
23:23:12 | FromDiscord | <treeform> sorry, I don't know about the Rust GUI landscape |
23:24:21 | FromDiscord | <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:44 | FromDiscord | <System64 ~ Flandre Scarlet> I have no idea about how to install this GTK oof |
23:24:48 | FromDiscord | <scipio> I've been stumbling on UI frameworks that are either abandoned or not completed yet |
23:25:06 | FromDiscord | <cow> the Qt bindings are probably the most mature |
23:25:45 | FromDiscord | <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:45 | FromDiscord | <cow> unless you want something written in Nim |
23:27:00 | FromDiscord | <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:38 | FromDiscord | <ShalokShalom> The binding for 3 has proven, that its possible |
23:28:04 | FromDiscord | <cow> godot bindings need a specific version of godot though, right |
23:28:18 | FromDiscord | <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:36 | FromDiscord | <ShalokShalom> In reply to @cow "godot bindings need a": Well, the interface changed between 3 and 4 |
23:28:55 | FromDiscord | <ShalokShalom> Here is the list: https://github.com/Vivraan/godot-lang-support |
23:29:12 | FromDiscord | <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:22 | FromDiscord | <cow> In reply to @ShalokShalom "Well, the interface changed": it requires 3.0 iirc |
23:29:36 | FromDiscord | <treeform> sent a long message, see http://ix.io/2mgX |
23:29:59 | FromDiscord | <ShalokShalom> In reply to @cow "it requires 3.0 iirc": Aaahm, I would highly doubt that |
23:30:06 | FromDiscord | <ShalokShalom> It is surely not up to the most current version |
23:30:09 | FromDiscord | <cow> https://pragmagic.github.io/godot-nim/master/index.html |
23:30:20 | FromDiscord | <cow> the documentation still says it's 3.0 |
23:30:20 | FromDiscord | <Elegantbeef> It works with modern 3.x |
23:30:36 | FromDiscord | <Elegantbeef> Thanks to sane versioning you can use it on godot 3.x |
23:30:38 | FromDiscord | <ShalokShalom> Yeah, that is definitely outdated information |
23:30:58 | FromDiscord | <ShalokShalom> Elegant, do you have commit rights for this repo? |
23:31:05 | FromDiscord | <ShalokShalom> Since I think you do and I send you a PR 😛 |
23:31:27 | FromDiscord | <ShalokShalom> According to the recommended VSCode extension |
23:31:35 | FromDiscord | <ShalokShalom> And we could also change that 3.0 stuff |
23:31:39 | FromDiscord | <Elegantbeef> I do not have any commit rights |
23:31:58 | FromDiscord | <jmgomez> NimForUE is not too far away from here. UMG is also a great UI framework |
23:32:27 | FromDiscord | <ShalokShalom> That would be the most supported then |
23:32:43 | FromDiscord | <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:01 | FromDiscord | <ShalokShalom> You seem to have commited directly, Elegant: https://github.com/pragmagic/godot-nim/commits/master |
23:33:12 | FromDiscord | <cow> "certificate that is not valid for www.nimble.directory. The certificate is only valid for badges.debian.net." ??? |
23:33:14 | FromDiscord | <ShalokShalom> Maybe your power is bigger than you thought? |
23:33:19 | FromDiscord | <ShalokShalom> Code just commits for you 😛 |
23:33:33 | FromDiscord | <cow> In reply to @jmgomez "NimForUE is not too": can you link UMG? hard to find it |
23:33:35 | FromDiscord | <Elegantbeef> Yea let's grab a non free game engine that's 10+GB to use as a GUI framework |
23:33:48 | FromDiscord | <ShalokShalom> In reply to @cow "can you link UMG?": thats the Unreal framework |
23:33:49 | FromDiscord | <jmgomez> In reply to @cow "can you link UMG?": sorry, it stands for Unreal Motion Graphics |
23:33:56 | FromDiscord | <voidwalker> In reply to @auxym "I thought it was": Looks to me that Araq is some sort of Jordan Peterson : D |
23:34:13 | FromDiscord | <ShalokShalom> In reply to @Elegantbeef "Yea let's grab a": I think its 30 to 40 GB |
23:34:26 | FromDiscord | <ShalokShalom> Insanely performance constly to build |
23:34:28 | FromDiscord | <Elegantbeef> 30 - 40GB is 10+ |
23:34:31 | FromDiscord | <ShalokShalom> Almost no Linux support |
23:34:35 | FromDiscord | <Elegantbeef> I'm no expert in math but 30 \> 10 |
23:34:35 | FromDiscord | <ShalokShalom> Yeah, thats true ^^ |
23:34:47 | FromDiscord | <Elegantbeef> It supports linux |
23:34:51 | FromDiscord | <ShalokShalom> 🧐 |
23:34:54 | FromDiscord | <ShalokShalom> Officially |
23:34:55 | FromDiscord | <Elegantbeef> They even ship precompiled linux binaries now |
23:34:58 | FromDiscord | <ShalokShalom> It doesnt really care |
23:35:15 | FromDiscord | <ShalokShalom> It used to run better with WINE than native |
23:35:21 | FromDiscord | <Elegantbeef> But it's still a proprietary game engine, that is massive and owned by what i consider a shit company |
23:35:27 | FromDiscord | <ShalokShalom> They promised top notch Linux support |
23:35:34 | FromDiscord | <ShalokShalom> And surely didnt deliver, imho |
23:35:45 | FromDiscord | <jmgomez> around 124GB if you include debug symbols |
23:35:47 | FromDiscord | <ShalokShalom> In reply to @Elegantbeef "But it's still a": Its an average company |
23:35:51 | FromDiscord | <ShalokShalom> And the source is available |
23:36:03 | FromDiscord | <Elegantbeef> "what i consider" |
23:36:05 | FromDiscord | <ShalokShalom> In reply to @jmgomez "around 124GB if you": Wunderful 🤩 |
23:36:05 | FromDiscord | <cow> i guess compiled games are not necessarily that big though |
23:36:15 | FromDiscord | <Elegantbeef> I consider epic a very shitty company |
23:36:33 | FromDiscord | <ShalokShalom> Godot is just more suited to be used for one person projects |
23:36:36 | FromDiscord | <cow> they are owned by tencent right |
23:36:43 | FromDiscord | <ShalokShalom> Unreal is massive in almost all measurements |
23:36:44 | FromDiscord | <jmgomez> I dont like epic too much neither, but the engine is pretty well made |
23:36:49 | FromDiscord | <Elegantbeef> A majority is still owned by tencent |
23:36:51 | FromDiscord | <ShalokShalom> And great, potentially. |
23:36:54 | FromDiscord | <Elegantbeef> I mean tim sweeny |
23:37:00 | FromDiscord | <Elegantbeef> tencent owns a minority share |
23:37:09 | FromDiscord | <Elegantbeef> Something like 40% iirc |
23:37:29 | FromDiscord | <ShalokShalom> In reply to @Elegantbeef "I consider epic a": They battle Apple and give a lot of money to smaller projects |
23:37:31 | FromDiscord | <huantian> In reply to @ShalokShalom "And surely didnt deliver,": What did you expect when EGS is still windows only |
23:37:40 | FromDiscord | <ShalokShalom> They spend like 500.000 for both Blender and Godot |
23:37:44 | FromDiscord | <ShalokShalom> And many other projects. |
23:37:58 | FromDiscord | <cow> In reply to @ShalokShalom "They battle Apple and": they battle apple for the wrong reasons unfortunately |
23:38:08 | FromDiscord | <ShalokShalom> They do |
23:38:22 | FromDiscord | <ShalokShalom> I mean, considering how many shitty companies are out there |
23:38:28 | FromDiscord | <ShalokShalom> Epic isnt the first that comes to my mind |
23:38:30 | FromDiscord | <Elegantbeef> Huan i'm still confused about sweeny's linux comments, I'm already Canadian and use Linux. Where do i move?! |
23:38:30 | FromDiscord | <Elegantbeef> Yes the mega fund is good, but that doesnt suddenly make them less shit |
23:38:32 | FromDiscord | <ShalokShalom> I dont praise them |
23:38:38 | FromDiscord | <Elegantbeef> EGS was actively anti consumer |
23:38:46 | FromDiscord | <cow> In reply to @ShalokShalom "Epic isnt the first": definitely not, but in epic's niche I very much prefer steam |
23:38:51 | FromDiscord | <ShalokShalom> And lots of stuff is pro consumer |
23:38:58 | FromDiscord | <Elegantbeef> What? |
23:39:10 | FromDiscord | <Elegantbeef> EGS is actively anti consumer, buying exclusivity is anti consumer |
23:39:11 | FromDiscord | <ShalokShalom> Like the reduced costs for both hosting stuff on their shop and to use the engine |
23:39:12 | FromDiscord | <cow> steam contributes to linux at least |
23:39:40 | FromDiscord | <ShalokShalom> In reply to @cow "definitely not, but in": I prefer that they both compete for users |
23:39:41 | FromDiscord | <Elegantbeef> EGS doesnt even have user reviews yet |
23:39:54 | FromDiscord | <ShalokShalom> In reply to @cow "steam contributes to linux": Also just for egoistic reasons. |
23:39:58 | FromDiscord | <cow> In reply to @ShalokShalom "I prefer that they": yes, it's nice that the monopoly has been broken |
23:40:12 | FromDiscord | <ShalokShalom> Valce isnt a better company than Epic, isnt? |
23:40:21 | FromDiscord | <ShalokShalom> In reply to @cow "yes, it's nice that": Is it? |
23:40:31 | FromDiscord | <Elegantbeef> I'd say valve is a better company yes |
23:40:34 | FromDiscord | <ShalokShalom> Epic has maybe broken the monopoly of Apple |
23:40:37 | FromDiscord | <ShalokShalom> Not Valve |
23:40:42 | FromDiscord | <ShalokShalom> imho |
23:40:46 | FromDiscord | <cow> epic is also monopolizing some games |
23:40:51 | FromDiscord | <cow> to their shitty launcher |
23:40:53 | FromDiscord | <cow> like rocket league |
23:41:06 | FromDiscord | <Elegantbeef> Valve's steam publishing agreement has a few very pro consumer arrangements |
23:41:15 | FromDiscord | <Elegantbeef> But valve also has history of anti consumer practicses |
23:41:22 | FromDiscord | <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:27 | FromDiscord | <cow> In reply to @ShalokShalom "Also just for egoistic": not sure if steam OS or them making proton was first |
23:41:29 | FromDiscord | <ShalokShalom> Valve defends the N1 position |
23:41:31 | FromDiscord | <Elegantbeef> Refunding not being existent until australia petitioned it |
23:41:34 | FromDiscord | <cow> so i can't answer that |
23:41:59 | FromDiscord | <cow> but yeah steam is also proprietary and has DRM |
23:42:01 | FromDiscord | <ShalokShalom> In reply to @cow "not sure if steam": Both went hand in hand |
23:42:05 | FromDiscord | <jmgomez> In reply to @cow "like rocket league": didnt they buy the whole game? |
23:42:20 | FromDiscord | <cow> In reply to @jmgomez "didnt they buy the": possibly, it's a dick move from them nevertheless |
23:42:22 | FromDiscord | <Elegantbeef> I dont really care about them buying rocket league and moving to EGS |
23:42:25 | FromDiscord | <ShalokShalom> In reply to @cow "epic is also monopolizing": They have to! |
23:42:30 | FromDiscord | <Elegantbeef> You can ship your product wherever you want |
23:42:34 | FromDiscord | <jmgomez> well, is not like they were force to sell.. |
23:42:39 | FromDiscord | <Elegantbeef> Purchasing exclusivity is actively anti consumer |
23:42:41 | FromDiscord | <ShalokShalom> Steam is monopolising the whole gaming industry |
23:43:06 | FromDiscord | <Elegantbeef> DRM is optional though↵(@cow) |
23:43:17 | FromDiscord | <jmgomez> I dont really care to what those companies are doing though. If they do wrong, eventually consumers will make them pay |
23:43:30 | FromDiscord | <cow> that has surely worked out for facebook |
23:43:31 | FromDiscord | <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:48 | FromDiscord | <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:07 | FromDiscord | <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:49 | FromDiscord | <cow> hot take: loot boxes are not scummy, unless they make the game either pay to win or pay to progress |
23:45:58 | FromDiscord | <Elegantbeef> Atleast you can resell the digital items on their market place unlike other games |
23:46:25 | FromDiscord | <cow> In reply to @Elegantbeef "Atleast you can resell": you can sell games you bought on steam? |
23:46:47 | FromDiscord | <System64 ~ Flandre Scarlet> In reply to @cow "epic is also monopolizing": They still give free games |
23:46:48 | FromDiscord | <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:44 | FromDiscord | <cow> keys are already being sold, and they are kind of tolerated |
23:47:50 | FromDiscord | <cow> as long as the keys aren't fraudulent |
23:48:23 | FromDiscord | <cow> In reply to @voidwalker "What would really be": definitely! |
23:49:04 | FromDiscord | <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:26 | FromDiscord | <cow> same should apply to ebooks with DRM |
23:49:45 | FromDiscord | <cow> but ebooks with DRM is way more abhorrent than software with DRM |
23:49:54 | FromDiscord | <cow> for some reason |
23:49:59 | FromDiscord | <cow> (edit) "reason" => "reason, I think?" |
23:50:04 | FromDiscord | <cow> although I can't really say why |
23:50:48 | FromDiscord | <huantian> Why has this chat become DRM talk lamp |
23:50:52 | FromDiscord | <huantian> (edit) "lamp" => "lmao" |
23:51:08 | FromDiscord | <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:15 | FromDiscord | <voidwalker> DRM protected nim modules |
23:51:25 | FromDiscord | <voidwalker> to stay on topic : D |
23:51:37 | FromDiscord | <cow> In reply to @huantian "Why has this chat": unreal engine -> epic -> debate whether epic or valve is shittier |
23:52:19 | FromDiscord | <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 |