--- Log opened Thu Jun 23 00:00:21 2016 |
00:27 | | thalass is now known as Thalass |
00:35 | | Shady [ShadyGuru@Nightstar-qfckjl.tv13.ptd.net] has joined #code |
01:02 | | crystalclaw is now known as crystalclaw|AFK |
01:06 | | Derakon[AFK] is now known as Derakon |
01:27 | | himi [sjjf@Nightstar-dm0.2ni.203.150.IP] has joined #code |
01:27 | | mode/#code [+o himi] by ChanServ |
02:07 | | * McMartin fiddles while he waits for everything to compile |
02:42 | | crystalclaw|AFK is now known as crystalclaw |
03:01 | | orth [orthianz@Nightstar-m7rd21.xtra.co.nz] has joined #code |
03:01 | | Turaiel[Offline] is now known as Turaiel |
03:13 | | Turaiel is now known as Turaiel[Offline] |
03:56 | | catadroid [catadroid@Nightstar-e0ar9i.dab.02.net] has quit [The TLS connection was non-properly terminated.] |
03:56 | | catadroid [catadroid@Nightstar-lp9.pbu.132.82.IP] has joined #code |
04:16 | | Shady [ShadyGuru@Nightstar-qfckjl.tv13.ptd.net] has quit [[NS] Quit: Yay, he's gone] |
04:16 | | Shady [ShadyGuru@Nightstar-qfckjl.tv13.ptd.net] has joined #code |
05:20 | | Derakon is now known as Derakon[AFK] |
05:34 | | catadroid` [catadroid@Nightstar-a24255.dab.02.net] has joined #code |
05:36 | | catadroid [catadroid@Nightstar-lp9.pbu.132.82.IP] has quit [Ping timeout: 121 seconds] |
05:40 | | Kindamoody[zZz] is now known as Kindamoody |
07:02 | | Reiv [NSwebIRC@Nightstar-q8avec.kinect.net.nz] has quit [Ping timeout: 121 seconds] |
07:09 | | catadroid` [catadroid@Nightstar-a24255.dab.02.net] has quit [[NS] Quit: Bye] |
07:09 | | catadroid [catadroid@Nightstar-a24255.dab.02.net] has joined #code |
07:12 | | Shady [ShadyGuru@Nightstar-qfckjl.tv13.ptd.net] has quit [[NS] Quit: Yay, he's gone] |
07:14 | | catadroid [catadroid@Nightstar-a24255.dab.02.net] has quit [The TLS connection was non-properly terminated.] |
07:14 | | catadroid [catadroid@Nightstar-a24255.dab.02.net] has joined #code |
07:16 | | crystalclaw is now known as crystalclaw|AFK |
07:28 | | celticminstrel is now known as celmin|sleep |
08:03 | | Kindamoody is now known as Kindamoody|afk |
08:18 | | catadroid [catadroid@Nightstar-a24255.dab.02.net] has quit [[NS] Quit: Bye] |
08:28 | | himi [sjjf@Nightstar-dm0.2ni.203.150.IP] has quit [Ping timeout: 121 seconds] |
10:01 | | catadroid [catadroid@Nightstar-a24255.dab.02.net] has joined #code |
10:02 | < catadroid> | I don't know what's worse - being tricked into using the JVM or being tricked into learning Lisp |
10:02 | <@TheWatcher> | The former. |
10:03 | <@TheWatcher> | But I say this as someone who has a deep and abiding hatred of java, so. |
10:04 | <@simon_> | catadroid, being tricked into using the JVM. learning Lisp is inevitable. |
10:05 | <@simon_> | catadroid, but somehow I get the impression you're being tricked into both simultaneously? |
10:06 | < catadroid> | Rich Hickey is a very persuasive guy |
10:07 | <@abudhabi> | I don't really get the Java hate. |
10:09 | <@TheWatcher> | catadroid: use the CLR or javascript engines for clojure instead?~ |
10:09 | <@simon_> | Edward Kmett has a wallet that says "Bad Monad Functor". |
10:10 | <@TheWatcher> | abudhabi: well, for a start: 3586 jenkins 20 0 41.112g 2.624g 28920 S 0.0 2.1 1:59.47 /opt/oracle-jdk-bin-1.8.0.92/bin/java...blabla... |
10:11 | <@TheWatcher> | Gerrit and sonarqube, both java web apps, follow that in the list, both with "g" suffixes on the VIRT and RES columns. |
10:12 | <@TheWatcher> | They are currently idle |
10:13 | <@TheWatcher> | You don't want to know what happens when people have the temerity to actually use them. |
10:13 | <@Tamber> | "32G and constantly swapping"? |
10:14 | <@abudhabi> | I get that Java has problems, but it's not the kinds of insane problems that stuff like PHP and JS have. Just bloat and candy. |
10:19 | <@TheWatcher> | Oh, PHP is worse than Java in many respects, sure - save that PHP tends not to have Java's pokemon approach to memory - and JS is made of spiders, but neither of those facts actually make me dislike java less. |
10:36 | <@gnolam> | <catadroid> Rich Hickey is a very persuasive guy |
10:36 | <@gnolam> | Softcore porn name alert! |
10:37 | <@TheWatcher> | snrk |
10:49 | <@ErikMesoy> | I thought pokemon approach was something you had to exceptions, not memory. |
10:49 | <~Vornicus> | a java program will grab lots of memory and never hand it back |
10:50 | <~Vornicus> | It then does its own management of memory and garbage on its own. I don't quite understand that aprt |
11:14 | | himi [sjjf@Nightstar-v37cpe.internode.on.net] has joined #code |
11:14 | | mode/#code [+o himi] by ChanServ |
11:23 | < catadroid> | I have a huge problem with teaching programmers Java as a first language |
11:23 | < catadroid> | It has terrible syntax and a reprehensibly bad standard library design |
11:24 | < catadroid> | Basically, it's no fun to write and encourages more and more loc as a solution |
11:39 | <@TheWatcher> | Your ideas are intriguing to me and I wish to subscribe to your newsletter. |
11:40 | <@gnolam> | It's better than teaching them BASIC.~ |
11:41 | < catadroid> | Is it? |
11:41 | <@ErikMesoy> | public static void main(string[] args) { Yes it is. } |
11:41 | | orth [orthianz@Nightstar-m7rd21.xtra.co.nz] has quit [[NS] Quit: Bye] |
11:42 | | * catadroid blink, blink. |
11:42 | | * catadroid fires up her flamethrower |
11:44 | <@ErikMesoy> | File under additional problems with teaching programmers Java as a first language: you chant "public static void main string args" so much that it feels like you're in the Adeptus Mechanicus, invoking the Sacred Rite To Propitiate The Machine-Spirit. |
11:50 | <@abudhabi> | That seems weak for an objection. |
11:50 | <@abudhabi> | It's not like you have to write that every time you write a class or function or whatever. |
12:02 | <@simon_> | nudge, nudge. |
12:03 | <@simon_> | "This is how you make your first Java program. By the way, explaining what all of these words mean is probably a side-track to learning basic programming." |
12:03 | <@ErikMesoy> | abudhabi: You have to write something like for every function. "static" usually gets dropped, but "public ReturnType MethodName(ArgumentType ArgumentName)" remains long and annoying. |
12:04 | | catadroid` [catadroid@Nightstar-r8cvq2.dab.02.net] has joined #code |
12:04 | <@simon_> | catadroid, is cata- from catamorphism? |
12:05 | <@simon_> | or is it cat + droid? |
12:05 | < catadroid`> | catalyst + droid |
12:05 | <@simon_> | ah |
12:06 | <@abudhabi> | ErikMesoy: I disagree. |
12:06 | <@abudhabi> | Every part of that string has meaning. |
12:06 | | catadroid [catadroid@Nightstar-a24255.dab.02.net] has quit [Ping timeout: 121 seconds] |
12:06 | <@abudhabi> | Nontrivial meaning, even. |
12:09 | <@simon_> | I don't think explicit method signatures are long and annoying. |
12:09 | <@simon_> | lack of decent type inference just makes everything slightly longer and slightly more annoying. |
12:12 | <@abudhabi> | This. |
12:13 | <@abudhabi> | Java is strongly typed. That it has what it needs to be strongly typed is not a Java-particular fault. |
12:16 | <@simon_> | strongly typed languages don't necessarily need explicit type annotations everywhere, I guess. |
12:19 | <@abudhabi> | And Java infers some, like with the diamond operator. |
12:25 | <@simon_> | yeah |
12:25 | <@simon_> | and C# infers some more with the 'var' thing. |
12:25 | <@simon_> | it's all good. |
12:25 | <@simon_> | I just wish it'd infer backwards, too. |
12:28 | < catadroid`> | C++ infers a lot more via auto now, which means C#'s limitations on var annoy me now :( |
12:30 | | * TheWatcher headdesks |
12:31 | <~Vornicus> | I haven't written any C++ lately but I suspect I can do utterly bonkers levels of things without specifying a single type |
12:33 | <@abudhabi> | C++ is less strongly typed than Java and stuff. |
12:34 | <@TheWatcher> | That's it, I'm going to stick the JireÄek quote on my door, it is time. |
12:35 | <~Vornicus> | ? |
12:35 | <@abudhabi> | âWe, the unwilling, led by the unknowing, are doing the impossible for the ungrateful. We have done so much, for so long, with so little, we are now qualified to do anything with nothing.â? |
12:36 | <@TheWatcher> | YEs. |
12:36 | <@TheWatcher> | That. |
12:37 | <@TheWatcher> | Possibly with extra emphasis on the "impossible for the ungrateful". |
12:39 | <@TheWatcher> | `# Given a course code, deduce the course unit level of the course.` |
12:39 | <@TheWatcher> | You'd think this would be easy! |
12:41 | <@TheWatcher> | Surely you can just infer it directly from the course code, right? Or there's a sensible look-up table somewhere? Or there's some reliable method that doesn't require routines written in ancient Enochian. |
12:41 | <@abudhabi> | What's a unit level? |
12:41 | <@TheWatcher> | Essentially, is it a first year course, a second year course, and so on. |
12:42 | <@TheWatcher> | And generally you can actually look at the course code and say what level it is. Except when you can't |
12:43 | < catadroid`> | what you want is a fine code, so you can look at a better granularity, which is likely to have the detail needed to make your conclusion easier |
12:43 | | catadroid` is now known as catadroid |
12:44 | <@TheWatcher> | catadroid: ... |
12:45 | <@TheWatcher> | I'd comment on that, but my language would be to coarse. |
12:45 | <@TheWatcher> | *too |
12:46 | | * Tamber puts a colander on catadroid's head. |
12:47 | <@abudhabi> | TheWatcher: What are the difficulties? |
13:07 | | Emmy [NSkiwiirc@Nightstar-41pbej.static.chello.nl] has joined #code |
13:07 | | mode/#code [+o Emmy] by ChanServ |
13:50 | | celmin|sleep is now known as celticminstrel |
14:45 | <@ErikMesoy> | Time for more troubles with Python Class Inheritance! |
14:45 | <@Emmy> | yaaaay |
14:45 | <@Emmy> | i on the other hand am wrestling access vba focus issues. :( |
14:52 | <@ErikMesoy> | Why is this class attribute not being inherited? http://pastebin.starforge.co.uk/710 |
15:00 | | Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has quit [Connection reset by peer] |
15:12 | <@abudhabi> | ErikMesoy: I think you should assign these in the initializer. |
15:12 | <@abudhabi> | Otherwise freaky things related to dynamic variables come into play. |
15:12 | <@abudhabi> | I remember reading about in in the dox, but did not quite understand. |
15:15 | | gnolam [lenin@Nightstar-t1tbf0.cust.bahnhof.se] has quit [[NS] Quit: Gone] |
15:17 | <@ErikMesoy> | But the initializer is trying to read *from* those. Putting them there would go against my purposes of letting subclasses just alter a few variables without having to repeat them all in init. |
15:30 | <@abudhabi> | Are you sure those aren't instance attributes? |
15:33 | <@ErikMesoy> | Yes. I can access them from outside the class without instantiating the class. |
15:47 | | Emmy [NSkiwiirc@Nightstar-41pbej.static.chello.nl] has quit [[NS] Quit: http://www.kiwiirc.com/ - A hand crafted IRC client] |
16:07 | | Shady [ShadyGuru@Nightstar-qfckjl.tv13.ptd.net] has joined #code |
16:36 | <@pjdelport> | ErikMesoy: You should probably not poke around in implementation internals like that unless you're very familiar with them; they probably won't do what you expect otherwise. |
16:36 | <@pjdelport> | ErikMesoy: In particular, __dict__ is for when you specifically want to intentionally bypass things like inheritance. |
16:37 | <@pjdelport> | You can just say self.a = self.attr_a |
16:37 | <@pjdelport> | Attribute lookups search class attributes after instance attributes. |
16:37 | <@pjdelport> | If you want to be really explicit about looking it up on the class only, you'd say self.a = type(self).attr_a |
16:39 | <@pjdelport> | As a rule of thumb, never poke around in __class__ or __dict__ |
16:39 | <@pjdelport> | There's almost never a reason to: 99% of goals you want to accomplish can be done both better and more simply. |
16:40 | <@ErikMesoy> | pjdelport: And how much of the time does the way to accomplish it better and more simply consist of posting poke-around code to inspire the "You're doing it wrong" reflex in a more experienced coder? ;-) |
16:41 | <@pjdelport> | One way of doing it. :) |
16:41 | <@ErikMesoy> | (Paraphrasing the old saw about getting tech support for Linux: post that it works on Windows. :p) |
16:43 | <@ErikMesoy> | pjdelport: More seriously, thanks. "self.a = self.attr_a" does what I want, and I did not expect that not only does attribute lookup search class attributes, it apparently even searches *parent* class attributes after that. |
16:43 | <@pjdelport> | Yeah, that's just normal Python lookup rules at work. |
16:44 | <@pjdelport> | Python's object system is really elegant and simple. You might be surprised to learn that it doesn't actually make any magic distinction between attributes and methods. |
16:44 | <@pjdelport> | A method is just a kind of attribute. :) |
16:44 | <@ErikMesoy> | Here I thought self. was basically the prefix for getting instance attributes. |
16:44 | <@pjdelport> | (that happens to be callable) |
16:45 | <@pjdelport> | In Python, self is just a plain object reference. |
16:45 | <@pjdelport> | It's not special like "this" is in many OO languages. |
16:47 | <@ErikMesoy> | Or to be more precise: here I thought (first argument of object method) was pointer to object itself, not a hierarchical search. Since I have learned that self. can be replaced with me. or the like in that position. |
16:47 | <@pjdelport> | The only "magic" thing about Python's is the descriptor protocol: that's how things like instance method binding happens, to fill in the first parameter for instance methods. |
16:47 | <@pjdelport> | But even that isn't really magic: it's more like a library feature that the runtime uses. |
16:47 | <@ErikMesoy> | On one project a while ago I deliberately used a different synonym for self. in each class as a way of catching myself in lazy copy-paste of code between classes. |
16:54 | | crystalclaw|AFK is now known as crystalclaw |
16:54 | < catadroid> | #define please ; |
17:06 | | Emmy-zZz is now known as Emmy |
17:58 | | Shady [ShadyGuru@Nightstar-qfckjl.tv13.ptd.net] has left #code ["Yay, he's gone"] |
18:15 | | crystalclaw is now known as crystalclaw|AFK |
18:34 | | catadroid` [catadroid@Nightstar-d5t3gv.dab.02.net] has joined #code |
18:37 | | catadroid [catadroid@Nightstar-r8cvq2.dab.02.net] has quit [Ping timeout: 121 seconds] |
18:42 | | Tamber_ [tamber@furryhelix.co.uk] has joined #code |
18:43 | | Netsplit Kakrafoon.Nightstar.Net <-> Golgafrincham.Nightstar.Net quits: @PinkFreud, @Reiver, @Tamber, catadroid` |
18:43 | | Netsplit over, joins: @PinkFreud |
18:47 | | Reiver [quassel@Nightstar-ksqup0.co.uk] has joined #code |
18:47 | | mode/#code [+ao Reiver Reiver] by ChanServ |
18:49 | | catadroid [catadroid@Nightstar-d5t3gv.dab.02.net] has joined #code |
18:56 | | Kindamoody|afk is now known as Kindamoody |
19:04 | | crystalclaw|AFK is now known as crystalclaw |
19:47 | | Kindamoody is now known as Kindamoody[zZz] |
20:45 | | Shady [ShadyGuru@Nightstar-qfckjl.tv13.ptd.net] has joined #code |
20:47 | | Shady [ShadyGuru@Nightstar-qfckjl.tv13.ptd.net] has quit [[NS] Quit: Yay, he's gone] |
20:54 | | catadroid [catadroid@Nightstar-d5t3gv.dab.02.net] has quit [Ping timeout: 121 seconds] |
21:01 | | Emmy [M@Nightstar-9p7hb1.direct-adsl.nl] has quit [[NS] Quit: lightning awfully close.] |
21:21 | | Shady [ShadyGuru@Nightstar-qfckjl.tv13.ptd.net] has joined #code |
21:30 | | Shady [ShadyGuru@Nightstar-qfckjl.tv13.ptd.net] has quit [[NS] Quit: Yay, he's gone] |
21:51 | | Tamber_ is now known as Tamber |
21:51 | | mode/#code [+o Tamber] by ChanServ |
22:08 | | Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has joined #code |
22:08 | | mode/#code [+qo Vornicus Vornicus] by ChanServ |
22:30 | | Shady [ShadyGuru@Nightstar-qfckjl.tv13.ptd.net] has joined #code |
23:09 | | catadroid [catadroid@Nightstar-m77iba.dab.02.net] has joined #code |
23:55 | | himi [sjjf@Nightstar-v37cpe.internode.on.net] has quit [Connection closed] |
--- Log closed Fri Jun 24 00:00:36 2016 |