<< 22-02-2020 >>

00:02:06*hax-scramper quit (Remote host closed the connection)
00:02:28*hax-scramper joined #nim
00:02:41*abm joined #nim
00:15:08*tane quit (Remote host closed the connection)
00:20:53leorizelol I broke the acm website
00:21:06leorizenow they won't let me access materials related to ryu
00:22:11leorizeah no I broke firefox
00:49:19*zahary quit (Quit: Leaving.)
00:49:38*zahary joined #nim
00:50:05*zahary quit (Client Quit)
00:52:19*krux02 joined #nim
01:03:15*abm quit (Quit: Leaving)
01:12:37*freddy92 quit (Read error: Connection reset by peer)
01:13:04*freddy92 joined #nim
01:18:47disruptekthat would be cool. maybe i head down there on my way out west.
01:19:31*freddy92 quit (Ping timeout: 260 seconds)
01:30:34*krux02 quit (Remote host closed the connection)
02:09:58*chemist69_ joined #nim
02:13:07*chemist69 quit (Ping timeout: 258 seconds)
02:21:19Demos[m]is there a way to tell nimble to not do shallow clones?
02:21:43Demos[m]it's a problem because nimble clones recursivly and shallow clones won't work in many cases for submodules pegged to specific revisions
02:23:15disrupteki dunno, but nimph does deep clones and has an open ticket on submodules that needs comments.
02:23:18disruptek!repo nimph
02:23:20disbothttps://github.com/disruptek/nimph -- 9nimph: 11Nim package hierarchy manager from the future 🧚 15 52⭐ 3🍴 7& 1 more...
02:25:09*jjido quit (Quit: Textual IRC Client: www.textualapp.com)
02:25:19Demos[m]hnn that could work
02:29:23disruptekno one has really expressed an opinion on how submodules should work.
02:29:30disrupteki know clyybber uses them, too.
02:39:48*my_dude joined #nim
02:40:07Demos[m]is clyybber a person or another package manager?
02:40:29disruptek~clyybber
02:40:30disbotclyybber: 11[redacted] -- disruptek
02:40:36disruptekthis one is a person.
02:52:58*Hideki_ joined #nim
02:54:11disruptekif i want to add nimble's binary directory to my path, on windows, what do i add?
02:55:50FromDiscord_<Elegant Beef> *A good OS*
02:55:51FromDiscord_<Elegant Beef> 😄
02:56:32disruptekyeah, well i'm trying to fix an appveyor ci and i have no idea how to use windows.
03:02:16disruptek%USERPROFILE%\.nimble\bin; based on sh4slick's stuff.
03:08:53*endragor joined #nim
03:10:19*endragor quit (Remote host closed the connection)
03:26:01*muffindrake quit (Ping timeout: 272 seconds)
03:27:44*muffindrake joined #nim
03:37:28*my_dude quit (Quit: ZZZzzz…)
03:41:20*my_dude joined #nim
03:42:05*my_dude quit (Client Quit)
04:00:09FromDiscord_<Winton> Good to all, I have sold here looking for information
04:01:42*NimBot joined #nim
04:02:42FromDiscord_<Winton> The project has worked for 6 months for mobile, the problem is that everything is fine but with rust it is complicated
04:03:16disrupteki believe it.
04:03:19FromDiscord_<Winton> Mobile OSs are creating
04:03:37FromDiscord_<Winton> 100% Nim
04:03:55FromDiscord_<Winton> thank you very much then I don't take more of your time
04:04:09disruptekif you need any help, just ask.
04:04:21disruptekplenty of experts here who want to see nim succeed.
04:04:45FromDiscord_<Elegant Beef> And there are numpties just trying it out
04:05:28FromDiscord_<Winton> Yes, they have decided to see the potential of nim since it optimizes a lot and is fast a mini kernel mounted on a cell phone and see if it can run well
04:06:14FromDiscord_<Winton> It sounds interesting to me to see OS for mobile device and see how fluid and good it can be
04:22:53*hax-scramper quit (Quit: Quit)
04:23:09*hax-scramper joined #nim
04:39:15*hax-scramper quit (Ping timeout: 260 seconds)
04:41:56*hax-scramper joined #nim
04:44:49*hax-scramper quit (Read error: Connection reset by peer)
04:45:03*hax-scramper joined #nim
04:46:59*my_dude joined #nim
04:48:58*rockcavera quit (Remote host closed the connection)
04:49:04*my_dude quit (Client Quit)
04:49:32*my_dude joined #nim
04:49:50*my_dude quit (Client Quit)
04:50:20*my_dude joined #nim
04:50:38*my_dude quit (Client Quit)
04:51:11*my_dude joined #nim
04:51:25*my_dude quit (Client Quit)
04:51:55*my_dude joined #nim
04:52:12*my_dude quit (Client Quit)
04:52:45*my_dude joined #nim
04:53:01*my_dude quit (Client Quit)
04:53:35*my_dude joined #nim
04:53:47*my_dude quit (Client Quit)
04:54:25*my_dude joined #nim
04:54:34*my_dude quit (Client Quit)
05:11:08*ptdel quit (Remote host closed the connection)
05:11:58*my_dude joined #nim
05:19:48*dddddd quit (Ping timeout: 265 seconds)
05:27:43*nsf joined #nim
05:50:58*hax-scramper quit (Ping timeout: 255 seconds)
05:51:32*hax-scramper joined #nim
06:12:04*marmotini_ joined #nim
06:14:45*Hideki_ quit (Remote host closed the connection)
06:16:29*my_dude quit (Quit: ZZZzzz…)
06:18:00*Hideki_ joined #nim
06:22:42*narimiran joined #nim
06:22:43*Hideki_ quit (Ping timeout: 272 seconds)
06:30:57*chemist69_ quit (Ping timeout: 272 seconds)
06:31:21*chemist69 joined #nim
06:33:48FromGitter<gogolxdong> Has this project launched?
06:34:10*nsf quit (Quit: WeeChat 2.7)
06:35:32FromGitter<gogolxdong> I'm interested as well.
06:57:32*Hideki_ joined #nim
07:08:53*fanta1 joined #nim
07:15:11*rhenvar quit (Ping timeout: 258 seconds)
07:24:07*Hideki_ quit (Ping timeout: 255 seconds)
07:26:12*muffindrake1 joined #nim
07:26:41*muffindrake quit (Ping timeout: 272 seconds)
07:32:45*zahary joined #nim
07:47:43*marmotini_ quit (Remote host closed the connection)
07:48:31*zahary quit (Quit: Leaving.)
07:49:42*LER0ever quit (Remote host closed the connection)
07:50:11*solitudesf joined #nim
07:51:17*LER0ever joined #nim
08:00:00*gmpreussner quit (Quit: kthxbye)
08:01:38*neceve joined #nim
08:03:11*tane_ joined #nim
08:05:09*gmpreussner joined #nim
08:14:14*Trustable joined #nim
08:17:00*marmotini_ joined #nim
08:17:06*neceve quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
08:17:33*neceve joined #nim
08:32:43*marmotini_ quit (Remote host closed the connection)
08:33:16*marmotini_ joined #nim
08:33:33*marmotini_ quit (Read error: Connection reset by peer)
08:33:48*marmotini_ joined #nim
08:33:53*marmotini_ quit (Remote host closed the connection)
08:35:18*narimiran quit (Ping timeout: 258 seconds)
08:35:38*Hideki_ joined #nim
08:52:44*LER0ever quit (Remote host closed the connection)
09:00:20*LER0ever joined #nim
09:01:14*muffindrake1 is now known as muffindrae
09:03:03*muffindrae is now known as muffindrake
09:04:19*Hideki_ quit (Ping timeout: 260 seconds)
09:18:09*lbart quit (Ping timeout: 272 seconds)
09:22:29*nsf joined #nim
09:25:54*lbart joined #nim
09:26:17*hax-scramper quit (Ping timeout: 258 seconds)
09:27:22*hax-scramper joined #nim
09:32:06*solitudesf quit (Ping timeout: 240 seconds)
09:34:15*Hideki joined #nim
09:34:39*Hideki is now known as Guest10270
09:38:56*Guest10270 quit (Ping timeout: 258 seconds)
09:56:42*lritter joined #nim
09:57:06*hax-scramper quit (Ping timeout: 240 seconds)
09:57:32*hax-scramper joined #nim
09:58:33FromDiscord_<Rika> how do you guys debug segfaults when itasync? because it's kinda difficult for me to decipher
09:58:36FromDiscord_<Rika> ah
09:58:41FromDiscord_<Rika> premature enter key
09:59:06FromDiscord_<Rika> how do you guys debug segfaults when it's async and uses asyncnet? because it's kinda difficult for me to decipher what the stack trace says
10:28:36Zevvvalgrind
10:38:32*Hideki joined #nim
10:38:55*Hideki is now known as Guest53150
11:09:17FromDiscord_<Rika> On windows :(
11:15:56lqdev[m]dr. memory
11:18:25*filcuc joined #nim
11:23:44FromDiscord_<Recruit_main70007> Has pymod been substituted by Nimpy?
11:24:29FromDiscord_<Recruit_main70007> Does it still has the same capabilities?
11:24:29FromDiscord_<Recruit_main70007> Such as allowing the usage of numpy arrays?
11:30:48*solitudesf joined #nim
11:39:17dom96Rika: Zevv: lqdev[m]: segfaults or SIGSEGVs? There is a way to read the stack trace, you just need to ignore most of the stuff in asyncnet.nim and read each of the stacktraces to get a clear picture
11:43:27FromDiscord_<Rika> uh i think it's latter
11:43:52FromDiscord_<Rika> ignoring all asyncnet portions dont give me enough data to infer what's wrong
11:44:20FromDiscord_<Rika> the last line shows `nim-1.0.6\lib\pure\asyncnet.nim(229) appeaseSslIter`
11:49:15FromDiscord_<Rika> https://hastebin.com/raw/ajunefufew only know that it errors out on a waitFor but i dont know why it does so
11:53:13*dadada joined #nim
11:53:36*dadada is now known as Guest29844
11:56:44FromGitter<Varriount> Rika:: I'd look at what data is being passed to waitFor. You could temporarily modify the standard library code to print argument values.
12:01:46dom96shashlick, should we release choosenim?
12:02:28dom96Rika: that's not all the traceback, is it?
12:02:35FromDiscord_<Rika> it is
12:02:38*dddddd joined #nim
12:02:44dom96Usually async stack traces show you each stack trace at the point where the futures get the errors
12:02:47FromDiscord_<Rika> that's the whole thing printed at least
12:02:58dom96so I would expect more than this
12:03:20FromDiscord_<Rika> hmm no clue where the rest is
12:03:30dom96is your source code on github?
12:03:40dom96to be honest it looks like you are calling waitFor from async code
12:03:41FromDiscord_<Rika> no
12:03:42dom96which is a bad idea
12:03:52FromDiscord_<Rika> i do know that
12:04:05FromDiscord_<Rika> but i cant say how i'd go about this because discordnim is a clusterfuck imo
12:04:20FromDiscord_<Rika> the proc i'm calling waitfor in is sync
12:04:38dom96yeah, but then you've got an async proc that calls that proc
12:04:50dom96you should only use `waitFor` at the top-level
12:04:52FromDiscord_<Rika> yeah
12:04:55dom96and only once
12:05:01dom96either that or runForever
12:05:07FromDiscord_<Rika> i have to do some weird shit again then okay
12:05:19dom96why are you using waitFor?
12:05:25dom96in that instance?
12:05:44FromDiscord_<Rika> uh, since the proc i call it in is sync
12:05:55FromDiscord_<Rika> ill see if making it async would actually work hm
12:10:23FromDiscord_<Rika> seems like i dont get it anymore
12:10:53FromDiscord_<Rika> nevermind i just got it again
12:11:07FromDiscord_<Rika> ah it really is waitFor
12:11:40FromDiscord_<Rika> ah a waitfor at the top-level is now giving me the issue
12:12:20dom96interesting
12:12:33dom96happy to take a closer look if you can send me a repro
12:13:42FromDiscord_<Rika> the thing i'm working on is pretty complex and i dont know how i'd reduce this
12:18:02dom96https://github.com/Krognol/discordnim/blob/master/src/discord.nim#L325
12:18:03dom96*sigh*
12:18:17dom96why even use that when it's in a damn async proc?
12:18:58*Guest29844 is now known as dadada
12:19:00FromDiscord_<Rika> i'll edit it on my local version
12:19:03dadadahi
12:19:09FromDiscord_<Recruit_main70007> sup
12:19:16FromDiscord_<Rika> and isnt this like 2 year old code xd
12:19:27FromDiscord_<Rika> no clue what krognol was doing then
12:19:30dadadathis writeup on Nim is too good for beginners for it not to be in the docs section of the Nim website:
12:19:33dadadahttps://totallywearingpants.com/posts/nim-language-highlights/
12:19:38dadadareally nice for beginners
12:20:00dom96Rika: to be fair, the code isn't too bad
12:20:17dadadait should be here: https://nim-lang.org/learn.html
12:20:31dadadathere are some similar once already, but the more the merrier?
12:20:32dom96at least there isn't any `addr` and `ptr` usage as far as I can see
12:20:38dadadas/once/ones
12:20:38FromDiscord_<Rika> dom96 it really isnt
12:20:41FromDiscord_<Rika> there is dom
12:20:43FromDiscord_<Recruit_main70007> dadada: this looks just what i need to get into templates and macros
12:20:53dom96Rika: where?
12:20:58FromDiscord_<Rika> somewhere with "handler" in it uses `pointer` but not `ptr` i dont think tho
12:21:14FromDiscord_<Rika> is `pointer` okay?
12:21:34dom96wtf, that's even worse lol
12:22:27FromDiscord_<Rika> no clue regards the difference tbh
12:22:36FromDiscord_<Rika> he uses it for storing procs with different arguments
12:22:43dom96Someone needs to make a Nimble package analyzer that outputs a warnings when `ptr`/`pointer`/`addr` are used in places where FFI isn't used
12:23:05dom96yeah, that could easily screw up your stack and cause segfaults
12:23:21dom96You can try to debug by adding echos into https://github.com/nim-lang/Nim/blob/v1.0.6/lib/pure/asyncnet.nim#L229
12:23:23FromDiscord_<Rika> it does, its what causes my program to hang on control-c
12:23:23dadadaAraq: put https://totallywearingpants.com/posts/nim-language-highlights/ into https://nim-lang.org/learn.html ... it's one of the best intros into the language I've seen, maybe the best
12:23:36FromDiscord_<Rika> i agree with dadada btw
12:23:42FromDiscord_<Rika> from what i read it's p.good
12:23:58dom96but I bet that it's a stack corruption, and you'll see that everything isn't `nil`
12:24:09dom96or you will add the `echo` and suddenly you won't see any crashes
12:25:01dom96you can also try importing `segfaults`, it should give you NilAccessErrors, might be interesting to see where it gets thrown
12:25:28dom96but I would fix that package
12:25:40dom96Using `pointer` like this is just being lazy
12:25:47FromDiscord_<Rika> i already am trying to (but i'm also fucking it up somewhat haha)
12:25:54FromDiscord_<Rika> how would i go about not using `pointer`
12:26:10dom96no judgment of course, since people have little time etc. but in the long term you can run into issues like this
12:26:29dom96well since it's used for storing different kinds of procs
12:26:36dom96you just create a type that is an object variant
12:26:44dom96case kind: MyHandleType
12:26:58dom96of SomeHandlerType: someHandlerProc: proc ()
12:27:14dom96of SomeOtherHandlerType: someOtherHandlerProc: proc (blah: int): int
12:27:15dom96etc
12:27:20dom96perfectly type safe
12:27:24dom96and memory safe
12:27:46FromDiscord_<Rika> dadada, he uses `null` instead of `nil` though which is a possible area for beginners to get confused at
12:28:15FromDiscord_<Rika> dom96, i'll look into making those
12:28:52dom96Rika: awesome, you're a nim hero :) Let me know if you run into any trouble.
12:30:13*tane_ quit (Quit: Leaving)
12:30:37FromGitter<NOP0> hi, check this out https://play.nim-lang.org/#ix=2cnu why does it not compile? I'm suspecting line 13. thanks!
12:31:05dom96That's a Nim bug, you should report it
12:31:27FromGitter<NOP0> w00t 😄
12:31:40FromDiscord_<Rika> wait, var ref?
12:31:45dom96Nim should never generate C code with an error.
12:32:24dom96if you want to find the cause I would comment out code bit by bit until the error disappears
12:32:47FromGitter<NOP0> it's line 13
12:33:22FromDiscord_<Rika> do you need to really `var` a `ref object`?
12:33:50FromGitter<NOP0> I'm not sure, I'm very new to Nim, it's a toy example to get to know the language
12:33:58FromGitter<NOP0> I want to call the base class
12:34:14FromDiscord_<Rika> uh var'ing a ref object means the reference is var, the pointer
12:34:28*Romanson joined #nim
12:34:36FromDiscord_<Rika> you dont need to var anything that's a ref object since the underlying data can be edited
12:35:10*nsf quit (Quit: WeeChat 2.7)
12:35:20FromDiscord_<Rika> if you remove all var then it works
12:36:05*Ven`` joined #nim
12:38:04dom96yeah, `var ref` is redundant
12:38:42FromGitter<NOP0> cool. thanks! should I file an issue for the original error?
12:42:02dom96yes please
12:43:11FromGitter<xflywind> Hello, whether I can get the name of proc in runtime? ⏎ ⏎ ```proc hello() = ⏎ discard ⏎ ⏎ echo getProcName(hello)``` [https://gitter.im/nim-lang/Nim?at=5e5121df0c451412668172b9]
12:43:22*freddy92 joined #nim
12:45:13FromGitter<xflywind> I want to get `urlFor` function like flask.
12:45:44*freddy92 quit (Read error: Connection reset by peer)
12:45:45dom96proc names are available at compile time
12:46:02dom96you can make a macro called getProcName()
12:46:08*freddy92 joined #nim
12:46:25FromDiscord_<Rika> ~~though that example doesnt really make sense IMO~~
12:47:49dadadaNim should take part in the next Google Summer of Code
12:47:56dadadait
12:48:03dom96xflywind: https://play.nim-lang.org/#ix=2cnz
12:48:33dadadathese orgs take part this year https://summerofcode.withgoogle.com/organizations/?sp-page=5
12:49:07dadadafor example there's "Swift, a modern, type-safe and fun general ..." so why not Nim?
12:49:30dadadaI'm sure it's a lot of effort to coordinate this, but it's definitely worth it
12:49:51dom96because we tried like 3 times and were rejected
12:49:53dadadajulia is also one of the orgs
12:50:03dom96someone just needs to coordinate it again
12:50:04FromDiscord_<Rika> why were you guys rejected?
12:50:25dom96there isn't really a reason given
12:50:31dom96it comes down to how good your project proposals are
12:50:33dadadais julia really more respected than Nim? why should it be?
12:51:13FromDiscord_<Rika> dadada, perhaps because theyre bigger or can propose better idk
12:51:19FromGitter<xflywind> Thanks.@dom96 I will try it.
12:51:46dadadaruby, python are there, but that's less surprising
12:51:58dom96https://github.com/nim-lang/Nim/wiki#special-events
12:52:03dom96compare those to the other project's
12:52:25dom96for those years
12:52:36dom96In theory it should come down to the projects list
12:52:45dom96but who knows, there is likely some bias :)
12:53:17dadadadom96: they probably consider how important a project is to the foss ecosystem
12:53:34FromDiscord_<Rika> they probably do
12:53:54FromDiscord_<Rika> i think it's just a matter of how much we're known but thats ofc my opinion
12:54:25dadadawhich is subjective, Nim has gotten more popular, but is it enough for GSoC? :-)
12:54:29FromDiscord_<Rika> also dom96 i see why he used a pointer, because it's tedious writing this gigantic case statement
12:54:29dadadawe should definitely try
12:54:57FromDiscord_<Rika> we're still tiny if you think about it
12:55:23dadadaRika: some of the accepted ones aren't huge either
12:55:59dadadawhat is python? never heard of it
12:56:30FromDiscord_<Rika> nice try haha
12:59:33*sekao joined #nim
13:01:18dadada"Chapel is an open-source programming language designed for productive parallel computing at scale."
13:01:40dadadaso they got supported by GSoC, I can hardly imagine that Nim has less appeal then them
13:02:14FromDiscord_<Rika> huh good example
13:02:24dadadathe only reason I can think of is that they have a story about what they're improving in the world of computing... in their case "parallel computing"
13:02:43dadadaso to get accepted Nim needs a "story" ... what is Nim improving in the world/world of computing?
13:02:53dadadaa selling point
13:03:13dadadait's sad that this seems to be required ...
13:03:53dadadathe chapel topics listed there are:
13:03:54dadadaprogramming languages
13:03:54dadadacompilers
13:03:54dadadahigh performance computing
13:03:54dadadadistributed computing
13:03:56dadadaparallel computing
13:03:59dadada...
13:04:01dom96Rika: macros can help you in generating that case statement
13:04:10FromDiscord_<Rika> ease of programming of python w/ the performance of C?
13:04:11dom96anyway, it's not that hard to copy and paste this stuff
13:04:18dadadaNim needs such a list when making the application
13:04:41FromDiscord_<Rika> dom96, i dont know how to make a proc that uses this w/o making another gigantic case statement for this
13:05:12dadadaRika: yes, but I don't know if that's enough, there are already multiple tools trying to do that for python, cython, pypy, nuitka, and now mypy(also in GSoC)
13:05:38FromDiscord_<Rika> http://ix.io/2cnE/nim i wouldnt know how to adapt this proc for using the handler type
13:08:34dom96Rika: well I need to go now, but a case statements that's large is a small price to pay
13:10:38FromDiscord_<Rika> who are you, thanos?
13:18:41dadadainterestingly the GSoC projects for some of the large projects there (like Fedora, Git) are surprisingly modest tasks
13:18:58*sekao quit (Remote host closed the connection)
13:19:23dadadafor example for git there's nothing fancy to do for students, just unifying some command line options so that they are logically consistant and easier to use
13:19:50dadadaand also converting scripts to C code, which includes indentying scripts worth to be converted first
13:20:08dadada... maybe Nim would have success when applying with similarly modest tasks?
13:20:18dadadaand the hope is that GSoC contributors stick around
13:22:06*dddddd quit (Ping timeout: 240 seconds)
13:35:19FromGitter<NOP0> Reading a bit about concepts, is this higher kinded types? Like monads and stuff?
13:36:22FromDiscord_<Rika> typeclasses
13:36:34FromDiscord_<Rika> theyre around the equivalent to haskell typeclasses
13:36:47FromDiscord_<Rika> on compile time only so they arent like interfaces
13:48:23*Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
13:49:12*freddy92 quit (Read error: Connection reset by peer)
13:49:36*freddy92 joined #nim
13:53:50FromGitter<NOP0> Ok, thats really cool. Do I need some experimental pragma to use them?
13:54:28FromDiscord_<Rika> no
13:59:25dadadajust discovered zulipchat.com through GSoC, it's pretty impressive
13:59:44dadadait's open source, and there's a free service for foss projects
13:59:56dadadacould be interesting for the nim community, their clients seem to be awesome
14:00:04dadadaand it has integration with IRC and other services
14:06:41dadada"The hosting is supported by (and is identical to) zulipchat.com's commercial offerings. This offer extends to any community involved in supporting free and open source software: development projects, foundations, meetups, hackathons, conference committees, and more. If you’re not sure whether your organization qualifies, send us an email at [email protected]."
14:07:33dadadathe software isn't open core, it's completely open source ... it much more advanced than gitter/matrix or any of the other alternatives at least from my reading so far
14:07:53dadadaalthough there're some FOSS communities that claimed they had grown due to it, worth a shot, eh?!
14:08:35dadadaand the two way integration with IRC/Gitter allows those who want to stick with their current workflow
14:10:35dadada"Zulip Cloud Standard is free for open source projects. We also offer steep discounts (usually 85%-100%) to many non-profits, educational institutions, groups of friends, and in other scenarios where most of the users are not fulltime employees of the customer. Generally, only closed organizations that also pay their members' salaries pay full price. Just contact [email protected] and we’d be happy to
14:10:41dadadadiscuss your situation!"
14:11:33dadadasummary: FOSS projects get enterprise features from their cloud service that normally cost 6 bucks per user forever for free.
14:11:44dadadaonly thing needed is to apply for it per email
14:14:13dadadahttps://zulipchat.com/plans/
14:14:26dadadathe table at the bottom sums it up well
14:15:26dadadaAraq: please consider zulipchat!
14:24:19*narimiran joined #nim
14:30:22dadadathere's a terminal application for zulipchat too https://github.com/zulip/zulip-terminal
14:32:28disrupteki looked at it for auctionhero. it's my favorite slack replacement, iirc.
14:33:17dadadahttps://github.com/zulip/zulip-terminal/wiki/Getting-Started
14:33:51dadadait seems to surpass slack, it has integrations with almost everything, man it's lovely and completely FOSS
14:34:09vegaisometimes I wonder if it would be completely bad business to offer services like that with big discounts as your number of users grow
14:34:26vegaibeing in a >1000 people org makes those prices build up pretty fast
14:34:42disruptekthe issue for me isn't what it integrates to, but whether other services i use that integrate to slack can trivially integrate to zulip as well.
14:34:45vegaiBasecamp seems to be doing fine even though their pricing is flat
14:34:45dadadaI'd be surprised if they gave no discounts
14:35:26dadadadisruptek: can you give me an example?
14:35:54disrupteki'm pretty dependent upon segment.com.
14:41:55dadadadisruptek: I see, hopefully zulip becomes more popular so that sites like segment.com offer integration for it, another catch-22 situation
14:42:22disruptekthey just need to shim slack webhooks somehow.
14:43:02vegaiI miss the world where the technical world got together to make a standard that everyone then implemented
14:43:12dadadavegai: I think about this every day
14:43:26vegaiI guess XMPP was the last attempt in the chat space for a thing like that
14:43:45vegaiMatrix is similar, but it seems to be driven by a single entity as well
14:43:58dadadavegai: ie. email is great because everyone accepts it as a standard, there should be something like that to replace slack
14:44:11vegaidadada: xmpp
14:44:28vegaiexcept that somehow xmpp "sucks"
14:44:33FromGitter<zetashift> Couldn't one just make a Zulip bridge to Nim's channelsZ?
14:44:45vegaiI suppose they failed because of the vast expendability, ironically
14:44:49dadadazetashift: yes, that should work easily
14:44:51FromGitter<zetashift> Also I tried Zulip it's interface is pretty not-beginners-friendly
14:45:18dadadazetashift: which interface did you try? there are many including a REST api
14:45:33vegaibridging everything to IRC means that about 5% of the power of those modern chat things get applied
14:45:42disruptekrude.
14:46:41FromGitter<zetashift> no I ment just the chat client interface, it's some weird mixture between IM and threaded discussions
14:46:56FromGitter<zetashift> takes a while to get used to
14:47:20dadadazetashift: I understood what you meant, but there are multiple chat client interfaces for zulip, so which one are you talking about?
14:47:40dadadathere are multiple terminal clients even!
14:48:16disruptekzoinks!
14:49:23vegaiso what would a zulip thread look like, bridged to IRC?
14:49:55FromGitter<zetashift> just the web-based Zulipchat one
14:50:37dadadazetashift: I'd rather use something like this than something webbased https://camo.githubusercontent.com/d4efe459c212e64ae7c841e5dda288a14837bf1e/68747470733a2f2f64726976652e676f6f676c652e636f6d2f75633f6578706f72743d766965772669643d31746163325053535f47625177587a34476e7a66636f5f68696e5776464f327a61
14:50:55dadadahas vim keybindings
14:53:52disrupteki'll write a zulip api today and bridge it to irc. then we can see if anyone cares enough to use it.
14:54:22dadadadisruptek: https://zulipchat.com/integrations/doc/irc
14:54:37disruptekNIH
14:56:41Zevvyes we need moooooore chats
14:57:02Zevvyo daawg let me bridg my bridge to your bridges bridge
14:57:41Zevv<fromDiscort> <throughGitter> <byZulip> <onIrc> <Zevv> Hello!
14:58:42dadadaZevv: quality over quantity... zulip seems to be more advanced than the alternatives, and it integrates well with everything #nim already offers (like gitter/irc)
14:58:43disrupteki've thought it might be nice to have a translation bridge.
14:59:09dadadaso I think using it as the central instance makes sense, and it can bridge the others
14:59:09disrupteki'd like to understand our resident german better when he deigns to drop wisdom.
14:59:43dadadadisruptek: wouldn't that be called a bot rather than a bridge?
15:00:08federico3"Zulip has a significantly larger and more active development community than other modern open source group chat solutions like Mattermost, Rocket.Chat, and matrix.org. " huh?
15:00:12disruptekit would bridge a nim-german channel, converting messages between the languages.
15:00:41dadadaother dev teams seem to make good experiences with it: https://wildfly.org/news/2019/04/23/Zulip-Chat/
15:02:04dadadadisruptek: it should simply detect german words and translate those words/sentences where needed
15:10:15FromGitter<alehander92> ich weiss nicht , disruptek, wir haben einen deutschen channel iirc
15:12:26*Guest53150 quit (Remote host closed the connection)
15:13:05*nsf joined #nim
15:13:08*Hideki_ joined #nim
15:17:31*Hideki_ quit (Ping timeout: 255 seconds)
15:17:59*Hideki_ joined #nim
15:21:57FromGitter<alehander92> i was in romania: it does look like a place that would make you an expert in template metaprogramming
15:23:21FromGitter<alehander92> but clyybber is more of a memory management guy ..
15:27:57Zevvdisruptek: nothing to understand here, but I'm afraid I'm at the age where one wonders why the world needs more chat protocols and implementations.
15:29:35Zevvsince a week or two I have another permanent window open with a Telegram channel. I'm flattered to be invited, but I do not really see the advantage
15:29:51ZevvI also need to check my slack seven times a day
15:30:10dadadaZevv: recently it was in the news that IBM wants to standardize on slack, I didn't know about slack before reading this news, but I did know that RedHat belongs to IBM (also rather new development), so I was hoping that this slack thing is something free/FOSS/non-proprietary, then I learned its not, then I asked myself what do matrix/irc/jabber/xmpp miss that slack has
15:30:11Zevvor login the portal of both my kid's schools because I got mails telling me "you have a message"
15:31:17Zevvdadada: right, and why-oh-why does everyone think it is ok to cling to all these very non-free non-open things anyway
15:31:19dadadaZevv: and there lies the answer: slack works for an organization with 300.000 people (IBM), and apparently works well, and zulip is in that scalable category
15:31:27disrupteki'm satisfied with irc, but i think it makes sense to keep the ground fertile in case something better grows.
15:31:58Zevvsure. I'll come take a look when the time is there :)
15:32:10disruptek~scalable is troll-talk for `unreachable`.
15:32:11disbotscalable: 11troll-talk for `unreachable`.
15:32:20dadadaI love IRC, especially because of irssi, but I know that IRC wouldn't work for an organization like IBM
15:32:30dadadaso that's why IRC isn't enough for all use cases
15:32:43dadadaand something not being enough for all use cases is where new protocols come in
15:32:53disruptekdadada: what are you coding in nim these days?
15:32:56Zevvbut really, it annoys me all beyond reason. I get a mail telling me to go to a portal. I go to the portal where I click five times. I find a message saying "Please read the attached message", where I find a frigging MS-word document
15:33:03Zevvhow the hell do people think this is ok?
15:33:09disruptekpeople are stupid.
15:33:15disruptekthey don't know they're stupid.
15:33:44dadadadisruptek: I'm still learning Nim, now I'm making my own convenience macros/templates, making a collection that I'll use in future nim projects
15:33:55ZevvI sometimes try to tell people about the 90's netiquettes: if you are writing something that reaches 30 people, you should spend more time on it than all those 30 people together will spend reading it
15:34:16dadadadisruptek: and they don't want to be told they are stupid :D
15:34:47disrupteki was looking at twitter yesterday. i have, i think, 3 posts to twitter in, i dunno, 10 years or something.
15:34:55Zevvthey're not stupid. they just have a hard time thinking properly.
15:35:05disruptektwitter is recommending that i follow ariana grande (sp?)
15:35:13disrupteki look at her feed.
15:35:40disruptekit's full of nothing. and she has tens or hundreds of thousands of people reading it.
15:35:56dadadatwitter is mostly fun because of memes
15:35:59Zevvyou want more rants? Why does the local police think it is ok to use twitter and whatsapp as the prefered way to communicate with local citizens? What the blooddy frigging ****
15:36:36disruptekyou mean, direct messaging?
15:36:39Zevvlocal german police going through foreign advertizing companies to talk to me?
15:36:46Zevvright
15:36:48disruptekor broadcast? because i don't think broadcast is such a bad use.
15:36:55ZevvDM
15:37:00disruptekwow, that's nuts.
15:37:14ZevvI can't call em. I can't mail em. I should whatsapp em
15:37:24lqdev[m]dude
15:37:33disruptekhey, my sister was in a police station asking for help.
15:37:49Zevvis that the sister with the cool tattoos
15:37:49disruptekthey told her to call 911. a police officer in front of her said, "call 911."
15:37:52disruptekyeah.
15:38:00dadadaZevv: I'm with you on that, the reason I pointed out zulip today is because it is different from whatsapp/twitter/slack/facebook, in that it's completely non-proprietary and integrates nicely with older protocols (email/IRC)
15:38:20disruptekit's not different, it's just the same, you silly young thing.
15:38:43Zevvdadada: who owns the joint. Follow the money first
15:39:11dadadaZevv: which joint do you talk about?
15:39:17Zevvzulip
15:39:19disruptekhe means `jawn`.
15:40:36dadada"Zulip was originally developed as proprietary software by a startup called Zulip, Inc., based in Cambridge, Massachusetts. In 2014, while in private beta, the company was acquired by Dropbox.[3][4] In September 2015, Dropbox open-sourced it under the Apache License.[5] Today, it is a leading open source alternative to Slack or HipChat,[6] with over 29,000 commits contributed by 450 people.[7]"
15:41:18Zevvok, fair enough, could be worse.
15:42:49FromDiscord_<Rika> can types be forward declared
15:43:00ZevvI should take it easy. I find alcohol rant-inducing
15:43:10lqdev[m]no, but you can declare types under one block @Rika
15:43:43ZevvRika: nope. also when doing recursive types they should go into a single `type` block, for example
15:43:49FromDiscord_<Rika> that's what makes it hard because i need a macro generated type and a manually written type to interact with each other
15:44:09lqdev[m]make the macro accept a type definition and merge them into one block.
15:44:14disruptekgenerate the macro-generated type with the other type as input.
15:44:15*my_dude joined #nim
15:44:28FromDiscord_<Rika> thats what i did
15:44:33FromDiscord_<Rika> but i wondered if there was something easier
15:44:55disruptekZevv: you've already started drinking?
15:45:16Zevvsaturday afternoon and the family is gone for a week. I see no problem here
15:45:25*xet7 quit (Remote host closed the connection)
15:45:25disrupteknice.
15:45:39disruptekwait, what'd you do to your family?
15:45:49ZevvI kicked them out to my mother in laws place
15:45:59Zevvthey're safe and sound in the swiss mountains
15:46:01disruptekcan't imagine why you didn't want to join them.
15:46:29*xet7 joined #nim
15:47:04Zevvto stay home and get drunk at saturday afternoon?
15:47:16disruptekhmmm.
15:47:21disruptekdecisions, decisions...
15:49:01disrupteki think testutils is pretty decent.
15:49:06disruptek!repo disruptek/testutils
15:49:07disbothttps://github.com/disruptek/testutils -- 9testutils: 11testrunner et al 15 0⭐ 0🍴
15:49:10disruptekwhat do you think, fam?
15:49:19dadadafam = family?
15:49:22disrupteksure.
15:49:24ZevvI read `!repo distruptek/testicles`
15:49:39dadadaZevv: lol
15:49:40disruptekwell, it's in the testes directory.
15:49:47Zevvhehe
15:49:58disrupteki'm trying not to push my luck, if that's a thing.
15:50:04ZevvSo is this the prelude to your cloud based world domination test suite?
15:50:15disruptekno, this is from status.
15:50:31disruptekit was embedded in chronicles and i pulled it out.
15:50:44Zevvah I thought you plannend to use that as a base to work on
15:50:58disruptekwell, this thing does tick some of the boxes i wanted for golden.
15:51:14disruptekit's closer to what i want for testing than testament or unittest.
15:51:28ZevvSo how and where does it differ from those two?
15:52:07disruptekyou specify .test files, which are .ini-format. they can point to somefile.nim source.
15:52:25disruptekthe testrunner will run the somefile and check output for equality.
15:52:45disruptekthat's an important feature, imo, that is absent from unittest.
15:53:22Zevvhm I just do `doAssert out == "expected output"`, but ok, that's handy to have built in
15:54:03disrupteki was gonna use nimscript for golden and store i/o streams in separate files so they can be trivially manipulated.
15:54:17disruptekbut, this is a step in the right direction.
15:54:39FromDiscord_<Rika> creating this macro for the event handler thing in discordnim has quickly made me hate this library
15:56:01dadadadisruptek: put more examples in that repository, so that it becomes more obvious how well this approach scales
15:56:13disruptek!repo chronicles
15:56:14disbothttps://github.com/status-im/nim-chronicles -- 9nim-chronicles: 11A crafty implementation of structured logging for Nim. 15 56⭐ 9🍴 7& 1 more...
15:56:17disruptekdadada: see ^
15:56:50FromDiscord_<Rika> chronicles is great
15:57:02disruptekZevv: nigel is tricky.
15:57:17*ptdel joined #nim
15:57:58ZevvWe're only making plans
15:58:10disrupteki think the key is that it knows how to give up permissions.
15:59:41dadadasbhj+
15:59:44dadadasorry :D
15:59:52*muffindrake quit (Quit: muffindrake)
16:00:23Zevvdisruptek: lost you there - talking a about what?
16:01:08disrupteknigel. you run it in the cloud and it gives up perms.
16:01:35Zevvaah you named that already - didn't know!
16:01:40disruptekthen it can instantiate more nigels.
16:02:04disruptekonly one instance has no parent; the others talk to the parent in order to do anything.
16:02:28dadadamaybe chronicles should be part of stdnim?
16:02:30disruptekyou can nest them infinitely, of course.
16:02:47dadadait seems pretty advanced, and logging is commonly used?
16:02:54disruptek!rfc logging
16:02:54Zevvdadada: that goes for more cool libs, there is some pretty high quality stuff out there, but nim wants to get lean and mean in the sdlib
16:02:55disbothttps://github.com/nim-lang/RFCs/issues/146 -- 3logging tree support 7& 4 more...
16:04:17dadadaZevv: https://nim-lang.org/docs/logging.html --- there's logging in the stdlib already, the point would just be of replacing it with something better, maybe the old interface could become a wrapper around chronicles
16:04:50Zevvsure there is. But the general rule is that no new stuff goes in there I believe
16:05:23Zevvthere have been long talks about offering a preferred external lib package of well-known, high respected good quality libs
16:05:41Zevvbut it's not there yet
16:06:34dadadaI like that, I'm currently thinking of rolling sth like that myself to use as the base for my future nim projects
16:08:11disrupteknigel will solve the distribution problem.
16:09:25dadadadisruptek: summarize nigel for me
16:09:39disruptek!repo nigel
16:09:42disbothttps://github.com/Perlmint/glew-cmake -- 9glew-cmake: 11GLEW(https://github.com/nigels-com/glew, source updated nightly) with Cmake and pre-generated sources 15 89⭐ 43🍴 7& 29 more...
16:09:46disruptekawww
16:09:51disruptek!repo disruptek/nigel
16:09:52disbothttps://github.com/disruptek/nigel -- 9nigel: 11continuous integration tool for nim 15 3⭐ 0🍴
16:10:01disruptekoh, i forgot, i blew it up.
16:10:05dadada"something wacky this way comes"
16:10:09dadadais not very useful
16:10:12disruptekyeah, well.
16:10:15disruptekit's a good summary.
16:10:21dadada:D
16:10:29disruptek~nigel is something wacky this way comes
16:10:30disbotnigel: 11something wacky this way comes
16:11:26disrupteklook at aws lambda and think about what the word /lambda/ means. why did they choose that word?
16:11:31dadadalet me rephrase, how will it solve the distribution problem?
16:12:05*Romanson quit (Quit: Connection closed for inactivity)
16:12:07disruptekit solves distribution because nigel will make measuring successful package interop trivial.
16:12:43dadadahow so?
16:13:25disrupteknigel is basically a collection of cloud-native abstractions for data and execution.
16:13:53dadadais nigel also a codeword for the right to use buzzwords to confuse the shit out of everyone?
16:13:55disrupteklambda will be a primary target, but it'll support anything.
16:14:55disrupteki can send nim source into it and get back a function i can run in the cloud.
16:15:32disruptekit wires up input and output between your program and the cloud using trivial nim abstractions.
16:15:43dadadaso it helps to figure out the dependencies for the cloud backend? so that no manual configuration is needed? that's it!?
16:15:46dadadais that it?
16:16:02disruptekthink of queues, pubsub, infinite data storage, messaging, etc.
16:16:23disruptekit's more like, you write code but it doesn't run locally. it runs in the cloud.
16:16:38disruptekwhere the programming environment is just a little "bigger".
16:17:04dadadadoes nigel have any use for purely local programming which I tend to do?
16:17:42disruptekif you can broading your mind to think about i/o from your node as a one-time cost, then sure.
16:17:48disruptekbroaden, too.
16:18:18disruptekthink of it as more of a cloud repl.
16:18:57dadadacould it be useful to improve IDE support?
16:19:32disruptekit'd be more challenging, i think.
16:19:53FromDiscord_<Recruit_main70007> i would like that the vs bindings were updated to work with 2019 version
16:21:59disrupteknigel is in a state where i'm writing tests which are like tiny demos of the concept.
16:22:20disruptekand stuff doesn't work in atoz, so i'm hacking that. but that means fixing a stupid design decision i left in openapi.
16:22:53disruptekand that's really down to the lame ass rest lib i made. terrible code that i use everywhere.
16:23:13dadadadisruptek: when will you publish the code?
16:23:15disruptekit's like, the first nim i ever wrote and it's my most broadly used code. and the worst.
16:23:46disrupteki will publish it when it's tight enough.
16:24:03disruptekthis is one of those start-with-everything-and-throw-away-whatever-you-can situations.
16:24:24disrupteki have to boil it down to like 6 operations in 400 lines of code.
16:24:41FromDiscord_<Rika> how do i check if a symbol is just a type alias (as in, type A = B)
16:25:03disruptekdoes == not work?
16:26:52disruptekalso, nigel is a case of software that requires a bootstrap to create it in the first place.
16:27:08disruptekso, like, i have to write the thing, and then write the thing that writes it.
16:28:59FromDiscord_<Rika> i meant within a macro, sorry
16:29:09*hsh joined #nim
16:29:27disrupteki think you can compare type hashes.
16:29:27hshis there an official Nim docker image?
16:29:39disruptekhsh: nope.
16:30:08disrupteksee https://play.nim-lang.org
16:30:14*gangstacat quit (Quit: Ĝis!)
16:30:22FromDiscord_<Rika> next question is how do i convert an ident to a sym xd
16:31:21hsh@disruptek thanks. I'll have a go at making one.
16:31:23disruptekdefine it as somevar: typed
16:31:30disruptekhsh: nice!
16:31:40disrupteki've done a few using alpine.
16:31:50FromDiscord_<Rika> disruptek, its not a parameter
16:31:51hshany interest in a Nim s2i? I think it would be cool.
16:32:03FromDiscord_<Rika> s2i?
16:32:04disruptekalso a custom gentoo image.
16:32:30hshsry, s2i = https://github.com/openshift/source-to-image
16:32:47FromGitter<sheerluck> Gentoo Linux FTW
16:33:40disruptekyeah, i love it.
16:33:49hshan example is you have a jester project (source only), you just write `s2i nim~http://github.com/mycoolnim-microservice.git` and it makes a ready to deploy docker container
16:34:11*gangstacat joined #nim
16:34:13hshno build needed, the s2i does it
16:34:30disruptekthat's awesome.
16:35:08disrupteknigel does the same sort of thing. there's a function that takes a url as input and produces output that can be "blessed" into executable code.
16:35:39hshthat's cool, the same principle I guess, yeah
16:36:06disruptekmaybe i could use s2i to mock the cloud for tests. can you run a container in a container?
16:37:04hshahaha, not sure, but it sounds like a challenge
16:37:35hshI know a lot of people that use s2i for flask apps and I thought, why not nim + jester
16:38:21disruptekyeah, this is going to be great.
16:38:34disruptekima write a nigel function that builds you a container from a url.
16:38:56hshawesome :)
16:40:04*ptdel quit (Ping timeout: 248 seconds)
16:41:22disrupteki guess there's really no reason you can't just run nigel locally. if you really want to run thousands of containers, i mean.
16:44:11hshI'm guessing that if they all use the same base image, a thousand containers is crazy :)
16:44:17hsh*not crazy
16:44:28disruptekwell, they won't use the same base image.
16:44:58hshyeah, that's when the problems start
16:47:21disrupteki wonder what happens when i launch 1000 containers at once.
16:47:53disruptekprobably nothing.
16:48:28*my_dude quit (Quit: my_dude)
16:49:43FromGitter<alehander92> disruptek
16:49:47FromGitter<alehander92> what do you use as a repl
16:49:57FromGitter<alehander92> i think nim can use a good general repl-ui lib
16:50:15FromGitter<alehander92> iirc inim was working well, but no idea if it was based on something
16:50:28FromGitter<alehander92> or just readline
16:50:40disrupteki think treeform has the best input ui if you mean gui stuff.
16:51:14FromGitter<alehander92> no, no, like a terminal repl
16:51:30disrupteki haven't really used any of them.
16:51:34FromGitter<alehander92> you know, autocomplete , colors and the fancy repl niceties
16:52:54disruptekprobably time to do some work on chronic.
16:54:10FromGitter<alehander92> we need some new names :D
16:58:01hshthere's actually an official nim docker image iirc: https://hub.docker.com/r/nimlang/nim
16:58:05disrupteknew names?
16:58:15hshthat's means I can start with the s2i right away
16:58:28disruptekhttps://www.twitch.tv/disruptek
17:06:56*nsf quit (Quit: WeeChat 2.7)
17:31:12disrupteki would rather see yours in stdlib.
17:31:23disruptekleorize...
17:32:17leorizeyou're on the wrong channel :)
17:33:13leorizebut I think I got the hang of the concept now
17:34:02leorizethough I still can't prove why does things work the way it does
17:34:20leorizethe paper said halfway point is the magic points, and never prove it...
17:36:20disruptekno, you are.
17:36:37disruptekthe halfway point is the magic point?
17:37:23disruptekthe idea is that if you are looking to find which of two sides of a continuum you are closer to.... then you need to know which is less than halfway the distance between each.
17:37:26disruptekthat makes sense, right?
17:38:07FromDiscord_<Rika> ah, i finished the macro. lets see if discordnim still destroys my program now
17:38:29FromDiscord_<Rika> 😦 still does
17:39:29FromGitter<matrixbot> `reversem3` So I have been following Sir Tim Berners-Lee for awhile and came across pods? Which have been talk about for awhile. Now Bruce Schiener has gone on board also. The project is 15 years in the making. https://solid.inrupt.com/about. Anyway the main language is javascript libs like angularJS and ReactJS. Since there really just frameworks for Javascript would nim work good for this?
17:40:11FromDiscord_<Rika> why wouldnt it?
17:41:20leorizedisruptek: still doesn't make sense
17:41:51leorizeso his idea is that the halfway points to the next floating point number of the same type are the intervals in which the output lays
17:42:52leorizehe said just that in the paper, no explaination whatsoever
17:43:31leorizein his talk he mark the two positions on the number line and said "it looks like the output is in that interval"
17:48:50disruptekwell, they are.
17:49:05leorizetrue, but it's still unexplained
17:49:19leorizeso I'm digging up all the floating points theory to tackle that one
17:49:20disruptekclearly you want the output, whatever that is, to be the most in-between of all possible outputs on the line.
17:49:34disruptekso clearly you can throw away half of the input.
17:49:42dadadacan a macro get the context where it was called from? for example can it differentiate somehow from being called inside the top level of a procedure, or inside a block, or inside a for loop?
17:49:50disrupteknot really.
17:50:30leorizeyea but the paper also said that the output might lie exactly on the halfway points
17:50:47leorizeso I guess he does have some math to back it up, but he didn't write it in?
17:50:51disruptekyes, technically.
17:51:21disruptekit's not math, it's implicit.
17:51:41leorizebbl
17:51:46*leorize quit (Quit: WeeChat 2.6)
18:02:53*filcuc quit (Quit: Konversation terminated!)
18:23:44*dddddd joined #nim
18:25:15dadadahas anyone here used crystal? it seems to share a lot of concepts with nim? nim's macros seem more powerful unless I'm mistaken
18:27:12*freddy92 quit (Read error: Connection reset by peer)
18:27:35Yardanicoyeah, they seem like a mix of nim's templates with quote do and raw code (text) ?
18:27:39*freddy92 joined #nim
18:27:50Yardanicothey even have to use a special template syntax for if statements
18:28:08Yardanicoor just for any crystal code in the macros which should actually run at compile-time
18:28:37Yardanico\{% name = {{name.stringify}} %}
18:29:09dadadabut you didn't use it either?
18:29:15Yardanicono xd
18:29:23YardanicoI don't really like Ruby's syntax
18:29:27dadadaI'd like to get a review by someone who used crystal and nim
18:30:08vegaimost people have time for only one fringe language really
18:30:11YardanicoI only know about oprypin, but he seems to only use Crystal now, and IDK if he uses crystal macros
18:30:19dadadaYardanico: me neither, but that seems like a small pill to swallow, if everything else is nice, for example they seem to have a nice class system
18:30:35vegaiin crystal, 1=="1" is not a type error
18:30:42vegaiwhich I kinda disliked :)
18:30:42Yardanicooh no
18:30:46YardanicoJS all over it again
18:31:06dadadavegai: I'd have to agree with you ther
18:31:08dadadae
18:31:34FromGitter<alehander92> i used a bit of crystal
18:31:35vegaiYardanico: well, at least it's false
18:31:41FromGitter<alehander92> as i was using ruby a lot before
18:31:47FromGitter<alehander92> vegai: this sucks a lot
18:31:47vegaiYardanico: unlike in JS
18:31:52FromGitter<alehander92> 1 == "1" might seem obvious
18:32:11FromGitter<alehander92> but why wouldn't you be able to just 1 == "1".to_i : more correct and still simple
18:32:26FromGitter<alehander92> and either intvar == strvar would work, which can lead to subtle issues
18:32:38vegaiI really like crystal/ruby's ergonomics myself though
18:32:39dadadaalehander92: define "a bit", what did you like there?
18:32:41FromGitter<alehander92> or 1 == "1" works and intvar == strvar doesnt .. which is strange
18:33:08FromGitter<alehander92> dadada i just played a little with it, sorry
18:33:45FromGitter<alehander92> it seems cute especially for ruby people, but imo nim is much more interesting
18:34:21hshone of the things I've found frustrating with crystal was LLVM cross-compilation. just trying to get a binary on a Raspberry Pi was a chore
18:34:48Yardanicowell, that's why using C or C++ as a backend has a LOT of good sides :)
18:35:06hshwith nim I just get the C file
18:35:17hshyes, exactly
18:35:45dadadawell, they might be able to write a C backend, so I wouldn't really count this against them
18:35:45Yardanicoalthough nim already has an unofficial (AFAIK it'll become official eventually) LLVM backend
18:35:55Yardanicohttps://github.com/arnetheduck/nlvm
18:36:37hshI'm not counting against them, just saying that for my projects, Nim was better suited at the time and that was one of the reasons
18:36:53dadadait seems silly to me that there are two communities of FOSS niche languages that share a lot in common, end the only thing that really seems to divide them is python vs ruby syntax?!
18:37:14vegainim and crystal? nah, they're quite different
18:37:22hshI have quite a few projects both Nim and Crystal, it's a good way for me to compare the languages
18:37:28dadada... admittedly it's more than just that, but can you imagine if they had applied their skills to nim instead, where would nim be now?
18:37:43vegaidadada: I think that's a bit simplistic
18:37:56vegaiand also if it was true, then we should've stopped all progress at lisp anyway :)
18:37:59Yardanicodadada: ask creators and developers of different UI frameworks, applications, linux distros, and basically a lot of things
18:38:03dadadait wouldn't be difficult to write an alternate ruby-style parser for nim that produces the same c output I assume
18:38:10vegaior stopped inventing new languages after lisp, rather
18:38:17Yardanicowell nim actually has kinda rubyish syntax skin
18:38:24Yardanicowith "end" blocks instead of indentation
18:38:34Yardanico*had
18:39:52oprypinI think it's confusing/misleading to say `1 == "1"` """works""". the result is `false`, not `true`, just so you know
18:40:10*tane joined #nim
18:40:37vegailike I said :P
18:40:43hshI much prefer Nim to Crystal, but that's subjective. The only thing I miss from Crystal and other languages is more traditional OOP constructs, but that's not a deal breaker.
18:41:11dadadahsh: I miss those too
18:43:14oprypinmacros in Nim are much more powerful, but less convenient. crystal is more pleasant to use in almost every aspect; i'd especially highlight the fact that you can write things in it and usually it works exactly like you expect, i'd say with the highest rate out of any statically typed lang
18:45:24oprypinto me, if something doesnt make sense, usually it's because the origins of that behavior are in Ruby
18:45:27oprypin😂
18:45:35dadadaoprypin: can you make a list of examples where this is the case? I'd be interested if it is possible to port some of this "pleasantness" to Nim. Since you've experience in both langs, you could make a comparison table?! would be thankful
18:45:37vegaiyeah :) 1=="1" is one of those things certainly
18:46:16vegaithere's probably some rationale I don't get for that, since python3 does it as well
18:46:26vegaiand they could've fixed it in 2=>3 after all
18:46:45oprypindoesnt bother me in the least in a typed language tho
18:47:04oprypinin case of Cryrstal, it just plays well with other constructs
18:47:07vegaiit exactly bothers me more in a typed language actually :)
18:47:24vegaikinda of an exception to the rule, it seems to me
18:47:57vegaiI'd much rather write crystal than many other languages though
18:50:58*sz0 quit (Quit: Connection closed for inactivity)
18:54:15*nixfreak joined #nim
18:55:26nixfreakWhats a good resource after reading "Nim in Action" which I'm leaning a lot about nim
18:55:35FromDiscord_<clyybber> making something 🙂
18:55:44FromDiscord_<clyybber> learning by doing
18:55:50FromDiscord_<clyybber> and look stuff up in the manual
18:57:51Yardanicoand asking in iRC* :P
18:57:58nixfreakDo you know anymore resources that talk about is possible with the nim compiler to JS , what you can do what you can't do ?
18:58:24dadadaAraq: is there really no way to find out if a macro is called in the top-level of a proc vs for-loop vs block, or maybe even what comes before or after the macro?
18:58:34*nsf joined #nim
18:58:43Yardaniconixfreak: well actually all of Nim works there, but some modules (stdlib ones or third-party ones) which use native libs or system calls will not work
18:59:02Yardanicohttps://nim-lang.org/docs/backends.html#backends-the-javascript-target
18:59:04*clyybber joined #nim
18:59:46nixfreakOk so I don't use any JS frameworks or libs like react or angular , can I use nim to compile to js without using any of the advanced features of these libs?
18:59:53Yardanicoof course?
19:00:11Yardanicoyou can use karax (nim lib) if you're using JS for a website though ;)
19:00:17Yardanicoit's for SPA webapps
19:00:22Yardanico(mostly)
19:01:02nixfreakI was looking at solid pods and they use react or angular html and REST
19:04:41*letto_ joined #nim
19:05:13*letto quit (Ping timeout: 255 seconds)
19:11:50nixfreakso Karax is not a good lib for multi page sites?
19:18:32FromDiscord_<clyybber> hey disrupteks stream is chill af
19:22:31nixfreakaudio stream?
19:22:57FromDiscord_<clyybber> https://www.twitch.tv/disruptek
19:38:58*tefter quit (Quit: WeeChat 2.7)
19:59:33dadadaclyybber: what does he do in it?
20:00:00FromDiscord_<clyybber> create a unittest/testament replacement
20:00:56dadadaokay, I'll check it out
20:01:50dadadawish there was a lower quality stream, my internet is too slow
20:02:18disrupteki'm only functioning at 20-25% quality right now.
20:02:39shashlicki'm on as well, let
20:02:49shashlicklet's see how this guy works 😉
20:03:22dadadait's weird seeing myself on IRC on twitch :D
20:03:54FromGitter<alehander92> :D
20:04:09FromGitter<alehander92> its hard to stream in the beginning very demanding
20:04:58dadadadisruptek: do you do this all day?
20:07:32*clyybber quit (Quit: WeeChat 2.7.1)
20:07:38dadadafinally I know why I need 1Gbit internet
20:10:07*fanta1 quit (Quit: fanta1)
20:12:07*narimiran quit (Ping timeout: 260 seconds)
20:13:48dadadadisruptek: what's your editor color scheme called
20:16:24dadadadisruptek: I'd definitely listen in on your wisdom for longer, but my lte connection is not having it
20:17:23nixfreaktrying to compile the karax/examples/todolist/todolist.html and I get a blank screen
20:17:55dadadadisruptek: youtube offers low resolution video, I don't understand how twitch fails on offering that option
20:18:14FromDiscord_<clyybber> twitch dumdum
20:18:32FromDiscord_<Elegant Beef> twitch's bitrate isnt low res? 😄
20:18:36nixfreaksorry after compiling it and then trying to view it I get a blank screen , then I look at console tools and i see uncaught dom expression , failed to read localstorage
20:18:50FromDiscord_<Elegant Beef> It's such a low bitrate it might as well be 240p imo
20:19:23nixfreakcould try using youtube-dl and look for a higher bitrate
20:19:39FromDiscord_<Elegant Beef> for twtich?
20:19:44dadadaso, I've finally given up, the stream is nice for the music alone, but not with my internet, I've little issues on youtube though
20:20:59dadadadisruptek: please make Nim videos for youtube!
20:21:29nixfreakyeah youtube-dl is't just for youtube , its based of curl and ffmpeg
20:21:37dadadaI've seen a zig developer post videos there, and it does get a decent amount of attention
20:21:44nixfreakand some other modules
20:22:01FromDiscord_<Elegant Beef> Ill make nim videos for youtube, they'll just be compilations of me typing code, looking at docs, then going to discord and asking the questions
20:22:09FromDiscord_<Elegant Beef> It'll be a big success
20:22:33FromDiscord_<clyybber> throw your dog in
20:22:37FromDiscord_<clyybber> then it will be
20:23:00FromDiscord_<clyybber> a great success
20:23:17FromDiscord_<clyybber> WHAT IF< DISRUPTEK COULDN"T SEE HIS CODE?
20:28:16*ptdel joined #nim
20:28:30FromGitter<alehander92> WOW caps lock sounds funny
20:28:46FromDiscord_<clyybber> ok buddy
20:32:13nixfreakhmm none of the karax examples work
20:32:22FromGitter<NOP0> hey, check this out, why I am getting sigsegv after the program? https://play.nim-lang.org/#ix=2cqz
20:40:21FromGitter<NOP0> ok, its because I did not return animal from the constructor proc of AerialAnimal, but why does the program run and *then* crash?
20:41:49FromDiscord_<clyybber> disruptek: Did you stop streaming?
20:42:07FromDiscord_<clyybber> The music went a bit louder so I didn't hear whatever you were saying
20:42:39disruptekyeah, i wanna give this kid a walk.
20:42:45*clyybber joined #nim
20:43:33disruptekthe way we'll handly concurrency in testutils is that nimcache will be unique per compilation but not per invocation.
20:44:16disruptekwe could probably optimize compilation using incremental.
20:44:46disruptekif we take ownership of -f from the user, maybe we can just do a fresh build per each backend.
20:44:55disruptekthen copy it to a new cache.
20:50:44*ptdel quit (Ping timeout: 248 seconds)
20:52:35*filcuc joined #nim
20:54:41*freddy92 quit (Read error: Connection reset by peer)
20:55:07*freddy92 joined #nim
21:06:13*filcuc quit (Ping timeout: 272 seconds)
21:13:21*filcuc joined #nim
21:16:10*lritter quit (Ping timeout: 255 seconds)
21:20:12FromGitter<NOP0> Hi, what are some cool iot/embedded/bare-metal ish projects to look at in Nim?
21:20:31*NimBot joined #nim
21:26:15federico3NOP0: what type of project are you looking for?
21:26:53FromGitter<NOP0> is it possible to do bare metal like rust?
21:30:31FromDiscord_<clyybber> sure
21:36:03*clyybber quit (Ping timeout: 240 seconds)
21:37:57*clyybber joined #nim
21:39:10dadadaNOP0 there's a kernel written in Nim on github
21:39:15dadadaa minimal kernel
21:40:53FromDiscord_<clyybber> https://github.com/alehander92/lodka
21:41:56FromGitter<NOP0> thanks!
21:42:04FromDiscord_<clyybber> nopro
21:42:06FromDiscord_<clyybber> blemo
21:42:20disruptekwhy did someone clip me talking about switches.
21:42:28FromDiscord_<clyybber> lol
21:42:31FromDiscord_<clyybber> wasn't me
21:42:39FromDiscord_<clyybber> where?
21:42:50disruptekthere's a lot of echo in this room.
21:43:31disruptekthe video doesn't look bad to me.
21:43:36disruptekis this clip similar to the stream?
21:44:13FromDiscord_<clyybber> yeah
21:44:21FromDiscord_<clyybber> the quality was fine IMO
21:44:26disrupteki guess this is before we fixed the color?
21:44:36FromDiscord_<clyybber> the color?
21:44:38disruptekbecause this color is totally off.
21:45:02FromDiscord_<clyybber> heh
21:45:08FromDiscord_<clyybber> it has been like that the whole time
21:45:12disruptekwow.
21:45:21FromDiscord_<clyybber> thats probably why you got asked about the colorscheme
21:45:22FromDiscord_<clyybber> haha
21:45:28disruptekjesus christ.
21:45:38disruptekit looks like a monkey took a shit all over my display.
21:45:46FromDiscord_<clyybber> caramel
21:45:50disruptek"caramel"
21:46:01disruptekwhat the fuck.
21:46:04disruptekwe have to fix that.
21:46:42FromDiscord_<clyybber> I wondered what sick github darkmode you have
21:47:01FromDiscord_<clyybber> since it displayed the parts that are yellow here as blue
21:47:49FromDiscord_<clyybber> its was pretty easy on the eyes tho
21:47:55FromDiscord_<clyybber> might wonna keep it like that : )
21:48:16disruptekmy github /is/ like that.
21:48:20disruptekbut not exactly like that.
21:48:31FromDiscord_<clyybber> yeah, I think we have the same github theme
21:48:55disruptekfixed.
21:48:59FromDiscord_<clyybber> GithubDarkTheme() ?
21:49:04FromDiscord_<clyybber> disruptek: What was the cause?
21:49:18disruptekthere's an option to flip red/blue.
21:49:23FromDiscord_<clyybber> oh
21:50:35*solitudesf quit (Ping timeout: 260 seconds)
21:52:04*nsf quit (Quit: WeeChat 2.7)
22:22:26*filcuc quit (Ping timeout: 240 seconds)
22:42:02*neceve quit (Ping timeout: 240 seconds)
22:44:53FromDiscord_<Milerius> hello
22:45:11FromDiscord_<Milerius> there is a way to extend path env in a cross platform way with nim ?
22:45:15FromDiscord_<clyybber> sup
22:45:17*zahary joined #nim
22:45:24*zahary quit (Client Quit)
22:45:29FromDiscord_<Milerius> I'm looking for the equivalent of `os.environ["PATH"] += os.pathsep + path`
22:45:41*zahary joined #nim
22:45:42FromDiscord_<Milerius> (this is from python)
22:45:58FromDiscord_<clyybber> Hmm
22:46:06FromDiscord_<clyybber> I'm not sure.
22:46:11FromDiscord_<clyybber> Does that even work on windows?
22:46:23FromDiscord_<Milerius> this work on windows yeah
22:46:33FromDiscord_<Milerius> path exist on windows too
22:47:28FromDiscord_<clyybber> no way :p
22:47:42FromDiscord_<clyybber> hmm, I don't think it exists yet
22:48:32FromDiscord_<Milerius> would be super nice
22:48:44FromDiscord_<clyybber> PR's welcome 😄
22:49:04FromDiscord_<Milerius> yeah that's true too, but i was looking for writing an emergency nim script ahah :p
22:49:09FromDiscord_<clyybber> Oh
22:49:47FromDiscord_<Milerius> i'm writing our CI infrastructure with nim and i need to build some stuff on the fly and add them in the path env variable temporary
22:50:48disruptekputEnv
22:50:51FromDiscord_<clyybber> Sorry, I can't help you much here, but I know you can set and get environment variables
22:51:01FromDiscord_<clyybber> listen to disruptek
23:09:53disruptekwut
23:09:55*dadada quit (Ping timeout: 260 seconds)
23:10:02disruptek~disruptek
23:10:03disbotdisruptek: 11a sexy fella with magic hands. -- disruptek
23:10:03disbotdisruptek: 11don't listen to him
23:10:03disbotdisruptek: 11an unsafe nil deref
23:11:13disruptek~playground is an online in-the-browser IDE for simple Nim experiments at https://play.nim-lang.org/
23:11:14disbotplayground: 11an online in-the-browser IDE for simple Nim experiments at https://play.nim-lang.org/
23:19:00madpropshow can I add text files to a binary? Instead of having to include text files with it ?
23:19:13madpropsjust have it bundled
23:20:29disruptekstaticReadFile
23:20:34disruptekaka slurp()
23:21:15madpropscool, thanks
23:22:08*Trustable quit (Remote host closed the connection)
23:26:56madpropshmm, how do I do this? https://play.nim-lang.org/#ix=2crd
23:28:53madpropsthe idea is to add all files automatically, not define them manually
23:29:05*disrupteq joined #nim
23:31:06madpropsthis has been discussed https://gitter.im/nim-lang/Nim?at=5a6760e96117191e61a19715
23:31:14*b3ong4o joined #nim
23:50:11*freddy92 quit (Read error: Connection reset by peer)
23:50:39*freddy92 joined #nim