00:05:18 | * | filcuc quit (Ping timeout: 268 seconds) |
00:05:24 | * | Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
00:09:44 | * | krux02_ joined #nim |
00:10:51 | * | Pqzcih5 quit (Remote host closed the connection) |
00:12:42 | * | krux02 quit (Ping timeout: 260 seconds) |
00:15:18 | * | gmpreussner quit (Ping timeout: 260 seconds) |
00:16:15 | * | gmpreussner joined #nim |
00:17:38 | FromDiscord_ | <exelotl> haven't played Baba Is You but I suspect it's something like writing concepts in Nim |
00:17:38 | FromDiscord_ | <exelotl> https://cdn.discordapp.com/attachments/371759389889003532/671509148902359090/unknown.png |
00:29:12 | * | zama quit (Ping timeout: 265 seconds) |
00:31:31 | * | zama joined #nim |
00:34:22 | krux02_ | exelotl: "Baba Is You" is a great grame, I can verify that. |
00:34:47 | krux02_ | I recommend to play it with someone else though, because it is a hard game and 4 eyes see more than 2 |
00:40:49 | FromDiscord_ | <Rika> is it mainly about programming, baba is you? |
00:41:16 | FromDiscord_ | <exelotl> krux02_: oh cool, thanks for the tip, I'll try and find a friend to play with some time |
00:42:11 | krux02_ | Rika: well not programming directly, but it is about setting up rules and stuff. |
00:43:22 | krux02_ | It is pretty easy to get what Baba is You is about. The trick in the game is, every rule of the game is defined in the level and can be changed. That makes the gave sometimes really tricky to think about because the rules are always different and always changing |
00:44:12 | krux02_ | in a majority of level you play as baba and try to reach the flag, but that is not the goal. |
00:52:59 | FromDiscord_ | <Rika> i see |
00:59:10 | * | arecaceae quit (Remote host closed the connection) |
00:59:30 | FromDiscord_ | <DeltaPHC> Basically it's a block-pushing game where the rules of the game exist as in-game pushable blocks |
00:59:38 | * | arecaceae joined #nim |
01:00:20 | FromDiscord_ | <DeltaPHC> Kinda like a tile-based syntax |
01:00:29 | FromDiscord_ | <DeltaPHC> for a logical language |
01:02:54 | FromDiscord_ | <DeltaPHC> And it turns out that the puzzle and logic mechanics of Baba Is You are Turing-complete. There's a Conway's Game of Life board made within the game |
01:03:22 | FromDiscord_ | <DeltaPHC> that a user made |
01:09:20 | FromGitter | <deech> I'd like to pass a dynamic lib via the `{.link: mylib.so .}` but the path needs to be known ahead of time. Is there a Nimscript function that will take a library name, look around in `LIBRARY_PATH`/`PATH`/`C_LIBRARY_PATH`/whatever return an absolute path to it ? |
01:11:28 | * | lritter quit (Ping timeout: 268 seconds) |
01:15:42 | disruptek | deech: i think this is generally difficult, but shashlick is the expert. i would take a look at what nimterop does -- it's probably the 2nd best option. |
01:15:56 | disruptek | the 1st best option is, of course, to set the path of the library yourself. |
01:21:34 | FromGitter | <deech> I'll look at nimterop but can you elaborate on why this is difficult? |
01:21:53 | leorize | use `{.link: "-lmylib".}` |
01:22:00 | leorize | that will use the C compiler search path |
01:22:09 | leorize | much easier |
01:22:22 | FromGitter | <deech> Oh nice, does that work for dynamic libs as well? |
01:22:36 | leorize | that works for everything :P |
01:22:43 | leorize | usually you would pass your own path if you build it |
01:22:57 | leorize | but if you are linking with system library then use `-l` |
01:23:09 | FromGitter | <deech> Nice! |
01:23:43 | FromGitter | <deech> I don't live in C/C++ land so I don't know some basics. |
01:23:48 | disruptek | the problem is that you end up having to call out to the env, and then reproducible builds are "impossible". |
01:24:16 | leorize | once you're on linux land, you need the exact distro to be reproducible |
01:24:27 | disruptek | leorize is on point regarding the simple use-case. |
01:25:05 | FromGitter | <deech> My use case is simple, I just want to link with `libjpeg.so.whatever`. |
01:25:13 | disruptek | -ljpeg |
01:25:18 | leorize | usually when linking with system 3rd party library, pkg-config should be used to get the exact link flags |
01:25:30 | leorize | note that some system don't have libjpeg but they have libjpeg_turbo |
01:25:54 | disruptek | and to differentiate is not reproducible... |
01:26:27 | leorize | disruptek: you need the exact distro if you want everything to be reproducible |
01:26:40 | disruptek | i just want it to work. |
01:26:43 | leorize | *nix stuff usually use pkg-config to get the exact flags needed |
01:26:54 | disruptek | i can't even reproduce nimterop from one directory to another. that's really my point. |
01:28:02 | leorize | reproducibility is hell on linux |
01:28:11 | disruptek | it doesn't have to be. |
01:28:15 | leorize | debian is making efforts on that, but no one is following :P |
01:28:55 | leorize | nowadays if you want the most portable, I'd say targeting a runtime like flatpak gives you the best results |
01:29:13 | leorize | it actually runs on musl libc based system without a hitch |
01:30:49 | disruptek | sure. |
01:31:13 | disruptek | unfortunately, the first challenge is to make the nim reproducible. |
01:33:34 | leorize | someone make a PR to do that that got merged iirc |
01:33:45 | leorize | search reproducible in the commit log |
01:34:45 | disruptek | #7644 |
01:34:46 | disbot | https://github.com/nim-lang/Nim/issues/7644 -- 5Initial support for reproducible builds |
01:37:07 | disruptek | https://tests.reproducible-builds.org/alpine/alpine.html |
01:37:16 | disruptek | not super encouraging, but w/e. |
01:37:55 | disruptek | https://tests.reproducible-builds.org/archlinux/archlinux.html little better |
01:41:45 | disruptek | i just really can't believe this is such a hard problem. |
01:43:55 | disruptek | i mean, for us. |
01:44:05 | disruptek | it's clearly a challenge for, eg. a distro. |
01:47:35 | * | ng0 quit (Quit: leaving) |
01:48:42 | ptdel | is there a `collect` keyword that replaced `lc` ? thought I saw some reference in some github issues but can't find it now in the standard lib docs |
01:51:11 | rayman22201 | fun fact, I have a friend who writes slot machine games. He really likes Nim, but because Nim could not guarantee reproducible builds in a meaningful way, he couldn't use it. |
01:51:32 | disruptek | that /is/ a fun fact. |
01:51:35 | FromGitter | <Obround> Hello! I was just wondering if there was a way to add inside of a type. Something like this: ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5e2f93a773ddad4acd61746e] |
01:51:47 | leorize | no |
01:52:01 | rayman22201 | The regulatory body in charge of casino gaming has strict legal requirements around reproducible builds. |
01:52:06 | disruptek | rayman22201: probably for cert reasons. |
01:52:07 | disruptek | yeah |
01:52:08 | leorize | Obround: just use a getter for that |
01:52:33 | FromGitter | <Obround> What do you mean? |
01:53:16 | leorize | https://nim-lang.org/docs/manual.html#procedures-properties |
01:53:33 | leorize | ^ that allows you to customize how something can be get/set |
01:54:37 | FromGitter | <zetashift> Getting started with OpenGL for the first time, anybody know what I'm doing wrong here? https://play.nim-lang.org/#ix=28xA |
01:54:39 | FromGitter | <Obround> Cool! Just wondering if there was a way to do inside the type definition. |
01:54:55 | FromGitter | <zetashift> FWIW I don't have a lot of exerperience in C and function pointers are basically callbacks no? |
01:55:05 | leorize | @Obround: nope :P unless you use a macro |
01:55:15 | leorize | zetashift: yes |
01:55:37 | leorize | well those callbacks take cdecl stuff |
01:56:23 | krux02_ | zetashift, function pointers are one way to do callbacks. That name specifies the implementation. And that is usually the way how callbacks work in C. |
01:57:05 | krux02_ | But C doesn't have closures, you can only point to functions known by name to the compiler. |
01:57:35 | FromGitter | <zetashift> so adding the pragma `cdecl` should remove that error? |
01:58:33 | krux02_ | I didn't real all the conversation yet, but probably yes. |
01:58:50 | leorize | I didn't even try to compile the code, but probably yes :p |
01:58:58 | FromGitter | <zetashift> yeah it works whoop |
01:59:02 | FromGitter | <zetashift> scary C land |
01:59:21 | krux02_ | also when working with opengl, I personally like the "deprecaded" way of doing things. |
01:59:25 | leorize | the error message actually said it expects {.cdecl.} :p |
01:59:40 | krux02_ | The spec is shorter. The implementation is solid, the about of hardware that supports it is wide |
01:59:59 | krux02_ | and most importantly, you get productive quickly. |
02:00:35 | FromGitter | <zetashift> I'm just following learnopengl, I don't really know that much about it |
02:00:48 | FromGitter | <zetashift> anything I can read up on the way of "deprecaded" |
02:00:51 | krux02_ | But it only supports static meshes, no shaders and no bone animated obejcts. |
02:01:13 | FromGitter | <zetashift> @leorize ah yeah then I just misinterpret it, I thought I could ignore the pragma's and locks stuff |
02:01:37 | leorize | you can ignore the locks stuff, but not the rest :P |
02:02:06 | FromGitter | <zetashift> I never used pragmas like this D: |
02:02:14 | FromGitter | <zetashift> But now I know! |
02:02:34 | krux02_ | I have quite some experience with openGL, I wrote a nim macro library that allows to embed shader code into a function block in a way that uniform passing and attribute passing is absolutely painless. |
02:03:02 | FromGitter | <zetashift> You mean using an older version of OpenGL? I do know that a lot of hardware struggles with the newer versions |
02:03:11 | krux02_ | but if you don't have that, and you go for "modern" OpenGL, get ready for very painfull and unproductive programming |
02:03:26 | krux02_ | zetashift, not really. |
02:03:45 | krux02_ | OpenGL 4.1 is now 10 years old |
02:03:54 | FromGitter | <zetashift> I'm just following this tutorial out of curiosity and free time |
02:04:21 | krux02_ | Btw openGL 4.1 is the last version supported on a mac |
02:05:09 | krux02_ | but don't use that size callback. |
02:05:48 | FromGitter | <zetashift> that size callback is a part of GLFW which I'm using to open a window tho |
02:05:51 | krux02_ | In old opengl it is quite easy to support window resizing, in modern openGL it is really tough, because you have to resize (recreate) a lot of buffers. |
02:06:13 | FromGitter | <zetashift> Any reason they changed it? |
02:06:22 | krux02_ | so just stick to one size. It saves you a lot of time implementing something that isn't really that important. |
02:06:32 | krux02_ | yes of coures. |
02:06:57 | krux02_ | more low level control so engines can become faster. |
02:07:22 | krux02_ | The focus on what OpenGL (or Vulkan now) wants to be has changed over the years. |
02:07:28 | FromGitter | <zetashift> always those trade-offs |
02:08:25 | krux02_ | OpenGL is really developed to make small teams and individual developers happy. OpenGL 4 and upwards (Vulkan) has been developed to make middleware developers (Unity, Unreal) and teams with big budget happy. |
02:09:51 | krux02_ | but that is just the short version. |
02:10:02 | krux02_ | anyway, I for a long time now, made a new PR to Nim. |
02:10:04 | krux02_ | Yay. |
02:10:09 | krux02_ | I should go sleeping now. |
02:10:26 | disruptek | thanks, krux02_ :-) |
02:11:11 | krux02_ | yea, it is newLit on distinct types. |
02:11:38 | krux02_ | should have been in there for quite some time |
02:21:37 | FromGitter | <zetashift> whoop whoop and goodnight! |
02:51:24 | * | dddddd quit (Remote host closed the connection) |
02:58:16 | * | thomasross quit (Read error: Connection reset by peer) |
02:58:29 | * | thomasross joined #nim |
02:58:58 | * | endragor joined #nim |
03:04:51 | * | jholland__ quit (Quit: Connection closed for inactivity) |
03:23:15 | * | ftsf joined #nim |
03:44:05 | * | rockcavera quit (Remote host closed the connection) |
03:45:03 | * | muffindrake quit (Ping timeout: 246 seconds) |
03:47:29 | * | muffindrake joined #nim |
03:57:12 | disruptek | i feel like the thing that isn't conveyed well about nim is that it's stable /enough./ if you are just evaluating on the strength of buzzwords or bug counts, sure, but that's silly. the bones are there, and those bones can walk. |
04:00:03 | shashlick | @deech just use getHeader, that's exactly what it does |
04:00:09 | disruptek | i just ran into a deadlock in `ensureInitialized`. |
04:03:19 | disruptek | it's in nimph's tests; tpackage, under arc of course. |
04:19:29 | * | krux02_ quit (Remote host closed the connection) |
04:23:25 | disruptek | hey treeform, are you around? |
04:26:58 | * | chemist69 quit (Ping timeout: 245 seconds) |
04:28:26 | * | marmotini_ joined #nim |
04:29:15 | * | chemist69 joined #nim |
04:39:58 | * | nsf joined #nim |
04:46:04 | * | marmotini_ quit (Remote host closed the connection) |
04:46:37 | * | marmotini_ joined #nim |
04:51:37 | * | marmotini_ quit (Ping timeout: 268 seconds) |
05:02:21 | * | marmotini_ joined #nim |
05:06:22 | FromDiscord_ | <treeform> yes |
05:07:25 | * | marmotini_ quit (Ping timeout: 272 seconds) |
05:07:57 | * | cron joined #nim |
05:07:58 | disruptek | now that the vm loops limits are configurable, i'm thinking of trying to package up the google/amazon/microsoft api generators. what do you think about making openapi more of a suite with tools that help automate these sorts of pseudo-wrappers? |
05:08:22 | disruptek | i'm thinking just nimscripts, and maybe a single command to tie them together. |
05:08:49 | disruptek | well, we would bundle in a yaml converter because you'll want that anyway. |
05:10:30 | disruptek | anyway, think about it. |
05:16:12 | FromDiscord_ | <treeform> Up to you. It steels feels easier for me to just make rest calls with a json blob. Most of the time its like 10 lines of code. While the wrapper generators created soo many lines and wrappers it was scary. It did not make code on my side easier as I need to create all of the objects. I don't know its a hard problem. |
05:16:57 | FromDiscord_ | <treeform> How to make calling the APIs easy and clear and have good type safety. |
05:16:59 | disruptek | i know, i need to come up with templates or something to make that feel more nimish. |
05:17:38 | disruptek | it's just insanely tough because roughly the same rendering has to work for thousands and thousands of different APIs. |
05:18:15 | * | treeform joined #nim |
05:18:19 | disruptek | even amazon makes it harder than it needs to be. |
05:19:20 | FromDiscord_ | <treeform> Yeah that a problem |
05:19:26 | FromDiscord_ | <treeform> you almost need some sort of type safe DSL |
05:21:26 | disruptek | we have that in json; i realized (a little late, duh) that the only way to make the api was to use json underneath, because it's the only way to be sure we can always capture the semantics. |
05:21:48 | disruptek | so those are the real limits. but oh, so many damned assumptions... |
05:22:32 | FromDiscord_ | <treeform> All I want to do is call "upload" https://github.com/treeform/blog/blob/master/uploader.nim#L34 |
05:22:48 | FromDiscord_ | <treeform> event bucket and path should probably be a single string |
05:22:54 | FromDiscord_ | <treeform> so its just like writeFile... |
05:23:07 | FromDiscord_ | <treeform> But the upload makes you jump through some hoops: |
05:23:08 | FromDiscord_ | <treeform> https://github.com/treeform/googleapi/blob/master/src/googleapi/storage.nim#L14 |
05:23:18 | disruptek | really you want bucket.upload(filepath) |
05:23:41 | disruptek | or as araq would say, filepath.upload(bucket) |
05:23:49 | FromDiscord_ | <treeform> well the data too |
05:24:07 | FromDiscord_ | <treeform> in my mind bucket is part of file path |
05:24:15 | FromDiscord_ | <treeform> what I want is probably |
05:24:28 | FromDiscord_ | <treeform> uploadFile(bucektPath, data) |
05:24:36 | disruptek | yeah, i mean, it looks fine to me. |
05:24:47 | FromDiscord_ | <treeform> but looks at the URL you need: |
05:24:49 | FromDiscord_ | <treeform> &"{uploadRoot}/b/{bucketId}/o?uploadType=media&name={encodeUrl(objectId)}" |
05:25:06 | disruptek | well, we don't need the connection. |
05:25:07 | FromDiscord_ | <treeform> why is bucketID part of the URL while file path is name? |
05:25:22 | FromDiscord_ | <treeform> you need to set its meme type? |
05:25:22 | disruptek | because bucket is a totally different thing. |
05:25:25 | FromDiscord_ | <treeform> wtf |
05:25:29 | disruptek | of course. |
05:25:44 | FromDiscord_ | <treeform> The APIs are so bad, just wrapping them as they are is really odd |
05:25:53 | FromDiscord_ | <treeform> I would have to make wrapper ontop of your wrapper |
05:26:03 | disruptek | of course. that's what it's for. |
05:26:07 | FromDiscord_ | <treeform> for it to be useable |
05:26:14 | disruptek | but, you will get the underlying benefits for free. |
05:26:29 | FromDiscord_ | <treeform> but if I am making the wrapper I just post my own json |
05:26:32 | FromDiscord_ | <treeform> its not that hard |
05:26:35 | disruptek | it's basically wrapping web apis the same way nimterop wraps ffi libs. |
05:26:54 | FromDiscord_ | <treeform> yeah that's true |
05:27:09 | shashlick | Just nimit |
05:27:20 | shashlick | Just nimit |
05:27:22 | shashlick | Ooh |
05:27:29 | disruptek | i think there will be value (eventually) in the rest layer, too. just having connection pools and stuff. |
05:28:06 | disruptek | soon we'll be able to build js, too. just, no http client so no point at the moment. |
05:28:48 | FromDiscord_ | <treeform> I just feel like the REST api is pretty easy to use |
05:29:09 | disruptek | i think you should make your buckets distinct from objects and then attach the connection to one/both of them. |
05:29:55 | FromDiscord_ | <treeform> Is this the upload call? |
05:29:57 | FromDiscord_ | <treeform> https://github.com/disruptek/gcplat/blob/master/src/gcplat/storage_v1.nim#L5280 |
05:30:06 | FromDiscord_ | <treeform> I don't even know how to call it or all what that all is... |
05:30:20 | FromDiscord_ | <treeform> 11k lines file... |
05:30:29 | disruptek | right, this is not your sunday school api generator. |
05:30:31 | FromDiscord_ | <treeform> why would I include that vs 10 lines of some rest crap |
05:30:40 | disruptek | it's almost like a meta-api-generator. |
05:30:56 | FromDiscord_ | <treeform> Yeah I get it. Its hard to make APIs. |
05:31:06 | FromDiscord_ | <treeform> Its hard to make a meta-api-generator... |
05:31:13 | FromDiscord_ | <treeform> And I think you did a great job. |
05:31:15 | disruptek | making them is easy. parsing them is hard. |
05:31:17 | FromDiscord_ | <treeform> This is not easy. |
05:31:56 | FromDiscord_ | <treeform> But I just don't want to include this blob 11k in my code base. I don't understand it. It looks ugly. It looks like Java or some thing... |
05:32:05 | * | narimiran joined #nim |
05:32:15 | disruptek | sure, if you are only going to use a few procs, that makes sense. |
05:32:33 | FromDiscord_ | <treeform> I am using like 20? How much can a software use? |
05:33:05 | disruptek | well, aws has 200 apis. google, like 700?, microsoft, like 2000? something stupid like that. |
05:33:32 | disruptek | when you sum just the aws apis, it's about 1.2MM lines of nim. |
05:34:04 | FromDiscord_ | <treeform> I just can't take responsibility for important that many lines of code. |
05:34:26 | disruptek | you can generate it yourself. |
05:34:40 | disruptek | you'll see exactly the diffs if/when it changes. |
05:36:21 | FromDiscord_ | <treeform> I think maybe the main problem is that googles are so complex... is that by writing my own reset wrapper I understand them better. |
05:36:37 | FromDiscord_ | <treeform> I figure out the parameters I don't need and remove/not support them. |
05:36:54 | disruptek | the first real api i did was amazon's marketplace web services. it's, like, all their fulfillment and payment and inventory systems. |
05:36:58 | FromDiscord_ | <treeform> Without writing my own wrapper I can't really know/trust how it works... |
05:37:22 | disruptek | couple hundred different calls. this is a python lib i did, btw. |
05:37:42 | disruptek | you get a pretty good feel for the pitfalls and what's important. |
05:37:43 | FromDiscord_ | <treeform> So google provides and API SDK for python. Its likewise really hard to use. Because it has all of the features and its super complex. |
05:38:00 | disruptek | i mean, it doesn't have to be. |
05:38:01 | FromDiscord_ | <treeform> If you import python's gcp stuff it takes 3 seconds to just import and grows to 100mb in ram. |
05:38:26 | disruptek | writing something on top of this is what it's designed for. you can insert your own hooks to do validation, rename procs, whatever. |
05:38:30 | FromDiscord_ | <treeform> I just prefer to use rest stuff from python as well. It just seems cleaner. |
05:39:06 | disruptek | because those are the problems you run into when trying to generalize these problems. because doing it by hand is unwieldy. too much work. |
05:39:48 | disruptek | google's stuff uses protobuf under the covers? |
05:40:30 | FromDiscord_ | <treeform> Yes. I worked and google and used the protobufs and its the same issue... |
05:40:48 | disruptek | i mean, that's what the python lib is using, right? |
05:41:10 | FromDiscord_ | <treeform> Naa it makes the json blobs I think. |
05:41:16 | disruptek | i was just curious because when i looked at protobuf, i didn't get the impression that it'd be much faster. |
05:41:38 | disruptek | the problems at the endpoints are the same regardless of the transport. |
05:41:47 | FromDiscord_ | <treeform> My impression is that protobufs don't work/too hard to setup. |
05:42:18 | disruptek | i think they work, but they are designed for a problem that most people don't have. |
05:42:27 | disruptek | they are a google creation for a google problem. |
05:42:28 | FromDiscord_ | <treeform> We use thirft (same as protobuffers now) and we just use the json encoding ... to make it easier |
05:42:42 | disruptek | yeah. |
05:43:13 | FromDiscord_ | <treeform> I don't think the problems are the wrappers you have, the problem is the APIs themselfs... |
05:43:38 | disruptek | well, they're disparate. |
05:43:59 | disruptek | but, see, we can create a hook to generate whatever nim we want. |
05:44:04 | FromDiscord_ | <treeform> They need a human wrapperer that can decide to not include 90% of their power. |
05:44:34 | disruptek | yeah, i think you're looking at the result and you are overlooking the input. |
05:45:13 | disruptek | http://ix.io/28xU/nim -- this is the amazon one, for example. |
05:46:56 | disruptek | so, you can see where i'm reimplementing or adding atozHook. that kinda thing can be done anywhere in the parsing process. |
05:47:49 | disruptek | so if you want `upload(bucket, data)` it's really not a big stretch. you just code that in compile-time nim and you get it for every call. |
05:49:18 | disruptek | i can even take your self-styled google api generator and apply it to amazon inputs to get an amazon api that works like google's. |
05:49:57 | disruptek | anyway, that's sorta the idea behind openapi. |
05:50:21 | disruptek | you're supposed to mold the semantics into the syntax you want. 👍 |
05:57:56 | treeform | I am all up for being proven wrong. Show me. |
05:58:05 | disruptek | hehe |
05:58:16 | disruptek | i'm working on something better. |
05:58:33 | treeform | I would like to see an auto generated API that is easy to use. |
05:58:44 | * | ltriant quit (Quit: leaving) |
05:58:58 | disruptek | i find the amazon one pretty easy, honestly. |
05:59:31 | treeform | Maybe amazon is easier. Do you have S3 reader/writer example? |
05:59:42 | disruptek | !repo atoz |
05:59:42 | disbot | https://github.com/disruptek/atoz -- 9atoz: 11Amazon Web Services (AWS) APIs in Nim 15 14⭐ 0🍴 |
05:59:53 | disruptek | i have a couple examples, but neither are s3. |
06:00:12 | FromDiscord_ | <treeform> 😦 |
06:00:43 | FromDiscord_ | <treeform> Maybe just a set of common examples for most common calls people make... |
06:00:47 | FromDiscord_ | <treeform> would be enough? |
06:00:54 | * | treeform quit (Remote host closed the connection) |
06:01:12 | disruptek | i guess i dunno what calls people make. |
06:01:44 | disruptek | i know that i make calls with and without arguments. |
06:02:09 | FromDiscord_ | <treeform> https://www.stratoscale.com/blog/cloud/7-popular-aws-apis/ |
06:02:32 | FromDiscord_ | <treeform> https://www.2ndwatch.com/wp-content/uploads/2017/02/Top-30-Most-Popular-AWS-Products_2016.pdf |
06:02:38 | disruptek | well, i don't use kms but i use the rest of these. |
06:02:50 | disruptek | but it really doesn't matter. they all work the same. |
06:03:01 | FromDiscord_ | <treeform> show me? |
06:03:05 | FromDiscord_ | <treeform> or show the world... |
06:03:46 | disruptek | https://docs.aws.amazon.com/AmazonS3/latest/API/API_Operations_Amazon_Simple_Storage_Service.html |
06:03:53 | FromDiscord_ | <treeform> How do I read this file and get to where I want? https://raw.githubusercontent.com/disruptek/atoz/master/src/atoz/s3_20060301.nim |
06:04:18 | disruptek | get to where you want? |
06:04:20 | FromDiscord_ | <treeform> Their examples are all in REST... which is my point. |
06:04:27 | FromDiscord_ | <treeform> I can copy paste their rest and just have it work. |
06:04:45 | disruptek | sure you can. |
06:04:46 | FromDiscord_ | <treeform> Its really hard to read that s3_....nim file |
06:05:03 | disruptek | only your tooling needs to read it, but i don't disagree. |
06:05:38 | disruptek | i don't think you're the target customer for this product. 🤣 |
06:06:11 | FromDiscord_ | <treeform> Maybe? I don't know. |
06:06:20 | FromDiscord_ | <treeform> You keep asking me about it. So I respond. |
06:06:43 | FromDiscord_ | <treeform> And I end up not using it for some reason. |
06:06:50 | FromDiscord_ | <treeform> I am trying to qualify why I am not using it. |
06:06:57 | disruptek | yeah, i thought you had a need to do different calls. |
06:07:43 | FromDiscord_ | <treeform> Take this project for example. It makes couple of GCP calls: https://github.com/treeform/blog |
06:07:46 | disruptek | i think your criticisms are on point, which is why it's not right for you. |
06:07:54 | FromDiscord_ | <treeform> would switching to your lib make the code shorter? |
06:08:00 | FromDiscord_ | <treeform> or more clear? |
06:08:11 | * | nisstyre quit (Ping timeout: 250 seconds) |
06:08:20 | disruptek | i dunno, because that's not really what this is about. |
06:08:29 | disruptek | it's about not having to worry about the api changes. |
06:08:31 | FromDiscord_ | <treeform> what is it about? |
06:09:07 | FromDiscord_ | <treeform> hmm API changes does not seem like a problem I have. |
06:09:14 | disruptek | it's about you build an api, you change it, you update client A, you change it, you go to use client B and now you update two versions. this code will ensure that your code breaks in the right way. |
06:09:16 | FromDiscord_ | <treeform> I hate google code churn... |
06:09:25 | FromDiscord_ | <treeform> but they are usually a lot more heavy handed with it |
06:09:30 | disruptek | right; you're not the customer for this product. |
06:09:35 | FromDiscord_ | <treeform> like you must update Go run time, you must switch to pyhon3... |
06:09:55 | FromDiscord_ | <treeform> no API wrapper could save me from my recent Google lets remove the API problems... |
06:10:14 | disruptek | i write a lot of smallish programs in the cloud. they all interact with each other and other services. |
06:10:19 | disruptek | i'm constantly changing shit. |
06:10:25 | disruptek | ebay is constantly changing shit. |
06:10:29 | disruptek | amazon is constantly changing shit. |
06:10:34 | disruptek | walmart? yep. |
06:11:20 | disruptek | i just cannot be bothered to track it all, and yet i need the code to break nicely. |
06:11:46 | FromDiscord_ | <treeform> if your whole point behind your API is to track breaking changing on their end. |
06:11:49 | disruptek | i even use some google stuff, i admit it. |
06:11:54 | FromDiscord_ | <treeform> then yes... I don't seem to have that problem. |
06:12:30 | disruptek | well, no, it's keeping abreast of those changes. |
06:12:43 | FromDiscord_ | <treeform> yeah |
06:12:45 | disruptek | you want to roll with the api. |
06:12:58 | disruptek | i can't just keep using version 1.0. |
06:13:16 | FromDiscord_ | <treeform> i'll use version 1.0 till they send 500s |
06:13:27 | disruptek | lol |
06:13:28 | FromDiscord_ | <treeform> i have no shame |
06:13:40 | FromDiscord_ | <treeform> i'll use python2 till they kick me out... |
06:14:12 | disruptek | what they did to me with 3... it made me not care so much about 2. |
06:14:15 | FromDiscord_ | <treeform> Ok got to go for now |
06:14:17 | FromDiscord_ | <treeform> nice chat |
06:14:22 | disruptek | aight pease. |
06:14:25 | disruptek | peace, too. |
06:15:03 | Zevv | is nitely on #nim by any name? |
06:15:08 | * | nisstyre joined #nim |
06:15:24 | disruptek | morning zevv |
06:15:30 | disruptek | keep my seat warm, will ya? |
06:15:47 | Zevv | off to bed already? |
06:16:34 | disruptek | hell yeah, i have a sleep disorder and this weekend ima be in a lousy time zone. |
06:16:36 | disruptek | no offense. |
06:16:48 | Zevv | sweet dreems then |
06:17:01 | Zevv | I'm sure our time zone will gladly offend you |
06:17:11 | disruptek | nitely night. |
06:17:37 | disruptek | don't let the npegs or nregs bite. |
06:17:55 | Zevv | no bugs in my tracker! |
06:19:54 | disruptek | also tell me why nigel sucks. |
06:19:59 | disruptek | !repo disruptek/nigel |
06:20:00 | disbot | https://github.com/disruptek/nigel -- 9nigel: 11 15 1⭐ 0🍴 |
06:21:01 | * | ptdel quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
06:26:03 | * | leorize quit (Remote host closed the connection) |
06:26:29 | * | leorize joined #nim |
06:28:57 | * | chemist69 quit (Ping timeout: 260 seconds) |
06:29:28 | * | chemist69 joined #nim |
06:32:40 | * | EvergreenTree quit (Ping timeout: 258 seconds) |
06:34:53 | * | EvergreenTree joined #nim |
06:41:14 | * | EvergreenTree quit (Quit: The Lounge - https://thelounge.chat) |
06:41:54 | * | EvergreenTree joined #nim |
06:50:08 | * | NimBot joined #nim |
06:53:59 | * | mal`` quit (Quit: Leaving) |
06:56:10 | * | mal`` joined #nim |
07:08:10 | * | solitudesf joined #nim |
07:40:54 | FromGitter | <Varriount> treeform: Python 2.7's EOL was last December. |
07:46:02 | * | opal quit (Remote host closed the connection) |
07:46:17 | * | opal joined #nim |
08:00:00 | * | gmpreussner quit (Quit: kthxbye) |
08:03:41 | * | PMunch joined #nim |
08:05:07 | * | gmpreussner joined #nim |
08:07:15 | * | solitudesf quit (Ping timeout: 240 seconds) |
08:11:43 | * | Vladar joined #nim |
08:12:25 | * | ng0 joined #nim |
08:12:26 | * | ng0 quit (Changing host) |
08:12:26 | * | ng0 joined #nim |
08:16:38 | * | cron quit (Quit: Leaving.) |
08:22:23 | FromGitter | <kristianmandrup> @disruptek Do you know about amplifyJS for AWS? Would be cool with sth similar in nim, but perhaps using KNative and Kubernetes templates instead (no avoid vendor lock-in) |
08:28:01 | * | nc-x joined #nim |
08:29:56 | nc-x | Araq: is this expected? https://ibb.co/DbmFVpn |
08:31:56 | nc-x | this is causing failure for https://github.com/nim-lang/Nim/pull/13261 |
08:31:57 | disbot | ➥ disallow typedesc in arrays & move existing checks to `types.typeAllowedAux` |
08:40:34 | PMunch | https://forum.nim-lang.org/t/5866, for you dom96 |
08:47:47 | nc-x | I opened an issue https://github.com/nim-lang/Nim/issues/13278 |
08:47:50 | disbot | ➥ `proc` type in `template` return type gets converted to `template` type ; snippet at 12https://play.nim-lang.org/#ix=28y3 |
08:48:50 | * | nc-x quit (Remote host closed the connection) |
08:52:08 | * | thomasross quit (Ping timeout: 268 seconds) |
08:53:08 | * | thomasross joined #nim |
08:54:22 | * | Pqzcih5 joined #nim |
09:03:15 | * | floppydh joined #nim |
09:09:29 | * | skrylar joined #nim |
09:09:47 | skrylar | hoboy. alpine's version of nim is still on 0.17 o.o |
09:31:54 | PMunch | Yeah, most package managers Nim versions are horribly out of date |
09:34:14 | PMunch | Best way to install Nim has for a long time now been choosenim |
09:34:35 | PMunch | Easy updates, easy to switch between versions for testing, etc. |
09:39:36 | skrylar | opensuse's isn't too far out of date iirc |
09:39:54 | skrylar | i tweaked the abuild for it but the tests lock up on the inheritence test |
09:45:20 | kungtotte | Not on Void Linux :P Choosenim fails horribly because Void doesn't ship openssl and the Nimble version in Choosenim looks for the wrong libraries. Good thing the nim package is always up to date; might lag a couple of days but not more |
09:46:11 | skrylar | hm. does choosenim do anything that wouldn't let it use one of the libressl shims |
09:46:56 | narimiran | btw, here are nim versions in various distros: https://repology.org/project/nim/versions (notice the only green ones seem to be those from federico3 :)) |
09:49:36 | narimiran | trivia: the mention version 0.17 was released in May 2017, more than 2.5 years ago |
09:49:42 | narimiran | *mentioned |
09:50:03 | skrylar | right. it's in the "testing" branch so the maintainer might have gone in to cryo |
09:52:05 | * | nimblepoultry quit () |
09:52:23 | * | nimblepoultry joined #nim |
10:02:48 | skrylar | back when i last touched gui stuff i had made this custom serializer based on beos messages; partly cause the api is weird about how you do things like create arrays |
10:03:08 | skrylar | after looking in to cuckoo and hopscotch hashes again i'm wondering about just throwing that in the trash and using those |
10:21:30 | FromGitter | <alehander92> oy |
10:44:20 | federico3 | narimiran: huh, ubuntu automatically pulled the release already |
10:45:38 | * | abm joined #nim |
11:02:29 | * | akitoshi joined #nim |
11:02:34 | akitoshi | hello, how to iterate over a tuple in nim ? |
11:07:13 | Zevv | akitoshi: https://play.nim-lang.org/#ix=28ys |
11:07:49 | Zevv | realize that nim is statically typed, 'fieldPairs' will expand under the hood to unrolled code that is run for each member of the tuple. |
11:08:03 | Zevv | thus 'v' does not have a specific type, it varies for each iteration |
11:14:57 | akitoshi | Zevv: it works, thanks |
11:17:09 | kungtotte | skrylar: just tested it again and now Choosenim works fine. It didn't ~6 months ago, so I can't say whether it's choosenim or void that's gotten their act(s) together now :) |
11:25:56 | * | zyklon quit (Ping timeout: 248 seconds) |
11:26:10 | * | hinst joined #nim |
11:26:49 | hinst | Good day. Do you by any chance know how can I encodeUriComponent for C++ target? |
11:28:58 | * | dddddd joined #nim |
11:37:43 | PMunch | hinst, do you get a particular error message? |
11:44:31 | * | zyklon joined #nim |
11:46:34 | FromGitter | <NimStart> Can anyone here help me with a fidget (treeform's gui) crash? getting Error: could not find symbol: glTextureSubImage2D when crosscompiling from linux to windows |
11:47:25 | FromGitter | <kaushalmodi> shasklick: Someone on Nim forums was looking for windows build on the latest nightly build, but it's not there: https://forum.nim-lang.org/t/5865#36372 |
11:47:59 | FromGitter | <kaushalmodi> Then I saw that all the platform build assets don't show up on all nighties. So you know what's going on? |
12:13:05 | * | xet7 quit (Remote host closed the connection) |
12:14:12 | * | xet7 joined #nim |
12:15:48 | narimiran | it can be different things: |
12:16:07 | narimiran | if you look at https://github.com/nim-lang/nightlies/releases you'll spot the first thing, and that is... |
12:16:44 | narimiran | ...some commit was pushed as nightlies were running, so some of the builds have one hash, others have other (but the date is the same) |
12:17:35 | narimiran | other times, something might have failed while testing/building, so it won't have a nightly version |
12:18:00 | * | xet7 quit (Remote host closed the connection) |
12:19:05 | * | xet7 joined #nim |
12:19:30 | * | rockcavera joined #nim |
12:20:28 | narimiran | and from the logs, the windows versions lately have "The job exceeded the maximum log length, and has been terminated." |
12:28:50 | * | ftsf quit (Ping timeout: 240 seconds) |
12:35:40 | * | euantor quit () |
12:35:55 | * | euantor joined #nim |
12:36:05 | * | endragor quit (Remote host closed the connection) |
12:47:05 | * | cgfuh joined #nim |
12:53:49 | FromGitter | <kaushalmodi> Thanks. I assumed the first reason, but didn't dig deeper as I am on phone. |
12:55:31 | PMunch | Did anyone ever look at the exceptions in C++ when running with the arc GC on Arduinos? |
12:59:59 | * | krux02 joined #nim |
13:02:54 | krux02 | how do I restart this job: "builds.sr.ht: freebsd.yml — builds.sr.ht job failed" in https://github.com/nim-lang/Nim/pull/13275 |
13:02:55 | disbot | ➥ fix #13255 |
13:07:28 | * | nsf quit (Quit: WeeChat 2.7) |
13:09:35 | FromDiscord_ | <Clyybber> krux02: I guess you have to force-push |
13:12:28 | krux02 | Do you know that I really dislike web technologies. |
13:12:37 | krux02 | It is just slow and unreliable. |
13:14:36 | FromDiscord_ | <Clyybber> krux02: you could also ssh into the CI |
13:14:47 | FromDiscord_ | <Clyybber> and trigger a rebuild there |
13:15:06 | krux02 | I would like to have a button from github to restart. |
13:15:36 | krux02 | or even better, a test environment that isn't flakey. |
13:15:46 | FromDiscord_ | <Clyybber> yeah |
13:18:21 | * | neceve joined #nim |
13:20:57 | * | akitoshi quit (Quit: Connection closed for inactivity) |
13:21:33 | Zevv | krux02: Just run it locally! |
13:21:59 | * | ng0 quit (Quit: leaving) |
13:22:01 | Zevv | buy another PC, put BSD on it |
13:22:04 | krux02 | Zevv, that doesn't fix the problem that CI failed |
13:22:13 | Zevv | I know, I hate it too. |
13:22:26 | Zevv | and if it fails it is always a pain to find out *why* |
13:22:39 | krux02 | It fails no no reason at all. |
13:22:40 | Zevv | scrolling logs, clicking the wrong thing and ending up in the wrong pages somewhere showing the wrong things |
13:22:44 | krux02 | github unreliable |
13:29:01 | * | cron joined #nim |
13:32:36 | leorize | krux02: reopen the pr |
13:33:03 | leorize | that's how to restart the ci on github because they never thought of a "re-run" button |
13:39:34 | FromDiscord_ | <Clyybber> doesn't work for sourcehut though |
13:39:38 | FromDiscord_ | <Clyybber> I think |
13:40:34 | * | hinst quit (Remote host closed the connection) |
13:41:27 | leorize | It works, I restarted my ci several times like so :P |
13:44:12 | * | solitudesf joined #nim |
13:48:00 | * | Romanson joined #nim |
14:03:38 | krux02 | leorize, I closed and reopened several times already. Doesn't work for that test though, it "caches" the fail. |
14:29:02 | * | jholland__ joined #nim |
14:46:21 | disruptek | krux02: what do you think of this? |
14:46:25 | disruptek | !repo disruptek/nigel |
14:46:27 | disbot | https://github.com/disruptek/nigel -- 9nigel: 11 15 1⭐ 0🍴 |
14:48:00 | disruptek | kristianmandrup: i used amplify but i found it annoying. i dunno, i probably missed the point. |
14:48:14 | * | sacredfrog quit (Quit: ZNC 1.7.5 - https://znc.in) |
14:49:48 | * | sacredfrog joined #nim |
14:51:50 | krux02 | disruptek, what exactly does it replace? |
14:52:13 | disruptek | i'm not sure it's really designed to replace anything. |
14:52:33 | krux02 | then what is the problem that it is going to solve? |
14:52:34 | disruptek | i would use it to get faster reactions to library/compiler changes. |
14:52:52 | krux02 | good thing. |
14:52:54 | disruptek | this is the backend for an issues-turning-into-tests implementation. |
14:52:59 | FromDiscord_ | <treeform> but it has no source code? |
14:53:00 | krux02 | But there are more things that need to be improved. |
14:53:16 | disruptek | well, i'm still writing it. |
14:53:36 | krux02 | One thing that I always wanted is, performance logging. |
14:53:56 | krux02 | so that you see when a PR increases compilation or execution time. |
14:54:10 | FromDiscord_ | <treeform> me too |
14:54:11 | krux02 | generally metrics that are collected over time and stored in some form |
14:54:19 | disruptek | that's what golden is about. |
14:54:29 | Zevv | I never saw results of golden |
14:54:29 | FromDiscord_ | <treeform> I want this for my own project and nim in general, I started a thing here: https://github.com/treeform/nimbench |
14:54:35 | FromDiscord_ | <treeform> But kind of lost steam... |
14:54:51 | krux02 | it could be binary size, memory usage per test, amount of allocations per test. |
14:54:53 | krux02 | Stuff like that. |
14:55:08 | FromDiscord_ | <treeform> And have like a nice chart |
14:55:08 | disruptek | golden is unfinished. but i think the concept is sound. i expect to basically have golden output for any test run in nigel. |
14:55:17 | Zevv | nigel takes it too far. Really |
14:55:24 | disruptek | i probably need to do a better job of explaining golden. |
14:55:34 | Zevv | you're overdoing it and bound to get stuck on practicalities. Start samller |
14:55:56 | disruptek | i've implemented almost all of nigel at one time or another. |
14:56:05 | disruptek | it's not as challenging as you might think. |
14:56:12 | Zevv | show me a proto then |
14:56:12 | FromGitter | <kristianmandrup> Any examples or resources on how to interop with async JS (Promises)? |
14:56:31 | disruptek | Zevv: shit man, i just started yesterday. |
14:56:37 | Zevv | the whole "distributed" things makes it quite an effort imho |
14:57:08 | disruptek | it's a weak point, no doubt. but no one could give me an alternate design. |
14:57:18 | FromGitter | <kristianmandrup> Hmm.. I found this: https://nim-lang.org/docs/asyncjs.html |
14:57:38 | disruptek | however, even that is not terrible hard. i've done cdn fail-over and it works fine. |
14:58:35 | disruptek | i did the caching code somewhere, and i have nim running in lambda... |
14:58:37 | FromGitter | <kristianmandrup> any examples out there using `asyncjs` module? |
14:58:50 | disruptek | !code "import asyncjs" |
14:58:51 | disbot | https://github.com/nim-lang/Nim/blob/27b081d1f77604ee47c886e69dbc52f53ea3741f/lib/pure/async.nim -- 11lib/pure/async.nim 7& 2 more... |
14:59:11 | FromGitter | <kristianmandrup> `macro async(arg: untyped): untyped` |
14:59:21 | FromGitter | <kristianmandrup> looks "Promising" :) |
15:00:55 | FromGitter | <kristianmandrup> ```async: ⏎ proc waitingForTheSun*(): auto {.importcpp .}``` [https://gitter.im/nim-lang/Nim?at=5e304ca6fe0e6f74e9d5940e] |
15:01:00 | disruptek | we will get most metrics "for free" because anything that runs in the cloud is pretty well logged and graphed. |
15:01:30 | * | PMunch quit (Quit: Leaving) |
15:01:55 | * | nsf joined #nim |
15:05:03 | disruptek | anyway, if you're worried about the effort, you could always contribute. |
15:11:24 | * | NimBot joined #nim |
15:12:51 | * | ng0 joined #nim |
15:20:08 | * | ng0_ joined #nim |
15:20:08 | * | ng0_ quit (Changing host) |
15:20:08 | * | ng0_ joined #nim |
15:23:51 | * | ng0 quit (Ping timeout: 265 seconds) |
15:25:15 | Zevv | who, me?! |
15:26:26 | Zevv | *contribute*?! |
15:27:44 | disruptek | crazy talk, i know. |
15:38:58 | FromDiscord_ | <Clyybber> I think I got it |
15:39:46 | FromDiscord_ | <Clyybber> We simply generate the "hash" of a type locally and don't care about cross-dll thing |
15:40:14 | FromDiscord_ | <Clyybber> but provide a table for other dlls to look up our hash |
15:41:43 | FromDiscord_ | <Clyybber> then methods are just procs with switch statements for those hashes inside |
15:42:23 | FromDiscord_ | <Clyybber> and method can be made syntactic sugar for "proc(a: dynamic SomeType)" |
15:42:33 | FromDiscord_ | <Clyybber> and you can specify which parameters are dynamic and which are not |
15:43:29 | FromDiscord_ | <Clyybber> Araq: WDYT about the approach on hashes? |
15:45:29 | disruptek | krux02: /But there are more things that need to be improved./ -- what did you have in mind? |
15:46:26 | disruptek | clyybber: you want a foreign dll to hash something in order to figure out how to dispatch to a nim method? |
15:46:53 | FromDiscord_ | <Clyybber> nah, only when we call a nim method of a foreign dll |
15:47:13 | FromDiscord_ | <Clyybber> then we look it up in their hashtable |
15:47:39 | disruptek | so we predict the value we expect to find in the table? |
15:47:54 | FromDiscord_ | <Clyybber> no |
15:47:55 | disruptek | so we must agree on the hash methodology between the two .objects. |
15:48:03 | FromDiscord_ | <Clyybber> but we cant |
15:48:16 | FromDiscord_ | <Clyybber> so when we call a method across those borders |
15:48:36 | FromDiscord_ | <Clyybber> we look it up in the specific hash table |
15:49:00 | * | tane joined #nim |
15:49:29 | FromDiscord_ | <Clyybber> disruptek: With objects do you mean dlls / sos? |
15:49:35 | disruptek | yeah. |
15:49:46 | FromDiscord_ | <Clyybber> k |
15:50:23 | disruptek | what's the input to the hash? |
15:50:24 | FromDiscord_ | <Clyybber> I mean using a string instead as it is done now isn't perfect either |
15:50:33 | * | ng0_ is now known as ng0 |
15:50:44 | FromDiscord_ | <Clyybber> disruptek: The type |
15:50:59 | FromDiscord_ | <Clyybber> its done at CT |
15:51:11 | disruptek | right, but it still has to match. |
15:51:25 | FromDiscord_ | <Clyybber> Thats why we store a hashtable |
15:51:36 | FromDiscord_ | <Clyybber> that maps the hashes back to something cross-dll |
15:51:44 | FromDiscord_ | <Clyybber> strings |
15:51:56 | disruptek | i understand, but the way you develop the keys to the hash table has to be consistent between shared objects. |
15:52:07 | disruptek | regardless of compile-time. |
15:52:08 | FromDiscord_ | <Clyybber> Only the strings though |
15:52:18 | disruptek | the hashing, too. |
15:52:57 | FromDiscord_ | <Clyybber> no why? |
15:53:01 | FromDiscord_ | <Clyybber> its not possible |
15:53:07 | disruptek | you aren't going to embed the hash func in the shared object and call it at compile-time. |
15:53:20 | FromDiscord_ | <Clyybber> nah, I'm gonna call it at runtime |
15:53:35 | FromDiscord_ | <Clyybber> but only if its called from somewhere externally |
15:53:36 | disruptek | oh, with the string as input? |
15:53:44 | FromDiscord_ | <Clyybber> disruptek: Right |
15:54:23 | disruptek | so the first time you have to do dispatch, you'll hash the string using the hasher from the shared-object. then you use the result as an index into the foreign table. |
15:54:58 | krux02 | disruptek, about nigel, because consider a different name. It is yet another crappy name that is hard to remember. |
15:55:23 | FromDiscord_ | <Clyybber> you look it up in your table, translate it to a string, look it up in the foreign table and translate it to their hash |
15:55:25 | disruptek | suggestions? |
15:55:30 | * | pbb quit (Ping timeout: 246 seconds) |
15:55:44 | disruptek | the table maps string to hash? |
15:55:50 | FromDiscord_ | <Clyybber> "nigel" - racist asian |
15:56:18 | * | pbb joined #nim |
15:56:28 | krux02 | disruptek, use a name that actually contains what it does. |
15:56:44 | FromDiscord_ | <Clyybber> disruptek: Nah, it maps hashes to strings |
15:57:01 | disruptek | can you give me example? "ice cream" comes to mind. |
15:57:20 | disruptek | i obviously cannot grok how this architecture works, clyybber. |
15:59:13 | FromDiscord_ | <Clyybber> disruptek: We just translate our hash into a common format (string or whatever fits) and then translate it back to the foreigns hash |
15:59:55 | krux02 | well you can call it "Continuous Integration Tool for Nim: Oliver" |
16:00:07 | krux02 | Make the name long and descriptive |
16:00:27 | krux02 | and then "Olive" to distinguish it from other potential CI tools for Nim. |
16:00:38 | disruptek | so, "oliver: continuous integration tool for nim" might work, too? |
16:00:50 | krux02 | yes |
16:01:07 | disruptek | but, nigel doesn't. |
16:01:11 | disruptek | !repo disruptek/nigel |
16:01:13 | disbot | https://github.com/disruptek/nigel -- 9nigel: 11continuous integration tool for nim 15 1⭐ 0🍴 |
16:01:17 | disruptek | is it racist? |
16:01:30 | disruptek | i never heard of that before. |
16:01:48 | krux02 | well I knew a guy called racist, so I guess Nigel is fine, too. |
16:01:54 | krux02 | But Oliver is easier to remember. |
16:01:59 | FromDiscord_ | <Rika> lol |
16:02:16 | krux02 | ups sorry typo |
16:02:22 | krux02 | I mean a guy called Nigel |
16:02:44 | FromDiscord_ | <Clyybber> disruptek: It was a joke, a racist one |
16:02:53 | disruptek | alrightly. |
16:02:57 | disruptek | alrighty, too. |
16:03:00 | krux02 | In my head I had some thought about his name being racist. Influentcy my finger movement somehow |
16:03:26 | disruptek | it's not an uncommon english name. |
16:03:34 | krux02 | ok |
16:03:51 | krux02 | He was from Aruba |
16:03:54 | disruptek | i see where you two are coming from now, though. 😉 |
16:04:17 | disruptek | a stripper from aruba had a crush on me once. |
16:04:31 | FromDiscord_ | <Clyybber> :kriby: |
16:04:32 | krux02 | lol |
16:04:47 | disruptek | she was bi-polar. i swear if they aren't crazy when they get to me, i make them crazy in short order. |
16:05:16 | krux02 | I knew many people from Aruba when I still had my Girlfriend from Aruba. |
16:05:27 | krux02 | She wasn't a stripper though. |
16:05:32 | disruptek | never? |
16:05:43 | krux02 | pretty sure. |
16:07:42 | * | lritter joined #nim |
16:07:45 | FromDiscord_ | <Rika> anyone use chronicles? |
16:08:14 | FromDiscord_ | <Clyybber> status or xenoblade? |
16:08:27 | FromDiscord_ | <Rika> status |
16:08:50 | FromDiscord_ | <Clyybber> tried it once, but don't have a use case atm |
16:09:14 | FromDiscord_ | <Rika> whenever i use the json format i get some error in the macros shim they implemented, something about a child and an nnkSym, i'll get the error one sec |
16:09:38 | FromDiscord_ | <Rika> it's prolly the shim no? i'd like to get to the root of the issue though |
16:13:08 | * | icebattle joined #nim |
16:20:45 | * | ptdel joined #nim |
16:27:55 | FromDiscord_ | <Rika> ugh, discordnim's such a pain to update because the objects file is huge and disorganized |
16:27:56 | Zevv | disruptek: http://zevv.nl/div/ni2.jpg |
16:28:14 | disruptek | potato? |
16:28:32 | Zevv | po-teh-to po-tah-to |
16:29:06 | disruptek | looks fine from here. 😉 |
16:29:10 | Zevv | I vectorized |
16:29:18 | disruptek | ah, good. |
16:29:21 | FromDiscord_ | <Rika> nice |
16:29:56 | FromDiscord_ | <Clyybber> why is there a grenade in your hair ? |
16:30:04 | Zevv | safety |
16:30:18 | disruptek | "pull pin to disarm" |
16:30:26 | FromDiscord_ | <Clyybber> nice |
16:30:27 | Zevv | camera strap |
16:30:39 | FromDiscord_ | <Clyybber> ah, I see |
16:30:50 | FromDiscord_ | <Clyybber> lol |
16:31:07 | disruptek | so you shot a photo of a mirror and then you had to flip it? |
16:31:08 | rockcavera | narimiran, hello. I saw that you closed this issue: https://github.com/nim-lang/Nim/issues/11764, but I didn't see any correction ... Will it be applied later? |
16:31:10 | disbot | ➥ HashSet[uint64] slow insertion depending on values ; snippet at 12https://play.nim-lang.org/#ix=21E6 |
16:31:43 | Zevv | disruptek: no I just had the shirt printed mirrored because I don't know how to photoshop |
16:31:59 | disruptek | ah, that makes more sense. |
16:32:16 | disruptek | beats photoshopping 30 t-shirts. |
16:34:09 | narimiran | rockcavera: it is fixed in devel (nim 1.1.1) |
16:34:54 | rockcavera | narimiran, Thanks, I will download and compile the devel to see. |
16:47:14 | * | icebattle quit (Ping timeout: 240 seconds) |
16:49:02 | Araq | Nim Jägermeister? |
16:51:15 | Zevv | Araq: monty python |
16:51:26 | disruptek | how do i buy my shirt? |
16:51:55 | Zevv | go to http://my.local.shirt.shop and upload the image |
16:51:56 | Araq | had to drink 21 Jägermeister once to win a hat |
16:52:22 | Zevv | yeah, after 21 jagermeister you need something to throw up in, of course |
16:52:28 | Zevv | any hat will do just fine |
16:52:41 | Araq | I think I still have this hat somewhere |
16:53:24 | Araq | anyhow, I wasn't alone, we were two or three. nevertheless it was too much and since then I don't like it anymore |
16:57:26 | * | skrylar quit (Quit: WeeChat 2.7) |
17:02:16 | * | icebattle joined #nim |
17:04:36 | disruptek | Araq: so nimph segfaults under arc when you attempt to clone. also, the tests deadlock, which is even more troubling. |
17:05:12 | disruptek | Zevv: we'll need the svg. |
17:06:03 | Araq | disruptek: valgrind it? |
17:06:22 | disruptek | i didn't look into it at all yet. |
17:06:58 | * | Romanson quit (Quit: Connection closed for inactivity) |
17:07:45 | Araq | probably the NIM_CONST bug |
17:07:57 | Araq | somewhat hard to fix |
17:10:01 | disruptek | not familiar with that bug, but i did notice that it hangs in ensureInitialized from lib/core/locks. |
17:10:44 | FromDiscord_ | <treeform> Disruptek, you going to FOSDEM? |
17:10:48 | disruptek | sure. |
17:10:54 | FromDiscord_ | <treeform> Cool |
17:10:57 | disruptek | ie. it's not a let/const/var thing. |
17:11:02 | disruptek | you going? |
17:11:06 | FromDiscord_ | <treeform> Yes |
17:11:11 | disruptek | nice. |
17:11:25 | Araq | disruptek: not directly but the compiler now "optimizes" let into const |
17:12:01 | disruptek | oh but does let still get mm machinery? |
17:12:12 | disruptek | i mean const. |
17:12:33 | Araq | yeah but this is where it breaks. |
17:13:31 | disruptek | do you lift consts? |
17:14:07 | disruptek | i would guess not. |
17:14:07 | Araq | not sure what that means |
17:14:37 | disruptek | you were saying that you use temps and the compilers hate that. |
17:15:05 | disruptek | i thought maybe consts got a similar toplevel treatment. |
17:23:38 | * | nsf quit (Quit: WeeChat 2.7) |
17:26:25 | * | MD87 quit () |
17:26:33 | disruptek | the lion is the king of the jungle. |
17:26:59 | * | MD87 joined #nim |
17:27:09 | FromGitter | <kristianmandrup> Hi @disruptek, I'd like to interop with RxJS, but still not sure how to use Nim interop with imports, such as: |
17:27:34 | FromGitter | <kristianmandrup> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5e306f06433e1d40396bd475] |
17:27:48 | disruptek | what is rxjs? |
17:28:07 | disruptek | does this have anything at all to do with lions or jungles? |
17:28:27 | krux02 | Araq: is it possible to exclude single overloads when importing from a module? |
17:28:28 | FromGitter | <kristianmandrup> A standard for Reactive programming - ie. Observable streams |
17:28:52 | disruptek | krux02: i don't think so. |
17:29:02 | krux02 | for example import foo(arg: TypeA), but not foo(arg: TypeB) |
17:29:17 | krux02 | disruptek, it would solve some problems. |
17:29:25 | FromDiscord_ | <Rika> oh hey i've been thinking of porting rx into nim |
17:29:28 | disruptek | we woulda used that for conditional export, too. |
17:29:38 | FromDiscord_ | <Rika> but i'm too smallbrained to understand reactive |
17:29:40 | FromGitter | <kristianmandrup> My issue is that Nim seems to expect some variables are available to "hook on to", but how to do this in a concrete example? |
17:29:44 | FromDiscord_ | <Rika> ive only recently understood async xd |
17:30:24 | disruptek | kristianmandrup: i'm pretty anti-web and i've managed to avoid it in nim. but, there are lots of people who are doing js integration without issue. shouldn't be hard to find examples. |
17:30:39 | FromGitter | <kristianmandrup> I'd like to do a proper blog post or github repo tutorial on JS interop, as there seem to be almost no information on how to do this... trying to figure it out |
17:30:53 | disruptek | pretend that it's c, basically. |
17:31:05 | FromGitter | <kristianmandrup> sure |
17:31:11 | FromDiscord_ | <Rika> importjs, cdecl, etc |
17:31:11 | FromDiscord_ | <Rika> ? |
17:31:11 | disruptek | importc and everything. |
17:31:31 | FromDiscord_ | <Rika> no no please use importjs now (i thin) |
17:32:17 | disruptek | news to me. |
17:32:51 | leorize[m] | importc and importcpp are all you need for js interop |
17:33:25 | * | marmotini_ joined #nim |
17:33:33 | disruptek | !code importjs |
17:33:34 | disbot | https://github.com/nim-lang/Nim/blob/38ab51c44572b78845fa62b0c0a597a46a63ad28/tests/js/tjsffi.nim -- 11tests/js/tjsffi.nim 7& 4 more... |
17:33:55 | leorize[m] | Araq considered renaming them but that's low priority |
17:34:20 | disruptek | it was just added in september. |
17:34:20 | * | Trustable joined #nim |
17:42:52 | * | sschwarzer joined #nim |
17:44:29 | sschwarzer | I'm sad that I had to cancel my trip to FOSDEM. :-( I would have liked so much to meet you. |
17:48:18 | * | PMunch joined #nim |
17:53:37 | FromGitter | <kristianmandrup> `importjs`?? haven't seen that b4 |
17:53:41 | disruptek | dude. just because of trump's plague? |
17:53:48 | FromGitter | <kristianmandrup> A Nim module? |
17:53:57 | disruptek | s/importc/importjs/ that is all. |
17:54:18 | disruptek | i bought full-body condoms to wear while travelling upon the diseased. |
17:56:12 | sschwarzer | disruptek? |
17:56:28 | disruptek | i mean, if they won't lie down and die quitely then s/upon/among/ |
17:56:34 | Zevv | everbody knows brussels lies in the heart of china, right |
17:56:43 | disruptek | pretty much the epicenter. |
17:56:45 | FromGitter | <kristianmandrup> @disruptek Reminds me of the 007 satire movie with Leslie Nielsen - wearing full body condoms for 6x |
17:57:09 | PMunch | Wuhan is a township in Brussels is it not? |
17:59:15 | sschwarzer | Zevv *lol* |
17:59:38 | * | floppydh quit (Quit: WeeChat 2.7) |
17:59:39 | sschwarzer | disruptek: No problem with the location here; I'm in Germany. :) |
18:03:28 | sschwarzer | Although I heard today about a case of Corona virus in Germany. But it was a matter of time anyway. Let's see how it turns out. |
18:05:05 | PMunch | Seems like it's fairly under control, but I guess an otherwise healthy person could get it and just think it's a hard case of the fly |
18:05:08 | PMunch | flu* |
18:05:46 | disruptek | how do you figure it's under control? the growth is exponential and it can be weeks before a contagious carrier shows symptoms. |
18:06:00 | disruptek | i'm pretty sure i have it right now. |
18:06:33 | disruptek | ima lick my hand before we meet; you lemme know how you feel on valentine's day. |
18:10:01 | PMunch | Haha, please don't. I'll be halfway across the globe by then.. |
18:15:44 | Zevv | dang why do I keep running into this: http://ix.io/28Aj |
18:15:47 | Zevv | iterators are *weird* |
18:17:03 | LyndsySimon | Can a Nim executable be compiled to run on an Arduino or other SoC? |
18:17:05 | narimiran | Zevv: join the club: https://github.com/nim-lang/RFCs/issues/1 |
18:17:06 | disbot | ➥ [RFC] Better iterators syntax |
18:17:09 | FromDiscord_ | <Clyybber> Zevv: Thats a bug |
18:17:13 | disruptek | zevv: that should be fixable. |
18:17:29 | Zevv | ar_q tried to explain to me once what happens really, but I dont grok it |
18:18:02 | Zevv | "naming" the thing instantiates it |
18:18:08 | disruptek | lyndsysimon: sure. |
18:18:42 | LyndsySimon | Yay :$. I have a commercial use case in mind :) |
18:18:46 | FromDiscord_ | <Clyybber> Zevv: Does it iterate forever? |
18:18:50 | FromDiscord_ | <Clyybber> Or just not at all |
18:18:59 | Zevv | nope, it just returns the first item and then ends |
18:19:08 | FromDiscord_ | <Clyybber> He, ok |
18:19:42 | PMunch | LyndsySimon, indeed, I have a talk at FOSDEM about this topic :) |
18:19:45 | Zevv | but looking at the code, strictly there should be no difference. The result of cLines is evaluated, and who cares where that is done |
18:19:57 | LyndsySimon | Oooh. Link? |
18:20:00 | PMunch | And with the new --gc:arc it should be easier than ever to use |
18:20:12 | disruptek | Zevv: yes, that's why it's a bug. |
18:20:16 | Zevv | PMunch: soo you *will* put that in, right? :) |
18:20:17 | PMunch | LyndsySimon, FOSDEM isn't until this weekend, so it's not been held yet |
18:20:32 | LyndsySimon | Awesome, I’ll be on the lookout. |
18:20:34 | LyndsySimon | Ty |
18:20:37 | PMunch | Zevv, --gc:arc? I plan on putting it in yes :) |
18:20:46 | PMunch | Just need to understand it first :P |
18:21:12 | Zevv | LyndsySimon: https://github.com/zevv/mininim should get you started |
18:21:14 | FromDiscord_ | <demotomohiro> LyndsySimon, Nim executable means the Nim compiler or an executable file created by Nim? |
18:21:31 | LyndsySimon | Created by Nim |
18:21:46 | Zevv | it doesn't do anything, but it shows how to get the compiler to generate avr code |
18:22:01 | LyndsySimon | I want to make a hardware device that reports the status of a 3D printer via an API. |
18:22:13 | LyndsySimon | Part of a larger project. |
18:22:16 | Zevv | but why on earth does anyone choose to run on an AVR in 2020? |
18:23:12 | disruptek | lyndsysimon: constrained envs will be a particular strength of nim, particularly in the future. |
18:23:52 | PMunch | Zevv, why not? |
18:24:08 | Zevv | pure masochism |
18:24:32 | disruptek | zevv's the expert and he says, "save yourselves!" |
18:25:17 | PMunch | Well, for a dollar or so you can get a little controller that is powerful enough to hook up to a sensor or two along with some communication possibility. I've thought about just littering my house with these things equiped with things like temperature sensors for fun. |
18:25:48 | disruptek | i've thought about littering your house with devices, too. |
18:26:16 | Zevv | right. But for a dollar or so you can get a 32 bit ARM Cortex M0 runnng at 64 Mhz |
18:26:17 | FromDiscord_ | <demotomohiro> I heard someone is trying to make a program with Nim for game boy advance |
18:26:22 | disruptek | did anyone else notice the ThinkGeek box on jim lehr's desk in his NYT obit photo? |
18:26:49 | disruptek | Zevv: you make it hertz so good. |
18:28:24 | Zevv | and if you look a bit firther, for less then a dollar you get an ARM with MMU with enough on chip RAM to run Linux. |
18:34:08 | Zevv | for three dollars you get 32bit SOC with bluetooth and wifi on board, able to run HTTPS if you want it to |
18:35:31 | disruptek | that's actually pretty wild. link? what's the package? |
18:35:36 | disruptek | footprint, i mean? |
18:36:04 | disruptek | we should build some nim business cards. |
18:36:23 | sschwarzer | Zevv: What about ease of set-up? If you have to install and configure a Linux on the device it might be quite some overhead if you want to do something simple. (That said, maybe you can simplify things if you can run a container on the device. Also I don't know how much you have to do to prepare an Arduino for development) |
18:36:45 | disruptek | probably too late to get anything in time to hack up id badges for fosdem, but that woulda be a cool advertisement. |
18:36:54 | Zevv | sschwarzer: that's the thing with arduinos: the whole setup is ridiculously simple |
18:37:06 | sschwarzer | disruptek: dynamic business cards, running on an embedded device? ;) |
18:37:13 | Zevv | I'm an embedded software engineer, and I'm too ashamed to do anything with arduinos or raspberries. |
18:37:13 | FromGitter | <kristianmandrup> So I've discovered there is an `importjs` alias (to `importcpp` I believe?) available, but nowhere mentioned in docs or any examples I have found... |
18:37:26 | disruptek | lol zevv |
18:37:33 | FromGitter | <kristianmandrup> how do I import f.ex `rxjs/observable/merge`?? |
18:37:50 | disruptek | kristianmandrup: it's the same as importc. just an alias. |
18:38:00 | FromGitter | <kristianmandrup> {.importjs "rxjs/observable/merge".} or do I use `emit`? |
18:38:06 | disruptek | former |
18:38:09 | sschwarzer | I thought Raspberries are quite "high-level". I set up a server (in a Docker container) on one recently. |
18:38:30 | disruptek | try not to use emit; it's code smell. |
18:38:37 | FromGitter | <kristianmandrup> @disruptek - cool :) |
18:39:18 | Zevv | sschwarzer: well raspberries are so high level that there is not really much embedded about them. |
18:39:27 | Zevv | But you get a PCB, so lot's of people go "oooooh it's embedded" |
18:39:34 | disruptek | it looks the part. |
18:39:44 | disruptek | but let's get back to the $3 parts. |
18:39:47 | Zevv | they whip up three lines of python and wonder what the fuzz my job is about |
18:40:05 | disruptek | we should really do this. it'd be a good advertisement. |
18:40:26 | * | Ven`` joined #nim |
18:40:36 | disruptek | they should do something together. like emit a name in led when you get nearer to another such badge. |
18:40:37 | Zevv | disruptek: if you really want to go there, I think someone should take the time to properly integrate arduino with nim |
18:40:43 | Zevv | so you just can start the arduino IDE |
18:40:47 | Zevv | type "echo hello world" |
18:40:50 | Zevv | and hit the run button |
18:41:11 | disruptek | no, i don't want to go there. that's not my bag, baby. i know nothing about embedded. |
18:41:17 | Zevv | ok, then you'd get an error about the quotes being in the wrong place |
18:41:33 | disruptek | yeah, that sounds like my kinda error. |
18:41:33 | Zevv | disruptek: you'd be surprised. Its not about the embedded, its about the integration of the nim compiler with the arduino ide |
18:41:49 | disruptek | see? i'm already out of my depth. |
18:42:08 | Zevv | it's a bit of plumbing, but it would make a wonderful story. Arduino is a still programmed in C with a bit of honey on top |
18:42:17 | disruptek | i think the fact that i chat on irc all day makes people think i know something about that which i bullshit about. |
18:42:31 | disruptek | honey, huh. |
18:42:36 | disruptek | sounds sweet. |
18:42:54 | Zevv | so there is a tiny pythonnesque thing for arduino, but honestly, Nim would shine there |
18:43:11 | disruptek | could you and i build it? |
18:43:28 | rockcavera | narimiran, I tested these codes of mine https://github.com/rockcavera/nim-problem with the devel version and still the same thing |
18:43:28 | Zevv | sure, if I could find the inspiration and time |
18:43:32 | sschwarzer | Zevv: good point (about Raspberries and high-level). I only mentioned it because I think you mentioned them under "embedded" |
18:43:35 | sschwarzer | :-) |
18:44:07 | disruptek | rockcavera: man, that's a bummer. 😦 |
18:44:09 | Zevv | sschwarzer: well, most of the embedded" stuff I did over the last decade has been linux based anyway |
18:44:17 | Zevv | so where do you draw the line. |
18:45:06 | disruptek | i am super impressed by my palmtop. ima bring it this weekend. |
18:45:11 | sschwarzer | Zevv: a question that I have asked myself, too :) |
18:45:15 | rockcavera | disruptek, what is a bummer? |
18:45:26 | Zevv | for me if it runs debian or ubuntu on an SD card, it's not embedded |
18:45:47 | disruptek | no, not embedded. but surprisingly good. 1920x1200, touchscreen, 2 cores, 4 threads, 8gig. |
18:46:57 | FromGitter | <kristianmandrup> @disruptek - best approach for multi import? |
18:47:01 | FromGitter | <kristianmandrup> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5e3081a4f301780b833d87c5] |
18:47:04 | disruptek | 7" 330dpi, qwerty, audio and active cooling. intel. onboard ssd, but also micro-sd. usb3, usb-c. pretty good. |
18:47:10 | FromGitter | <kristianmandrup> Can I do the 2nd variant? |
18:47:32 | FromGitter | <kristianmandrup> Not sure how to use push pragma correctly yet |
18:48:17 | disruptek | i'd be shocked if you could do that. |
18:48:37 | disruptek | that works? |
18:48:43 | FromGitter | <kristianmandrup> Haven't tried, but would be nice and convenient |
18:49:02 | FromGitter | <kristianmandrup> so this is the only way? |
18:49:06 | FromGitter | <kristianmandrup> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5e308222433e1d40396c67e7] |
18:49:08 | disruptek | you could write a macro to produce that for you. |
18:49:32 | disruptek | eg. a block like `importTheseFrom "rxjs/operators":` |
18:49:50 | FromGitter | <kristianmandrup> Awesome! Would be fantastic, will try my first macro tmrw |
18:50:00 | disruptek | you'll be surprised how easy it is. |
18:50:06 | FromGitter | <kristianmandrup> but should the above work? using `importjs` in correct context? |
18:50:27 | disruptek | i have no idea. i've never done it. |
18:51:08 | disruptek | i run nim natively on the backend (as opposed to inside node) and haven't bothered to integrate anything into my frontend. |
18:51:46 | disruptek | i would rather start from scratch in karax that port a largish spa i wrote 6 years ago. |
18:51:51 | disruptek | s/that/than/ |
18:52:51 | PMunch | Zevv, what about battery consumption. How long can you run your 64Mhz M0 on a coin-cell? |
18:53:10 | disruptek | honestly, i would rather wake up to a neck punch every day for the next three years than touch the js ecosystem. |
18:53:42 | disruptek | PMunch: it only needs to last a weekend. 😁 |
18:54:18 | FromDiscord_ | <Clyybber> ð |
18:54:20 | PMunch | I was thinking about in general, but yeah for a business card that might be enough |
18:54:52 | disruptek | i know, i get it. i'm still waiting for a link. |
19:03:17 | PMunch | I mean the ESP8266 is a 32Bit chip with built in WiFi that costs <$3 |
19:04:08 | disruptek | i was thinking low power; bluetooth. |
19:04:35 | disruptek | maybe there's a good app for a wifi business card or badge, though. |
19:04:57 | * | ptdel quit (Ping timeout: 260 seconds) |
19:05:24 | disruptek | we could do key exchange or something. |
19:05:44 | Araq | Clyybber: I'm implementing scope based destruction |
19:09:14 | * | sschwarzer left #nim (#nim) |
19:10:54 | * | ofelas joined #nim |
19:15:46 | * | ptdel joined #nim |
19:20:20 | Zevv | PMunch: weeks, if you get your power management right. Just like an atmel |
19:20:28 | disruptek | ~motd is for a good time, visit your most busy repo and type `git fsck` |
19:20:28 | disbot | motd: 11for a good time, visit your most busy repo and type `git fsck` |
19:20:35 | Zevv | Just make sure you stop your clocks when nothin to do |
19:20:44 | Zevv | months, even, for the right devices |
19:21:06 | Zevv | Araq: sweet! |
19:21:51 | PMunch | Huh, that's neat |
19:25:14 | * | PMunch quit (Quit: Leaving) |
19:26:22 | * | PMunch joined #nim |
19:31:11 | FromDiscord_ | <Clyybber> Araq: Nice!!! |
19:32:48 | FromGitter | <kaushalmodi> @kristianmandrup I have use push and pop for `header` and that works fine |
19:32:59 | FromGitter | <kaushalmodi> e.g. https://github.com/kaushalmodi/std_vector/blob/master/src/std_vector.nim |
19:33:39 | * | matlock quit () |
19:33:54 | * | matlock joined #nim |
19:39:57 | * | ptdel quit (Ping timeout: 260 seconds) |
19:45:24 | FromDiscord_ | <Recruit_main_70007> why are my 3 threads performing worse than a single function call? |
19:45:34 | * | pbb_ joined #nim |
19:45:40 | disruptek | they don't want to make it look bad. |
19:47:45 | * | pbb quit (Ping timeout: 272 seconds) |
19:48:25 | PMunch | Recruit_main_70007 probably because you have some contention or lock overheard |
19:48:48 | PMunch | Or your problem simply isn't very thread-friendly |
19:49:07 | FromDiscord_ | <Recruit_main_70007> code paste works, right? |
19:49:21 | PMunch | Uhm, define code paste |
19:49:22 | zedeus | ~paste |
19:49:23 | disbot | paste: 11a frowned-upon behavior in chat; please use a service such as https://play.nim-lang.org/ or http://ix.io/ or https://gist.github.com/ and supply us a URL instead. |
19:49:29 | PMunch | Please don't paste code directly into discord |
19:49:50 | PMunch | Oh sweet, disbot have gotten a nice message about this now :) |
19:50:03 | FromDiscord_ | <Recruit_main_70007> irc can do it, why cant i? |
19:50:11 | PMunch | Huh? |
19:50:16 | disruptek | i think you just answered your question. |
19:50:34 | PMunch | Everyone on IRC does it manually.. |
19:50:45 | PMunch | Or rather most of us probably have some shortcut to do it for us |
19:51:14 | PMunch | Damn it, I hate web-pages that blocks certain browsers.. |
19:51:16 | FromGitter | <kaushalmodi> > Or rather most of us probably have some shortcut to do it for us ⏎ ⏎ This.. `C-u x m w` |
19:51:28 | disruptek | the person that fixes my clipboard gets added to my .sig; it's absolutely bonkers. |
19:51:32 | PMunch | Just let my browser try damn it.. It's fully equipped to handle your bullshit site |
19:51:52 | PMunch | Haha, what have you done to it disruptek? |
19:52:17 | disruptek | i dunno; i'm stupid i guess. wayland, terminal, browser. i only use two apps. |
19:52:50 | FromDiscord_ | <Recruit_main_70007> https://play.nim-lang.org/#ix=28AJ |
19:52:50 | FromDiscord_ | <Recruit_main_70007> |
19:52:50 | FromDiscord_ | <Recruit_main_70007> thats it |
19:53:43 | FromDiscord_ | <Recruit_main_70007> these includes how i create the threads https://play.nim-lang.org/#ix=28AL |
19:55:22 | FromDiscord_ | <Clyybber> disruptek: What part? |
19:55:41 | FromDiscord_ | <Clyybber> The part that when you close an app you pasted from the paste disappears? |
19:55:55 | disruptek | no; i can't paste from one to the other. |
19:56:07 | FromDiscord_ | <Clyybber> Oh |
19:56:09 | PMunch | Yardanico, would it be possible for the discord bot to not send empty messages? |
19:56:32 | PMunch | disruptek, haha kinda defeats the purpose :P |
19:56:41 | disruptek | or, i guess, from chrome which runs in Xwayland to kitty which is wayland native. or vice-versa. they have different ideas about what the contents are most of the time. |
19:57:03 | disruptek | yeah, it's really annoying. just about the only problem i have with my env. |
19:57:15 | Yardanico | PMunch: I'm not sure if it's configurable in matterbridge, but with ircord sure :P |
19:58:35 | PMunch | Aah, so it's probably a Wayland vs. X issue |
19:58:48 | PMunch | Yardanico, oh right this one isn't your version (yet) |
19:59:17 | Yardanico | Well, anyone can improve it, it's on GitHub :P |
19:59:22 | Yardanico | !repo ircord |
19:59:22 | disbot | https://github.com/Yardanico/ircord -- 9ircord: 11Discord <-> IRC bridge in Nim 15 4⭐ 0🍴 |
19:59:26 | FromDiscord_ | <Recruit_main_70007> pls, do i have any kind of error that makes things slow 😦 |
20:02:52 | * | marmotini_ quit (Remote host closed the connection) |
20:03:29 | * | marmotini_ joined #nim |
20:08:03 | * | marmotini_ quit (Ping timeout: 265 seconds) |
20:08:10 | disruptek | yes. |
20:11:19 | FromDiscord_ | <Recruit_main_70007> what |
20:18:38 | PMunch | Recruit_main_70007, just while looking at this I noticed a couple of things not really related |
20:19:13 | PMunch | Nim uses two spaces for indentation. And your whole clicking thing can be simplified to clicking = not clicking |
20:19:53 | PMunch | else: discard is also not really doing anything |
20:20:08 | PMunch | And why do you sleep for a second in there? That's probably what's slowing you down :P |
20:20:37 | * | icebattle quit (Ping timeout: 265 seconds) |
20:33:09 | FromGitter | <NimStart> is @treeform online? |
20:35:53 | FromDiscord_ | <Clyybber> @NimStart yeah, I'll tag him for you @treeform |
20:38:37 | FromGitter | <NimStart> thanks |
20:43:36 | FromDiscord_ | <Recruit_main_70007> Pmunch: the first leep cant be slowing my function though, i will set the clicking = not clicking, but that still doesnt slove my problem, thank you anyway |
20:43:37 | PMunch | Clybber, I think taggings are coming across in the bridges |
20:43:56 | FromDiscord_ | <Recruit_main_70007> nope, its not highlighted |
20:44:12 | PMunch | What do you mean the first sleep? It waits a full second after you click whatever key that is |
20:44:30 | PMunch | And every thread will be running the same code, what do you hope to achieve by that? |
20:45:20 | FromDiscord_ | <Recruit_main_70007> it waits 0.1 seconds i believe, and by running it more times, more clicks basically |
20:45:45 | FromDiscord_ | <Recruit_main_70007> its neccesary, the program wont stop when i tell it to do so |
20:46:07 | disruptek | say it louder. |
20:46:47 | FromDiscord_ | <Recruit_main_70007> NimStart he is live |
20:46:54 | disruptek | i've been practicing my travelling american. you just say everything in english loudly and slowly. |
20:47:19 | disruptek | the french in particular love it. |
20:47:29 | FromDiscord_ | <treeform> Nimstart, what? |
20:49:37 | FromGitter | <NimStart> thanks for fixing fidget. how to include font in static binary? |
20:50:13 | * | zama quit (Ping timeout: 260 seconds) |
20:53:03 | * | zama joined #nim |
20:53:13 | FromDiscord_ | <treeform> Like you want the font to be baked in as well? |
20:53:35 | FromGitter | <NimStart> Yeah if possible, or at least use a system font |
20:53:53 | FromDiscord_ | <treeform> I started on system fonts. |
20:55:06 | FromGitter | <NimStart> Is it usable? |
20:55:12 | FromDiscord_ | <treeform> I don't have static read for fonts |
20:55:54 | * | icebattle joined #nim |
20:56:03 | FromDiscord_ | <treeform> that might not be hard |
20:56:10 | FromDiscord_ | <treeform> I just ship fonts in the data folder |
20:56:21 | FromDiscord_ | <treeform> I need icons and stuff from the data folder anways. |
20:57:04 | FromDiscord_ | <treeform> I want to use system fronts for Chinese because those fonts can be 1GB+ |
20:57:08 | FromDiscord_ | <treeform> but its not ready yet |
20:57:50 | disruptek | that seems kinda large for a font. |
20:58:14 | FromDiscord_ | <treeform> they have 100,000-200,000 glyphs |
20:58:22 | disruptek | i heard web-pages were getting heavier these days, but holy shit. |
20:58:25 | FromDiscord_ | <treeform> and ifs high quality? |
20:58:34 | FromDiscord_ | <treeform> I don |
20:58:48 | FromDiscord_ | <treeform> 't think you want to include a CJK font on a webpage. |
20:58:58 | disruptek | well, maybe not mobile. |
21:00:09 | FromGitter | <NimStart> is it possible to customize the app icon and splash with fidget? |
21:00:33 | FromDiscord_ | <treeform> splash? |
21:00:41 | FromDiscord_ | <treeform> app icons is done differently on every OS |
21:00:49 | FromDiscord_ | <treeform> you can set the display icon after your app is running |
21:01:07 | FromDiscord_ | <treeform> but the displayed icon in a folder is different for all OS, linux I don |
21:01:11 | FromDiscord_ | <treeform> 't think supports it. |
21:01:41 | * | Trustable quit (Remote host closed the connection) |
21:05:51 | * | icebattle quit (Ping timeout: 265 seconds) |
21:07:35 | FromGitter | <NimStart> Any reason why figma centered text shows up not centered on fidget? |
21:10:00 | PMunch | Recruit_main_70007, no that sleeps for a full second, sleep takes milliseconds |
21:10:21 | PMunch | And the reason why it doesn't stop when you want it to is probably because the thread is sleeping |
21:12:08 | * | narimiran quit (Quit: leaving) |
21:12:54 | FromDiscord_ | <Recruit_main_70007> no, it doesnt work when there is no sleep, it wont stop |
21:25:09 | PMunch | That's probably because the GetAsyncKeyState reports that you are holding the key down |
21:25:26 | PMunch | So clicking bounces between the two states as fast as the loop runs |
21:26:06 | FromDiscord_ | <Recruit_main_70007> yes, and i dont want to fight the program to make a 1 frame press everytime i stop it |
21:26:13 | PMunch | You need to keep track of when the key has been let go, and only then accept new clicks |
21:27:54 | FromDiscord_ | <Recruit_main_70007> ok... leaving aside the clicking and not clicking thing, how can i make it faster, like pushing it to the breaking point |
21:29:05 | * | ltriant joined #nim |
21:34:27 | FromGitter | <NimStart> @treeform, Any reasons why simple app with text box consumes 30% CPU, 300mb RAM and 30% GPU? |
21:35:11 | FromDiscord_ | <Recruit_main_70007> not connected |
21:37:38 | * | Vladar quit (Quit: Leaving) |
21:43:21 | PMunch | Recruit_main_70007 no idea, to be honest I don't even know what this is doing.. |
21:44:11 | FromDiscord_ | <Recruit_main_70007> literally a fast autoclicker |
21:45:31 | * | filcuc joined #nim |
21:45:31 | * | filcuc quit (Remote host closed the connection) |
21:45:51 | * | filcuc joined #nim |
21:54:17 | * | icebattle joined #nim |
22:03:40 | * | icebattle quit (Quit: Lost terminal) |
22:04:52 | * | abm quit (Quit: Leaving) |
22:08:37 | PMunch | Well, that is going to be limited by whatever interface you use to actuate the clicks |
22:09:06 | PMunch | Threads are very unlikely to make it run any faster |
22:09:21 | FromDiscord_ | <Recruit_main_70007> i ve already seen that 😉 |
22:10:02 | FromDiscord_ | <Recruit_main_70007> i believe the windows api is the fastest one, dont you think? |
22:10:43 | PMunch | Quite possibly |
22:11:08 | FromDiscord_ | <Recruit_main_70007> so thats it? |
22:11:08 | FromDiscord_ | <Recruit_main_70007> thats the fastest? |
22:11:30 | PMunch | I dunno, never tried the Windows mouse APIs |
22:11:37 | PMunch | Or indeed implemented an auto-clicker |
22:11:53 | PMunch | What speeds are you seeing? |
22:12:05 | PMunch | The loop for handling mouse clicks probably have some limit as well |
22:12:27 | FromDiscord_ | <Recruit_main_70007> most clicking stats webs crash |
22:13:05 | PMunch | Huh? |
22:13:35 | FromDiscord_ | <Recruit_main_70007> they will start to freeze |
22:15:43 | FromDiscord_ | <Recruit_main_70007> 96.37 clicks per second on average, but i know thats pretty shitty for an autoclicker |
22:19:22 | * | tane quit (Quit: Leaving) |
22:19:56 | PMunch | Hmm, maybe find an open source auto-clicker and see what it does? |
22:20:01 | PMunch | Anyways, I'm off to bed |
22:20:03 | * | PMunch quit (Quit: Leaving) |
22:20:33 | FromDiscord_ | <Recruit_main_70007> gn, i can see some of them are 1000Cps, but the thing is making it myself |
22:25:50 | FromDiscord_ | <Recruit_main_70007> shit, even python is faster... |
22:33:13 | * | adeohluwa joined #nim |
22:34:11 | * | jxy quit (Quit: leaving) |
22:36:12 | * | adeohluwa quit (Remote host closed the connection) |
22:38:16 | * | solitudesf quit (Ping timeout: 268 seconds) |
22:39:39 | * | jxy joined #nim |
22:40:18 | rayman22201 | I'm late to the party, but Zevv is my hero and I want to know more about hacking the arduino ide :-P |
22:42:22 | FromGitter | <Varriount> Recruit_main_70007: Is this Nim performance? |
22:42:53 | FromGitter | <Varriount> One big difference between Python and Nim (aside from the obvious) is that strings are copy-on-assignment in Nim. |
22:46:01 | * | gangstacat quit (Quit: Ĝis!) |
22:46:12 | FromDiscord_ | <Recruit_main_70007> No, an aoutoclicker, just a key to start/stop, python uses a thread, and goes nuts, while Nim doesn’t improve |
22:47:02 | FromDiscord_ | <Recruit_main_70007> I guess it’s Nim performance, yes, the no is because I don’t use strings, so they can’t be the problem |
22:49:36 | FromGitter | <Varriount> How large is the code? Could you post it? |
22:51:46 | * | filcuc quit (Quit: Konversation terminated!) |
23:00:49 | * | ftsf joined #nim |
23:06:13 | * | icebattle joined #nim |
23:06:37 | * | lxbarbosa joined #nim |
23:22:27 | * | disrupteq quit (Ping timeout: 240 seconds) |
23:25:15 | * | neceve quit (Ping timeout: 265 seconds) |
23:26:51 | FromDiscord_ | <Recruit_main_70007> https://play.nim-lang.org/#ix=28AJ that’s faster than this |
23:26:51 | FromDiscord_ | <Recruit_main_70007> https://play.nim-lang.org/#ix=28AL which use multithreading |
23:27:08 | * | disrupteq joined #nim |
23:29:55 | * | jken_ is now known as jken |
23:44:14 | * | Ven`` quit (Quit: Textual IRC Client: www.textualapp.com) |
23:53:39 | FromDiscord_ | <Clyybber> @Recruit_main_70007 you should probably use https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-sendinput instead |
23:53:40 | FromDiscord_ | <Clyybber> gn |
23:58:23 | FromDiscord_ | <treeform> the UI thread in the OS is usually single threaded. You might not be able to use threads to send mouse_events to OS faster. |