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