code logs -> 2015 -> Wed, 10 Jun 2015< code.20150609.log - code.20150611.log >
--- Log opened Wed Jun 10 00:00:35 2015
00:02 abudhabi [abudhabi@Nightstar-7nkq9k.de] has joined #code
00:24 catadroid [catalyst@Nightstar-rh3.dag.151.95.IP] has quit [Ping timeout: 121 seconds]
00:27 Derakon[AFK] is now known as Derakon
00:37 catadroid [catalyst@Nightstar-iqvfvj.dab.02.net] has joined #code
01:23 macdjord is now known as macdjord|fude
01:31 Vash [Vash@Nightstar-uhn82m.ct.comcast.net] has joined #code
01:31 mode/#code [+o Vash] by ChanServ
01:51 himi [fow035@Nightstar-dm0.2ni.203.150.IP] has joined #code
01:51 mode/#code [+o himi] by ChanServ
03:04 VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has quit [Connection closed]
03:33 thalass [thalass@Nightstar-unv.ss5.114.24.IP] has quit [Connection closed]
03:56 macdjord|fude is now known as macdjord
04:01 macdjord [macdjord@Nightstar-r9vt2h.mc.videotron.ca] has quit [[NS] Quit: *tap,]
04:18 macdjord [macdjord@Nightstar-r9vt2h.mc.videotron.ca] has joined #code
04:18 mode/#code [+o macdjord] by ChanServ
05:07 Tarinaky [tarinaky@Nightstar-e99cts.net] has quit [Ping timeout: 121 seconds]
05:10 Derakon is now known as Derakon[AFK]
05:12 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has quit [[NS] Quit: Leaving]
05:16 celticminstrel [celticminst@Nightstar-uelp1m.dsl.bell.ca] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!]
05:57 Checkmate [Z@Nightstar-pdi1tp.customer.tdc.net] has quit [Ping timeout: 121 seconds]
06:18 Kindamoody[zZz] is now known as Kindamoody
06:53 catadroid` [catalyst@Nightstar-9nnm31.dab.02.net] has joined #code
06:55 catadroid [catalyst@Nightstar-iqvfvj.dab.02.net] has quit [Ping timeout: 121 seconds]
07:14 Checkmate [Z@Nightstar-484uip.cust.comxnet.dk] has joined #code
07:14 mode/#code [+o Checkmate] by ChanServ
07:40 catadroid` is now known as catadroid
08:00 catadroid is now known as cat
08:16 himi [fow035@Nightstar-dm0.2ni.203.150.IP] has quit [Ping timeout: 121 seconds]
08:34 Vash [Vash@Nightstar-uhn82m.ct.comcast.net] has quit [Connection closed]
08:48 macdjord is now known as macdjord|slep
09:13 Kindamoody is now known as Kindamoody|afk
10:12
< cat>
garbage collectors have a lot to answer for
10:12
< cat>
the messiness of object lifetimes in basically every language other than C++ annoys me greatly
10:27 VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has joined #code
10:35 tarinaky [tarinaky@Nightstar-e99cts.net] has joined #code
10:35 mode/#code [+o tarinaky] by ChanServ
10:39 himi [fow035@Nightstar-v37cpe.internode.on.net] has joined #code
10:40 mode/#code [+o himi] by ChanServ
10:56 Orth is now known as Reivles
11:31 cat [catalyst@Nightstar-9nnm31.dab.02.net] has quit [A TLS packet with unexpected length was received.]
11:32 catadroid [catalyst@Nightstar-9vgm9k.dab.02.net] has joined #code
12:02 catadroid [catalyst@Nightstar-9vgm9k.dab.02.net] has quit [[NS] Quit: Bye]
12:02 catadroid [catalyst@Nightstar-9nnm31.dab.02.net] has joined #code
13:24 catadroid` [catalyst@Nightstar-fls2gk.dab.02.net] has joined #code
13:27 catadroid [catalyst@Nightstar-9nnm31.dab.02.net] has quit [Ping timeout: 121 seconds]
13:36
<@tarinaky>
Apple fact: Steve Jobs invented not only the mp3 player, the desktop OS and smartphones but he also invented the Marconigraph.
13:43 gnolam [lenin@Nightstar-t1tbf0.cust.bahnhof.se] has joined #code
13:43 mode/#code [+o gnolam] by ChanServ
13:47
<@gnolam>
https://twitter.com/eviltrout/status/608292681341665281/photo/1
13:57 catadroid` is now known as catadroid
14:03 celticminstrel [celticminst@Nightstar-uelp1m.dsl.bell.ca] has joined #code
14:04 mode/#code [+o celticminstrel] by ChanServ
15:29 tarinaky is now known as Tarinaky
16:40
< catadroid>
so before I was writing into memory that I only knew the type of through context
16:40
< catadroid>
now I'm writing into memory that's polymorphic based on the context and I don't know the context yet
16:40
< catadroid>
which could be interesting
16:41 * catadroid puts on her hat and monocle and goes adventuring
16:41
<@gnolam>
And when you gaze long into a void*, the void * also gazes into you.
16:53 Checkmate [Z@Nightstar-484uip.cust.comxnet.dk] has quit [Ping timeout: 121 seconds]
16:57
< catadroid>
yes
16:57
< catadroid>
can confirm I am now made of stars
16:58 kourbou [kourbou@Nightstar-deqg8j.fbx.proxad.net] has joined #code
17:15
<@froztbyte>
catadroid: writing C?
17:15
<@froztbyte>
oh C++
17:15
<@froztbyte>
don't do that
17:15
<@froztbyte>
it's bad for your health
17:15
<@froztbyte>
also stop being ridiculous, GCs are way better a solution than pretty much anything most people would come up with :P
17:16 Checkmate [Z@Nightstar-ev6.6um.94.83.IP] has joined #code
17:16 mode/#code [+o Checkmate] by ChanServ
17:25
< catadroid>
GCs are arguably fine for memory, it's a shame that not all system resources are memory
17:27
<@froztbyte>
catadroid: I'm not sure I understand; what do you mean?
17:30
< catadroid>
when I want to handle a file in C++ seamlessly I can handle it's closing via a destructor and know the lifetime of the object implicitly. In, say, C# I have to either trust the GC to clean it up promptly or tidy it up explicitly, either via using, or finally, or whatever. but there are no implicit options
17:31
< catadroid>
I'm not saying that either language is flawless, I just feel that managed languages have hamstrung themselves when it comes to object lifetimes because of how much they care about gc
17:31
<@froztbyte>
okay but why is this something you care about?
17:32
<@froztbyte>
in C++, you basically have no other option /but/ to handle it explicitly, so in C# the distinction is one of "I have extra features and I feel that this is inconvenient", which makes no real sense to me
17:32
<@froztbyte>
if you need to write code that closes a filehandle, then you write code that does that
17:32
< catadroid>
that's not what I said
17:32
<@froztbyte>
catadroid: that's what I'm getting from it, though
17:33
< catadroid>
In C++ I have an object that, because of how destructors and object lifetime are defined, lets me stop using the resource the moment the program logic is done with it
17:33
<@froztbyte>
so?
17:33
<@froztbyte>
I'm trying to understand why that's a reference point for you
17:33
<@froztbyte>
why is that a thing that concerns you?
17:33
< catadroid>
in C# I can't do that because ending a scope doesn't destroy the object
17:33
< catadroid>
because I could write a lot neater and more correct code if it did
17:34
< catadroid>
with fewer associated bugs by design
17:34
<@froztbyte>
(I'm not saying that there aren't valid reasons, but they're also quite particular)
17:34
<@froztbyte>
catadroid: eh.
17:34
<@froztbyte>
provide some examples please
17:36
<@froztbyte>
I'll provide you a counter-example: fun little libevent fork() bug that would, in a clone() env for threads, end up with mismatched FD tables due to normal-ish stuff (log rotation, clients connecting/disconnecting) happening. one such mismatch would cause a teardown in the main listening socket, and a totally clean shutdown due to ENOENT on read
17:36
< catadroid>
I have a class that hooks itself up to a global callback and needs to unsubscribe when it's destroyed. In C++ I could stick that in the destructor and be guaranteed that it'll run at the correct time. Since it did not, I needed to find the place in code that these objects are logically destroyed
17:36
<@froztbyte>
(also, only in daemonized mode, because ?????)
17:36
< catadroid>
This took me several because of the design of the system
17:36
< catadroid>
hours*
17:37
< catadroid>
I'm unsure what your example demonstrates
17:37
<@froztbyte>
okay, so it sounds like your system is designed around the specific nuances available in hand-managed memory systems?
17:37
<@froztbyte>
whereas in other systems that approach is probably one that someone would go "eww, wtf?"
17:38
<@froztbyte>
catadroid: that even in reasonably well-written and well-structured code, "stupid C/C++ bullshit" fucks up your day
17:38
<@froztbyte>
this was *even better* because it could only fail in one environment
17:38
<@froztbyte>
as near as I can tell, it is something around clockrate and cores available
17:38
<@froztbyte>
I couldn't make it fail on any of 5 other environments
17:39
< catadroid>
I can simplify my problem to 'I would like a syntactic construct in managed languages when an object goes out of scope'
17:39
<@froztbyte>
that's an available thing in many of the ones I've dealt with, though
17:39
<@froztbyte>
sometimes by fucking around with language semantics, sometimes provided straight-up in the toolset you might be using
17:39
< catadroid>
it's not a common idiom in any that I've used professionally
17:40
<@froztbyte>
I'm left wondering if "when an object goes out of scope" is the right phrasing/want there
17:40
<@froztbyte>
since that's determined by whatever operational sematics the language has on cleaning things up
17:41
<@froztbyte>
arguably you want "I want teardown to happen at the right point in the lifecycle of things I'm doing"?
17:41
< catadroid>
I feel a bit like you're trying to belittle me when I just want to complain that destructors are a very useful tool that mainstream managed languages don't provide
17:41
<@froztbyte>
you're talking shit though
17:41
<@froztbyte>
python, ruby, C#, etc
17:41
<@froztbyte>
all have destructores
17:41
<@froztbyte>
destructors*
17:41
<@froztbyte>
what I'm saying is that it sounds like you're trying to solve the problem in a way that isn't suited for the language
17:42
< catadroid>
and I'm saying that my problem is that I feel that the design of the language in question has been negatively affected by the idea that all complex objects be garbage collected.
17:44
< catadroid>
you've made loads of assumptions about my general skil level and experience and are talking down to me
17:44
< catadroid>
that's uncool
17:44
<@froztbyte>
well, I didn't mean to
17:44
<@froztbyte>
you literally sound like you're outright unaware of things like destructors in things like python and such
17:44
<@froztbyte>
and/or are ignoring them for some reason
17:45
<@froztbyte>
either case leaves me with question marks
17:45
<@froztbyte>
catadroid: I may sometimes communicate brashly, please don't be afraid to poke me with a stick if you feel I'm being a dick.
17:46 * froztbyte can't always tell
17:46
< catadroid>
python and C# have finalizers, which are fundamentally different from destructors because they're dictated by when the gc runs NOT by your code logic. You can make them run at the right time by wrapping the blocks in with or using statements
17:47
< catadroid>
but destructors are run implicitly and those require explicit code to be written when used
17:47
< catadroid>
which means more code which means more bugs
17:47
< catadroid>
in C++ (but not C) I can therefore use destructors to remove an entire class of bugs
17:48
< catadroid>
whereas finalizers don't run at the right time so I can't use them to solve the same problem.
17:48
<@froztbyte>
catadroid: yes, I'm aware of the differences. I'm seriously not really getting where you draw the correlation of "there will definitely be more bugs"
17:49
<@froztbyte>
I'm very much getting the impression that you're trying to 1:1 the approach taken, which is pretty much impossible (and, to some level, probably the wrong thing to want to do)
17:50
<@froztbyte>
different implementations carry different approaches, and I get the impression that you obviously you know this, so I'm not sure why you'd want the same approach in either scenario
17:50
<@froztbyte>
(that's the part that confuses me)
17:53
< ToxicFrog>
froztbyte: if you forget the 'with', your code will still compile and run but now you have a very exciting potential issue where your resource may or may not be cleaned up promptly depending on the exact behaviour of the GC.
17:53
< ToxicFrog>
This is kind of hard to test for and very hard to debug when it happens unexpectedly.
17:56
<@froztbyte>
as a prime hater of file races, commonly seen in things that rotate badly, I'm not going to argue that I think it's the stupidest shit ever
17:56
< catadroid>
and yes I wish I could have refcount support in the language to help me write cleaner code, but I don't have those features and that's why I'm complaining
17:57
< catadroid>
so of course I can't solve it the same way in those languages, it would just be nice to be able to because I think it's a superior idiom.
17:59
< kourbou>
Is this a joke? http://blogs.nvidia.com/blog/2015/06/09/gpu-powered-june-oven/
18:00
< kourbou>
I'm actually confused.
18:02
<@Tamber>
I was half-expecting "GPU-powered" to be a "our cards run so hot, you can actually cook your dinner on them" joke.
18:02
< kourbou>
Yeah I was too.
18:02
< kourbou>
But now I think they could be serious. >.>
18:03
<@ErikMesoy>
http://www.wired.com/2015/06/june-oven/ It does not appear to be a joke.
18:03
<@Tamber>
Maybe it was an AFJ that someone took seriously.
18:05
< kourbou>
wow
18:05
< kourbou>
NVidia is the next Intel. o.o
18:06
<@ErikMesoy>
It seems like an interesting application of the 80/20 rule. Once you get the oven camera to recognize and properly cook pizza, steak and cookies, you've got a use case. Then you add marginal extras. :P
18:27 catadroid` [catalyst@Nightstar-gs8o1d.dab.02.net] has joined #code
18:27 catadroid [catalyst@Nightstar-fls2gk.dab.02.net] has quit [A TLS packet with unexpected length was received.]
18:28 catadroid [catalyst@Nightstar-gs8o1d.dab.02.net] has joined #code
18:28 catadroid` [catalyst@Nightstar-gs8o1d.dab.02.net] has quit [A TLS packet with unexpected length was received.]
18:31 macdjord|slep is now known as macdjord|wurk
18:33 kourbou is now known as kourbou|foodz
18:34 catadroid [catalyst@Nightstar-gs8o1d.dab.02.net] has quit [A TLS packet with unexpected length was received.]
18:34 catadroid [catalyst@Nightstar-fls2gk.dab.02.net] has joined #code
18:43 catadroid` [catalyst@Nightstar-gs8o1d.dab.02.net] has joined #code
18:43 catadroid [catalyst@Nightstar-fls2gk.dab.02.net] has quit [A TLS packet with unexpected length was received.]
18:44 catadroid [catalyst@Nightstar-gs8o1d.dab.02.net] has joined #code
18:44 catadroid` [catalyst@Nightstar-gs8o1d.dab.02.net] has quit [A TLS packet with unexpected length was received.]
18:57 catadroid` [catalyst@Nightstar-pie2mk.dab.02.net] has joined #code
18:57 catadroid [catalyst@Nightstar-gs8o1d.dab.02.net] has quit [A TLS packet with unexpected length was received.]
19:12 catadroid [catalyst@Nightstar-pie2mk.dab.02.net] has joined #code
19:14 catadroid` [catalyst@Nightstar-pie2mk.dab.02.net] has quit [Ping timeout: 121 seconds]
19:19 kourbou|foodz is now known as kourbou
19:25 catadroid [catalyst@Nightstar-pie2mk.dab.02.net] has quit [Ping timeout: 121 seconds]
19:48 catalyst [catalyst@Nightstar-bt5k4h.81.in-addr.arpa] has joined #code
19:57 Vash [Vash@Nightstar-uhn82m.ct.comcast.net] has joined #code
19:57 mode/#code [+o Vash] by ChanServ
20:38 kourbou [kourbou@Nightstar-deqg8j.fbx.proxad.net] has quit [[NS] Quit: Tip about keeping secrets: It's easier if you don't know them.]
21:20 Checkmate [Z@Nightstar-ev6.6um.94.83.IP] has quit [Ping timeout: 121 seconds]
21:59 Kindamoody|afk is now known as Kindamoody
22:10 Checkmate [Z@Nightstar-484uip.cust.comxnet.dk] has joined #code
22:10 mode/#code [+o Checkmate] by ChanServ
22:42 Kindamoody is now known as Kindamoody[zZz]
23:10 thalass [thalass@Nightstar-u1q.snj.114.24.IP] has joined #code
23:10 mode/#code [+o thalass] by ChanServ
23:43 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has joined #code
23:43 mode/#code [+qo Vornicus Vornicus] by ChanServ
--- Log closed Thu Jun 11 00:00:49 2015
code logs -> 2015 -> Wed, 10 Jun 2015< code.20150609.log - code.20150611.log >

[ Latest log file ]