code logs -> 2015 -> Tue, 13 Oct 2015< code.20151012.log - code.20151014.log >
--- 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
code logs -> 2015 -> Tue, 13 Oct 2015< code.20151012.log - code.20151014.log >

[ Latest log file ]