code logs -> 2017 -> Mon, 24 Apr 2017< code.20170423.log - code.20170425.log >
--- Log opened Mon Apr 24 00:00:06 2017
00:29 Turaiel[Offline] is now known as Turaiel
00:54 Jessikat [Jessica@Nightstar-bt5k4h.81.in-addr.arpa] has quit [[NS] Quit: Leaving]
02:11
<~Vornicus>
example code of the day: def paint_it_black(thing_to_be_painted_black):
02:38
<@Azash>
Not red_door?
02:42
<~Vornicus>
No, because you can also paint, for instance, a line of cars
02:46 * Vornicus gnrks, apparently he doesn't know quite the right way to do a pull request on github
03:39 mac [macdjord@Nightstar-a1fj2k.mc.videotron.ca] has joined #code
03:39 mode/#code [+o mac] by ChanServ
03:41
<&ToxicFrog>
Vornicus: click "clone repo" on github to get a copy of it you own; make a branch for your changes; push it to the copy-on-github that you own
03:41
<&ToxicFrog>
Then go to the webpage for the original and it'll show you "recently pushed branches on your clones" or somesuch with a "create pull request" button
03:41 macdjord [macdjord@Nightstar-a1fj2k.mc.videotron.ca] has quit [Ping timeout: 121 seconds]
03:41
<&ToxicFrog>
(there are probably other ways to do it too but that's the one I know)
03:44
<~Vornicus>
yeah, I fucked it up the first time and ended up with my commits in master and that was wrong
03:48
<&ToxicFrog>
That's easy to fix at least
03:50
< RchrdB>
I assume you're probably already past this but fwiw, it's "fork repo" on github to make a copy under your github account
03:51
< RchrdB>
when you click the "clone" button in github's UI it hands you the URL for you to "git clone" the repo locally.
04:33 RchrdB [RchrdB@Nightstar-qe9.aug.187.81.IP] has quit [Ping timeout: 121 seconds]
04:44
<@himi>
I used to hate git
04:44 Turaiel is now known as Turaiel[Offline]
04:44
<@himi>
Mercurial is a much nicer to use tool
04:45
<@himi>
However, git is insanely powerful, and once you get past learning how to use it I guess the stockholm syndrome sets in and it seems nice
04:47
<&[R]>
(Actually curious) How is hg nicer/
04:48
<@himi>
. . . I honestly can't remember, since I've now been acclimatised to git for years . . .
04:48
<&[R]>
I'm also curious about Bazaar, though I suspect there's a reason it's not popular.
04:49
<@himi>
Mostly it's a simpler conceptual model, I think, though to support features made popular by git it's grown warts that make it feel more like git
04:51
<@himi>
The underlying logic of git is quite different to things like mercurial or bazaar, and experience has shown that git's model works really well for really large scale projects without causing problems for small scale projects
05:02 Derakon is now known as Derakon[AFK]
05:04 * Azash retches at bzr
05:12 Syloq [Syloq@NetworkAdministrator.Nightstar.Net] has quit [Connection closed]
05:13 Syloq [Syloq@NetworkAdministrator.Nightstar.Net] has joined #code
05:13 mode/#code [+o Syloq] by ChanServ
05:14
<&[R]>
Azash: what are the issues with it?
05:18 Jessikat [Jessikat@Nightstar-jor.bmi.132.82.IP] has joined #code
05:20 Syloq [Syloq@NetworkAdministrator.Nightstar.Net] has quit [Connection closed]
05:21
<@Azash>
[R]: To be fair, I can't remember the details of the issues I had (back in.. 2014), and it might have been a lot of PEBKAC as well. I used it when I was working on some openERP (now known as Odoo) plugins and such, and my experience back then was mostly that it felt like it worked counter-intuitively, would often encounter some new problem when trying to fetch things, and also gave the impression of being agonizingly slow
05:21
<&[R]>
Fair enough
05:21 Syloq [Syloq@NetworkAdministrator.Nightstar.Net] has joined #code
05:21 mode/#code [+o Syloq] by ChanServ
06:20 Vornotron [Vorn@ServerAdministrator.Nightstar.Net] has joined #code
06:21 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has quit [Operation timed out]
06:35 celticminstrel is now known as celmin|sleep
07:24 Kindamoody[zZz] is now known as Kindamoody
08:19 Kindamoody is now known as Kindamoody|afk
08:58 Jessikat` [Jessikat@Nightstar-hfig8q.dab.02.net] has joined #code
08:59 Jessikat [Jessikat@Nightstar-jor.bmi.132.82.IP] has quit [Ping timeout: 121 seconds]
09:54 Vornotron [Vorn@ServerAdministrator.Nightstar.Net] has quit [Operation timed out]
10:35 Jessikat` is now known as Jessikat
13:01 celmin|sleep is now known as celticminstrel
13:48 RchrdB [RchrdB@Nightstar-qe9.aug.187.81.IP] has joined #code
13:54 * gnolam vomits bile over HTML and CSS.
13:54
<@gnolam>
Fuck it. I'll just use bloody frames. Seems to be the only viable alternative.
14:09
<@TheWatcher>
?
14:09
<@TheWatcher>
What're you doing?
14:10
<@gnolam>
Help files.
14:12
<@gnolam>
That need a navigation sidebar.
14:28
<@abudhabi>
And what's the problem with that?
14:28
<@abudhabi>
Unless you're doing static pages.
14:28
<@abudhabi>
In which case, my sympathies.
14:37
<@Namegduf>
Yeah for that you'd need one of the web frameworks oriented around generation of static pages.
14:37
<@Namegduf>
Where you make changes then sort of 'compile' to static.
15:15 * ErikMesoy has flashbacks of "Click here to break out of a frame" that must have been like a decade ago.
15:28 Jessikat` [Jessikat@Nightstar-5jn.159.132.82.IP] has joined #code
15:28
<@gnolam>
I have my source files in Markdown.
15:28
<&ToxicFrog>
It's definitely possible to do without frames but frames are probably the easiest way to implement it if you're doing it by hand
15:29
<&ToxicFrog>
(we have markdown-based documentation generators here that emit navigation sidebars)
15:31 Jessikat [Jessikat@Nightstar-hfig8q.dab.02.net] has quit [Ping timeout: 121 seconds]
15:31 * TheWatcher would just abuse Doxygen, frankly
15:31 * Jessikat` is fighting Doxygen right now
15:31
<@TheWatcher>
doxygen'll take flat .md files and generate navigation and stuff
15:31 Jessikat` is now known as Jessikat
16:05
<@celticminstrel>
I wonder if there's a term for when two superclasses provide the same function and you override it...
16:12
<&ToxicFrog>
"You are entering a world of pain"
16:19
< Jessikat>
Objectionable orientation
16:23
< Jessikat>
I am in the process of removing the last self-including container header file from our codebase
16:23
< Jessikat>
Thanks, C file inclusion model
16:29
< Jessikat>
(and whoever here thought that was a good plan)
16:31 Vornotron [Vorn@ServerAdministrator.Nightstar.Net] has joined #code
16:35
<@gnolam>
TheWatcher: oh?
16:36 PinkFreud [WhyNot@Pinkfreud.is.really.fuckin.lame.nightstar.net] has quit [Ping timeout: 121 seconds]
17:11
<@celticminstrel>
That's not a term. :P
17:24
<&McMartin>
celticminstrel: re: your incoming world of pain: this depends on whether your language system is doing tree-based inheritance or diamond-based inheritance, both of which are provably wrong, which is why C++ does both of them
17:24
<@celticminstrel>
XD
17:26
<&McMartin>
Jessikat: "Self-including container header file"?
17:28
< Jessikat>
#include <list> would include the list header file, which internally would #include <list> recursively
17:29
<&McMartin>
... which I guess doesn't explode because you're making different text each time thanks to surrounding #defines?
17:29
<&McMartin>
Or is this simply a matter of a set of top-level types that refer to one another and thus include each other's headers?
17:41 * Vornotron explodes in a shower of bling.
17:47 ion [Owner@Nightstar-rte.0r0.48.96.IP] has quit [Ping timeout: 121 seconds]
17:50
<&McMartin>
celticminstrel: It also occurs to me that it also depends on whether "the same function" means the actual same function, two different implementations of a the same part of the same interface, or two completely unrelated functions that happen to be spelled identically
17:50
<&McMartin>
C#, at least, handles the latter precisely through modest expansion of the namespacing syntax, while Java's core semantics burn down while insisting everything is fine
17:52
<&McMartin>
The first two can't be solved in the general case even outside of programming languages, as noted; if you hit this situation, your statement "I want to ______" is fundamentally either incomplete or unsound there
17:52
<&McMartin>
This is a the primary reason multiple inheritance is considered harmful by those who consider it harmful
17:53
<&McMartin>
Those who don't select any answer, standardize it in the language spec and say "this is what happens when you do this", and some fools will rely on it and proceed to complain about every other language in the universe Doing It Wrong
17:55
<@celticminstrel>
It's two unrelated classes that declare a function with the same name and signature, and another class inherits from both and overrides the function.
17:56
<&McMartin>
Right, as noted, that depends on the language
17:56
<&McMartin>
IIRC In C# that's a syntax error and you have to declare which of the two by qualifying the name with the superclass
17:56 * celticminstrel is generally in C++ unless otherwise specified.
17:56
<@celticminstrel>
Or sometimes JS, but in this case it was C++.
17:57
<&McMartin>
Then it depends on whether or not that function is listed as virtual, and if it is, I think it *also* then depends on whether or not inheritance is virtual, but I'm less confident of the latter without checking.
17:57
<&McMartin>
If it's *not* virtual then which function gets called depends on what you've been statically cast to at the time.
17:57
<@celticminstrel>
It's virtual, and each of the superclasses also has its own implementation.
17:58
<@celticminstrel>
Inheritance is not virtual, and I don't see why it would matter since the superclasses are not related.
18:01
<&McMartin>
Some quick testing suggests the answer is "when either superclass calls f(), C's implementation will be called"
18:02
<&McMartin>
This is pretty close to the Java "let the world burn while insisting this totally makes sense" answer.
18:04
<@ErikMesoy>
McMartin: What inheritance system is not provably wrong?
18:05
<&McMartin>
Single inheritance is much harder to get into a wildly inconsistent state.
18:05
<&McMartin>
Even while having various ways of actually *doing* it
18:07
<&McMartin>
I haven't seen serious attempts to break the semantics of object systems that don't attach behavior or state directly to objects, a la CLOS, so I'm less clear on those.
18:07
<&McMartin>
And of course everything is implementable in terms of everything else because at the end of the day you're running machine code somewhere.
18:08
<&McMartin>
But "this is what it means to inherit from something", "this is what it means to override something" and similar start falling over real hard real fast on this case.
18:09
<&McMartin>
Like, for cm's case, if A and B are both doing the strategy pattern thing, there's no reason to believe that they expect the same behavior from the overridden function, so in *some* context a function that is expected to behave a certain way will start flipping out.
18:09
<&McMartin>
You can handwave that one away a bit more easily than the diamond inheritance vs tree inheritance case, so it's not really as troublesome
18:10
<&McMartin>
If you have Ranger derives Archer, Musketeer, he needs *one* health bar but *two* ammo bars.
18:12
<&McMartin>
Which is to say, you don't want to model this with traditional inheritance, (and if you have to, you need to make sure each kind of ammo is named differently and then use diamond)
18:12
<&McMartin>
But what you actually do is do something that looks more like composition
18:14
<&McMartin>
Diamond inheritance is the incorrect answer when you're in a position where the parent superclasses end up seeing calls on the other parent's methods as corrupting the grandparent's state.
18:15
<@celticminstrel>
Technically you can get away with them being named the same (at least in C++). You just need to refer to them qualified in that case.
18:16 * celticminstrel wonders when that situation would happen with one parent corrupting the grandparent or whatever.
18:16
<&McMartin>
I think there's an example in the C++ book
18:17
<&McMartin>
But it involves the grandparent having private state and the parent assuming that it's the only one that can alter it.
18:17
<&McMartin>
And maintaining some kind of ancillary data on it.
18:18
<&McMartin>
And that can be changed by nonvirtual functions on the B side, so C doesn't necessarily have any say in keeping A notified
18:18
<&McMartin>
(for (c extends a, b; a and b each extend g)
18:19
<&McMartin>
IIRC cases where you need both each come up naturally in GUI implementations.
18:27 Kindamoody|afk is now known as Kindamoody
18:44 Jessikat` [Jessica@Nightstar-bt5k4h.81.in-addr.arpa] has joined #code
19:47
<&jeroud>
himi: I still get burned by hg's default conflict resolution behavior.
19:48
<&jeroud>
Which is that you spend an hour painstakingly resolving a conflict and the run "hg resolve" or whatever which throws away your work and attempts to use the same resolution mechanism that failed the first time.
19:49
<&jeroud>
When what you actually want is "hg resolve -m".
19:50
<&jeroud>
But the lack of a confirmation step for the destructive default is unforgivable.
20:36 PinkFreud [WhyNot@NetworkAdministrator.Nightstar.Net] has joined #code
20:36 mode/#code [+o PinkFreud] by ChanServ
21:05 Kindamoody is now known as Kindamoody|afk
21:58 Jessikat`` [Jessikat@Nightstar-ur3.equ.132.82.IP] has joined #code
22:01 Jessikat [Jessikat@Nightstar-5jn.159.132.82.IP] has quit [Ping timeout: 121 seconds]
22:29 gnolam_ [lenin@Nightstar-09nsce.cust.bahnhof.se] has joined #code
22:32 VirusJTG_ [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has joined #code
22:33 ErikMesoy1 [Bruker@Nightstar-hq72t5.customer.cdi.no] has joined #code
22:33 Netsplit Krikkit.Nightstar.Net <-> Traal.Nightstar.Net quits: @ErikMesoy, RchrdB, @iospace, sshine, Jessikat`, @Azash, @[R], @VirusJTG, @Reiv, @jeroud, (+2 more, use /NETSPLIT to show all of them)
22:33 gnolam [lenin@Nightstar-09nsce.cust.bahnhof.se] has quit [Ping timeout: 121 seconds]
22:33 ErikMesoy1 is now known as ErikMesoy
22:33 gnolam_ is now known as gnolam
22:33 mode/#code [+o ErikMesoy] by ChanServ
22:33 mode/#code [+o gnolam] by ChanServ
22:34 Jessikat [Jessica@Nightstar-bt5k4h.81.in-addr.arpa] has joined #code
22:35 [R] [rstamer@Nightstar-d7h8ki.org] has joined #code
22:35 mode/#code [+ao [R] [R]] by ChanServ
22:36 Pi [sid25146@Nightstar-ed0oqj.irccloud.com] has joined #code
22:36 mode/#code [+o Pi] by ChanServ
22:36 sshine [simon@Nightstar-c7dik3.monoid.co] has joined #code
22:37 Azash [Azash@wizard.engineering] has joined #code
22:37 mode/#code [+o Azash] by ChanServ
22:38 iospace [Alexandria@Nightstar-fkokc2.com] has joined #code
22:38 mode/#code [+o iospace] by ChanServ
22:38 jeroud [sid10043@Nightstar-7he56f.irccloud.com] has joined #code
22:38 mode/#code [+ao jeroud jeroud] by ChanServ
22:38 RchrdB [RchrdB@Nightstar-qe9.aug.187.81.IP] has joined #code
22:39 Madchen [Madchen@Nightstar-tn6m5r.com] has joined #code
22:56 * McMartin decides to write 35 lines of code rather than try to integrate boost into this test program.
23:40 Jessikat`` [Jessikat@Nightstar-ur3.equ.132.82.IP] has quit [[NS] Quit: Bye]
--- Log closed Tue Apr 25 00:00:07 2017
code logs -> 2017 -> Mon, 24 Apr 2017< code.20170423.log - code.20170425.log >

[ Latest log file ]