--- 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 |