<< 23-09-2018 >>

00:00:13*opi_ joined #nim
00:04:48*opi_ quit (Ping timeout: 252 seconds)
00:18:42*PrimHelios joined #nim
00:48:06FromGitter<zacharycarter> does echo not work in procs marked with `{.compiletime.}`?
00:48:35FromGitter<zacharycarter> I have echo statements inside of a proc marked with that pragma, that is called inside of a macro (I think)
00:48:49FromGitter<zacharycarter> yet I don't see anything in stdio during compilation
00:51:54*opi_ joined #nim
00:55:29FromGitter<zacharycarter> I think the code I'm thinking is being called - is not actually being called, so please disregard my last question
00:56:30*opi_ quit (Ping timeout: 252 seconds)
00:57:43PMunchHad some trouble getting the Nim TOML parser to work correctly with the 0.5.0 TOML spec. It was down to how values that were numbers or dates were handled. Turns out that's a bit of a mess so I decided to make this to make it "clear" how it should work: https://uploads.peterme.net/tomlvalues.png
00:58:07PMunchThought I'd share for anyone else who likes to look at silly graphs
00:58:55PMunchAnd the dot file for anyone who cares how it was made: https://uploads.peterme.net/tomlvalues.dot
00:59:46PMunch"dot -Tpdf -O tomlvalues.dot" to create a PDF of that graph
01:01:18*PMunch quit (Remote host closed the connection)
01:03:46*opi_ joined #nim
01:10:34*opi_ quit (Ping timeout: 240 seconds)
01:20:22*Gilly15 joined #nim
01:22:04*Gilly15 quit (Remote host closed the connection)
01:26:00*wildlander quit (Quit: Konversation terminated!)
01:31:33*enthus1ast joined #nim
01:33:37enthus1astkaushalmodi i would not leave this kind of trolling issues open, because then a lot of people reads them, consuming their time, i would propose to close (and lock) them as soon as possible, because then the timekilling is not that much and nobody reads closed issues.
01:35:00dom96wow, so this blew up a bit https://news.ycombinator.com/item?id=18045259
01:35:32dom96whoa, Reddit too
01:35:40enthus1astattention is good?
01:39:01dom96blog posts are good
01:39:18dom96moral of the story: everyone, please write more articles :)
01:39:41enthus1asti've found nim by a comment saying "why not nim?"
01:40:51dom96Comments are good too :)
01:41:03dom96So I'm in San Francisco now guys
01:41:11enthus1astfrom where?
01:41:22dom96From London
01:41:45dom96Somebody already got in touch with me on Twitter about meeting up and chatting about Nim
01:41:59dom96Wondering if I could organise a quick Nim meetup :D
01:42:26enthus1astgo for it :)
01:43:41enthus1astwhen is the next nim meetup in germany? :D
01:49:07dom96You need to push Araq to organise one :)
01:49:58FromDiscord<Tomohiro> Please review PR #8166:
01:49:58FromDiscord<Tomohiro> https://github.com/nim-lang/Nim/pull/8166
01:50:56enthus1astAraq Rüsselsheim? Opel? Nice city?
01:53:27enthus1astNot that nice, but a city!
01:57:01FromGitter<kaushalmodi> enthus1ast: if we close this issue, the troll will open another
01:57:09enthus1astthen close it again
01:57:29enthus1asti would not give them any stage
01:57:34FromGitter<kaushalmodi> that's just noise
01:57:46FromGitter<kaushalmodi> let the troll make themselves at home just in that one issue
01:58:02FromGitter<kaushalmodi> and sooner the people learn the better..
01:58:16FromGitter<kaushalmodi> don't comment or put the reactions in that issue
01:58:38FromGitter<kaushalmodi> closing an issue is a "reaction" too
01:58:54FromGitter<kaushalmodi> let the trolls be in an echo chamber, where all they read is their own comments
01:59:15*NimBot joined #nim
02:00:07enthus1astknow better not to react?
02:00:27FromGitter<kaushalmodi> In a week or so, real issues will bury this issue chronologically
02:00:33enthus1astyeah
02:00:52FromGitter<kaushalmodi> but if you keep on closing, new troll issues will keep jumping to the top
02:01:12enthus1astnothing stops then right now to open another one
02:01:15enthus1astthem
02:01:35FromGitter<kaushalmodi> but.. they won't get any joy if no one responds
02:02:21FromGitter<kaushalmodi> no issue closing, commenting, adding reaction emoticons seems like a better alternative and less energy consuming
02:02:37FromGitter<kaushalmodi> than closing each new issue
02:03:54enthus1astnonetheless it must be a wretched and poor existence
02:34:28*dddddd quit (Remote host closed the connection)
02:37:22*Skunky27 joined #nim
02:39:03*Skunky27 quit (Remote host closed the connection)
02:43:01*ventures12 joined #nim
02:43:11*ventures12 quit (Remote host closed the connection)
03:12:40*kapil___ joined #nim
03:14:44dom96As therapeutic as it might be, engaging with trolls is a bad idea
03:15:33*opi_ joined #nim
03:20:03*opi_ quit (Ping timeout: 252 seconds)
03:26:10*opi_ joined #nim
03:34:20*PrimHelios quit (Quit: Leaving)
03:43:27*opi_ quit (Ping timeout: 252 seconds)
03:44:08*opi_ joined #nim
03:51:22*arecaceae quit (Remote host closed the connection)
03:51:40*arecaceae joined #nim
04:41:11Menchenim doesn't allow indenting with tabs?
04:50:59FromGitter<kayabaNerve> Menche No, for good reasons.
04:53:26FromGitter<gdw2> It's my very first time using nim. v 18.0 on windows. I'm getting the following error: "Error: attempting to call undeclared routine: 'getContent'. Any help appreciated!
04:53:37FromGitter<gdw2> from httpclient import newHttpClient ⏎ var client = newHttpClient() ⏎ echo client.getContent("http://example.org")
04:54:22FromGitter<gdw2> I assume the error means that the HttpClient class doesn't really have a `getContent()` method?
04:54:47FromGitter<kayabaNerve> @gdw2 You import newHttpClient. You didn't import getContent.
04:55:25FromGitter<kayabaNerve> newHttpClient is a constructor; Nim doesn't have classes. It has objects. It also has variable syntax, which means x.getContent(url) is actually getContent(x, url)
04:56:07FromGitter<gdw2> makes sense! thx!
05:03:42FromGitter<kayabaNerve> https://gist.github.com/kayabaNerve/3b0f7aea10c43190f5f25d1e879442c7 ⏎ ⏎ This is an interesting problem. I have a Base32 lib, where one character represents one out of 32 numbers, and it's easier than other number bases because you just have to read 5 bits/set 5 bits at a time (no division/modulus/remainder...). ⏎ ⏎ That said, my code is printing almost as expected. There's some issues with deciding what
05:03:42FromGitter... byte to write to but that's a separate issue. My issue here is that I have: ... [https://gitter.im/nim-lang/Nim?at=5ba71eaee5c2cc56adcda460]
05:03:55*Menche left #nim ("Leaving")
05:05:57*opi_ quit (Ping timeout: 252 seconds)
05:06:31*opi_ joined #nim
05:06:56FromGitter<kayabaNerve> I linked the relevant part of the lib (which is heavily commented) and my test code which has all my data neatly stated. I didn't link the constructor so anyone here who is interested can't reproduce it, but if someone wants to, I can link it.
05:42:56*angreifer3 joined #nim
05:51:23*angreifer3 quit (Ping timeout: 252 seconds)
05:54:02*miran joined #nim
05:57:56FromGitter<kayabaNerve> I was missing a parantheses around one statement but not the other.
06:02:37FromGitter<alehander42> ah that post blew up
06:03:42miran...let's see if it brings some new users
06:05:42*ftsf joined #nim
06:08:34*opi_ quit (Ping timeout: 240 seconds)
06:10:24*opi_ joined #nim
06:19:20*tangent1284 joined #nim
06:19:56*SenasOzys quit (Read error: Connection reset by peer)
06:20:05*SenasOzys joined #nim
06:21:38*tangent1284 quit (Killed (Unit193 (Spam is not permitted on freenode.)))
06:36:32*nsf joined #nim
06:40:46FromGitter<kungtotte> The responses were more positive this time around than the last time I saw Nim on HN.
06:42:05FromGitter<kungtotte> Mostly people tend to get up in arms about UFCS and the case insensitivity of names and not care about anything else.
06:44:52AraqI will say it again. a human doesn't remember a word's spelling, a word's sound is what is remembered. translating the sound into letters is a separate step in the brain.
06:45:31Araqyou can experience this yourself when reading something. the words activate a sound-like qualia in your brain.
06:45:50c15ade4The argument that case sensitivity is a good thing is pretty weak
06:46:07Araqcase sensitivity is against human nature.
06:46:14Araqand only exists to please computers.
06:46:28c15ade4I just say "tell me a case where you want something named "doThis" and "do_this" at the same time
06:46:38c15ade4and they cant
06:47:03c15ade4The only time someone replied was with
06:47:17c15ade4Foo foo = new Foo();
06:47:31c15ade4and i just said that so much repetition seems like an antipattern
06:47:47c15ade4yet people complain ...
06:47:54Araqoh there is not_in vs no_tin but it comes up rarely and English begins with lots ambiguities and we deal with it just fine
06:47:55FromGitter<alehander42> well I don't fully agree with that, I like case insensitivity
06:48:05FromGitter<alehander42> but in nim's case it's a bit too weird
06:48:14FromGitter<alehander42> because the first letter is sensitive
06:48:19FromGitter<alehander42> I know why that is
06:48:33FromGitter<alehander42> but I can see how it can be seen as a more complicated design
06:48:35c15ade4Araq: lol you know their argument better than they do
06:49:15c15ade4people do like to be consistent, which can be checked via a lint or something i guess.
06:49:20FromGitter<alehander42> also the grep argument is still strong, it doesn't matter if we have nimgrep if it doesn't get picked up by ide tools etc
06:49:39FromGitter<kungtotte> Foo foo = new Foo() is covered by the case rules of Nim.
06:49:41Araqno, the grep argument is super weak.
06:49:42FromGitter<alehander42> but we're getting closer, fuzzy matching becomes very mainstream so it doesn't matter so much now
06:49:56Araq1. fuzzy matching is generally a good thing.
06:50:04c15ade4though to be honest, i dunno if it is a fight worth having, even if you are totally right
06:50:16FromGitter<alehander42> it is, the only thing I am saying is it's not still everywhere
06:50:22Araq2. in practice due to nep-1, 'grep' out of the box just works fine
06:50:37FromGitter<alehander42> eh not always
06:50:52FromGitter<alehander42> because sometimes people write the same word with different subwords
06:50:58FromGitter<alehander42> e.g. CallGraph vs Callgraph
06:51:18FromGitter<kungtotte> Also, I think the IDE/grep argument falls short. If you're using such an environment you're generally using some form of auto-suggest/complete feature, in which case you type some letters then tab-complete the identifier
06:51:36Araqnever seens this in practice, alehander42
06:52:25FromGitter<kungtotte> And if you're not using an IDE you're probably the type of person who makes sure to type the right thing in the first place.
06:52:49Araqeverybody uses an IDE, often it's called "editor with plugins" though.
06:53:45AraqIDEs have won but the Unix guys cannot admit it so they pretend their VIM with plugins isn't one.
06:54:10FromGitter<kungtotte> Also, like I tend to say on Reddit/HN when this argument comes up: if your code breaks if fooBar and foobar are interchangeable then your code is wrong.
06:54:10miranso HN/reddit doesn't focus on case (in)sensitivity, but even still - we again do :D
06:54:51Araqkungtotte: no, if they are *not* interchangable aka have different meanings your code is wrong.
06:55:03Araqand Nim prevents that.
06:55:11miranwhy not discuss the thing that *has* been brought up? like the lack of proper documentation
06:56:03Araqok, what's wrong with the docs? they get improved all the time, just the rest of Nim.
06:56:09Araq*just like
06:56:24FromGitter<alehander42> well I think it's a matter of time, especially when the language "stabilizes" a bit
06:56:24FromGitter<kungtotte> Yeah that's what I mean Araq. Nim does it right, and other languages do it wrong. If you write code depending on fooBar and foobar being separate identifiers in other languages, that's wrong.
06:56:29miranone example: https://news.ycombinator.com/item?id=18045413
06:56:58mirananother one: https://news.ycombinator.com/item?id=18046510
06:57:20c15ade4The nim community is super unique in how it embraces windows and vscode tbh
06:57:21FromGitter<alehander42> the guy who posted the blog wanted js sourcemaps hard
06:57:26FromGitter<alehander42> i really have to finish that PR
06:57:36c15ade4not that I did a survey
06:57:49FromGitter<alehander42> btw what happened with nim's survy
06:58:35miranalso take a look at this thread: https://news.ycombinator.com/item?id=18045441
07:01:19Araqc15ade4: it doesn't embrace Windows, I'm the only one who still uses it
07:01:30c15ade4lol... I was watching your old streams
07:02:00c15ade4Bad assumption
07:02:21Araqand I want my XP back :P
07:08:10AraqKarax looks verbose? and now what I'm supposed to do with this valuable piece of information?
07:08:48Araqverbose compared to what? The hello world example is 7 lines
07:10:00Araqhello world in pure HTML is longer.
07:14:07FromGitter<mratsim> @PMunch {.unroll.} pragma is just placebo at the moment. Ideally it should generates a duff’s device :P
07:17:46*MyMind quit (Max SendQ exceeded)
07:18:28*dorrek joined #nim
07:18:51*MyMind joined #nim
07:22:43*dorrek quit (Remote host closed the connection)
07:25:07*ftsf quit (Quit: Leaving)
07:32:42c15ade4Nim was the only language I tried that felt like it actively was trying to reduce they amount of pointless repetition in programming
07:32:55c15ade4I am very appreciative of this as my fingers hurt recently...
07:33:16c15ade4in terms of typing
07:33:18Araqthe todoapp is 150 lines of code, Elm's is 435 lines
07:35:17AraqReact's is maybe 300.
07:35:36Araq(it's split over too many files for easy counting :P )
07:38:48miranjust went over karax readme. noticed there's some code missing at the end (above ##Routing)
07:43:25Araqthanks, fixed
07:44:33Araqbut yeah, Karax's docs are for people who are already into Nim, not for "Why would I use this instead of React?" people
07:45:37Araqbecause React people don't even understand libraries on top of a bad programming language doesn't fix the programming language.
07:51:33FromGitter<mratsim> You should just say “Docs PR wanted” ;)
07:52:46miran"docs for people who are already into Nim" - so the docs are for all 12 of us? :D
07:57:42miranwhen nim is brought up, poor documentation is regularly mentioned. this kind of feedback shouldn't be so easily dismissed
07:58:35*e4xit15 joined #nim
08:01:11*e4xit15 quit (Remote host closed the connection)
08:02:06Araqmiran: docs cannot cover "all you think you know is wrong"
08:02:49*gmpreussner_ quit (Ping timeout: 244 seconds)
08:03:23Araqand I said "Karax's docs are for the people already into Nim"
08:03:33*gmpreussner joined #nim
08:03:33Araqnot "Nim's docs are..."
08:04:10mirantrue
08:04:31FromGitter<kungtotte> In my experience the biggest issue is third party information being out of date
08:05:08FromGitter<kungtotte> Tutorials and guides written for older Nim versions that don't compile any more
08:06:42*TheLemonMan joined #nim
08:06:44miran@kengtotte: 'Nim Basics' tutorial should be fine, as it was written with v0.18 in mind. if it isn't, please report it. (and i'm ready to make noNil changes, once v0.19 lands)
08:07:01miran@kungtotte ^
08:07:11*xet7 joined #nim
08:15:24*Ven`` joined #nim
08:19:17*nsf quit (Quit: WeeChat 2.2)
08:30:59FromGitter<Bennyelg> Good Morning Nim'rs
08:32:15FromGitter<alehander42> karax has no docs, but I agree, the community can kinda write them
08:32:29FromGitter<alehander42> it's not even that hard, the API is relatively simple
08:33:56mirantuple can be unpacked in `let` block, but not in `const` block?
08:34:58TheLemonManmiran, yep, there's already a ticket for that
08:35:11miranTheLemonMan: ok, thanks for the info
08:54:24*mids joined #nim
09:28:04*opi_ quit (Read error: Connection reset by peer)
09:37:33*craigger_ joined #nim
09:39:47*craigger quit (Ping timeout: 240 seconds)
09:45:18*Vladar joined #nim
09:58:13*JStoker quit (Quit: JStoker is gone :()
10:00:20*JStoker joined #nim
10:02:59*leru_ joined #nim
10:08:47*miran quit (Ping timeout: 252 seconds)
10:14:08*uuair_m12 joined #nim
10:15:49*uuair_m12 quit (Killed (Sigyn (Spam is off topic on freenode.)))
10:16:00FromGitter<codenoid> morning @Bennyelg
10:27:26*PMunch joined #nim
10:35:21*PMunch quit (Ping timeout: 260 seconds)
10:39:44*tefter joined #nim
10:41:00*opi_ joined #nim
10:44:05FromGitter<mratsim> When was `static int` syntax allowed instead of bracket? Was it before or after 0.18?
10:44:53FromGitter<mratsim> seems like after
10:48:12*PMunch joined #nim
11:05:53*doskoi23 joined #nim
11:07:46livcdAraq: many of us are using windows :P
11:08:23*doskoi23 quit (Remote host closed the connection)
11:11:07*kapil___ quit (Quit: Connection closed for inactivity)
11:15:55*opi_ quit (Quit: ZNC - http://znc.in)
11:17:12*opi_ joined #nim
11:17:58*paradizelost18 joined #nim
11:22:08*paradizelost18 quit (Ping timeout: 245 seconds)
11:28:28FromGitter<Bennyelg> too sad, windows is bad
11:32:48*nsf joined #nim
11:32:54*zestyr quit (Quit: WeeChat 2.2)
11:35:49*krux02 joined #nim
11:41:42FromGitter<kungtotte> Lots of people are stuck on Windows for work reasons, and while it's greatly improved now if you want to play games you need to run Windows still.
11:42:25FromGitter<kungtotte> I think it's great that Nim offers actual Windows support instead of what many other languages do ("if it runs, it runs")
11:43:16FromGitter<Bennyelg> Agree but I left windows when I was 15 and I am happy I did it.
11:45:07*chemist69 joined #nim
11:53:38FromDiscord<Tomohiro> Today, rebooting windows PC tooks about 30 minitus due to windows update thing.
11:53:38FromDiscord<Tomohiro> I want to stop using windows but I have many windows games :(
11:53:38FromDiscord<Tomohiro> Bug fixing or adding something to some nim standard library require testing on windows.
11:56:02c15ade4Bennyelg, I dunno, I think there are OS'
11:56:10c15ade4s better than what standard linux offers
11:56:21c15ade4oh wait, you didn't say linux
12:08:20*arecaceae quit (Remote host closed the connection)
12:08:38*arecaceae joined #nim
12:08:54FromDiscord<Tomohiro> I have gentoo linux on my PC and all softwares are open source excepts nvidia driver and some games.
12:11:38enthus1astwindows is the better os but linux is cheaper
12:14:25*Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
12:15:39enthus1astAraq any plans for a Nim meetup in germany ?
12:21:53*Ven`` joined #nim
12:27:33*Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
12:35:13*Ven`` joined #nim
12:36:46*adelrune joined #nim
12:39:18*dddddd joined #nim
12:40:07FromGitter<zacharycarter> howdy all
12:53:04*SenasOzys quit (Ping timeout: 240 seconds)
12:54:56FromGitter<zacharycarter> goodbye Nim / VSCode ! I'm moving to excel! - https://www.gamasutra.com/blogs/CBel/20180213/308549/3D_engine_entirely_made_of_MS_Excel_formulae__Enjoy_this_Doomxls_file_.php
12:57:04FromDiscord<magnusi> christ
12:57:11FromDiscord<magnusi> that's pretty impressive actually
12:59:02*SenasOzys joined #nim
13:00:43*stefanos82 joined #nim
13:01:10FromGitter<zacharycarter> right?
13:02:42FromGitter<mratsim> Doom can run on everything, even McAffee “secure” crypto wallet - https://www.digitaltrends.com/computing/hacker-doom-bitfi-mcafee-wallet/
13:04:17FromGitter<zacharycarter> yeah but this guy re-wrote doom
13:04:23FromGitter<zacharycarter> using just MS Excel formulae
13:06:03FromGitter<superfunc> thats incredible
13:09:22FromGitter<zacharycarter> its pretty rad for sure - a good learning resource too I think
13:22:11*danielm17 joined #nim
13:24:39*danielm17 quit (Remote host closed the connection)
13:25:03*TheStrix29 joined #nim
13:26:44*TheStrix29 quit (Killed (Sigyn (Spam is off topic on freenode.)))
13:36:18FromDiscord<magnusi> I have a quick Nim question, lads
13:36:22TheLemonManshoot
13:36:55*Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
13:37:17*ludwig joined #nim
13:37:54FromDiscord<magnusi> I am writting a simple program that displays log in my format. Displaying et al. works all great, I love how nimbles cli library was independent and easily resuable. However, the thing is I need to read new lines as they are added into the file. So I made this proc:
13:37:55FromDiscord<magnusi> ```nim
13:37:55FromDiscord<magnusi> proc logger() {.async.} =
13:37:55FromDiscord<magnusi> while true:
13:37:55FromDiscord<magnusi> try:
13:37:55FromDiscord<magnusi> let line = file.read_line();
13:37:56FromDiscord<magnusi> let words = line.split(' ');
13:37:57FromDiscord<magnusi> case words[0]
13:37:59FromDiscord<magnusi> of "REQ":
13:38:01FromDiscord<magnusi> display("Request", words[1..<words.len()].join(" "), Success, HighPriority)
13:38:02FromDiscord<magnusi> of "INF":
13:38:04FromDiscord<magnusi> display("Info", words[2..<words.len()].join(" "), Message, words[1].to_priority())
13:38:06FromDiscord<magnusi> of "ERR":
13:38:08FromDiscord<magnusi> display("Error", words[2..<words.len()].join(" "), Error, words[1].to_priority())
13:38:09FromDiscord<magnusi> of "WRN":
13:38:11FromDiscord<magnusi> display("Warning", words[2..<words.len()].join(" "), Warning, words[1].to_priority())
13:38:13FromDiscord<magnusi> of "FTL":
13:38:15FromDiscord<magnusi> display("Fatal", words[2..<words.len()].join(" "), Error, words[1].to_priority())
13:38:16FromDiscord<magnusi> except:
13:38:18FromDiscord<magnusi> sleep 300
13:38:18TheLemonManholy fuck use a pastebin
13:38:19FromDiscord<magnusi> ```
13:38:20FromDiscord<magnusi> alas, it does not work
13:38:22FromDiscord<magnusi> as in, it does not display new lines
13:38:32FromDiscord<magnusi> oh ya, sorry lads, forgot
13:39:00FromDiscord<magnusi> https://pastebin.com/6KE73qPX
13:39:01FromDiscord<magnusi> there
13:39:11FromDiscord<magnusi> I am writting a simple program that displays log in my format. Displaying et al. works all great, I love how nimbles cli library was independent and easily resuable. However, the thing is I need to read new lines as they are added into the file. So I made this proc:
13:40:45FromDiscord<magnusi> it loops properly, but it doesn't seem to read any new lines added after the program is started
13:43:00FromDiscord<magnusi> Here's the whole thing, if it may provide more info: https://gist.github.com/luciusmagn/fa8a5673d9eaa872fd570fa14094cb6c#file-watchman-nim
13:44:42TheLemonManwhat happens when you run it? does it print "reading" over and over?
13:45:17FromDiscord<magnusi> yes
13:45:42FromDiscord<magnusi> it prints the actual lines too, though, just not any that were added after the program was launched
13:46:50stefanos82bloody hell @magnusi, use a pastebin next time
13:49:15enthus1astno need for async in the logger, if you do any real async stuff i would use asyncfile, what happens when you store the position of the file and reopen it?
13:49:26enthus1astmagnusi ^
13:50:55enthus1asti dont know exactly but if have the suspicion that readline does something with the file cause it returns false if on eof
13:50:59enthus1asti have
13:51:08FromDiscord<magnusi> a'ight, let me see
13:51:57TheLemonManI suspect the eof is sticky
13:52:22FromDiscord<Tomohiro> Is it possible to read lines from a file that are added by other process after the program open the file in any language or library?
13:52:59enthus1astimho a filewatcher should be part of the stdlib
13:53:14FromGitter<mratsim> not sure if it already has a tail equivalent but you can check Chronicles: https://github.com/status-im/nim-chronicles
13:53:22TheLemonManyes, have a look at this https://www.quora.com/How-is-the-Unix-tail-f-option-implemented-How-is-this-implemented-in-C
13:54:00enthus1astchronicles is nice mratsim (in fact status-im code is a good read :) )
13:54:46*elrood joined #nim
13:54:47FromDiscord<magnusi> awesome, thanks!
13:57:17FromDiscord<magnusi> @Tomohiro I am not sure if its possible under Windows, but on unices, definitely
14:00:38FromDiscord<Tomohiro> In your code, "remedias.log" was opened once and proc logger() never close file or reopen the file. I thought that is why that cannot read new lines.
14:05:03FromDiscord<magnusi> It probably loads the file into memory, I am confident that in C, it would keep on reading. I am going to try the reopening way
14:08:40*Ven`` joined #nim
14:12:34FromGitter<kaushalmodi> @mratsim nim-chronicles is great! I had been looking for something like that for a while!
14:12:42FromGitter<kaushalmodi> Can that be made a Nim stdlib?
14:15:11TheLemonManyeah, we definitely need more stuff in the stdlib
14:15:49FromGitter<kaushalmodi> TheLemonMan: Hope that's not sarcastic.. couldn't tell :)
14:16:15FromGitter<kaushalmodi> the benefit of stdlib is that searching and discovering of packages works great if it's one
14:16:29TheLemonManof course it is, nimble makes it easy to pick whatever footgun you need
14:24:17krux02I think we should make the ecosystem of nim libraries more discoverable instead of cluttering the stdlib with features that can't be maintained by the small team of Nim developers.
14:26:18*ludwig quit (Ping timeout: 245 seconds)
14:26:42*slothtrop joined #nim
14:28:23*PMunch_ joined #nim
14:29:11PMunch_Hmm, with blocks would it be a nice feature to have a "repeat <blockname>"?
14:29:51FromDiscord<magnusi> I like the way Rust does it. The library is like a swiss army knife. Small, but has the most common features for working with a system. Even for stuff like databases, one would use an extra library
14:31:10FromDiscord<magnusi> I managed to fix my logger using the position trick like this: https://pastebin.com/K3eJHjeU . Thanks a lot for the help guys! It looks amazing now
14:31:53FromDiscord<magnusi> https://i.imgur.com/5vLAjYv.png
14:32:11*PMunch quit (Ping timeout: 260 seconds)
14:32:30FromDiscord<magnusi> @enthus1ast thanks for the tip to store file position
14:33:26PMunch_Ooh, that does look nice
14:35:03krux02nim should have a package explorer that shows a bit more of the development stage of a library rather than just the name. In nimble good libraries are next to unmaintained crap.
14:35:32PMunch_I guess nimble.directory could pull some info from the GitHub page
14:35:49krux02maybe we just need an awesome nim repo, a simple markdown that lists packages that are worth investing time in.
14:35:50FromDiscord<magnusi> or Nimble could collect statistics about library usage
14:35:54PMunch_But a solid library that hasn't been update in a while would show up the same as one were development had stopped
14:37:05FromDiscord<magnusi> I am the prevalent maintainer of https://github.com/rust-unofficial/awesome-rust I imagine I could help Nim with its own list if the community wants one
14:37:13krux02activity is just one metric.
14:37:20krux02there are many more.
14:38:02krux02you can measure all kinds of crap, for example how often a line within the library has changed before it was final or something like that.
14:38:21TheLemonManwhat a bullshit kind of metric is that
14:38:26krux02but I don't want to have a stupid AI do things that is much better a human task.
14:38:33FromDiscord<magnusi> yeah, you are right, but it stands to reason that good libraries would be used far more often than bad ones
14:39:03FromDiscord<magnusi> so I feel like usage in other projects (perhaps like 'download count) would be the most basic metric
14:39:18FromDiscord<magnusi> to indicate popularity
14:39:27krux02but I think if a library was once used, but then discarded, that is an important measure, too.
14:39:46krux02it might mean that the library appeared to be usefull, but then it turned out to be not usesul.
14:40:21FromDiscord<magnusi> yeah, but I am sure that if that would be the case, it would become known, so the statistics would be slanted only a bit
14:41:13krux02I found it: https://github.com/VPashkov/awesome-nim
14:42:18krux02I think it is easier to maintain a list like this manually, than to develop an AI that ranks packages to some metric in a good way.
14:43:20krux02I would say this list is not up to date anymore
14:45:12FromDiscord<magnusi> Another charm to such a list is that a person can open a PR for which adds a brand new library and I can look it and say: "Damn, this is really awesome" and give it exposure by approving its addition
14:45:28FromDiscord<magnusi> Another charm to such a list is that a person can open a PR for which adds a brand new library and I can look at it and say: "Damn, this is really awesome" and give it exposure by approving its addition
14:49:25*PMunch_ quit (Remote host closed the connection)
14:49:31*tefter quit (Remote host closed the connection)
14:51:14TheLemonManI've just finished porting this dtoa() implementation from C++ to Nim and some serious™ benchmarks shows it's 7x faster than `$`
14:51:55*berFt15 joined #nim
14:53:36*berFt15 quit (Killed (Sigyn (Spam is off topic on freenode.)))
15:00:18FromGitter<zacharycarter> :D
15:01:16FromDiscord<magnusi> lovely, how does your port look?
15:01:34FromGitter<zacharycarter> krux02: npm has such a feature - every package shows an activity graph with downloads via the package manager over the last week / month / year etc...
15:01:52FromGitter<zacharycarter> and I believe it also shows metrics around project commit history / activity / releases
15:01:57TheLemonManmagnusi, nice, most of it has been done using vim's regexps :)
15:02:09FromGitter<zacharycarter> I'm sure these things could be introduced into nimble.directory
15:02:55krux02yea, but I am not sure if nimble is actually the right thing to distribute packages in the first place.
15:03:04FromGitter<zacharycarter> https://www.npmjs.com/package/react
15:03:26FromGitter<zacharycarter> well nimble is Nim's version of npm IMO - for better or worse
15:04:00FromGitter<zacharycarter> and I don't think we want to go down this package management hell-hole that Golang has been going down for the past few years
15:04:01krux02nimble is too centralized to my personal taste. Publishing stuff in nimble has too much friction for my personal taste.
15:04:17FromGitter<zacharycarter> well - then I think you should open a RFC in nimble to discuss these things
15:04:26FromGitter<zacharycarter> I do agree - that nimble imposes a lot of restriction on how you structure your project
15:04:37FromGitter<zacharycarter> so maybe nimble needs a strict mode or something
15:04:49FromGitter<zacharycarter> but - I think we should work on nimble, rather than try to create something new
15:04:50krux02but to my personal taste, they are the wrong restrictions.
15:05:23FromGitter<zacharycarter> npm doesn't put any restriction on how you structure your package - that's for sure
15:05:33krux02well there is an alternative
15:05:38FromGitter<zacharycarter> what's that?
15:05:41krux02Araq showed me
15:07:06krux02https://github.com/Araq/nawabs
15:07:16krux02the name isn't the best
15:07:21krux02but I like the idea
15:08:02*slothtrop quit (Ping timeout: 244 seconds)
15:09:15FromGitter<zacharycarter> I've seen this before but never used it
15:14:55krux02I also never used it, but I think I will give it a try in the near future, becauese I am unhappy with nimble.
15:15:14krux02too much friction to get started, and I never had a reliable build on another computer.
15:15:26TheLemonManfuckin github spam
15:15:50krux02github spam?
15:15:54krux02you mean in your e-meail?
15:15:55*SenasOzys__ joined #nim
15:15:56*SenasOzys quit (Ping timeout: 260 seconds)
15:16:22TheLemonManin the issue tracker
15:18:48*ludwig joined #nim
15:19:02krux02I don't know what exactly you are referring to
15:19:41TheLemonManhave a look at the most recent closed tickets
15:23:49krux02I see
15:24:05krux02I hered that python was attacked, too.
15:25:00krux02the terminology Master Slave was discriminating ¯\_(ツ)_/¯
15:25:50krux02but yea trolls are gonna troll.
15:28:10krux02ah I see that python thing was actually referenced
15:28:22krux02a successfull troll I see
15:28:42FromGitter<mratsim> @kaushalmodi, I’m pretty sure nim-chronicles doesn’t compile on stable and might even require unmerged PR for devel :D
15:33:42*mids quit (Quit: Connection closed for inactivity)
15:36:52FromGitter<dm1try> in addition, the design choice that described in https://github.com/status-im/nim-chronicles/issues/29 scares a bit
15:39:59FromGitter<dm1try> > you can measure all kinds of crap, for example how often a line within the library has changed before it was final or something like that. ⏎ ⏎ )))
15:40:01*edcragg quit (Quit: ZNC - http://znc.in)
15:41:05*edcragg joined #nim
15:48:13*Martin`17 joined #nim
15:49:14*ludwig quit (Ping timeout: 252 seconds)
15:50:56*redlegion_ joined #nim
15:55:22*wildlander joined #nim
15:56:43*Martin`17 quit (Ping timeout: 245 seconds)
16:02:16FromGitter<dm1try> in my case such metrics is just extra noise as choosing a dependency always depends on context: ⏎ if I need to do some conversion from some legacy format in "one-run" script then my requirements will low ⏎ while adding core-dependency in long-term project will require reading docs/code/discovering current issues/reviewing how old issues were solved/etc - the requirements are much higher
16:14:33*SenasOzys__ quit (Ping timeout: 252 seconds)
16:17:20*slothtrop joined #nim
16:17:22*slothtrop quit (Client Quit)
16:17:42*Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
16:22:18*Ven`` joined #nim
16:22:25shashlickhttps://lobste.rs/s/wjevh7/objective_argument_against_python_style
16:37:19*xace joined #nim
16:38:44*SenasOzys__ joined #nim
16:41:41*Radon0 joined #nim
16:43:22*Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
16:43:26*Radon0 quit (Remote host closed the connection)
16:48:26Yardanicowhat the actual hell is going on with these trolls
16:49:23*redlegion_ quit (Quit: leaving)
16:49:35Yardanicohttps://github.com/nim-lang/Nim/issues/9048
16:49:39TheLemonManoh fuck this shit
16:50:27Yardanicoi don't understand what is going on with the open-source community in the last month
16:53:18livcdwell it was to be expected
16:53:36Yardanicothey are still creating new issues
16:54:07livcdtheir profile pics are scary af
16:54:09dom96Ugh
16:54:26dom96We need GitHub to help us out here I think
16:54:44xaceis it targeted specifically at you exclusively?
16:55:19Yardanicoxace, some trolls who opened troll issues in nim repo also opened them in some other repos
16:55:38xaceissue #9050 is another attempt
16:55:38Yardanicolike in some repos made by Linus
16:55:59Yardanicoxace, yeah, but if we close it - they'll make a new one again
16:56:19shashlickThose accounts need to be flagged
16:56:32xacegithub doesn't have a way to block a person?
16:57:34TheLemonManthere's the "Temporary interaction limits" panel
16:58:10dom96I blocked them
16:58:20dom96This person has created at least 10 accounts already
16:58:39dom96Please report them, if GitHub sees multiple reports they are more likely to take action
16:58:56xacewill do
17:12:20*kapil___ joined #nim
17:13:44krux02dom96, they were successful in Python
17:14:02krux02that encourages them to troll more.
17:14:10krux02when you see it, just close it.
17:15:25krux02shashlick, I read the argument agains semantic indentation like in python.
17:16:05krux02I have to say I do agree. I personally would prefer {} indentation, but it is not going to change
17:16:26*miran joined #nim
17:16:42krux02and it is not that much of a problem in Nim as it might be in other languages.
17:17:08krux02you would not embed Nim code in other languages and generate source code out of those snippents. Nim has a macro system for that
17:17:19krux02so that argument is basically nullified.
17:26:27*ohm15 joined #nim
17:31:29*ohm15 quit (Ping timeout: 272 seconds)
17:41:29FromGitter<SitiSchu> Just went through and reported all of these trolls
17:42:26mirancongrats to the nim team! we are officially not a small unknown language anymore — trolls are here!
17:43:17YardanicoxD
17:43:46Yardanicoyeah, I saw that the article about Nim blew up on HN and Reddit
17:44:07FromGitter<arnetheduck> @kaushalmodi the amount of unmaintained and useless stuff in the std lib is should be warning sign enough that "being in the std lib" doesn't equate "well written, reusable and timeless code"
17:44:28FromGitter<SitiSchu> Ye someone made a HN post that got pretty popular
17:44:28mirando you maybe have a link? (it's been couple of hours since it was (re)posted :P )
17:45:24FromGitter<SitiSchu> https://news.ycombinator.com/item?id=18045259
17:45:27FromGitter<SitiSchu> Thats the HN post
17:45:39FromGitter<SitiSchu> and thats the article https://totallywearingpants.com/posts/nim-underdog/
17:45:41miranhere we go :D
17:45:50krux02arnetheduck: I initiated the removal of the vecoter/matrix stuff from the standard library
17:46:17TheLemonMangotta read it at least once a day
17:47:05miranfor me the most surprising thing with that post is that is very 'lightweight', and it got so much responses
17:47:18miranTheLemonMan: make that "at least once an hour" :D
17:47:21*hmsimha joined #nim
17:47:22FromGitter<arnetheduck> if you have a good package manager, the only thing you gain by adding things in a std lib is the inability to make it better - ie even curation can is better solved by maintaining a list of "recommended by core nim developers"
17:47:35FromGitter<arnetheduck> @krux02 go, go, go!
17:49:01krux02I basically wrote nim-glm and I wanted it to get attention before standard library vector/matrix stuff, that is the main reason.
17:49:28krux02And of course I disagreed with the standard library vector/matrix design decisions.
17:49:55krux02I am just reading the nim-underdog article, I like how he encountered nim.
17:50:03*tzui_ joined #nim
17:50:24krux02so when popular libraries have bindings to nim, Nim automatically gets exposure.
17:50:29krux02that it great knowledge
17:50:54*hmsimha quit (Remote host closed the connection)
17:52:58federico3*if* the bindings are listed somewhere e.g. on the libraries docs
17:53:26*tzui joined #nim
17:53:59krux02federico3, yes
17:54:13*hussam25 joined #nim
17:54:38krux02the more ways there are to stumple upon Nim, the better it is.
17:56:16elroodas long as they're unobtrusive ways, that is
17:56:33krux02yes that is what I mean with "stumble upon"
17:56:47krux02I don't mean "get smashed in the face"
17:56:49*tzui_ quit (Ping timeout: 256 seconds)
17:56:56*nsf quit (Quit: WeeChat 2.2)
17:58:28FromGitter<mratsim> so who broke static again? :P https://github.com/nim-lang/Nim/pull/9046
18:00:41*hussam25 quit (Ping timeout: 252 seconds)
18:00:54*tzui quit (Quit: Textual IRC Client: www.textualapp.com)
18:01:51*tzui joined #nim
18:03:53*tzui left #nim (#nim)
18:08:57FromGitter<unreadable> Are you guys considering using "def" instead of "proc" to make it more python like?
18:09:08TheLemonManmratsim, I think it never worked heh
18:09:22miran@unreadable no
18:09:57krux02TheLemonMan, thank a lot for fixing things with static[T]
18:10:15mirani started with nim because it looked a lot like python on the surface. but the more i dive in, i see they are not so similar as first thought
18:10:15FromGitter<mratsim> strformat not working in generic procs makes it dead to me :/
18:10:28FromGitter<unreadable> ok
18:11:05krux02miran, I don't do python at all. I did a lot of c++ and I can tell you, Nim is a lot like C++, but it took only the things that are good from it.
18:11:36FromGitter<mratsim> More like C i would say
18:11:47krux02no really it is c++
18:12:01krux02the generics are very much like c++ templates (but better)
18:12:15krux02static overloading
18:12:16miran@unreadable at first i was like "why XY can't be more like it is in python?" too, but after a while you see that nim is much younger and it has learnt a lot from his older brothers and it doesn't have to copy them
18:12:37krux02seq[T] is like std::vector<T>
18:13:03mirankrux02: i have no experience with C++, too complex language for me. (i only know the basics of C, and i come from python background)
18:13:49krux02well I would say I know most of c++ that is actually used.
18:14:36krux02and very much of it is "unteachable" as Bjarne Sroustrup phrased it.
18:15:42krux02bad naming
18:16:00krux02(like everywhere)
18:40:56FromGitter<mvlootman> U
18:41:19FromGitter<mratsim> U2? :P
18:42:31FromGitter<mratsim> After 30 hours, I now have recurrent neural network CPU primitives in Arraymancer, now I can go out and party! Coming soon Shakespear generator :p
18:45:05*stefanos82 quit (Quit: Quitting for now...)
18:46:27*chemist69 quit (Quit: WeeChat 1.9.1)
18:47:32TheLemonManyou're way too productive
18:51:48FromGitter<mratsim> I have so few commits in Arraymancer compared to the end of 2017.
18:52:12FromGitter<mratsim> Even with regards to Nim bugs, I open less than you close :D
18:58:06*Trustable joined #nim
19:09:58livcdmratsim: and what does that mean ? :)
19:20:50*PMunch joined #nim
19:28:48*nsf joined #nim
19:39:17*PMunch quit (Ping timeout: 244 seconds)
19:52:41*PMunch joined #nim
19:55:39*leru_ quit (Ping timeout: 252 seconds)
20:16:15FromGitter<mratsim> that he is more productive than me :P
20:16:52*leru joined #nim
20:21:30*leru quit (Ping timeout: 252 seconds)
20:24:47*miran quit (Ping timeout: 240 seconds)
20:40:54*wildlander quit (Quit: Konversation terminated!)
20:49:06*TheLemonMan quit (Quit: "It's now safe to turn off your computer.")
20:51:05*kapil___ quit (Quit: Connection closed for inactivity)
20:53:41*xet7 quit (Ping timeout: 260 seconds)
20:57:00*xet7 joined #nim
20:59:28*elrood quit (Quit: Leaving)
21:00:22*Vladar quit (Remote host closed the connection)
21:09:33Araqwe need some feedback here: https://github.com/nim-lang/Nim/pull/9034
21:10:02*nsf quit (Quit: WeeChat 2.2)
21:23:45Araqand github seriously needs some troll prevention
21:24:05*xet7 quit (Remote host closed the connection)
21:25:46*opi_ quit (Ping timeout: 260 seconds)
21:29:34*zz_subz3r020 joined #nim
21:30:32*zz_subz3r020 quit (Remote host closed the connection)
21:33:36*Pisuke joined #nim
21:33:55FromGitter<dm1try> just received github =) : "Hello, ⏎ ⏎ Thanks for the report. We're investigating the account. In the meantime, project owners can block users at any time by following the steps outlined in either of the articles below. ⏎ ⏎ Blocking a user from your personal account ... [https://gitter.im/nim-lang/Nim?at=5ba806c333da0f649e42a480]
21:33:56*opi_ joined #nim
21:34:02FromGitter<dm1try> https://help.github.com/articles/blocking-a-user-from-your-organization/
21:35:18*MyMind quit (Ping timeout: 272 seconds)
21:36:21*enthus1ast_ joined #nim
21:38:36*enthus1ast quit (Ping timeout: 260 seconds)
21:40:53*Trustable quit (Remote host closed the connection)
21:42:50*SenasOzys__ quit (Remote host closed the connection)
21:44:56*SenasOzys joined #nim
21:54:20Araqdm1try: problem is the troll(s) are recreating new accounts, I think
21:54:38FromGitter<kaushalmodi> Let's just do this social experiment: Let the troll open another issue, but don't react to it in any way.
21:55:01FromGitter<kaushalmodi> Don't close it, don't comment, don't add the reaction emojis
21:55:23FromGitter<kaushalmodi> GitHub should find a way to block IP's
22:01:10FromGitter<kaushalmodi> thinking.. it would have been nice to white list specific issues.. i.e. let only the trolls comment and add reaction emojis to those issues :P
22:11:33dom96Yes, I've blocked them all already
22:13:03*opi_ quit (Ping timeout: 252 seconds)
22:14:42FromGitter<kaushalmodi> But you can block only users..
22:14:46FromGitter<kaushalmodi> or can you block IPs?
22:15:06FromGitter<kaushalmodi> This person or these people keep on opening new GitHub accounts
22:21:01*opi_ joined #nim
22:23:45dom96... yes, I mean I blocked all the users
22:25:51*opi_ quit (Ping timeout: 260 seconds)
22:30:10FromGitter<mratsim> I guess we need to train a neural network that will autoclose and ban those posts :P
22:32:54FromGitter<kaushalmodi> I think, a hand crafted regex parser might also work.
22:33:05FromGitter<kaushalmodi> The content in all of those is so common
22:33:27*opi_ joined #nim
22:34:02*PMunch quit (Ping timeout: 252 seconds)
22:41:12FromGitter<mratsim> I was joking, the easiest is a bayesian spam filter, it’s been used for decades in all mail client, fast and reliable, regex would be slow.
22:41:48FromGitter<mratsim> I need to add that to Arraymancer
22:47:56FromGitter<zacharycarter> I reported both users on the nim repo that were filing troll issues
22:48:24FromGitter<zacharycarter> I think that's better than blocking them - file a report to the github staff
22:49:54FromGitter<zacharycarter> I like the link they keep spamming - https://postmeritocracy.org/ - sounds like a bunch of bad programmers
22:50:13FromGitter<zacharycarter> who want to try to establish legitimacy, by being annoying shitty trolls :/
22:50:58FromGitter<zacharycarter> oh and this is the fine human behind their whole movement - https://where.coraline.codes/ - a SJW warrior of course
22:51:05FromGitter<zacharycarter> fuck these people
22:51:08FromGitter<SitiSchu> Oh nice I got an email from GitHub telling me that they are investigating the reports
22:51:35FromGitter<zetashift> Isn't that just an automated mail? I don't usually have a lot of trust in those kinds of emails
22:53:15FromGitter<kaushalmodi> I got such an email from GitHub staff, and I replied back with a full list of troll issues till now. Let's see what happens.
22:54:08FromGitter<zacharycarter> ugh I hate SJWs
22:54:49FromGitter<zacharycarter> https://twitter.com/Hahaitsfunny/status/1043996635800522752
22:54:59FromGitter<zacharycarter> in case anyone wants to retweet / get on the counter-troll train
22:55:46FromGitter<zacharycarter> I'm sure I've just put myself on some kind of list though that is going to attract the wrath of whatever basement dwelling trolls this "movement" consists of
22:57:24dom96zacharycarter: why are you taking out your wrath at this person? Maybe they're not involved at all?
23:00:00FromGitter<zacharycarter> dom96: they're associated with the trolls whether they like it or not - if they want to work on de-establishing that association, they should.
23:00:09*achillion6 joined #nim
23:00:20FromGitter<zacharycarter> their first mistake was probably publishing an online manifesto and creating the community they did
23:00:58FromGitter<zacharycarter> whether they're involved or not - they have attackers affiliated with their domain name disrupting others work.
23:01:07FromGitter<dm1try> lets focus on Nim issues =)
23:01:25FromGitter<zacharycarter> well this is an issue affecting Nim
23:01:46FromGitter<zacharycarter> these are Nim issues - but whatever I know what you mean
23:01:50*achillion6 quit (Killed (Unit193 (Spam is not permitted on freenode.)))
23:19:33FromGitter<zacharycarter> Why did - https://github.com/oprypin - stop using Nim and switch to Crysta?
23:22:47dom96oh cool, he's working at Google now
23:23:03dom96He's in this channel, might answer you
23:23:11dom96But search around, he answered this question before
23:23:19FromGitter<zacharycarter> okay I will thanks
23:23:20dom96His previous nick was BlaXpirit
23:23:33FromGitter<zacharycarter> ah okay - yeah I've seen that name in logs before
23:23:43FromGitter<zacharycarter> btw - replied to your comment about that tweet I made in off-topic
23:23:48FromGitter<zacharycarter> err twitch rather :)
23:23:50FromGitter<kaushalmodi> where do you search for logs?
23:23:56FromGitter<kaushalmodi> gitter search is bad
23:24:51dom96Use google with site: irclogs.nim-lang.org
23:24:54FromGitter<zacharycarter> https://irclogs.nim-lang.org/
23:24:56FromGitter<zacharycarter> yeah
23:25:06FromGitter<kaushalmodi> thanks
23:26:34*opi_ quit (Ping timeout: 240 seconds)
23:27:32*opi_ joined #nim
23:38:59FromGitter<zacharycarter> my new web framework is getting close(r) to completion - web components are working now - I'm just working through some pain spots in the libraries I combined
23:39:30FromGitter<zacharycarter> for instance - emerald (the HTML templating DSL library that flyx built - which I'm incorporating a modified version of, into my project) - only allows for html5 trags that are defined in the spec
23:40:03FromGitter<zacharycarter> so I'm currently working through defining new tags at compile time via the exiting macro
23:40:24FromGitter<zacharycarter> but I think this is going to provide a very powerful alternative to karax / react like frameworks for those that are interested in Nim web dev
23:41:04FromGitter<zacharycarter> not that Karax isn't great - I've just found certain limitations that annoy the heck out of me with it, and plus I think tagged template literals are a superior method for diffing dom manipulation vs a vdom
23:43:40dom96What limitations did you find?
23:46:05FromGitter<zacharycarter> mostly around state initialization and the render proc
23:46:16FromGitter<zacharycarter> I think we talked about it before - and you basically used a timer to get around it
23:46:28FromGitter<zacharycarter> like - if you need a certain script to load or something before karax does its thing
23:46:48FromGitter<zacharycarter> or a dom element to be present that is created from a third party script
23:47:18FromGitter<zacharycarter> but also - I believe tagged template literals, are much more performant than the vdom + dom diffing technique that karax employs
23:48:25FromGitter<zacharycarter> https://www.zeolearn.com/magazine/hyperhtml-vs-vdom
23:48:37FromGitter<zacharycarter> and hyperHTML is the library I ported to Nim
23:52:06FromGitter<zacharycarter> Google is onto this as well -
23:52:16FromGitter<zacharycarter> https://github.com/Polymer/lit-html
23:53:18FromGitter<zacharycarter> the nice thing about hyperHTML vs lit-html, is that hyperHTML doesn't tie itself to Polymer (google's web-component framework) - like Polymer does
23:53:47FromGitter<zacharycarter> so while you still need ES2015 classes to use hyperHTML - you don't need to use ShadowDOM and some of the other specs that web-components brings with it, if you don't want to
23:54:11FromGitter<zacharycarter> and they also have really nice comparison examples, where they show how you'd build a component using react, and how you'd build the equivalent using hyperHTML
23:54:34FromGitter<zacharycarter> https://viperhtml.js.org/hyperhtml/examples/#!fw=React&example=Stateful%20Component - for instance
23:59:59FromGitter<zacharycarter> I'm marrying (optionally) the library I'm writing with - https://mobx.js.org/ - for state mangagement