<< 23-08-2016 >>

00:07:12*nairobi quit (Remote host closed the connection)
00:13:03*MyMind quit (Ping timeout: 264 seconds)
00:16:50*endragor joined #nim
00:18:54*yglukhov joined #nim
00:21:33*endragor quit (Ping timeout: 276 seconds)
00:23:03*yglukhov quit (Ping timeout: 240 seconds)
00:34:16*MyMind joined #nim
00:39:55*cnu- quit (Ping timeout: 258 seconds)
00:50:03*ftsf joined #nim
00:51:32*cnu- joined #nim
00:54:10*jbomo joined #nim
00:56:29*libman quit (Remote host closed the connection)
00:56:35*jbomo left #nim (#nim)
01:04:16*MyMind quit (Read error: Connection reset by peer)
01:05:24*MyMind joined #nim
01:09:44*GangstaCat quit (Quit: Leaving)
01:15:48*PMunch quit (Quit: leaving)
01:15:55*fastrom quit (Quit: Leaving.)
01:20:27*kulelu88 quit (Quit: Leaving)
01:39:40*chemist69 quit (Disconnected by services)
01:39:40*chemist69_ joined #nim
02:10:59*girvo joined #nim
02:11:30girvoHey all
02:12:32ftsfo/ girvo
02:12:36*desophos quit (Read error: Connection reset by peer)
02:13:01girvoQ: If I had an AF_UNIX socket that is speaking HTTP, whats the best way of parsing those messages? httpclient is slightly too high-level it seems, but it doesn't export its internal methods for parsing HTTP messages D:
02:14:05ftsfgirvo, modify httpclient to export them? =)
02:14:29girvoftsf: That's my escape-hatch if I can't find a better way haha
02:14:50girvoThere's various C libs I've come across: https://github.com/h2o/picohttpparser
02:14:54girvoet al.
02:15:05ftsfi'd go with modifying a pure nim one over using a C lib
02:15:16girvoftsf: I agree entirely
02:15:43ftsfperhaps they should be exported anyway
02:15:47girvoEspecially because it seems most of the C libs seem to require some serious hand-holding
02:15:51girvoto not leak, etc.
02:16:17girvoMaybe, there's one parse method that takes a Socket as its first param, which looks promising
02:16:32girvoBut I'm worried that the methods are too internal-ish to expose
02:16:40ftsfyeah, parseRequest seems like it could be exposed
02:16:46ftsferr parseResponse
02:16:51girvoAlso, how spec-compliant is our parseResponse?
02:16:55girvoYeah that's the one ftsf !
02:17:08ftsfno idea =) so many specs!
02:17:39ftsfneed some test cases I guess
02:19:05girvoI might have a look at it, maybe it's worth me adding some tests along with exposing it :)
02:19:31girvoA lot of the HTTP message parser libs I've come across regardless of language don't seem to be spec compliant, because the spec is so hairy lol
02:20:57*yglukhov joined #nim
02:21:19*space-wizard quit (Quit: My Mac has gone to sleep. ZZZzzz…)
02:23:45*kingofoz quit (Ping timeout: 276 seconds)
02:24:17*kingofoz joined #nim
02:25:24*yglukhov quit (Ping timeout: 260 seconds)
02:26:29ftsfmore tests is never bad
02:26:58*brechtm joined #nim
02:32:12*brechtm quit (Ping timeout: 276 seconds)
02:37:26*space-wizard joined #nim
02:38:01*space-wizard quit (Max SendQ exceeded)
02:39:02*space-wizard joined #nim
02:46:30*girvo quit (Ping timeout: 276 seconds)
03:07:19*space-wizard quit (Quit: My Mac has gone to sleep. ZZZzzz…)
03:20:45*cheatfate_ quit (Read error: Connection reset by peer)
03:20:50*cheatfate__ joined #nim
03:23:08*yglukhov joined #nim
03:23:33*space-wizard joined #nim
03:24:08*space-wizard quit (Max SendQ exceeded)
03:24:47*space-wizard joined #nim
03:28:06*yglukhov quit (Ping timeout: 276 seconds)
03:28:36*desophos joined #nim
03:37:13*cheatfate__ quit (Read error: Connection reset by peer)
03:37:19*cheatfate_ joined #nim
03:38:29*cheatfate_ quit (Read error: Connection reset by peer)
03:39:11*cheatfate_ joined #nim
03:40:31*cheatfate_ quit (Read error: Connection reset by peer)
03:40:50*cheatfate_ joined #nim
03:41:26*vegansk quit (Remote host closed the connection)
03:53:07*girvo joined #nim
04:00:33*girvo quit (Ping timeout: 240 seconds)
04:00:58*M-max quit (Remote host closed the connection)
04:00:58*Flox42 quit (Remote host closed the connection)
04:00:58*M-Quora quit (Remote host closed the connection)
04:01:03*brson quit (Quit: leaving)
04:03:29*girvo joined #nim
04:03:39*endragor joined #nim
04:05:27*Flox42 joined #nim
04:08:24*ludocode quit (Ping timeout: 276 seconds)
04:19:37*endragor quit (Remote host closed the connection)
04:20:06*girvo quit (Ping timeout: 276 seconds)
04:22:02*ludocode joined #nim
04:29:29*endragor joined #nim
04:33:16*girvo joined #nim
04:38:18*girvo quit (Ping timeout: 276 seconds)
04:51:48*girvo joined #nim
04:52:01*M-max joined #nim
04:52:10*M-Quora joined #nim
04:56:08*girvo quit (Ping timeout: 244 seconds)
04:59:34*castlelore joined #nim
05:01:53*girvo joined #nim
05:07:59*irrequietus joined #nim
05:13:27*gokr joined #nim
05:18:29*castlelore quit (Read error: Connection reset by peer)
05:24:50*yglukhov joined #nim
05:29:51*yglukhov quit (Ping timeout: 264 seconds)
05:34:54*xet7_ quit (Ping timeout: 244 seconds)
05:58:36*endragor quit (Remote host closed the connection)
06:08:37*fastrom joined #nim
06:14:26ftsfhttps://raw.githubusercontent.com/nim-lang/Nim/ada7282896999f5b78cc3929dcd174989ad3508f/web/assets/news/images/survey/reliability.png this chart is hilarious <3
06:19:16*endragor joined #nim
06:26:29*brechtm joined #nim
06:28:09*endragor quit (Remote host closed the connection)
06:29:52ftsfshould I be using {.noSideEffect.} does not using it make code generation worse?
06:30:27ftsfor more just a safety thing?
06:32:18*nairobi joined #nim
06:32:53*chemist69_ is now known as chemist69
06:33:48*irrequietus quit (Ping timeout: 244 seconds)
06:37:42*yglukhov joined #nim
06:39:15*brechtm quit (Remote host closed the connection)
06:40:09*endragor joined #nim
06:40:55*chemist69 quit (Quit: WeeChat 1.5)
06:44:41*Arrrr joined #nim
06:48:05*chemist69 joined #nim
06:54:42*filcuc joined #nim
06:56:30*space-wizard quit (Quit: My Mac has gone to sleep. ZZZzzz…)
07:11:48*girvo quit (Ping timeout: 250 seconds)
07:13:45*girvo joined #nim
07:18:14*girvo quit (Ping timeout: 244 seconds)
07:21:51*hendi__ joined #nim
07:25:05*fastrom quit (Quit: Leaving.)
07:25:26*fastrom joined #nim
07:26:17*brechtm joined #nim
07:28:19*Trustable joined #nim
07:30:04*fastrom quit (Ping timeout: 258 seconds)
07:31:19*fastrom joined #nim
07:36:09*Arrrr quit (Ping timeout: 244 seconds)
07:43:07*nairobi quit (Remote host closed the connection)
07:48:21*Matthias247 joined #nim
07:48:38*nairobi joined #nim
07:53:08*nairobi quit (Ping timeout: 265 seconds)
07:53:41*GustavoLapasta joined #nim
07:53:44*nairobi joined #nim
08:01:06*fredrik92 joined #nim
08:01:43*bjz joined #nim
08:02:51*brechtm quit (Remote host closed the connection)
08:12:40*PMunch joined #nim
08:14:39*girvo joined #nim
08:18:58*girvo quit (Ping timeout: 250 seconds)
08:19:01*brechtm joined #nim
08:25:14*nairobi quit (Remote host closed the connection)
08:28:29*nairobi joined #nim
08:30:39*Arrrr joined #nim
08:30:39*Arrrr quit (Changing host)
08:30:39*Arrrr joined #nim
08:52:03*rbergmair joined #nim
08:56:44*nicanaca0 quit (Quit: Leaving)
08:56:50gokrFor all wondering what the heck I have done with Spry etc, here is a small movie: http://krampe.se/spry-ide.mp4
08:58:23gokrObviously the interesting part is the liveness of it all, again, something Smalltalk has had since 1980. For a Smalltalker the interesting part is that its native UI, not something the current popular Smalltalk environments do much of.
08:59:41*GustavoLapasta quit (Quit: Leaving)
08:59:51*nairobi quit (Ping timeout: 264 seconds)
09:00:00*GustavoLapasta joined #nim
09:02:39gokrdom96: If you have a minute, I am curious if you can build it on your box.
09:04:05gokrdom96: Basically just clone github.com/gokr/spry - go into "src" and run "./makeideosx.sh". And then try to run "./ideosx".
09:04:22gokrIf anyone else could try it, that would be... helpful.
09:11:38*nairobi_ joined #nim
09:13:25*fastrom quit (Quit: Leaving.)
09:15:30*girvo joined #nim
09:20:10*girvo quit (Ping timeout: 244 seconds)
09:27:52*okami quit (Ping timeout: 250 seconds)
09:32:28*bjz_ joined #nim
09:33:04*bjz quit (Ping timeout: 250 seconds)
09:35:49*nairobi_ quit (Read error: Connection reset by peer)
09:40:41*okami joined #nim
09:44:02def-What's the return type of a macro supposed to be now that stmt is deprecated?
09:46:20flyxdef-: typed
09:46:42def-well, that needs to be changed all over Nim code and documentation
09:47:02def-also, how can I do this without the deprecated immediate? https://github.com/def-/nim-unsorted/blob/master/extendlang.nim#L7
09:51:01Araqdef-: typed or untyped actually doesn't make a difference for return types
09:51:12Araqlikely you mean 'void' though
09:52:18Araqinstead of .immediate, use 'untyped' for all parameters. that has the same effect.
09:53:24Araqftsf: code generation is not affected and modulo loopholes in the stdlib, .noSideEffect is inferred for you anyway
09:54:02def-Araq: sure it makes a difference. if I want to use a template as an expr, I need to make the return type untyped
09:54:56*nairobi joined #nim
09:59:04Araqoh yeah, that's a leftover aka bug
10:00:03def-and what I did in extendlang.nim with immediate seems impossible without
10:00:18*nairobi quit (Remote host closed the connection)
10:02:34Araqhow so? types were never considered for .immediate to begin with so things like template foo(x: int) {.immediate.} never were valid
10:03:01def-it just fails to compile with: extendlang.nim(35, 3) Error: undeclared identifier: 'then'
10:03:08Arrrrplacebo pragma
10:09:07ftsfAraq, thanks
10:09:25*ftsf quit (Quit: :q!)
10:11:45SentreenAbout the httpclient thing, wouldn't splitting the library be preferable over expoising internal procs? i.e. you create a low level module with the appropriate parsing procs, and you make httpclient use that module
10:15:30def-unnamed tuples are no longer automatically converted to named ones when assigned?
10:15:54euantorSentreen: my thoughts exactly
10:15:59def-This stopped compiling: https://github.com/def-/nim-unsorted/blob/master/rpntoinfix.nim#L5
10:16:04euantorCreate a module such as "httpcore" or "http_parser"
10:16:24*girvo joined #nim
10:16:49euantorThat nly does HTTP parsing
10:17:00*xet7 joined #nim
10:17:22euantorThere was a site/blog post about it, that I was trying to find. i think it was "networkless protocols" or something. Mostly based around Python, but still relevant
10:21:30*girvo quit (Ping timeout: 276 seconds)
10:22:30def-Araq: my bad, if2 works with untyped params
10:37:33*desophos quit (Read error: Connection reset by peer)
10:49:22*nairobi joined #nim
10:50:13*yglukhov_ joined #nim
10:50:24*yglukhov quit (Read error: Connection reset by peer)
10:52:30*arnetheduck joined #nim
10:52:30Araqdef-: yeah that's another thing. named vs unnamed tuples are really hard to support with this strange subtype relation between them
10:53:02Araqso the compiler is getting more strict about them. in the longer run I would like to have "tuple unpacking" for objects and deprecated named tuples
10:53:28Araqor maybe we can come up with a better solution?
10:53:54*nairobi quit (Ping timeout: 265 seconds)
10:53:59def-how do you imagine tuple unpacking?
10:56:02*Demon_Fox quit (Quit: Leaving)
10:57:10Araqlet (a, b) = Obj(...) and the field order in the Obj is used
10:57:29def-ah, that.
10:57:33def-Yes, that's great
10:57:56Arrrrinc approval
11:01:46*Demon_Fox joined #nim
11:02:53*Demon_Fox quit (Remote host closed the connection)
11:03:46Arrrrwould you support '_' too? That would allow to make more complex comparisons, like 'Obj(a:5, _) == myObj'
11:10:33*brechtm_ joined #nim
11:13:19*brechtm quit (Ping timeout: 260 seconds)
11:14:40Araqthat's pattern matching. has nothing to do with tuple unpacking
11:14:54Araqand is supported by a nimble macro package
11:15:08Araqand I don't see a need to touch it for v1
11:16:13*couven92 joined #nim
11:17:14*girvo joined #nim
11:19:40*fredrik92 quit (Ping timeout: 250 seconds)
11:20:51*couven92 is now known as fredrik92
11:21:50*girvo quit (Ping timeout: 250 seconds)
11:26:11SentreenAre unnamed tuples present in 14.2? Or are they only available on devel so far?
11:31:30*nairobi joined #nim
11:31:36*GangstaCat joined #nim
11:37:27ArrrrI think they are from 13
11:39:08SentreenIS it possible that they are undocumented? My google-fu is failing me
11:40:31ArrrrAre you talking about being able to write `let a = (1, true, "abc")` ?
11:40:46*brechtm_ quit (Remote host closed the connection)
11:41:36Sentreenyes
11:42:05*brechtm joined #nim
11:42:18Arrrrhttp://nim-lang.org/docs/manual.html#types-tuples-and-object-types
11:43:06SentreenI can't believe I missed that
11:43:08Sentreenthanks
11:44:21ArrrrAlso: http://nim-lang.org/docs/manual.html#statements-and-expressions-tuple-unpacking
11:50:25*nsf quit (Quit: WeeChat 1.5)
11:57:13*nairobi quit (Ping timeout: 252 seconds)
12:01:14*nairobi joined #nim
12:14:42*brain5ide joined #nim
12:14:52*brain5ide left #nim ("Leaving")
12:17:38*nairobi quit (Read error: Connection timed out)
12:17:52*girvo joined #nim
12:18:44*nairobi joined #nim
12:19:17*Arrrr quit (Quit: WeeChat 1.5)
12:22:44*girvo quit (Ping timeout: 260 seconds)
12:47:07chemist69and: http://nim-lang.org/docs/tut1.html#advanced-types-tuples
12:50:40flyxwhy is the suite name never displayed by unittest?
12:51:10flyxthere seems to be no point of having a suite name if it does not find its way into the output
12:51:31flyxI would expect something like [Suite] *suite name* \n [OK] *test name \n ...
13:14:16Araqfwiw I don't see the point in the suite name no matter if displayed or not
13:17:54*girvo joined #nim
13:20:55flyxwell I mainly use it to structure my tests, but there is no structure in the output if it is not displayed
13:22:12*girvo quit (Ping timeout: 240 seconds)
13:22:16Araqdo you have that many tests? :P
13:24:45euantorTests for every proc, usually
13:25:30flyxfor example, this is NimYAML test output: https://gist.github.com/flyx/5a7575f1a4a7da8e2915efec96142735
13:25:47flyxas you see, I prepended the suite name to every test to see where it belongs to
13:26:16flyx(this does not even include the test output from the external YAML test suite)
13:30:01Araqcould have fixed unittest.nim instead ;-)
13:30:19flyxwell I can still do that
13:52:08SentreenIs there some way to convert a seq to an array?
13:53:20*endragor quit (Remote host closed the connection)
13:54:23flyxSentreen: you usually do not want to do that because a seq's size is dynamic while an array's size is static
13:54:49*ftsf joined #nim
13:54:55flyxSentreen: but nothing hinders you from iterating over the seq and setting items of the array if you need it
13:55:15Sentreenright, I should mention I'm trying to do this at compile time. I have a const that is created by a list comprehension
13:58:49flyxSentreen: well, this works: https://gist.github.com/flyx/9323fe962ebe45b45526135a1a4f1a95
13:59:35flyxit is not very pretty because it does not take the const value as input (because you would get a NimNode(nnkIdent) from it instead of the actual value)
14:01:25SentreenThat still looks far better than the workaround I was looking at
14:01:27Sentreenthanks :)
14:03:18*irrequietus joined #nim
14:06:20*GustavoLapasta quit (Read error: Connection reset by peer)
14:09:28*nairobi quit (Remote host closed the connection)
14:16:59*girvo joined #nim
14:19:57*pregressive joined #nim
14:21:44*girvo quit (Ping timeout: 265 seconds)
14:21:48gokrdom96: Ok, can you (or anyone on OSX) try again with http://krampe.se/ideosx ?
14:22:01gokrI think I solved it :)
14:26:34Araqgokr: works for me
14:29:13gokrcool
14:31:27gokrThe fun part is that its live - so you can add buttons to it etc :)
14:32:30gokrEvidently OSX wasn't happy with ... the composition of buttons in boxes in window. Had to throw in a Group in there somewhere - then it worked. Otherwise OSX tried to create a million pixel wide window - and then it barfed out.
14:32:50gokrOddly it did work on my oldish OSX though.
14:33:05gokrAraq: Thanks for testing
14:33:17gokr(damn nice little library this libui)
14:34:25Araqyup. it made me stop on wxWidgets for the time being.
14:37:16*arnetheduck quit (Ping timeout: 252 seconds)
14:37:27gokrAs I mentioned to dom96 though - it's still a bit weak on popup menus and also - there is no code editor component.
14:38:12*nairobi joined #nim
14:40:37emeryhow does one override the c++ compiler from the command line?
14:40:59*nairobi quit (Remote host closed the connection)
14:41:29def-emery: maybe it was --gcc.cpp.exe:myg++ --gcc.cpp.linkerexe:myg++
14:41:44emerythat sounds right
14:42:12Araqstill haven't decided whether I will port nimedit to it though. that would give it a code editor component
15:02:38*couven92 joined #nim
15:05:32*fredrik92 quit (Ping timeout: 240 seconds)
15:07:59*nairobi joined #nim
15:09:03*themagician joined #nim
15:17:00*girvo joined #nim
15:17:50*nairobi quit (Remote host closed the connection)
15:21:45*girvo quit (Ping timeout: 265 seconds)
15:24:05*couven92 quit (Quit: Shutting down...)
15:39:26*pregressive quit (Read error: Connection reset by peer)
15:39:54*pregressive joined #nim
15:54:32*Roin joined #nim
16:07:17*brson joined #nim
16:12:55*nairobi joined #nim
16:16:57*girvo joined #nim
16:21:03*girvo quit (Ping timeout: 240 seconds)
16:21:58*nairobi quit (Remote host closed the connection)
16:25:18*space-wizard joined #nim
16:25:53*space-wizard quit (Max SendQ exceeded)
16:26:32*space-wizard joined #nim
16:36:25*filcuc quit (Read error: Connection reset by peer)
16:48:33dom96gokr: saw your video earlier while at work, really awesome
16:49:05rbergmairhi everyone! (as this is my first interaction here, let me introduce myself: i'm new to nim-lang, having come across it only a few days ago, but have been on a steep learning curve since then, and am really loving it. thanks for your great work!)
16:49:41rbergmairanyway: at the risk that this might be a rtfm question: is there a way to do in nim what you'd do with next(x) in python for an iterator?
16:50:48rbergmairall i'm trying to do at the moment is to write a unit test that says: assert that the first element is this, assert that the second element is this, assert that the third element is this, etc. using a for-loop here seems a bit far-fetched.
16:51:34rbergmairi couldn't find anything like a next(), looking through the stdlib doc for system, nor in the manual. i've also worked through the tutorial, and through most chapters of nim in action, but can't seem to remember anything like that.
16:52:49*yglukhov_ quit (Ping timeout: 260 seconds)
16:53:50flyxrbergmair: this is possible with first class iterators: http://nim-lang.org/docs/manual.html#iterators-and-the-for-statement-first-class-iterators
16:54:30flyxrbergmair: however a) most iterators in the stdlib are inline iterators and b) does not work for the JS backend
16:54:58Araqb) is being worked on, thanks for reminding me again
16:55:03*nsf joined #nim
16:55:09flyx:)
16:56:50rbergmairah, interesting, this thing about first class iterators. should work for me, since i'm implementing it myself, so making it a closure iterator should be straightforward. thanks for the pointer.
16:58:07Araqrbergmair: I's use a case ste
16:58:20Araqa case statement in the for loop body
17:00:35rbergmairoh, right, that's what i was about to ask. so am i understanding this right that inline operators are in some sense considered "better citizens" of the country of nim? so it would be better style / more idiomatic if i wrote my unit test to use a for-loop, rather than rewriting my iterator to be a first class iterator?
17:07:19*brechtm quit (Remote host closed the connection)
17:07:36*nairobi joined #nim
17:12:21*nairobi quit (Ping timeout: 265 seconds)
17:13:52*hendi__ quit (Ping timeout: 240 seconds)
17:16:59*girvo joined #nim
17:21:20Calinouhi!
17:21:30*girvo quit (Ping timeout: 250 seconds)
17:32:57flyxrbergmair: iterators are by default inline, so inline iterators are more widely used. also, using first class iterators is *kinda* low-level since you call the iterator once and then have to test for finished()
17:33:51chemist69Why can't I use a var enum in `proc test(unit: var enum) =`?
17:34:00chemist69It gives me `Error: ')' expected`
17:35:23flyxchemist69: um, `enum` is a keyword for defining an enum, not a type that can be directly used
17:36:15chemist69But I can use it without var: `proc test(unit: enum) =`
17:36:27chemist69This compiles. ----------^
17:36:36chemist69and runs correctly.
17:37:00flyxinteresting
17:37:34flyxwell you can of course do `proc test[T: enum](unit: var T) =`
17:37:51chemist69Yes, I did that already.
17:38:18chemist69Just with [T], your version is better.
17:53:41Calinoudom96: https://lut.im/1N12GuGT6P/wjTEQvd5QIdst31m.png - Bountysource banner added, it disappears when scrolling (since navigation bar goes over)
17:53:56Calinouneeds a Bountysource icon next to it, there's none in Font Awesome so I'll look for a SVG
17:54:35*brechtm joined #nim
17:54:37dom96sure, that looks good.
17:54:55dom96But you imply that you have made the header nav sticky. Did you?
17:55:15Calinouyes, that's why I try to keep it relatively compact
17:55:41Calinou(it automatically scales down on small screens)
17:55:46dom96hrm.
17:55:53dom96I dunno, I'll have to test it but those tend to annoy me
17:56:36*endragor joined #nim
17:56:44*fastrom joined #nim
18:01:19*endragor quit (Ping timeout: 252 seconds)
18:02:05*yglukhov joined #nim
18:04:18*brechtm quit (Remote host closed the connection)
18:06:54*yglukhov quit (Ping timeout: 276 seconds)
18:15:53*endragor joined #nim
18:16:58*girvo joined #nim
18:20:30*endragor quit (Ping timeout: 265 seconds)
18:22:03*girvo quit (Ping timeout: 264 seconds)
18:29:31*yglukhov joined #nim
18:34:46*GangstaCat quit (Quit: Leaving)
18:35:35*GangstaCat joined #nim
18:36:11Araqhmm someone invented 'goto' for Nim in https://github.com/nim-lang/Nim/issues/4170
18:36:22Araqand now I feel stupid
18:36:40euantor:(
18:36:44Araqit never occured to me to just use a block label
18:37:00AraqI thought it would require yet more syntax :-)
18:38:00dom96lol
18:38:16dom96why the need for goto?
18:38:48Araqno need right now, but it's nice to know it can just work
18:39:21euantorOn the topic of an async MySQL client, has anybody ever worked on a native MySQL client?
18:39:37euantorI've got one started, but haven't gotten too far with it and don't want to duplicate effort
18:39:41Araqthere is a nimble package for it I think
18:41:04dom96there is definitely a postgre async client
18:41:39euantorYep, I can't see any MySQL clients in the package list
18:43:17Calinoumain.scss has over 400 lines of CSS, that's a bit much, needs to be splitted into smaller files :(
18:43:25CalinouI worked on making the menu more convenient
18:43:37euantorMade my start of an implementation public in that case. Only got it opening a connection at the minute though. I'll finish it eventually
18:45:27*nsf quit (Quit: WeeChat 1.5)
18:45:41Araqah so it was postgre, ok
18:50:34*User quit (Read error: Connection reset by peer)
18:56:18*libman joined #nim
18:59:21Calinoudom96: good news, I tested the site on IE11, looks just fine!
18:59:32Calinouglad to know I can mindlessly develop things and it works there :P
18:59:46Calinouwell, IE11-on-Windows-10 to be accurate
19:00:05Calinou(which is not exactly the same as previous IE11 revisions)
19:00:10dom96Yeah, IE has been pretty good
19:00:23dom96Safari is the new problem, but only when you use new stuff
19:00:39*dom96 had some fun with Safari on mobile phones and offline storage
19:00:50Calinouyeah, need prefixes everywhere and such
19:01:02Calinoumy dad has an old Mac (running OS X El Capitan… very slow)
19:01:11Calinoubut I have no recent iDevice
19:02:55Calinoucommitting…
19:05:47Calinoudone
19:08:19dom96:D
19:08:26dom96Keep up the good work :)
19:09:21Calinouwow, this is great https://github.com/sgentle/caniuse-cmd
19:10:07Calinoualso http://www.iwanttouse.com/
19:13:07dom96cool, but why not just go on the can I use website? :)
19:13:23Calinoudom96: might be quicker :P
19:13:29Calinoubut yeah, website is pretty convenient to use
19:13:54dom96doubt it, that app is written in CoffeeScript :P
19:14:30Calinoualso, this: https://atom.io/packages/caniuse
19:16:47*girvo joined #nim
19:21:39*girvo quit (Ping timeout: 276 seconds)
19:44:43*kulelu88 joined #nim
19:55:17*fredrik92 joined #nim
19:55:47*GustavoLapasta joined #nim
20:12:50*endragor joined #nim
20:15:04*Ven joined #nim
20:16:07*endragor_ joined #nim
20:16:25*Ven quit (Client Quit)
20:16:43*girvo joined #nim
20:17:21*endragor quit (Ping timeout: 244 seconds)
20:20:48*endragor_ quit (Ping timeout: 276 seconds)
20:21:03*girvo quit (Ping timeout: 240 seconds)
20:28:14libmanWould https://kore.io wrappers for Nim give it's best shot at winning some HTTP API scalability benchmarks this year?
20:28:42*desophos joined #nim
20:30:22*nsf joined #nim
20:31:49*libman is pondering the KING app stack. (K)ore-based HTTP APIs, (I)PFS for anything that can be statically cached, (N)im bindings to everything, and (G)odot engine for multi-platform phone and desktop UI.
20:32:25def-libman: zero-cost futures in Nim and multithreading would be a cleaner approach i believe
20:33:51libmanThis is over my head, I'm a burned-out ex-programmer, but I hope to return to serious programming "soon"... ;)
20:34:17def-rust recently implemented something like that, but I haven't checked if they use black magic or if it's possible in Nim
20:34:35Calinoulibman: Godot engine for UI? are you serious? no!
20:34:36euantorWell, not rust exactly, a Rust crate ;)
20:34:47def-rust developers* I meant
20:34:49Calinoudon't use things requiring an OpenGL context, and that refresh 60 times a second regarldess if it's needed or not, for native UI
20:34:54Calinounot to mention it *won't* look native
20:34:56euantorTheir Tokio wrapper over mis looks very nice
20:35:06CalinouGodot is great, just not for this kind of thing
20:35:06euantor*mio
20:35:11libmanI don't see people taking Nim seriously for HTTP APIs until it starts performing MUCH better in benchmarks like TechEmpower. Right now Go is the leader.
20:35:43Calinouokay, PHP is far from the leader in benchmarks yet it's still heavily used
20:35:46euantorhttps://pyfisch.github.io/blog/tokio-echo-server/
20:35:49Calinoumost apps do not have 1,000,000 hits a second
20:35:58def-libman: I don't think the benchmarks count THAT much, it's just about the overhead of futures or whatever is used to implement it. 10k requests per second is already plenty
20:36:15libmanI'm a copyfree fanatic, all options with unkosher licenses are off the table. If I didn't care about software freedom, I'd still be Microsoft's / Oracle's bitch. And if I care about software freedom, I won't let some commie like Stallman define its philosophy.
20:36:37Calinoulibman: feel free to create your own copyfree (sic) UI library that works on all platforms, then
20:36:43Calinouyou'll realize why Qt is commercial and thus uses LGPL
20:38:02def-Zero-cost futures in Rust if someone wants to look into that: http://aturon.github.io/blog/2016/08/11/futures/
20:38:03libmanGodot is obviously primarily intended as a game engine, but it has a nice widget interface and can evolve into a more general client-side "app engine".
20:38:47Calinoulibman: it's still pretty inefficient in terms of CPU, until it gets on-demand rendering (already partially possible, but not fully implemented)
20:38:54CalinouGodot's GUI system is pretty good indeed
20:39:54*libman hates himself for pitching ideas to other people instead of doing things oneself. Hopefully it's not more than a minor annoyance.
20:40:08CalinouI'm a Godot contributor actually :)
20:40:16*libman bows to Calinou.
20:41:37*yglukhov quit (Remote host closed the connection)
20:42:03Araqlibman: whenever I read about these C based "frameworks" I'm bored to death
20:42:16libmanre PHP: yes, but that's a scripting language. When people choose a statically typed compiled language for performance sake, they look at return on investment, performance-wise.
20:42:41Calinoumaybe it's just the current Nim frameworks underperforming
20:42:44Calinounot Nim itself
20:42:46Araqsome_long_function_name(); if (error) goto errorHandler; bla blub
20:43:07libmanBut can a pure-Nim framework beat Kore in pure performance? And when?
20:43:26Calinoubeating it is mostly pointless… as long as Nim is faster than most/all scripting languages, that should be fine
20:43:46Araqdoesn't cheatfate_'s stuff beat it already?
20:43:50Araqhow do we know?
20:44:03euantorI'd also say we need to beat or match Crystal
20:44:11euantorSince they're in a very similar position to us
20:44:18libmanhttps://github.com/cheatfate/wanted ?
20:44:31euantor(garbage collected, statically typed compiled language)
20:44:33Araqyeah that one
20:44:49libmanWe need to beat everything less ugly than C/C++/Rust. ;)
20:44:59*saml quit (Quit: Leaving)
20:46:46*libman hopes to see some benchmarks, and eventually reputable third party ones.
20:47:14Araqand I hope you get your ass up and do some benchmarking yourself
20:47:35Araqand help improve Nim's performance.
20:48:19CalinouCrystal looks nice too, need to benchmark it in my Fibonacci test :)
20:48:31Araq^ yeah that one.
20:48:48Araq"Fibonacci test". totally representative benchmark. for nothing.
20:48:59Calinouwoo, it's in Arch repos
20:49:08euantorIt's a good starting point Araq
20:49:13CalinouAraq: it gives out obvious performance differences
20:49:20Calinoulike, nobody can claim that Python is fast compared to C++
20:49:31Calinou(unless the bottleneck doesn't come from it)
20:50:01euantorObviously there needs to be a range of different benchmarks, but it's best to start somewhere I reckon
20:51:41Araqeuantor: it's good for nothing since too common. you could pattern match it and transform it into a lookup table
20:51:57Calinounot everyone knows or has time to write optimized code :)
20:52:02Calinouunoptimized performance matters too
20:52:26euantorTrue, it's also testing the C compiler more than Nim
20:52:48Araqfor me the only thing that matters if I can do everything I need to do without leaving the programming language
20:53:13euantorWhat matters to me is network performance, because that's the problem space I usually operate in
20:53:28euantorIt depends on what you need from the language what you focus on
20:53:59euantorThe ability to use async networking and multiple threads is what I look for, and Nim fits that bill
20:54:00*yglukhov joined #nim
20:54:02*yglukhov quit (Remote host closed the connection)
20:54:18*yglukhov joined #nim
20:57:42Calinouheh, Crystal has a Gitbook https://crystal-lang.org/docs/ :p
20:57:57euantorYep
20:59:30Araq"The memory system in Kore for heap allocation is based on pools. At startup Kore will initialize at least 10 pools for commonly sized objects (ranging from 8 to 8192 bytes)." congratualations you have just re-implemented every malloc implementation out there
21:00:21Araqkore_strlcpy -- outch.
21:00:36Araqthis thing is focussed on "security", got it.
21:06:49Calinouhttps://github.com/Calinou/benchmarks
21:06:52CalinouCrystal results published
21:07:22euantorhttps://github.com/crystal-lang/crystal-book/blob/master/.travis.yml
21:07:43euantorWOuldn't publishing the `secret_access_key` be a bad idea?
21:07:50euantorJudging by the name, it should be secret?
21:08:31Calinounormally you're able to hide it
21:09:04libmanMake it a const. :P
21:11:10def-Calinou: that's a bit of an unrealistic benchmark^^
21:11:47def-Calinou: also, you use different integer sizes in different languages
21:16:48*girvo joined #nim
21:18:17*fredrik92 quit (Read error: Connection reset by peer)
21:20:29gokrdom96: Thanks
21:21:45*girvo quit (Ping timeout: 265 seconds)
21:26:53*fastrom quit (Quit: Leaving.)
21:28:27dom96Calinou: how can Crystal's release be slower than its debug version? :o
21:28:34dom96def-: why?
21:28:52Calinoudom96: I mixed both up, sorry :P
21:29:32Calinoucommitted fix
21:30:49*nsf quit (Quit: WeeChat 1.5)
21:31:16dom96Zero cost futures would certainly be nice, I bet they have their downsides though.
21:31:27dom96I do need to look into the Rust implementation in more detail.
21:32:05Calinouwhat are futures for?
21:32:37dom96to encapsulate a future result
21:33:24dom96They're an alternative to callbacks
21:34:16dom96My book has a nice explanation ;)
21:36:28*Calinou saw that Crystal has twice as many GitHub stars as Nim :(
21:36:34Calinoubut Crystal doesn't have multi-threading support yet apparently
21:38:35*nairobi joined #nim
21:39:39dom96indeed, and no Windows support
21:40:31Calinouyeah, they don't seem to mention it much :p
21:41:03Calinouhttps://github.com/crystal-lang/crystal/issues/26
21:41:04Calinoubig issue there
21:42:23CalinouWindows support is important for me, even though I don't like that OS
21:42:28CalinouI try to use cross-platform stuff whenever possible
21:42:38Calinou(to make transition as painless as possible)
21:43:03*nairobi quit (Ping timeout: 264 seconds)
21:51:24dom96Calinou: just stick with Nim :D
21:51:49Calinouyeah Nim is cool
21:52:22CalinouI've thought of writing a Jekyll-like static site generator in Nim
21:52:27Calinoudoes such a thing exist already?
21:52:37Calinouneeds templating engine, Sass/LESS/Stylus integration
21:52:57dom96this might be close https://github.com/h3rald/hastyscribe
21:53:25Calinouthat's just Markdown -> HTML conversion it seems
21:53:45dom96I also created ipsumgenera a while back, more a static blog generator: https://github.com/dom96/ipsumgenera
21:53:49Calinoubut yes, a Markdown parser is needed for a static site generator
21:53:57dom96But it's old and I don't have time to work on it
21:54:07*Demon_Fox joined #nim
21:54:13Calinouright
21:54:19Calinouguess I could start a project then :p
21:54:36Calinoualso, why does GitHub say it's still "Nimrod" in language stats?
21:54:45CalinouI know it has been renamed to Nim, why didn't they follow?
21:54:48dom96because of some issue on their side
21:54:51Calinouright
21:55:24*astocko quit (Quit: ZNC 1.6.3+deb1+trusty0 - http://znc.in)
21:57:11dom96https://github.com/github/linguist/pull/995#issuecomment-46665150
21:59:13dom96good night
22:05:52*astocko joined #nim
22:06:42*Trustable quit (Remote host closed the connection)
22:08:45Calinouhttps://lut.im/y6qyaPjNjo/xrX4wnXMONPrlrAM.jpg
22:08:45Calinouhahaha
22:08:51Calinouwe need Nim in that comic :P
22:09:33*astocko quit (Client Quit)
22:11:38*gdelazzari joined #nim
22:13:06gdelazzariHi everyone, I can't figure this out... I'm wrapping some C code and I have a "ptr cuchar" variable that in the C code is a pointer to the first element of an array. I also have its size. I need to access every element of that "array", how can I do that?
22:14:08*GustavoLapasta quit (Quit: Leaving)
22:16:49*girvo joined #nim
22:17:40*irrequietus quit ()
22:21:12*girvo quit (Ping timeout: 244 seconds)
22:23:02kulelu88what is the status of Nim as a web/backend programming language?
22:24:04*girvo joined #nim
22:24:54Calinoukulelu88: probably not very developed it seems. but I'm quite new to Nim
22:25:14Calinouthere's Jester
22:25:20Calinounot sure about database integration
22:25:33kulelu88hmmm, I was hoping some progress would be made to give Nim a solid use-case in some area
22:26:10kulelu88Jesters performance isn't too great and it is very barebones
22:26:14Calinouhttps://github.com/MvnTruong/NimRing
22:26:14Calinouhaha
22:26:19*Calinou sees "An integrated web framework written in Nim. From page to database, one language to rule them all."
22:26:24Calinouends up with: "helloWorld.nim"
22:27:16Calinoukulelu88: yeah I'd like to see something more like a modern PHP or Python framework
22:27:20Calinoueven something like Flask
22:27:40kulelu88It needs to have performance that matches Go
22:27:48kulelu88which none do at this moment
22:27:51Calinouyeah :(
22:27:57Calinouneeds a fast HTTP stack
22:28:15CalinouI find Go web programming confusing to get in, so I gave up
22:28:18kulelu88Perhaps it will make the std lib too bloated to add it
22:28:23CalinouI really want something with the simplicity of PHP, but speed of Nim :p
22:28:38kulelu88That is how I found Crystal
22:28:50kulelu88but their Ruby-like syntax isn't very Pythonic
22:28:56CalinouRuby-like is fine to me
22:29:00Calinouas long as it's not braces party
22:29:01*girvo quit (Ping timeout: 265 seconds)
22:29:37kulelu88Go could have been that, had they left out {}
22:30:01Calinouwhy do popular system programming languages insist on obtuse syntax? :(
22:31:30kulelu88Blame Java and C#
22:32:00*girvo joined #nim
22:36:32*girvo quit (Ping timeout: 250 seconds)
22:36:39kulelu88Calinou: is that what you're looking for? A good systems-language for web backends that isn't Go?
22:36:55Calinoukulelu88: something simple to use is most important to me, but I'd like good performance too
22:36:59Calinouand something not as hated on as PHP
22:37:02Calinou(which I know relatively well)
22:37:08Calinou(PHP is what I'm being taught at uni primarily)
22:37:35Calinoumost Go/Rust/whatever frameworks sound like "Build APIs/microservices" rather than "Build websites"
22:37:35ldlework:(
22:37:54ldleworkCalinou: have you considered Python/Django?
22:37:57kulelu88that is essentially what most stacks are these days. APIs
22:37:57*endragor joined #nim
22:38:05Calinouyeah, I have, but performance is not notorious to be very good there :)
22:38:05*PMunch quit (Quit: leaving)
22:38:10CalinouFlask does work with PyPy though
22:38:15ldleworkCalinou: performance for what exactly?
22:38:38*astocko joined #nim
22:38:47ldleworkI have django website that recieves thousands of hits a day all day
22:38:48Calinouit's nice when websites reply quickly for page loading :P
22:38:58kulelu88apparently in production-systems the bottleneck is always I/O
22:39:13federico3kulelu88: *apparently*
22:39:13ldleworkmmm no
22:39:27Calinouso I've considered PyPy+Flask, need to dig a bit more into it
22:39:37ldlework"production-systems" as if no matter what code you write, as soon as it moves into production it becomes I/O bound
22:39:55CalinouI just miss the good old PHP way of "write some logic, it works"
22:39:58ldleworkCalinou: It sounds like you don't really have good reasons
22:40:06*Matthias247 quit (Read error: Connection reset by peer)
22:40:24ldleworkAnd don't know much about web-development or what causes a web-site to load quickly
22:40:25Calinouall other languages seem to try to make you work "the right way", but are beginner holocausts
22:41:00Calinouldlework: try visiting https://directory.fsf.org/wiki/Main_Page - you'll understand what's a large TTFB
22:41:09federico3beginner holocausts?
22:41:33kulelu88I think Go is the *best* option on offer at this moment
22:41:41Calinoufederico3: I guess this would be much better if universities stopped teaching PHP and started teaching Python/Go instead
22:41:44ldleworkCalinou: you just linked to the home page of the FSF directory...
22:41:52Calinouldlework: yes, and it takes 3 seconds to *reply* here
22:41:58ldleworkIt didn't take that long for me
22:42:09ldleworkWhat do you think caused the loading time
22:42:15Calinouserver response time
22:42:17ldlework...
22:42:23*endragor quit (Ping timeout: 244 seconds)
22:42:24federico3Calinou: universities could instead teach CS concepts :)
22:42:45ldlework"What caused the delay?" "The delay."
22:43:02Calinouthe server takes a while to respond because the PHP behind it is slow :P
22:43:48kulelu88Calinou: you are now about to get a tough lesson in "you don't understand shit" :D
22:43:52ldleworkOkay so "I haven't the fainted idea at all"
22:43:58kulelu88^^^ :D
22:44:13ldleworkWhich is fine, but really you should slow down and change your rhetoric if you're actually earnestly trying to figure things out.
22:45:55ldleworkIf you want to be paid real money to write websites, I highly suggest learning Python and Django, or sticking with Python
22:45:58ldleworkerr PHP
22:46:03kulelu88Calinou: you're probably better of investing in Python with Pypy at this stage. It should be good enough to increase performance
22:46:13ldleworkIf you ever want to work with smart engineers, I would leave PHP behind and pick up Python.
22:46:19*pregressive quit (Remote host closed the connection)
22:46:36ldleworkWriting websites in Golang and Rust is not how you will make money.
22:46:39kulelu88If you want an API that has decent performance, #falconframework is a decent option
22:46:44ldleworkThough if you're intersted in network-applications, Golang is fine.
22:46:56*pregressive joined #nim
22:47:08kulelu88hey wait a second, ldlework aren't you from #python ?
22:47:14Calinouldlework: I'm not in for money
22:47:17ldleworkkulelu88: and many others
22:47:25kulelu88a bit biased then ldlework :P
22:47:25ldleworkI didn't say "If you code only because money"
22:47:31ldleworkkulelu88: why?
22:47:47kulelu88saying: "If you ever want to work with smart engineers, I would leave PHP behind and pick up Python."
22:47:53ldleworkOh yeah
22:47:55ldleworkI'm totally strange
22:48:00ldleworkholding that opinion
22:48:05ldleworkyou wont find that anywhere else
22:48:06CalinouI'm sure Python engineers are overall smarter than PHP engineers
22:48:12Calinouprobably because the barrier to entry is higher :P
22:48:43kulelu88I disagree. Python is easier to learn than PHP
22:49:02ldleworkLearning how to make a web-page with Python is far harder than PHP
22:49:03CalinouPHP allows for really ugly code, and is oriented towards web development
22:49:05Calinouthis ^
22:49:10ldleworkWhich is probably the scope of their understanding of what makes up a webpage
22:49:12CalinouPHP allows echoing out HTML and such
22:49:18kulelu88Presumably why you will find Python in just about everything, from modifying excel to crunching data
22:49:19CalinouPython will really push you towards templating
22:49:48kulelu88aah yeah web programming is more complex for Python, true.
22:50:07federico3Calinou: it's not that the language, in itself, makes people smarter. If you look at all the "technologies" that existed around the web in the last 15 years most stuff was quite bad and that's just because web programming tends to attract beginners
22:50:23CalinouI disagree that programming should be elitist though :(
22:50:34kulelu88Python isn't elitist Calinou
22:50:51ldleworkI'm looking at the market
22:50:54kulelu88Which is why I mentioned that people do just about anything with it
22:51:10*pregressive quit (Ping timeout: 244 seconds)
22:51:14kulelu88even the hackers use it for scripts
22:51:16ldleworkIf you would like to survive by using your programming talent, then Django and Python web-programming right now is by and large the largest without using shitty java
22:51:23Calinoualso, in my benchmarks, PyPy3/CPython 3 are always slower than their version 2 counterparts
22:51:26Calinou(by a significant margin)
22:51:34ldleworkWhy the hell are you benchmarking python versions
22:51:41ldleworkGod our universities are *terrible*
22:51:50ldleworkCalinou: are you in university in the US?
22:51:51Calinouno
22:51:52CalinouFrance
22:51:56ldleworkoh well fuck
22:52:02federico3poor Calinou
22:52:04ldleworkFrance has amazing computer universities
22:52:09ldleworkyou must be at like, the worst one :(
22:52:14Calinoumy uni never told me to benchmark stuff
22:52:24ldleworkit led to the thinking that inspired the action
22:52:26ldleworklol
22:52:35Calinouit's just that a language that loses performance over major versions isn't very exciting :)
22:52:44CalinouPHP went the other way around with PHP 7, I applaud them
22:53:05kulelu88ldlework: let up on the guy a little bit. He is a beginner, we all go through this phase
22:53:21CalinouI've been programming for like, 3 years :P
22:53:28ldleworkkulelu88: even when I was younger I listened up when people told me I was saying insane things
22:53:44kulelu88Calinou: the PyPy3 speed will increase over time
22:53:51Calinouyeah, I think so, it's still somewhat experimental
22:53:55kulelu88the JIT provides good performance
22:54:20ldleworkCalinou: you know what's a really fast language
22:54:24ldleworkRust
22:54:28CalinouRust has horrible syntax
22:54:31Calinouthat's why I ditched it
22:54:32ldleworkBut its fast
22:54:38CalinouI want good syntax and high speed :)
22:54:48ldleworkhigh speed relative to what
22:54:50*rbergmair left #nim (#nim)
22:54:54Calinourelative to most interpreted languages
22:54:54kulelu88ldlework: having a statically-compiled language that is Python-friendly and decent for web programming (something Nim could be) isn't a bad idea though. That is probably why some Python guys moved over to Go, cause the learning curve wasn't too bad
22:54:56ldleworkprevious versions of the language
22:55:09ldleworkthe learning curve in golang is worse
22:55:22ldleworkBecause not only do you need to learn a small language with non-obvious design choices
22:55:23kulelu88well not for everyone
22:55:30ldleworkbut you have to implement a lot of things yourself
22:55:33ldleworkover and over and over again
22:55:37Calinouyeah, Go is very anti-framework, sadly
22:55:42ldleworklearning the language golang is easy
22:55:42Calinouwhen Iris was released, everyone went batshit ._.
22:55:50ldleworklearning how to use go to productivity is a worthless exercise
22:56:07kulelu88well Google built it for Google, the fanboys followed
22:56:15ldleworkBut I agree that Nim could be a nice web-language
22:56:37ldleworkI don't think it is, but it could be
22:56:53*Calinou is surprised Lua is not more used in web development, considering the speed of LuaJIT
22:57:05federico3ldlework: because of the language itself or the lack of more rich frameworks or traction?
22:57:06Calinouguess it's not good at large programs
22:57:31ldleworkfederico3: a bit of both
22:57:34ldleworkbut mostly the latter
22:57:53ldleworkI think the one we have by dom96 is not really the framework I'd choose to use day in and out
22:57:56ldleworkbut maybe it has improved
22:58:19ldleworkCalinou: lua isn't used because speed is the dumbest metric for web
22:58:29federico3+1 ldlework
22:58:30kulelu88Calinou: you can't bash PyPy when LuaJIT is essentially the same thing. Python has more mind-share than Lua
22:58:54kulelu88Nim would be legendary with a non OO web framework
22:59:20CalinouFlask didn't perform that well with PyPy in my tests (used "wrk" to test)
22:59:21ldleworkYep that's what all the web-programmers I deal with each day continue to ask for
22:59:26Calinou4000 requests/s, some Rust framework did over 200,000
22:59:27Calinou:P
22:59:28ldleworknon-OO web frameworks
22:59:29kulelu88ldlework: I don't think he has touched it in a while. but he is not obliged to, he is afterall, still studying :P
22:59:57ldleworkCalinou: how many requests does your website currenty serve a second?
22:59:59federico3Calinou: are you comparing the speed of serving "Hello world" pages? If so, that has nothing to do with real workloads
23:00:05Calinoufederico3: yes
23:00:26kulelu88aah well I don't even like web programming anymore. Some day in 2025 Nim will get there :D
23:00:53kulelu88Isn't Bottle or some other Python framework non OO? ldlework
23:00:54Calinouldlework: not a lot but well… you know, "webscale" ;)
23:01:24federico3kulelu88: Bottle is faster
23:01:32ldleworkFaster than what?!
23:01:43ldleworkDoing what?
23:02:31kulelu88Calinou: I was planning on learning/using Elixir/Phoenix for an app that interacts with an external chat-API and through my investigation I realized that a lot of what Python has, Elixir doesn't
23:03:29federico3ldlework: faster than Flask when executing code paths in the framework itself
23:04:07Calinoualso, I'm aware that computers get faster over time
23:04:15Calinoubut the reality is that most VPS providers don't have 4 GHz CPUs
23:04:30Calinounot to mention those "half a core" low-end VPSes that many people have…
23:05:19*girvo joined #nim
23:06:20kulelu88Calinou: the assumption is that it is cheaper to add another server than to hire another programmer
23:06:44Calinouthat's what GitLab did, look at how slow it is, even on gitlab.com
23:06:48kulelu88on average, a Go programmer is probably in the USD75~80k salary bracket
23:07:18Trixar_zaReally? I think I should learn Go then
23:07:57ldleworkMost of the time loading gitlab.com is not spent in the backend server....
23:08:14ldleworkWhich responds almost i stantly for me
23:08:39kulelu88what is the za for? Trixar_za
23:08:57Trixar_zakulelu88: It's the international code for South Africa
23:09:16kulelu88oh fekk, do you hang out in #ubuntu-za? Trixar_za :D
23:09:41Trixar_zaYes kulelu88, that's where you know me from. Probably :P
23:09:51kulelu88aah I thought I recognized you!
23:10:06Calinousorry if I angered you btw :P
23:10:09Calinouwas not my intent to troll or something
23:10:13kulelu88and 75-80K is apparently on the lower scale. Go engineers in SF rake in +100K
23:10:23Trixar_zaWell, much like Xe, I tend to get around.
23:10:24federico3way more
23:10:27*girvo quit (Ping timeout: 276 seconds)
23:11:04ldleworkYou would be homeless on 80k in SF
23:11:14kulelu88earning USD100K in the "third world" can really be a boon
23:11:14ldleworkOr hungry
23:11:58*girvo joined #nim
23:12:11Trixar_zaYeah, it's like what? R14 to the dollar?
23:12:45kulelu88when it was R17, the contractors were rejoicing. December bonus
23:14:22kulelu88I didn't know anyone else was learning Nim (or interested) Trixar_za
23:15:08*endragor joined #nim
23:19:11Trixar_zaI've been around for a few years. Still haven't really learned anything beyond the basics to be honest. I'm pretty sure Araq just tolerates me since I used to compare Nim to python a lot. And I picked fights with naysayers.
23:19:46*endragor quit (Ping timeout: 265 seconds)
23:20:12*girvo quit (Ping timeout: 276 seconds)
23:21:49Trixar_zaYeah, took me a few years to actually grow up. Sorry about that.
23:21:51*yglukhov quit (Remote host closed the connection)
23:22:12kulelu88:D
23:22:21kulelu88why you still awake? Trixar_za
23:23:16Trixar_zaCheap data bundle rates - 1GB for R10 - so I'm doing my downloads now. Also nice and quiet, so the speeds are good too.
23:24:08kulelu88no ADSL?
23:25:25Trixar_zaNo, 3G - not that ADSL here would be worth it where I am. The max speeds residential lines get here is about 1MB/s
23:25:55Xekulelu88: in SF you make at least 100k or you're homeless tbh
23:25:58Trixar_zaI'm considering WiFi since it will be much faster.
23:26:15kulelu88Xe: you in the US?
23:26:31Xekulelu88: literally working for a small startup in SF
23:26:42kulelu88remotely? Xe
23:27:17Xekulelu88: i live in the SF area
23:27:46kulelu88you originally from ZA? Xe
23:28:01Xeno
23:28:04Xefrom SEA originally
23:28:38kulelu88aah cool
23:28:52kulelu88brownie points if your startup is using Nim Xe :)
23:28:54Trixar_zaI know Xe from intentionally breaking the IRCd she was working on
23:29:50kulelu88SHE? *insert there are no women on the internet joke here*
23:29:51Xekulelu88: i used nim to make an example for them to prove a crazy concept
23:30:11Xeis that an issue? :P
23:30:23kulelu88ChanServ status 0.o
23:30:28*kulelu88 quivers in fear
23:30:39*kulelu88 crawls into a bundle in the corner
23:30:42kulelu88:D
23:30:58Trixar_zaJust make a bronie joke and see what happens :P -hides-
23:31:18*girvo joined #nim
23:32:22kulelu88bronie??
23:32:32*kulelu88 goes to look for context
23:32:53Trixar_zaFandom of the My Little Pony tv series - more the modern one than the old one.
23:33:44Trixar_zaThe network I met Xe on was dedicated to it
23:34:03kulelu88proverbial geek culture? tsk tsk Xe . if you tell us you're a "gamer girl" I'll just self-ban :D
23:34:06Xekulelu88: i also smoke weed
23:35:03kulelu88Xe: what does your startup do?
23:35:38*girvo quit (Ping timeout: 250 seconds)
23:36:31Xekulelu88: basically a way to make your servers not exposed to the public internet, yet exposed to the public internet
23:36:49*gdelazzari quit (Quit: Page closed)
23:36:50kulelu88Docker???
23:37:06kulelu88or some fancy virtualization
23:37:08Trixar_zaInteresting guess that
23:37:35Xekulelu88: plain old TCP actually
23:37:56kulelu88what is the use-case for it? Xe
23:39:43*girvo joined #nim
23:40:18libmanNimRing is GPL. :(
23:40:44Xekulelu88: simplifying the backend so you can get back to making Cool Shit
23:41:51Trixar_zalibman: which one?
23:42:02kulelu88so... "serverless" SaaS?
23:42:25libmanThat means `echo("Hello World")` is now restricted, and any programs that use it risk being sued... :P
23:43:26Trixar_zalol
23:43:29libmanCa1inou haha'd about it an hour ago.
23:44:32SentreenAnother stupid question from yours truly!
23:44:58SentreenWhen I create a generic proc which I explicitly want to instantiate, I can use something like foo[type](bar)
23:45:15SentreenYet bar.foo[type]() does not work
23:45:41kulelu88back to Nim questions! for a moment there, we almost became nim-meta!!!
23:45:41SentreenIs this intended? I figured the second example would have to work due to uniform call syntax
23:46:23SentreenOoooh, I should join nim-meta
23:49:35kulelu88nim-meta channel status will be: forever hoping Araq introduces an amazing HTTP stdlib to Nim
23:51:33*themagician quit ()
23:52:27SentreenAh, it turns out this is intended behaviour: https://github.com/nim-lang/Nim/issues/1782
23:54:04Xekulelu88: been half considering writing a proper HTTP client
23:54:26Sentreenshame, const nam = <really long seq comprehension>.toArray[idx, typ]() looked a lot better than const nam = toArray[idx, typ](<really long seq comprehension>)
23:54:27kulelu88Xe: on the Go level of stdlib?
23:55:25Xekulelu88: the Go stdlib is a good example yeah
23:56:08kulelu88Xe: that would be awesome and actually possibly kickstart momentum for it (I swear I'll contribute)
23:57:10*endragor joined #nim