code logs -> 2017 -> Thu, 19 Jan 2017< code.20170118.log - code.20170120.log >
--- Log opened Thu Jan 19 00:00:02 2017
02:16 ion_ [Owner@Nightstar-6grqph.vs.shawcable.net] has quit [Ping timeout: 121 seconds]
02:16 ion [Owner@Nightstar-6grqph.vs.shawcable.net] has quit [Ping timeout: 121 seconds]
02:17 ion [Owner@Nightstar-6grqph.vs.shawcable.net] has joined #code
02:17 mode/#code [+o ion] by ChanServ
02:18 ion_ [Owner@Nightstar-6grqph.vs.shawcable.net] has joined #code
02:18 mode/#code [+o ion_] by ChanServ
02:19 ion__ [Owner@Nightstar-6grqph.vs.shawcable.net] has joined #code
02:19 mode/#code [+o ion__] by ChanServ
02:23 ion__ [Owner@Nightstar-6grqph.vs.shawcable.net] has quit [[NS] Quit: why]
03:13 catadroid` [catalyst@Nightstar-rno2kr.dab.02.net] has joined #code
03:16 catadroid [catalyst@Nightstar-9r3fv7.dab.02.net] has quit [Ping timeout: 121 seconds]
05:12 VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has quit [Ping timeout: 121 seconds]
05:13 VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has joined #code
05:13 mode/#code [+ao VirusJTG VirusJTG] by ChanServ
05:25 celticminstrel [celticminst@Nightstar-h4m24u.dsl.bell.ca] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!]
06:38 Netsplit Deepthought.Nightstar.Net <-> Krikkit.Nightstar.Net quits: @PinkFreud, @ToxicFrog
06:48 Netsplit over, joins: @PinkFreud
06:50 ToxicFrog [ToxicFrog@ServerAdministrator.Nightstar.Net] has joined #code
06:50 mode/#code [+ao ToxicFrog ToxicFrog] by ChanServ
08:10 catadroid` is now known as catadroid
08:46 Kindamoody[zZz] is now known as Kindamoody
08:49 Kindamoody [Kindamoody@Nightstar-0lgkcs.tbcn.telia.com] has quit [Client exited]
08:50 Kindamoody|autojoin [Kindamoody@Nightstar-0lgkcs.tbcn.telia.com] has joined #code
08:50 mode/#code [+o Kindamoody|autojoin] by ChanServ
08:51 Kindamoody|autojoin is now known as Kindamoody
09:07 gnolam [quassel@Nightstar-f22.ckv.119.62.IP] has joined #code
09:07 mode/#code [+o gnolam] by ChanServ
09:19 ion_ [Owner@Nightstar-6grqph.vs.shawcable.net] has quit [[NS] Quit: restarting...]
09:22 Kindamoody is now known as Kindamoody|afk
09:28 himi [sjjf@Nightstar-g3q.sgb.44.138.IP] has joined #code
09:28 mode/#code [+o himi] by ChanServ
09:43 catadroid` [catalyst@Nightstar-bc11o7.dab.02.net] has joined #code
09:46 catadroid [catalyst@Nightstar-rno2kr.dab.02.net] has quit [Ping timeout: 121 seconds]
10:11 catadroid` [catalyst@Nightstar-bc11o7.dab.02.net] has quit [[NS] Quit: Bye]
10:33 ion_ [Owner@Nightstar-6grqph.vs.shawcable.net] has joined #code
10:33 mode/#code [+o ion_] by ChanServ
10:35 gnolam [quassel@Nightstar-f22.ckv.119.62.IP] has quit [[NS] Quit: Switching trains]
11:00 catadroid [catalyst@Nightstar-bc11o7.dab.02.net] has joined #code
11:02 Vornotron is now known as Vornicus
11:02 mode/#code [+qo Vornicus Vornicus] by ChanServ
12:40 * TheWatcher encounters the PHP Httpful library for the first time, ...s
12:43
<@Tamber>
o.O
12:43
<@TheWatcher>
Includes a "Clean, simple class for sending HTTP requests in PHP" that has 72 methods, including wonderful things like a method called "d()"
12:44
<@TheWatcher>
That's clean and simple is it?
12:44
<@Tamber>
Well, that's... uhm. Clean and simple by PHP standards.
12:44
<~Vornicus>
um
12:44
<~Vornicus>
just use curl guys it's right there
12:46
<@Tamber>
But what if it's not!1
12:46
<@TheWatcher>
Then httpful probably won't work, as I think it uses curl internally >.>
12:46
<@TheWatcher>
Yes, yes it does.
12:51
<@Tamber>
Oh, that's even better, then.
12:55 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds]
13:02 gnolam [quassel@Nightstar-t1tbf0.cust.bahnhof.se] has joined #code
13:02 mode/#code [+o gnolam] by ChanServ
13:51 You're now known as TheWatcher[d00m]
15:01 You're now known as TheWatcher
16:14 catadroid` [catalyst@Nightstar-h1p1kn.dab.02.net] has joined #code
16:16 catadroid [catalyst@Nightstar-bc11o7.dab.02.net] has quit [Ping timeout: 121 seconds]
16:50 catadroid` is now known as catadroid
16:56 gnolam [quassel@Nightstar-t1tbf0.cust.bahnhof.se] has quit [[NS] Quit: Context switch]
16:56 gnolam [lenin@Nightstar-t1tbf0.cust.bahnhof.se] has joined #code
16:56 mode/#code [+o gnolam] by ChanServ
17:28 celticminstrel [celticminst@Nightstar-h4m24u.dsl.bell.ca] has joined #code
17:28 mode/#code [+o celticminstrel] by ChanServ
17:29 celticminstrel is now known as celmin|busy
17:33
<@gnolam>
https://daniel.haxx.se/blog/2016/11/14/i-have-toyota-corola/
17:40
<@celmin|busy>
https://minecraft.net/en-us/article/deep-thought
18:59 catalyst [catalyst@Nightstar-bt5k4h.81.in-addr.arpa] has joined #code
19:54 celmin|busy is now known as celticminstrel
20:15 Kindamoody|afk is now known as Kindamoody
20:20 Reiv [NSwebIRC@Nightstar-ih0uis.global-gateway.net.nz] has joined #code
20:20 mode/#code [+o Reiv] by ChanServ
20:24 himi [sjjf@Nightstar-g3q.sgb.44.138.IP] has quit [Ping timeout: 121 seconds]
21:19 Alek [Alek@Nightstar-cltq0r.il.comcast.net] has quit [Ping timeout: 121 seconds]
21:22 Alek [Alek@Nightstar-cltq0r.il.comcast.net] has joined #code
21:22 mode/#code [+o Alek] by ChanServ
22:16
<&jerith>
I remember curl having a pretty terrible API.
22:19
<&McMartin>
curl itself is pretty OK
22:20
<&McMartin>
libcurl, however, is a heinous abomination from the depths of Hell itself, that is still pretty much best of breed for C APIs.
22:20
<&jerith>
The command line tool, yes.
22:20
<&jerith>
The library...
22:20
<&jerith>
It is *very* C.
22:20
<&McMartin>
It's also kind of alarmingly incomplete compared to, say, java.net.Socket.
22:21
<&McMartin>
I forget exactly which things they were that were basic configuration options in Java that our C clients simply could not do
22:21
<&McMartin>
And which were disastrous
22:21
<&jerith>
Timeouts?
22:21
<&McMartin>
I think it was "distinguish a timeout caused because you couldn't reach the server" vs "a timeout caused because you connected and are receiving data but it hasn't *all arrived just yet*"
22:21
<&jerith>
That's the thing that's usually missing when I use a new network library.
22:21
<&McMartin>
It was doing something like connecting, asking for 4KB of data
22:21
<&jerith>
Yeah.
22:21
<&McMartin>
And then because the server was overloading it would timeout after receiving 3KB of that data
22:22
<&McMartin>
At which point it would throw all that data out and then ask for the 4K of data again
22:22
<&McMartin>
Java gets a lot of shit
22:22
<&McMartin>
Java apparently gets this so trivially right that people steeped in Java are not merely offended but actually uncomprehending when faced with it.
22:22
<&jerith>
Separate connect and receive timeouts are *important*.
22:22
<&jerith>
So much stuff gets this wrong.
22:22
<&McMartin>
Let me emphasize my earlier statement harder
22:23
<&McMartin>
libcurl is, for all its fatal flaws, still actually the best of breed networking API I'm aware of for C/C++ development *of any kind*
22:23
<&McMartin>
And it gets this wrong
22:23
<@celticminstrel>
So it's better than, say, Boost.Asio?
22:23
<&McMartin>
If people know of C/C++ networking libraries that are (a) just networking libraries instead of 75% of an entire OS or application stack and (b) get this shit right, I would like to know this
22:24 * celticminstrel hasn't really used Boost.Asio.
22:24
<&McMartin>
celticminstrel: Yes, because boost.Asaio kind of fails option (a) once deployed and isn't "a networking library" per se
22:24
<&McMartin>
You can *build networking libraries with it*
22:24
<@celticminstrel>
Ah.
22:24
<&McMartin>
And then you're dragging in 20MB of The Rest Of Boost, most likely
22:24 * McMartin uses boost::asio very heavily in his day job
22:24 * McMartin uses it because C++ doesn't have an acceptable asynchronous callback librarie and asio is actually pretty good at that part.
22:25
<&McMartin>
std::aync is almost there but fails the part of actually being asynchronous.
22:25
<&McMartin>
A rather significant oversight that it seems may be corrected in an addendum to C++17.
22:25
<&jerith>
I use Twisted for that.
22:25
<&jerith>
And, more recently, lwt.
22:25
<@celticminstrel>
I'm not really familiar with the options available for C++ networking, though I know SDL and SFML both offer networking.
22:25
<&McMartin>
Are either of those C/C++ level?
22:25
<@celticminstrel>
(Of course, that also fails option a.)
22:25
<&jerith>
Except those only help if you're in Python or OCaml.
22:26
<&McMartin>
Qt does too!
22:26
<@celticminstrel>
Wasn't Twisted a pythong library?
22:26
<@celticminstrel>
^python
22:26
<&jerith>
Yes.
22:26
<&jerith>
It is the One True Way to do networking in Python.
22:27
<&jerith>
Which, of course, menas that everyone does blocking+threads+shared mutable state instead.
22:27
<@celticminstrel>
I recally abandoning it for my IRC bot because I couldn't understand it, or something.
22:27
<&jerith>
Because this is the way of the world.
22:27
<@celticminstrel>
That was a long time ago, admittedly.
22:27
<&jerith>
celticminstrel: Twisted is a bit hard to wrap your head around.
22:27
<&McMartin>
jerith: This is a place where JS's deficiencies encouraged superior discipline~
22:28
<&jerith>
Althogh that's much less true now than it used to be, because promise-based async has gone mainstream.
22:28
<&McMartin>
Yeah but, well
22:28
<&jerith>
McMartin: I was replying to me there, not you. :-)
22:28
<&McMartin>
C++ promises can only be consuilted via blocking operations. ;_;
22:29
<&McMartin>
(I spent maybe 75 lines of code getting Proper Promises out of boost::asio and then the whole product just uses those.)
22:29
<&jerith>
Also, Twisted suffers from paradigm mismatch with Python's semantics.
22:30
<&jerith>
That's changing with Python 3.6, but I fear Python's time is coming to an end.
22:31
<&McMartin>
It'll live on in Windows~
22:31
<&McMartin>
Which still has no other sufficiently full-featured REPL-based scripting language
22:31
<&jerith>
Oh, it'll remain relevant for many years still.
22:32
<&jerith>
But many of the projects that would be chosen Python a couple of years ago are choosing other languages instead.
22:37
<&jerith>
This often means Go these days. Which makes me grumpy.
22:44 catadroid` [catalyst@Nightstar-bhs5m9.dab.02.net] has joined #code
22:45 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has joined #code
22:46 mode/#code [+qo Vornicus Vornicus] by ChanServ
22:46 catadroid [catalyst@Nightstar-h1p1kn.dab.02.net] has quit [Ping timeout: 121 seconds]
23:06 Kindamoody is now known as Kindamoody[zZz]
23:18
<&[R]>
McMartin: what about libev (or whatever from node.js)?
23:19
<&McMartin>
I have not evaluated that one
23:19
<&McMartin>
... this doesn't appear to be a network library, though.
23:21
<&[R]>
https://github.com/libuv/libuv
23:21
<&McMartin>
The boost::asio stuff was primarily a choice made due to needing other parts of boost to get a functioning application stack.
23:21 * [R] got the name wrong
23:21
<&McMartin>
It turns out libev also actually exists
23:22
<&[R]>
Yah
23:22
<&[R]>
http://nikhilm.github.io/uvbook/networking.html#tcp
23:28
<&McMartin>
Hm, can't actually figure out how timeout failures happen on this, unless this is lower-level than that.
23:32
<&[R]>
Possibly, looks like it mimics C's API in a few ways
23:33
<&McMartin>
s/C/BSD/ but yeah
23:33
<&McMartin>
Hmmm.
23:33
<&McMartin>
Yeah, it would.
23:34
<&McMartin>
I've been conflating "HTTP" with "sockets" because the latter is how you do the former.
23:34
<&McMartin>
libcurl is only best-of-breed for the former in C, and so the question is if someone's built a URL-fetching system on top of libuv that's still got a C-friendly API.
--- Log closed Fri Jan 20 00:00:04 2017
code logs -> 2017 -> Thu, 19 Jan 2017< code.20170118.log - code.20170120.log >

[ Latest log file ]