--- Log opened Tue Oct 13 00:00:46 2015 |
00:01 | | Reiv [NSwebIRC@Nightstar-blicbc.ihug.co.nz] has joined #code |
00:01 | | mode/#code [+o Reiv] by ChanServ |
00:09 | | VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has quit [[NS] Quit: Leaving] |
00:09 | | Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has joined #code |
00:09 | | mode/#code [+qo Vornicus Vornicus] by ChanServ |
00:11 | | VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has joined #code |
00:22 | | VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has quit [Connection reset by peer] |
00:30 | | VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has joined #code |
00:41 | | catalyst [catalyst@Nightstar-bt5k4h.81.in-addr.arpa] has quit [[NS] Quit: ] |
00:45 | | catadroid [catalyst@Nightstar-hk208r.dab.02.net] has joined #code |
00:48 | | Turaiel is now known as Unturtale |
01:28 | | Derakon[AFK] is now known as Derakon |
02:30 | | Crossfire [Z@Nightstar-r9lk5l.cust.comxnet.dk] has joined #code |
02:30 | | mode/#code [+o Crossfire] by ChanServ |
02:51 | | thalass [thalass@Nightstar-283.o7s.158.104.IP] has quit [[NS] Quit: Leaving] |
05:01 | | Derakon is now known as Derakon[AFK] |
05:18 | | catadroid` [catalyst@Nightstar-3jujg7.dab.02.net] has joined #code |
05:21 | | catadroid [catalyst@Nightstar-hk208r.dab.02.net] has quit [Ping timeout: 121 seconds] |
05:28 | | Unturtale is now known as Turaiel |
05:33 | | Meatyhandbag [sebastianfe@Nightstar-ram.3qf.224.136.IP] has quit [Client exited] |
05:47 | | Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has quit [Connection closed] |
06:20 | | Kindamoody[zZz] is now known as Kindamoody |
06:25 | | celticminstrel [celticminst@Nightstar-qp4eva.dsl.bell.ca] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!] |
07:17 | | Crossfire [Z@Nightstar-r9lk5l.cust.comxnet.dk] has quit [Ping timeout: 121 seconds] |
07:54 | | catadroid` is now known as catadroid |
08:41 | | Kindamoody is now known as Kindamoody|afk |
08:46 | | himi [fow035@Nightstar-v37cpe.internode.on.net] has quit [Ping timeout: 121 seconds] |
08:47 | | himi [fow035@Nightstar-v37cpe.internode.on.net] has joined #code |
08:47 | | mode/#code [+o himi] by ChanServ |
10:50 | | catadroid [catalyst@Nightstar-3jujg7.dab.02.net] has quit [The TLS connection was non-properly terminated.] |
10:50 | | catadroid [catalyst@Nightstar-tnn8rm.dab.02.net] has joined #code |
11:13 | | catadroid [catalyst@Nightstar-tnn8rm.dab.02.net] has quit [[NS] Quit: Bye] |
11:14 | | catadroid [catalyst@Nightstar-6p2bt9.dab.02.net] has joined #code |
11:35 | | McMartin [mcmartin@Nightstar-rpcdbf.sntcca.sbcglobal.net] has quit [Ping timeout: 121 seconds] |
11:36 | | McMartin [mcmartin@Nightstar-rpcdbf.sntcca.sbcglobal.net] has joined #code |
11:36 | | mode/#code [+ao McMartin McMartin] by ChanServ |
11:48 | | catadroid` [catalyst@Nightstar-uh3ros.dab.02.net] has joined #code |
11:50 | | catadroid [catalyst@Nightstar-6p2bt9.dab.02.net] has quit [Ping timeout: 121 seconds] |
11:58 | | Reiv [NSwebIRC@Nightstar-blicbc.ihug.co.nz] has quit [Ping timeout: 121 seconds] |
12:08 | | catadroid` is now known as catadroid |
12:37 | < catadroid> | hehe I have a small team of gameplay programmers who constantly come to me for low level C++ advice, this is great |
12:38 | | * TheWatcher blink |
12:38 | <@TheWatcher> | ++ for having people come to you for advice, that is awesome |
12:39 | <@TheWatcher> | Otoh, I do O.o somewhat at gameplay programmers needing low-level c++ |
12:40 | <@TheWatcher> | OTGH, I guess that if the profiler is yelling about a bit of code being a problem... |
12:45 | <@TheWatcher> | On an entirely different topic |
12:45 | | * TheWatcher hairpulls at CODICIL WINTER HILL |
12:46 | <@TheWatcher> | Why is this bloody thing sending feed subscriptions 10 minutes later each day?! argh |
12:50 | | * TheWatcher ...s |
12:50 | <@TheWatcher> | OH HEY. LOOK AT THAT BRANCH NAME. |
12:51 | <@gnolam> | ? |
12:52 | <@TheWatcher> | The fix I thought I'd made to address the 10 minute issue was actually done in the wrong branch, so it hasn't actually gone live yet. |
12:52 | <@TheWatcher> | I should probably have noticed that a week ago |
13:19 | < abudhabi> | Java. Is it possible to - via subclassing Calendar - create some sort of custom artificial/fictional Calendar? |
13:20 | < abudhabi> | Like with, say, fifteen 28-day months and one 5-day month. |
13:24 | <@froztbyte> | https://marc.info/?l=openbsd-tech&m=144472550016118&w=2 |
13:31 | <@gnolam> | froztbyte: *facepalm* |
13:32 | < catadroid> | TheWatcher: gameplay here basically means 'not engine' |
13:32 | < catadroid> | and a large amount of that code needs to be very efficient |
13:32 | < catadroid> | The lines are really blurry though |
14:32 | < catadroid> | "That's a lot easier than I expected" - one of the best things to hear as a tools coder |
15:05 | | Meatyhandbag [sebastianfe@Nightstar-ram.3qf.224.136.IP] has joined #code |
15:12 | < Meatyhandbag> | Say I want to learn how to make a non-web-based GUI, what language would be the best to use here? |
15:27 | | Crossfire [Z@Nightstar-r9lk5l.cust.comxnet.dk] has joined #code |
15:28 | | mode/#code [+o Crossfire] by ChanServ |
15:44 | < abudhabi> | Meatyhandbag: Java? C++ with Qt? |
15:46 | < Meatyhandbag> | I heard java is bad when it comes to GUIs |
15:46 | < Meatyhandbag> | and what's Qt? |
15:46 | < abudhabi> | https://en.wikipedia.org/wiki/Qt_(software) |
15:50 | | celticminstrel [celticminst@Nightstar-qp4eva.dsl.bell.ca] has joined #code |
15:50 | | mode/#code [+o celticminstrel] by ChanServ |
15:53 | | catadroid [catalyst@Nightstar-uh3ros.dab.02.net] has quit [Connection closed] |
15:53 | | catadroid [catalyst@Nightstar-8374fe.dab.02.net] has joined #code |
15:55 | | Derakon[AFK] is now known as Derakon |
15:56 | <@gnolam> | Python with Qt is probably the simplest. |
15:57 | <@celticminstrel> | !! |
15:57 | <@celticminstrel> | I haven't actually looked at Qt, mind you... |
15:59 | <@gnolam> | Both Java and C++ will overwhelm you with boilerplate code - code that has to exist, but doesn't fill any meaningful function for that program in particular. In Python, you just get right to work. |
16:15 | < abudhabi> | celticminstrel: !!? Are you trying to say, "true"? :V |
16:15 | <@celticminstrel> | More like surprise at Qt being called simple. |
16:15 | <@celticminstrel> | But I don't actually know, so it can't really count as an objection. |
16:19 | <@gnolam> | I've used WinAPI, AWT, Swing, wx and Qt. And probably a few more obscure ones I don't remember. I've hated Qt the least. |
16:21 | <@celticminstrel> | I recall McM saying that Swing is one of the best, but whether that made it better than Qt in his opinion, I have no idea. Regardless, I did find Swing to be pretty okay when I used it. |
16:30 | <&ToxicFrog> | I would recommend Tk over any of those; it doesn't scale well, but it comes with python, is cross-platform and is pleasingly simple to use |
17:24 | | kourbou [kourbou@Nightstar-deqg8j.fbx.proxad.net] has joined #code |
17:26 | < abudhabi> | Remind me, in Java, do parameters hold references to the original objects, or are they copies? |
17:27 | <@celticminstrel> | References. |
17:27 | <@celticminstrel> | Unless it's a primitive type. |
17:27 | < abudhabi> | 'Course. |
17:28 | <@celticminstrel> | If you want a copy, you use clone(). |
17:28 | <@celticminstrel> | Assuming the object has implemented it. |
17:28 | < abudhabi> | Nah, references is what I want. |
17:39 | < abudhabi> | What's really the difference between "new ArrayList<>()" and "Collections.EMPTY_LIST"? |
17:46 | | catalyst [catalyst@Nightstar-bt5k4h.81.in-addr.arpa] has joined #code |
17:46 | | catadroid [catalyst@Nightstar-8374fe.dab.02.net] has quit [[NS] Quit: Bye] |
18:05 | <@celticminstrel> | The latter is probably immutable. |
18:05 | <@celticminstrel> | I don't know for sure. |
18:29 | | * McMartin swears in a heartfelt manner at this library code |
18:29 | <&McMartin> | It was responsible for LLDB exploding |
18:30 | <&McMartin> | It is also responsible for a memory corruption bug that occurs if and only if I swap a certain vector for a list |
18:30 | <&ToxicFrog> | lldb? |
18:30 | <&McMartin> | Unless I refer to it via std::shared_ptr instead of std::unique_ptr |
18:30 | <&McMartin> | *unless* I create the std::shared_ptr in any way other than std::make_shared, in which case it's heap corruption city once again. |
18:30 | <&McMartin> | lldb: the llvm debugger. |
18:31 | <&ToxicFrog> | Aah |
18:31 | <&McMartin> | The bug there is that it's using some horrific URL library whose symbols are literally 2+ KB long, and in attempting to parse the symbols, LLDB was blowing out its stack. |
18:32 | <&McMartin> | Also, re: backscroll: I too concur that Qt is the least spiderful native-style GUI library I have ever used. |
18:32 | <&McMartin> | Qt4 specifically. Qt5 is kind of a nightmare to actually *deploy*. |
18:37 | < abudhabi> | Hm. I have a periodic updater kind of object, which resides inside of a frame class. I need to be able to execute a call of the frame's method. Should I just give the periodic updater a reference to its parent? |
18:39 | <@celticminstrel> | What's latest Qt version then? |
18:39 | <&ToxicFrog> | celticminstrel: 5. |
18:39 | | gnolam is now known as TwoWrongs |
18:41 | | ToxicFrog is now known as CollectorOfTheBits |
18:41 | < abudhabi> | Are you two roleplaying? |
18:42 | | TwoWrongs is now known as gnolam |
18:44 | <&CollectorOfTheBits> | abudhabi: we are participating in a wedding ceremony elsechannel. |
18:46 | < abudhabi> | LARPing, gotcha. |
18:46 | <&CollectorOfTheBits> | Doesn't LARPing involve meat, by definition? |
18:46 | < abudhabi> | :V |
18:47 | <@celticminstrel> | It's not in the name, but I have the same impression. |
18:49 | | catalyst is now known as EaselOfTheImpurities |
18:50 | | jeroud is now known as TemporalAdjudicationMinister |
18:59 | <&McMartin> | Aaaah, you idiots |
18:59 | <&McMartin> | Why are you giving your value class auto_ptr semantics and then not mentioning that anywhere in your documentation or comments |
18:59 | <&McMartin> | Actually, it's worse than that |
18:59 | <&McMartin> | a = b is actually a.swap(b) |
18:59 | <&Derakon> | ...so "a = b" is equivalent to "b = a"? |
18:59 | <&Derakon> | :psyduck: |
19:00 | <&McMartin> | OK, that's *probably* why this code has been going berzerk in implausible ways |
19:00 | | * McMartin imprisons them in a cage of std::unique_ptr. |
19:00 | | * McMartin also adds a large stanza of comments that begins with // **** HIC SUNT DRACONES **** |
19:01 | <&Derakon> | How many of your coworkers speak Latin? |
19:01 | | abudhabi is now known as Wulfric |
19:01 | | * McMartin *then* files an issue request that boils down to "get us the fuck off this library, what the fuck" |
19:01 | <&Derakon> | I wish I could do that for our project. :( |
19:01 | <&McMartin> | There are at least three ASCII-art dragons in the codebase already |
19:01 | <&McMartin> | They'll read enough Latin to recognize "dracones" |
19:02 | <@celticminstrel> | XD What |
19:02 | <&McMartin> | They mark sections of code where terrible hacks are used in order to interoperate with broken external systems. |
19:03 | <&Derakon> | "Here there be dragons". |
19:03 | <&McMartin> | Which are usually, like, S3, and thus outside of our controls. |
19:03 | <&Derakon> | A.k.a. "you have to modify this? Oh you poor bastard" |
19:03 | <&McMartin> | These chunks of code are marked with dragons |
19:03 | <&McMartin> | Actually, it's "hey, you *might* have to modify this and this code seems arbitrary, weird, and possibly Obviously Formally Wrong. Here's why you have to do it at time of writing. Subject to change at literally any time, glhf" |
19:03 | <@celticminstrel> | The what was more at the idiotic thing the library did, but the dragons are amusing too. |
19:04 | <&McMartin> | So, public service announcement |
19:04 | <&McMartin> | If you are doing networked operations in C++ |
19:04 | <&McMartin> | stay the fuck away from cpp-netlib, aka boost::network |
19:04 | <&McMartin> | I don't know what the fuck, but what the fuck |
19:04 | | * McMartin is profanity-y this morning. |
19:05 | <@celticminstrel> | I'm assuming this has nothing to do with Boost.Asio? |
19:06 | <@celticminstrel> | Because that's what I was intending to use for networking at some point. |
19:06 | <&McMartin> | boost::asio is now relatively mature. |
19:06 | <&McMartin> | boost::network/cpp-netlib is built on top of boost::asio. |
19:06 | <@celticminstrel> | Ah. |
19:07 | <&McMartin> | boost::asio also does stuff that C++11/C++14's promise/future system does not; in my work here I've found them almost totally orthogonal. |
19:07 | <@celticminstrel> | I'm not quite sure how promise/future ties to networking. |
19:07 | <&McMartin> | It turns out it doesn't! |
19:08 | <@celticminstrel> | I usually associate it with multithreading. |
19:08 | <@celticminstrel> | Ah. |
19:08 | <&McMartin> | It's reasonable to have a promise/future-like system that said "do this asynchronous I/O operation and return a future that completes when the async I/O does", though. |
19:08 | <@celticminstrel> | I guess that makes sense. |
19:08 | | EaselOfTheImpurities is now known as ParadoxIncarnate |
19:09 | <&McMartin> | In fact I am *rather fond* of that setup and built a tiny wrapper around boost::asio to do exactly that, though they are not using std::futures to do so. |
19:09 | <&McMartin> | C++17 will make futures then-able (that is, let you string them together as asynchronous events in their own right), which is what I *really* need here. |
19:09 | <&Derakon> | I should probably at some point read up on futures. |
19:09 | <&McMartin> | A warning! |
19:10 | <@celticminstrel> | I'm not even sure what that means. |
19:10 | <&McMartin> | There are like five things that people call "futures" |
19:10 | <&Derakon> | They're one of those newfangled things that went mainstream after I stopped doing serious C++ development. |
19:10 | <&McMartin> | Most people mean what JS means by it, not what C++ means. |
19:10 | <&McMartin> | By default, I usually mean what Clojure means, which is something entirely different! |
19:10 | <&Derakon> | Hooray. |
19:10 | <@celticminstrel> | So helpful. |
19:11 | <@celticminstrel> | I think the only place I actually encountered futures was Java. |
19:11 | <&McMartin> | Java's "futures" are very close to C#'s tasks, with a side of C#'s TaskCompletionSource, which is *like* a promise but it looks like a future. |
19:11 | <&McMartin> | Er, JavaScript's. |
19:11 | <&McMartin> | Java's, too, but then it has, IIRC, CompletableFuture, which is like the TaskCompletionSource? |
19:11 | | ParadoxIncarnate is now known as EmitterOfFestivities |
19:13 | <&McMartin> | The basic idea is that it's either a function running Somewhere Else or a receptacle that will, thanks to stuff running Somewhere Else, have a data value deposited in it |
19:13 | <&McMartin> | in the future, hence the name. |
19:13 | <@celticminstrel> | So all of them share that much in common? |
19:13 | <@celticminstrel> | Or just Java's and JS's? |
19:13 | <&McMartin> | Yeah. Depending on what they mean by future, you either can do a blocking wait on it to get the value out (returned by the function, or deposited - the deposition usually happens via a 'promise') |
19:14 | <&McMartin> | ... or you can set up a chain of these things so that once a value is available, another function is called Somewhere Else as well. |
19:14 | <&McMartin> | JS does the latter, and it tends to built around a complete event-based engine that you don't intervene in. |
19:14 | <&McMartin> | Which is why its one is so different looking from C++'s, which is built around promises and threads. |
19:15 | <&McMartin> | Delivering a value to a promise can simply queue the reaction functions in your asynchronous event loop, though, if it's written that way (and I assume that's how JS works, what with JS being single-threaded) |
19:15 | <&Derakon> | Wait, JS doesn't have threads at all? |
19:16 | <&McMartin> | Correct; it's based entirely on event handlers. |
19:16 | <&Derakon> | Man. |
19:16 | <&McMartin> | Anyway |
19:16 | | VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has quit [[NS] Quit: Leaving] |
19:16 | <&McMartin> | The reason futures are awesome is because they are totally agnostic to the thread model of the environment you're running in - there's a reason I was saying "Somewhere Else" instead of "in a thread"... |
19:17 | <&McMartin> | ... and also because you're passing values via messages in one-shot units, which ends up making a lot of synchronization bullshit evaporate completely. |
19:17 | <&McMartin> | If your functions aren't modifying shared global state, it makes *all* synchronization evaporate completely within the events. |
19:17 | <&McMartin> | Given that thread programming has been a 30-year shitshow, that is, as they say, Pretty Boss |
19:19 | <&Derakon> | Nifty. |
19:19 | <&Derakon> | I think I'd need to read some examples to really come to terms with it though. |
19:19 | | VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has joined #code |
19:21 | <&McMartin> | Yeah |
19:21 | <&McMartin> | And that's where the divergence really hits. |
19:21 | <&McMartin> | Aha, yes |
19:21 | <&McMartin> | Java 8 added this stuff in java.util.concurrent |
19:21 | <&McMartin> | That would probably be the variant you want. |
19:22 | <@celticminstrel> | I definitely recall futures being in Java 7 or maybe 6. |
19:22 | <&Derakon> | We're still stuck on Java 6. |
19:22 | <@celticminstrel> | Or something like it. Can't quite remember. |
19:22 | <&Derakon> | But ISTR seeing futures mentioned in some bit of code a former coworker wrote. |
19:22 | <&McMartin> | Yeah, Futures are in as of 1.5 |
19:23 | <&McMartin> | CompletableFutures, which are more like Promises, are new in 8. |
19:23 | <@celticminstrel> | Ahh. |
19:23 | <&Derakon> | He was the kind of person who incorporated odd language features into what he was working on even if they were entirely inappropriate. Thus we have a key piece of our program written in completely inscrutable Clojure. |
19:23 | <@celticminstrel> | I forget if std::future is in C++11. |
19:23 | <&McMartin> | It is. |
19:23 | <&McMartin> | As is std::promise. |
19:23 | | CollectorOfTheBits is now known as ToxicFrog |
19:23 | <&McMartin> | However, their semantics are extremely limited compared to Java 8, or C#, or even JS. |
19:24 | <&McMartin> | There are plans to close that gap in C++17. |
19:24 | | TemporalAdjudicationMinister is now known as jeroud |
19:41 | | EmitterOfFestivities is now known as catalyst |
19:49 | | Meatyhandbag [sebastianfe@Nightstar-ram.3qf.224.136.IP] has quit [Client exited] |
20:00 | | kourbou [kourbou@Nightstar-deqg8j.fbx.proxad.net] has quit [[NS] Quit: Iām not a psychopath. Iām a high-functioning sociopath. Do your research.] |
20:18 | | * celticminstrel wants to write contributing guidelines for OBoE, but isn't quite sure how to start. |
20:34 | | wowaname [h@wowana.me] has quit [Ping timeout: 121 seconds] |
20:35 | | wowaname [h@wowana.me] has joined #code |
20:59 | | Meatyhandbag [sebastianfe@Nightstar-ram.3qf.224.136.IP] has joined #code |
21:19 | | thalass [thalass@Nightstar-283.o7s.158.104.IP] has joined #code |
21:19 | | mode/#code [+o thalass] by ChanServ |
21:33 | | Reiv [NSwebIRC@Nightstar-q8avec.kinect.net.nz] has joined #code |
21:33 | | mode/#code [+o Reiv] by ChanServ |
21:58 | | thalass [thalass@Nightstar-283.o7s.158.104.IP] has quit [Ping timeout: 121 seconds] |
22:07 | | thalass [thalass@Nightstar-283.o7s.158.104.IP] has joined #code |
22:07 | | mode/#code [+o thalass] by ChanServ |
22:12 | | Kindamoody|afk is now known as Kindamoody |
22:27 | | mac [macdjord@Nightstar-ahbhn1.cable.rogers.com] has quit [[NS] Quit: Remeber, you two, be smart. And if you can't be smart, be safe. And if you can't be safe, /name it after me/.] |
22:29 | | gnolam_ [lenin@Nightstar-t1tbf0.cust.bahnhof.se] has joined #code |
22:29 | | gnolam [lenin@Nightstar-t1tbf0.cust.bahnhof.se] has quit [NickServ (RECOVER command used by gnolam_)] |
22:29 | | gnolam_ is now known as gnolam |
22:29 | | mode/#code [+o gnolam] by ChanServ |
22:34 | | Kindamoody is now known as Kindamoody[zZz] |
22:39 | | Wulfric is now known as abudhabi |
22:47 | | thalass [thalass@Nightstar-283.o7s.158.104.IP] has quit [Ping timeout: 121 seconds] |
23:14 | | catalyst [catalyst@Nightstar-bt5k4h.81.in-addr.arpa] has quit [[NS] Quit: ] |
23:22 | | catadroid [catalyst@Nightstar-1lvohp.dab.02.net] has joined #code |
23:57 | | Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has joined #code |
23:57 | | mode/#code [+qo Vornicus Vornicus] by ChanServ |
--- Log closed Wed Oct 14 00:00:02 2015 |