code logs -> 2020 -> Wed, 04 Mar 2020< code.20200303.log - code.20200305.log >
--- Log opened Wed Mar 04 00:00:50 2020
00:02 VirusJTG_ [VirusJTG@Nightstar-42s.jso.104.208.IP] has quit [[NS] Quit: Leaving]
00:02 VirusJTG [VirusJTG@Nightstar-42s.jso.104.208.IP] has joined #code
00:02 mode/#code [+ao VirusJTG VirusJTG] by ChanServ
00:21 himi [sjjf@Nightstar-1drtbs.anu.edu.au] has joined #code
00:21 mode/#code [+o himi] by ChanServ
01:00 ErikMesoy [Bruker@Nightstar-3p2nck.bb.online.no] has quit [Connection reset by peer]
01:19 celmin|Away is now known as celticminstrel
01:34 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has quit [Connection closed]
01:48 Reiv [NSkiwiirc@Nightstar-ih0uis.global-gateway.net.nz] has quit [[NS] Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]
01:50 Kindamoody [Kindamoody@Nightstar-eubaqc.tbcn.telia.com] has quit [Connection closed]
01:50 Kindamoody [Kindamoody@Nightstar-eubaqc.tbcn.telia.com] has joined #code
01:50 mode/#code [+o Kindamoody] by ChanServ
01:55 Kindamoody is now known as Kindamoody[zZz]
02:49 Degi [Degi@Nightstar-b6qvc9.dyn.telefonica.de] has quit [Operation timed out]
02:53 Degi [Degi@Nightstar-d5cfmf.dyn.telefonica.de] has joined #code
03:07 mac [macdjord@Nightstar-rslo4b.mc.videotron.ca] has joined #code
03:07 mode/#code [+o mac] by ChanServ
03:10 macdjord [macdjord@Nightstar-rslo4b.mc.videotron.ca] has quit [Ping timeout: 121 seconds]
03:35 catalyst [yaaic@Nightstar-l9hrr9.dab.02.net] has quit [The TLS connection was non-properly terminated.]
03:36 gnolam_ [lenin@Nightstar-e3tf4i.priv.bahnhof.se] has joined #code
03:37 abudhabi_ [abudhabi@Nightstar-7nkq9k.de] has quit [Operation timed out]
03:39 gnolam [lenin@Nightstar-e3tf4i.priv.bahnhof.se] has quit [Ping timeout: 121 seconds]
03:39 abudhabi_ [abudhabi@Nightstar-7nkq9k.de] has joined #code
03:39 mode/#code [+o abudhabi_] by ChanServ
03:42 catalyst [yaaic@Nightstar-v6lb30.cable.virginm.net] has joined #code
03:48 JustBob [justbob@ServerAdministrator.Nightstar.Net] has joined #code
03:48 mode/#code [+o JustBob] by ChanServ
03:49 JustBob [justbob@Nightstar.Customer.Dissatisfaction.Administrator] has quit [[NS] Quit: ]
03:49 JustBob [justbob@ServerAdministrator.Nightstar.Net] has joined #code
03:49 mode/#code [+o JustBob] by ChanServ
03:50 Reiv [NSkiwiirc@Nightstar-ih0uis.global-gateway.net.nz] has joined #code
03:51 mode/#code [+o Reiv] by ChanServ
04:07 Reiv [NSkiwiirc@Nightstar-ih0uis.global-gateway.net.nz] has quit [[NS] Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]
05:12 celticminstrel [celticminst@Nightstar-80avij.dsl.bell.ca] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!]
06:24 himi [sjjf@Nightstar-1drtbs.anu.edu.au] has quit [Ping timeout: 121 seconds]
06:30 gnolam_ is now known as gnolam
06:30 mode/#code [+o gnolam] by ChanServ
06:58 ErikMesoy [Bruker@Nightstar-3p2nck.bb.online.no] has joined #code
06:58 mode/#code [+o ErikMesoy] by ChanServ
07:22
<@gnolam>
Argh.
07:22
<@gnolam>
Naming Things.
07:23 catalyst [yaaic@Nightstar-v6lb30.cable.virginm.net] has quit [Ping timeout: 121 seconds]
08:02 himi [sjjf@Nightstar-v37cpe.internode.on.net] has joined #code
08:02 mode/#code [+o himi] by ChanServ
08:03
<@gnolam>
Nyarghl
08:05 Kindamoody[zZz] is now known as Kindamoody
08:05
<@gnolam>
Have a support issue with a customer that's been going for... what, 2 months now?
08:06
<@gnolam>
It could have been fixed in 15 minutes if they had just, at ANY point, given me the goddamned information I asked for /in my very first e-mail/.
08:06
<@gnolam>
But no.
08:06 * TheWatcher wonders what "Nyarghl" is the name for
08:06
<@TheWatcher>
Well, no - that'd be too helpful
08:06
<@gnolam>
They in fact refuse to communicate directly via e-mail altogether.
08:11
<@gnolam>
The two available methods of communication are "e-mail an intermediary who doesn't actually know how the end customer wants things to work" or "phone up some guy on a factory floor down in Arschfick, Ägypten" (who a) refuses to answer his phone, b) doesn't speak English c) doesn't seem to know how they want it to work either).
08:14
<@gnolam>
A month or so ago I at least finally got hold of Factory Floor Guy and could have a look over TeamViewer. Where all I could see was that yep, the system was working exactly as configured. If that's not how you want it to work, then FOR THE LOVE OF GOD TELL ME HOW YOU ACTUALLY INTEND IT TO WORK.
08:14
<@gnolam>
Naaaaaaaaah
08:15
<@gnolam>
Too easy.
08:16
<@gnolam>
Instead, let's go around in circles for a while, escalating up the various chains of command, and then go back to "we could arrange for you to have a look via TeamViewer". >_<
08:17 * gnolam repeatedly slams his head against his desk.
08:26 catalyst [yaaic@Nightstar-8amkqg.dab.02.net] has joined #code
09:31 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has joined #code
09:31 mode/#code [+qo Vornicus Vornicus] by ChanServ
10:11 catalyst [yaaic@Nightstar-8amkqg.dab.02.net] has quit [Ping timeout: 121 seconds]
10:14 catalyst [yaaic@Nightstar-8p2t1k.dab.02.net] has joined #code
11:23
<@sshine>
heh, a guy at work used his lunch break to walk around the entire company and put corona beer bottles on people's desks
11:45 Kimo|autojoin [Kindamoody@Nightstar-eubaqc.tbcn.telia.com] has joined #code
11:45 mode/#code [+o Kimo|autojoin] by ChanServ
11:48 Kindamoody [Kindamoody@Nightstar-eubaqc.tbcn.telia.com] has quit [Ping timeout: 121 seconds]
11:56 Kimo|autojoin is now known as Kindamoody
12:40
< catalyst>
Implementing proper fast vector math is still exciting and Rust is a really fun and productive language to do it in :D
12:54 Attilla [sid13723@Nightstar-6br85t.irccloud.com] has quit [Ping timeout: 121 seconds]
12:54 Attilla [sid13723@Nightstar-6br85t.irccloud.com] has joined #code
12:54 mode/#code [+o Attilla] by ChanServ
13:46 celticminstrel [celticminst@Nightstar-80avij.dsl.bell.ca] has joined #code
13:47 mode/#code [+o celticminstrel] by ChanServ
13:48
<~Vornicus>
hooray
13:48 celticminstrel is now known as celmin|away
13:54 Vorntastic [uid293981@Nightstar-h2b233.irccloud.com] has joined #code
13:54 mode/#code [+qo Vorntastic Vorntastic] by ChanServ
13:57
<@TheWatcher>
You know one of those situations where you have a really bizarre error, and you dig through thousand of lines of logs, and pull apart code, and tear your hair out, with no indication of what's causing the problem anywhere? And then you discover that it's all down to one directory not having the right permissions on it?
13:57
<@TheWatcher>
Yeah.
13:57 * TheWatcher headdesks
13:57
<@TheWatcher>
That was nearly 4 hours of bloody work to track that down
13:57
<~Vornicus>
remember to flush yourcache
14:13 Kindamoody [Kindamoody@Nightstar-eubaqc.tbcn.telia.com] has quit [Connection reset by peer]
14:16 Kimo|autojoin [Kindamoody@Nightstar-eubaqc.tbcn.telia.com] has joined #code
14:16 mode/#code [+o Kimo|autojoin] by ChanServ
14:16 Kimo|autojoin is now known as Kindamoody
16:42 catalyst [yaaic@Nightstar-8p2t1k.dab.02.net] has quit [Ping timeout: 121 seconds]
16:45 catalyst [yaaic@Nightstar-9bfmkf.dab.02.net] has joined #code
16:52
<&[R]>
`namei -l` is your friend
16:53
<&[R]>
So is `su`ing to the user and trying to cd into the directory
17:27 VirusJTG [VirusJTG@Nightstar-42s.jso.104.208.IP] has quit [Connection closed]
17:27 VirusJTG [VirusJTG@Nightstar-42s.jso.104.208.IP] has joined #code
17:27 mode/#code [+ao VirusJTG VirusJTG] by ChanServ
17:35 catalyst2 [yaaic@Nightstar-v6lb30.cable.virginm.net] has joined #code
17:38 catalyst2 [yaaic@Nightstar-v6lb30.cable.virginm.net] has quit [Connection reset by peer]
17:39 catalyst [yaaic@Nightstar-9bfmkf.dab.02.net] has quit [Connection reset by peer]
17:44 Emmy [Emmy@Nightstar-9p7hb1.direct-adsl.nl] has joined #code
17:46 catalyst [yaaic@Nightstar-v6lb30.cable.virginm.net] has joined #code
18:56
<@TheWatcher>
[R]: the hard part wasn't working out that it couldn't write there; the problem was working out that it couldn't write at all - there were no error messages anywhere
18:58
<@TheWatcher>
requests were coming in, filtering through a half-dozen layers of proxy, and intertwined server processes, and everything /looked/ fine going out, except something was happening between the last logged thing and apache spitting a 500 error back to the client
19:13 macdjord|slep [macdjord@Nightstar-rslo4b.mc.videotron.ca] has joined #code
19:13 mode/#code [+o macdjord|slep] by ChanServ
19:15
<&jeroud>
catalyst: I am immensely pleased that you are validating my opinions on Rust.
19:15 macdjord [macdjord@Nightstar-rslo4b.mc.videotron.ca] has joined #code
19:15 mode/#code [+o macdjord] by ChanServ
19:16 mac [macdjord@Nightstar-rslo4b.mc.videotron.ca] has quit [Ping timeout: 121 seconds]
19:17
<&jeroud>
(Some of this might be related to how much cognitive dissonance I had around Go.)
19:18 macdjord|slep [macdjord@Nightstar-rslo4b.mc.videotron.ca] has quit [Ping timeout: 121 seconds]
19:20
<&jeroud>
(There are a pleasing number of incredibly scathing critiques of Go these days these days, but there were hardly any back when I was struggling to reconcile my experience with what the rest of the world seemed to be saying.) l
19:21
<&McMartin>
I continue to dislike Go, but I cannot gainsay that it has been a good thing for our company's server team.
19:21
<&McMartin>
Where it is replacing Python and has been encroaching on Java.
19:21
<&McMartin>
There are some... more cynical reasons this helps that explicitly do not address your critiques and ignore your suggestions >_>
19:23
<&jeroud>
Go's better than C, for the most part.
19:24
<&jeroud>
And there aren't actually that many direct alternatives.
19:24
<&McMartin>
Under many circumstances, if I feel C is a good fit for a problem, Go won't be, but I am also known to use C for problems it is not ideal for.
19:24
<&McMartin>
I definitely do not consider Go a direct alternative to C.
19:24
<&McMartin>
That I am hard-pressed to find a language it *is* a direct alternative to is one of my critiques of it >_>
19:24
<&jeroud>
Depending on my problem, if Go is potentially a "good fit" I'll choose either Rust or Elixir.
19:25
<&McMartin>
Yup. That leads into the cynical reason: it's a lot easier to hire people good enough to maintain and extend Go code than Rust or Elixir, and our company isn't looking for a cadre of people in that class.
19:25
<&jeroud>
But both of those are about the same age as Go.
19:25
<&McMartin>
That's an environment very different from the one in which you thrive.
19:26 * McMartin nods
19:26
<&jeroud>
Ah, but the secret is to hire "programmers" and then teach them Elixir.
19:26
<&McMartin>
I'm a little dissonant on this because before Go was Go Rob Pike gave some talks to our research group about language design
19:26
<&jeroud>
(This is significantly more difficult to do with Rust.)
19:27
<&McMartin>
And in retrospect he clearly had most of Go planned if not built by then.
19:27
<&McMartin>
And based on those talks, I feel like the motivation was "Python without the GIL", but that's really not a good description of Go-as-it-is.
19:27
<&jeroud>
Yeah.
19:29
<&jeroud>
The more I think about it, the more I feel that Go had lofty ideals and then compromised them all along the way without taking a step back and reevaluating the whole.
19:29
<&McMartin>
The "problem" with your Elixir scenario is that it assumes a solution architect who's good enough to train their cadre
19:29
<&McMartin>
This is not a problem if you have one. But if you don't, the tech mix will look like what your solution architect can teach :)
19:30
<&jeroud>
I have some moderately compelling secondary evidence that Elixir actually is a really easy language to learn.
19:30
<&McMartin>
It occurs to me that "Go had lofty ideals and lost its way" is a more polite version of my hostile take on Go shortly after launch, tempered by the fact that much of the industry has come around to the OO skepticism that Go does wrong.
19:33
<&McMartin>
I think at the time, my sense of it was "Rob Pike decided to throw out the past 30 years of language design -- and, you know, sure, great, a lot of that was Very Bad -- but then because he didn't pay attention to the parts that *weren't* Very Bad he proceeded to reinvent them poorly"
19:54 Reiv [NSkiwiirc@Nightstar-ih0uis.global-gateway.net.nz] has joined #code
19:54 mode/#code [+o Reiv] by ChanServ
20:01
<&jeroud>
For me, ignoring the past three decades was less of a concern than aggressively simplifying out all possible mechanisms for building useful abstractions.
20:02
<&jeroud>
I watched a somewhat mediocre conference talk today about kubernetes and the BEAM.
20:03
<&McMartin>
Most of our mechanisms for building useful abstractions were developed in the 30 years pre-Go~
20:03
<&McMartin>
What does BEAM mean in this context?
20:03
<&jeroud>
(The mediocrity was due to and inexperienced speaker and poor structure/organisation, the actual content was decent.)
20:04
<&jeroud>
The Erlang/Elixir VM.
20:04
<&McMartin>
Ah right.
20:04
<&McMartin>
That fact was paged out
20:05
<&jeroud>
The speaker had some BEAM language and distributed systems experience before going to work full time on kubernetes and CNCF stuff.
20:06
<&jeroud>
Her take on the whole thing is that most of the people building modern cloud infrastructure know nothing about distributed systems and fault tolerance.
20:08
<&jeroud>
She didn't say it outright, but strongly implied that the underlying cause is a culture of rushing off to build things without looking for prior art.
20:11
<&jeroud>
This aligns with my feeling that the industry is currently driven by a crowd of smart but ignorant people operating in a self-validating bubble and rejecting any inputs that disagree with their world view.
20:13
<&McMartin>
I don't disagree with that feeling but I have a vision that broadening the scope just makes the self-validating bubble even larger.
20:13
<&jeroud>
And while there are plenty of exceptions to that, the "vomit out garbage that looks okay in a press release" cycle has a momentum that overwhelms everything else.
20:14 * McMartin nods
20:14
<&McMartin>
I think part of my initial skepticism here comes from Rust itself
20:14
<&McMartin>
To the extent that Rust is relatively mainstream now, the ideas it's based on are 20 years old
20:15
<&McMartin>
This is... not out of joint of how long it takes ideas or technologies to go from academic proofs-of-concept or prototype/research systems to industrial-production scale.
20:15
<&jeroud>
What we need more of is a culture of "sit down and think about the problem for a bit" combined with "let's go read some papers and play with existing solutions to get an idea of what things already exist".
20:16
<&jeroud>
As I see it, Rust is a rare example of how this stuff should actually be done.
20:16 * McMartin nods
20:16
<&McMartin>
Right, I guess the thing that from your description I cannot reject is...
20:16
<&McMartin>
"As a researcher in distributed systems, I look at the stuff being actually deployed and the most cutting edge, state of the art stuff was old news 20 years ago"
20:16
<&McMartin>
To which the answer is "well, yes"
20:17
<&jeroud>
Yeah, I'm not talking about implementing yesterday's cutting edge research.
20:17
<&McMartin>
How to time stuff gets wacky, too. If you go by standardization, Lisp isn't Lisp until the mid-1980s and Scheme isn't Scheme until R5RS in 1998 when they finally made the macro system be For Real as opposed to A Thing Schemers Liked To Do
20:18
<&McMartin>
Meanwhile, Lisp was Lisp in the 1960s because here are all the papers.
20:20
<&McMartin>
(Scheme itself was first proposed in 1975, though, so "mid-1990s" is on-track for functional programming -- with Haskell as the next generation thereof first released in 1990 and then pure functional programming becoming a thing JS programmers are supposed to know rolling in right on schedule in the early 2010s)
20:20
<@Reiv>
Wait, JS does functional programming these days?
20:21
<&McMartin>
... for a number I kind of pulled out of my butt based on the data points in my personal career, that number is holding up pretty well
20:21
<&McMartin>
Reiv: Depending on what you mean by it, it may always have.
20:21
<@Reiv>
well, I know functional prgarmming from my Haskell days
20:21
<&McMartin>
JS's semantics for functions-defined-inside-functions is intentionally and directly copying Scheme and has identical semantics, but is idiomatically used in different ways, because while Scheme *can* mutate its arguments, it *usually does not*.
20:22
<&McMartin>
While JS usually does and its scope rules are nonsense and only got worse with time as attempts to fix this collide with backcompat issues.
20:24
<&McMartin>
I'm considering "modern functional programming" to be essentially "use of lazy processing to filter and transform collections that are not changed by the filter or transformation operations", which became a big thing *everywhere* around when MapReduce got trendy.
20:25
<&McMartin>
(But which the components of which go back the 1970s and the serious working out of the implication was happening in a dozen bubbles in the mid-1980s)
20:25
<&jeroud>
Reiv: JS is explicitly "I'm not allowed to put Scheme in the browser, so I'll give it some new syntax and glue 'Java' onto the name".
20:26
<&McMartin>
Though that does also mean, what with Scheme not really "being Scheme" to modern eyes until R5RS in 1998, "Scheme" here means R4RS, a much smaller language that lacked many features we now consider defining of Scheme
20:26
<&McMartin>
... probably in part because JS doesn't also have them, come to think of it.
20:27
<&jeroud>
My R5RS implementation has stalled (potentially permanently) at the point where I need to make macros actually hygienic.
20:30
<&jeroud>
Because that requires detecting all binding constructs, which is an ugly hack at best and probably very messy if I want to correctly handle user-defined binding constructs.
20:31
<&jeroud>
I have, however, implemented enough Scheme to know that I do not much like Scheme.
20:31
<&jeroud>
Clojure remains The Best Lisp.
20:32
<@Reiv>
I thought Javascript was just a browser programming language
20:32
<&jeroud>
Reiv: It used to be.
20:33
<@Reiv>
And now it's trendy functional programming in yr browser?
20:33
<&jeroud>
Then someone invented node.js and now people think it's a "real" language.
20:33
<@Reiv>
Your phrasing makes it sound like you are not impressed
20:34
<&jeroud>
"Modern" JS is actually not too terrible.
20:34
<&jeroud>
That's ES6 onwards, I think.
20:35
<&jeroud>
I am extremely unimpressed with old JS, because I tend to believe that "fail with a sensible error message" is preferable to "make shit up and hope for the best" when confronted with nonsensical input.
20:35
<&McMartin>
Worth noting that prior to ES6 and such, trendy functional programming tricks were just how you did, e.g., objects with private variables.
20:35
<&McMartin>
They just weren't trendy.
20:36
<&McMartin>
Because after 1995 lexical scoping is Just A Thing, being 20 years after the initial report on Scheme~
20:37
<&jeroud>
Reiv: You might be interested in some talks by Kevlin Henney. There are a couple of dozen on YouTube by now, but they're all variations of three or four core narratives.
20:39
<&jeroud>
One of his most common themes is taking the trendy new things and demonstrating how they're already in Algol 68 and Lambda Calculus and such.
20:42
<&jeroud>
The thing that makes me grumpy about node.js isn't actually the language. It's the way the community used to run around shouting about how event-based async solved all problems and made everything better.
20:44
<&jeroud>
Meanwhile, I'd been using a vastly superior (but still horrible for various reasons) event-based async system for a decade and actually understood the limitations of the model.
20:45
<&jeroud>
Python/Twisted had futures/promises long before node.js even existed, because callback hell is Not A Good Time.
20:47
<&jeroud>
That said, we have had a Python/Twisted system that spawns node.js subprocesses to handle messages running in production at reasonable scale for several years.
20:48
<&McMartin>
"It was in ALGOL 68" doesn't prove much; while not strictly true, it was widely observed that it had no implementations and no users
20:49
<&McMartin>
Even if it were strictly true, the most important implementation was its weighty standard definition, which informed a bunch of stuff that became standard through, oh
20:49
<&McMartin>
1988 or thereabouts~
20:49
<&McMartin>
Though thankfully not call-by-name.
20:49
<&McMartin>
Much.
20:49
<&jeroud>
It is a truly horrible hack that solves some very real problems. It has also had effectively zero maintenance for most of its existence.
20:51
<&jeroud>
McMartin: Yeah, his point isn't "people were using this all the time back then". It's "these ideas are not new, and the reasons they're good haven't really changed much in half a century".
20:52
<&McMartin>
Yeah
20:52
<&McMartin>
My approach to that narrative tends to be on the other side of it - viz. what it is that you are abstracting over
20:53
<&McMartin>
Because this is often treated as a major philosophical leap, and in terms of how you're organizing in the large, it *can* be
20:53
<&McMartin>
But, well.
20:53
<&jeroud>
Actually, it's mostly "your problems are not new and special, maybe go look at some existing ideas before reinventing them poorly".
20:53
<&McMartin>
At the machine code level first-class functions and OOP are very nearly identical, with a few systematic speed hacks on one end or the other
20:53
<&McMartin>
And to quote my last article on the subject...
20:53
<&McMartin>
"The difference, in assembler, between fully usable first-class functions and the most basic use of the x86 instruction set was a single additional instruction per function call."
20:54
<&McMartin>
So it is also not that these were some implausible nonsense that has only become practical in an era where we talk about gigabytes the way we used to talk about kilobytes.
20:55
<&McMartin>
Also, of course: once people started actually using them, the older ideas are molded by the collision with Actual Problems To Solve.
20:55
<&McMartin>
I can only speak to this in Rust, where it certainly refined and altered a lot of typestate/ownership analyses.
20:59
<&jeroud>
One of the very few cases I can think of where "let's go solve this hard problem without a literature review" has worked out really well is Erlang.
21:00
<&McMartin>
I had the impression that Erlang had been informed, at the very least, by Prolog and the ML family of languages.
21:00
<&jeroud>
Erlang does not implement the actor model. It independently reinvents it from different axioms.
21:00
<&McMartin>
Ah
21:00
<&McMartin>
In that case, I have a separate example!
21:00
<&jeroud>
Erlang was originally implemented in Prolog.
21:01
<&McMartin>
Idiomatic C in fact developed an independent notion of closures, *also* from independent axioms.
21:01
<&McMartin>
The idiom is to have a context pointer that is the environment (closures) or the this pointer (OOP)
21:01
<&jeroud>
Joe and friends weren't operating in a vacuum, but they certainly weren't reading all the concurrency literature.
21:02
<&McMartin>
But the reason this idiom is all through the API was to make functions re-entrant in multithreaded environments, so they would not need to rely on global state.
21:02
<&McMartin>
*the standard C library API
21:02
<&jeroud>
They didn't actually realise they needed concurrency until they were well into figuring out the solution.
21:03 * McMartin nods
21:03
<&McMartin>
I would personally generally expect Good Ideas to independently resurface in very different contexts.
21:04
<&jeroud>
I think that's why Erlang's model is so much more practical than pure Actor or CSP or whatever.
21:04
<&McMartin>
In some cases simply because The Literature has been too large to actually keep up with for a very long time~
21:05
<&jeroud>
Now that I think about it, the Erlang example isn't actually "don't bother with the literature". It's "huh, this completely unrelated thing that we didn't know about turns out to be useful".
21:06
<&McMartin>
Yeah. That's what reminded me of the reentrancy->closures thing.
21:07
<&jeroud>
I used to bemoan the many things wrong with Erlang's syntax.
21:07
<&jeroud>
But now I'm actually glad it's horrible, because if it were better we wouldn't have Elixir.
21:08
<&jeroud>
And Elixir brings much more to the table than just better syntax.
21:08
<&McMartin>
Heh
21:09
<&jeroud>
I should try find my copy of Joe's book sometime.
21:09
<&jeroud>
I won it for writing a blog post about Erlang around the time it was being published.
21:10
<&jeroud>
The blog post was an evolution from an echo server to a multiuser chat system with hot code reloading and such.
21:10
<&jeroud>
I wrote it because I couldn't find a decent socket programming tutorial.
21:11
<&jeroud>
That was before I figured out genserver.
21:12
<&jeroud>
Erlang really does lack good instructive documentation.
21:12
<&jeroud>
The reference docs are decent. Kind of like (but also very different from) the Java reference docs.
21:13
<&jeroud>
If you know what you're looking for, you'll find it. If not, sucks to be you.
21:16
<&jeroud>
Right. I have to be at a conference on the other end of traffic in far too few hours.
21:17
<&jeroud>
So I shall bid you all a fond farewell and toddle off to bed.
21:34 Vorntastic [uid293981@Nightstar-h2b233.irccloud.com] has quit [[NS] Quit: Connection closed for inactivity]
22:23 Kindamoody is now known as Kindamoody[zZz]
22:49 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has quit [Connection closed]
22:58 catalyst [yaaic@Nightstar-v6lb30.cable.virginm.net] has quit [Connection reset by peer]
23:15 Emmy [Emmy@Nightstar-9p7hb1.direct-adsl.nl] has quit [Ping timeout: 121 seconds]
--- Log closed Thu Mar 05 00:00:52 2020
code logs -> 2020 -> Wed, 04 Mar 2020< code.20200303.log - code.20200305.log >

[ Latest log file ]