code logs -> 2014 -> Wed, 02 Jul 2014< code.20140701.log - code.20140703.log >
--- Log opened Wed Jul 02 00:00:16 2014
00:22 Orthia [orthianz@Nightstar-s5d.ntf.224.119.IP] has quit [Ping timeout: 121 seconds]
00:22 Orthia [orthianz@Nightstar-s5d.ntf.224.119.IP] has joined #code
00:23 mode/#code [+o Orthia] by ChanServ
00:38 RchrdBrrll [RichardB@Nightstar-qe9.aug.187.81.IP] has quit [[NS] Quit: This computer has gone to sleep]
00:39 RchrdBrrll [RichardB@Nightstar-qe9.aug.187.81.IP] has joined #code
00:39 RchrdBrrll [RichardB@Nightstar-qe9.aug.187.81.IP] has quit [[NS] Quit: Leaving]
00:44 Derakon[AFK] is now known as Derakon
00:45 HotShot [HotShot@Nightstar-v7se27.try.wideopenwest.com] has quit [Connection closed]
01:11 Checkmate [Z@Nightstar-484uip.cust.comxnet.dk] has quit [Ping timeout: 121 seconds]
01:54 himi [fow035@Nightstar-q9amk4.ffp.csiro.au] has joined #code
01:54 mode/#code [+o himi] by ChanServ
02:30 Derakon is now known as Derakon[AFK]
02:46 Turaiel[Offline] is now known as Turaiel
03:04 Derakon[AFK] is now known as Derakon
04:21 VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has quit [[NS] Quit: Program Shutting down]
04:25 Kindamoody[zZz] is now known as Kindamoody
05:02 Derakon is now known as Derakon[AFK]
05:21 Typherix [Typherix@Nightstar-n91qrf.lnngmi.sbcglobal.net] has quit [Operation timed out]
05:27 Typherix [Typherix@Nightstar-n91qrf.lnngmi.sbcglobal.net] has joined #code
05:31 Harlow [harlow@Nightstar-9hnfdm.il.comcast.net] has joined #code
05:47 Kindamoody is now known as Kindamoody|afk
06:02 RchrdB [RichardB@Nightstar-c6u.vd5.170.83.IP] has quit [[NS] Quit: Gone.]
06:08 Xires is now known as ^Xires
06:14 RchrdB [RichardB@Nightstar-c6u.vd5.170.83.IP] has joined #code
06:23 Turaiel is now known as Turaiel[Offline]
07:08 Harlow [harlow@Nightstar-9hnfdm.il.comcast.net] has quit [[NS] Quit: BED]
07:49 macdjord [macdjord@Nightstar-7rac1r.mc.videotron.ca] has quit [Ping timeout: 121 seconds]
07:51 macdjord [macdjord@Nightstar-7rac1r.mc.videotron.ca] has joined #code
07:51 mode/#code [+o macdjord] by ChanServ
07:58 ^Xires is now known as Xires
08:02 Xires is now known as ^Xires
08:14 ^Xires is now known as Xires
08:17 himi [fow035@Nightstar-q9amk4.ffp.csiro.au] has quit [Ping timeout: 121 seconds]
08:40 macdjord is now known as macdjord|slep
09:07 Syloq [Syloq@NetworkAdministrator.Nightstar.Net] has quit [Operation timed out]
09:09 Syloq [Syloq@Nightstar-mbk.c3p.254.173.IP] has joined #code
09:09 mode/#code [+o Syloq] by ChanServ
10:17 RchrdBrrll [RichardB@Nightstar-952.jvr.168.194.IP] has joined #code
10:21 RichardB_ [RichardB@Nightstar-952.jvr.168.194.IP] has joined #code
10:21 RchrdBrrll [RichardB@Nightstar-952.jvr.168.194.IP] has quit [Connection reset by peer]
11:05 VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has joined #code
11:15 Checkmate [Z@Nightstar-484uip.cust.comxnet.dk] has joined #code
11:15 mode/#code [+o Checkmate] by ChanServ
12:15 himi [fow035@Nightstar-v37cpe.internode.on.net] has joined #code
12:15 mode/#code [+o himi] by ChanServ
12:25 RichardB_ [RichardB@Nightstar-952.jvr.168.194.IP] has quit [[NS] Quit: Leaving]
12:28 RchrdBrrll [RichardB@Nightstar-952.jvr.168.194.IP] has joined #code
12:48 RchrdBrrll [RichardB@Nightstar-952.jvr.168.194.IP] has quit [[NS] Quit: Leaving]
12:51
<@Azash>
https://github.com/mirrors/gcc/blob/7057506456ba18f080679b2fe55ec56ee90fd81c/gcc /reload.c#L1056-L1110
13:35 RchrdBrrll [RichardB@Nightstar-952.jvr.168.194.IP] has joined #code
13:40 himi [fow035@Nightstar-v37cpe.internode.on.net] has quit [Ping timeout: 121 seconds]
13:53 himi [fow035@Nightstar-v37cpe.internode.on.net] has joined #code
13:53 mode/#code [+o himi] by ChanServ
14:16 himi [fow035@Nightstar-v37cpe.internode.on.net] has quit [Ping timeout: 121 seconds]
14:29 himi [fow035@Nightstar-v37cpe.internode.on.net] has joined #code
14:29 mode/#code [+o himi] by ChanServ
15:11 himi [fow035@Nightstar-v37cpe.internode.on.net] has quit [Ping timeout: 121 seconds]
15:24 himi [fow035@Nightstar-v37cpe.internode.on.net] has joined #code
15:24 mode/#code [+o himi] by ChanServ
15:30 himi [fow035@Nightstar-v37cpe.internode.on.net] has quit [Ping timeout: 121 seconds]
15:43 himi [fow035@Nightstar-v37cpe.internode.on.net] has joined #code
15:43 mode/#code [+o himi] by ChanServ
16:55 himi [fow035@Nightstar-v37cpe.internode.on.net] has quit [Ping timeout: 121 seconds]
17:09 himi [fow035@Nightstar-v37cpe.internode.on.net] has joined #code
17:09 mode/#code [+o himi] by ChanServ
17:55 Kindamoody|afk is now known as Kindamoody
18:12 himi [fow035@Nightstar-v37cpe.internode.on.net] has quit [Ping timeout: 121 seconds]
18:26 himi [fow035@Nightstar-v37cpe.internode.on.net] has joined #code
18:26 mode/#code [+o himi] by ChanServ
19:04 himi [fow035@Nightstar-v37cpe.internode.on.net] has quit [Ping timeout: 121 seconds]
19:17 himi [fow035@Nightstar-v37cpe.internode.on.net] has joined #code
19:17 mode/#code [+o himi] by ChanServ
19:22 Kindamoody is now known as Kindamoody[zZz]
20:12 * TheWatcher hates all over date handling in javascript
20:34
< [R]>
JS' Date object is sorely lacking yeah
20:38 himi [fow035@Nightstar-v37cpe.internode.on.net] has quit [Ping timeout: 121 seconds]
20:40 RchrdBrrll [RichardB@Nightstar-952.jvr.168.194.IP] has quit [[NS] Quit: Leaving]
20:41 RchrdBrrll [RichardB@Nightstar-952.jvr.168.194.IP] has joined #code
20:50 himi [fow035@Nightstar-v37cpe.internode.on.net] has joined #code
20:50 mode/#code [+o himi] by ChanServ
21:44 gnolam_ [lenin@Nightstar-rf9l8k.cust.bredbandsbolaget.se] has joined #code
21:46 gnolam [lenin@Nightstar-rf9l8k.cust.bredbandsbolaget.se] has quit [Ping timeout: 121 seconds]
21:49 gnolam [lenin@Nightstar-rf9l8k.cust.bredbandsbolaget.se] has joined #code
21:49 mode/#code [+o gnolam] by ChanServ
21:52 gnolam_ [lenin@Nightstar-rf9l8k.cust.bredbandsbolaget.se] has quit [Ping timeout: 121 seconds]
22:36 Derakon [MacPro@Nightstar-5fqf0m.ca.comcast.net] has joined #code
22:36 mode/#code [+ao Derakon Derakon] by ChanServ
22:36
<&Derakon>
When I started working on this (Java) file, it was over 4500 lines long.
22:36
<&Derakon>
It is now 2800 lines long.
22:37
<&Derakon>
400 of those were removing functions that are never called anywhere nor exposed in the API.
22:37
<&Derakon>
(The rest was mostly creating new files to hold code that wasn't directly related to the file's nominal purpose).
22:40
<&McMartin>
Yay, lava flow
22:44
<@Syloq>
dutch bros?
22:50
<@TheWatcher>
Dera: you had my sympathy at "(Java)"~
22:50
<&McMartin>
Syloq: Eh?
22:50
<@TheWatcher>
(That said, I'm writing PHP. I think I need a good shower soon >.<)
22:50
< RchrdBrrll>
Docker seems to be really nice. I'm using boot2docker on a Mac right now and it's just trivial to have dozens of random Linux distros available at about 2000ms notice.
22:51
<&McMartin>
RchrdBrrll: Neat. Is that going through some kind of VM or is it a super-bootcamp?
22:51 * Derakon sad-high-fives TW.
22:51
<&McMartin>
Derakon: The perils of an "organic" code base
22:51
< RchrdBrrll>
boot2docker is a Mac app that installs VirtualBox and boots up a Linux image in it.
22:51
<&McMartin>
Aha, gotcha
22:52
<&Derakon>
McM: the perils of a codebase where none of the prior developers had any fucking discipline, more like.
22:52
<&Derakon>
Well. My coworker is good. But he's just one man.
22:52
<&McMartin>
Right, I was going to say
22:52
<&McMartin>
It takes more than that
22:52
<&McMartin>
You need an icy-uncompromising vision, maintained inflexibly over turnover and over years
22:52
< RchrdBrrll>
so there's one "real" virtual machine, which is just running a) the Linux kernel, b) the Docker daemon, c) fuck all, because I think it's running atop TinyCore Linux.
22:52
<&McMartin>
Or refactoring your entire, hundreds-of-KLOC codebase every time fashions change
22:52
<&Derakon>
I would settle for people going "Y'know what? This code doesn't need to go into the One Module That Does Everything".
22:53
<&McMartin>
Heh.
22:53
<&Derakon>
This is not "design paradigms change", this is "people are lazy gits".
22:53
<&McMartin>
Yyeah.
22:53
<&McMartin>
We have, like, five do-everything classes in our codebase.
22:53
<&McMartin>
I want to fix that, and I have the seniority to attempt to do so and make it stick
22:53
<&Derakon>
Good luck!
22:53
<&McMartin>
But all my attempts to reorganize it on paper only make it worse
22:54
<&McMartin>
Also, if you have five God classes, that's a sign that maybe you don't have any =P
22:54
<&McMartin>
I know what I want the process and thread breakdown to look like, and a rough idea of what communication between them should look like.
22:54
<&McMartin>
But then the message-processor class becomes the new god class
22:55
<&Derakon>
As long as it's a smaller god class.
22:55
<&Derakon>
At 2800 lines this is still the biggest Java module in this project by a wide margin; just not quite as wide.
22:55
<&McMartin>
But (in extremis) A thousand tiny classes with one (identical) method each is not IMO preferable to a class with a thousand methods, and both mean you should be doing something else.
22:55
<@TheWatcher>
And watch out for god classes you have overlooked. You don't want to find out that the Mad Arab was right~
22:55
<&McMartin>
Of course, if the spec is "we have these thousand problems to solve" that has to show up somewhere.
22:56 * gnolam now gets the urge to coin the phrase "polytheistic code".
22:56
< RchrdBrrll>
You *almost* have already. You merely need to give a definition.
22:56
<&McMartin>
Yeah, before the last cut at refactoring we had a source file so large Trac refused to display it.
22:56
<@TheWatcher>
And technoagnosticism is not knowing whether you really have a god class...
22:57
<&Derakon>
McM: ;_;
22:57
<&McMartin>
Whoever refactored that did so by producing multiple classes with the same hugely unwieldy interface and just forwarding some behavior to those others.
22:57
<&McMartin>
That made it display in Trac!
22:57
<&McMartin>
But, like, we aren't Java
22:57
<&McMartin>
That actually means that I can't *immediately* wipe out the notion of "class with like a thousand methods", because there's nothing at all that says that we have to put those methods in one file.
22:58
<&McMartin>
Or have them cost anything at runtime that wouldn't be paid by having them as, you know, C functions.
22:58
<&McMartin>
A non-virtual class method at runtime is basically a C function with one extra argument and better namespace management
22:58
<@gnolam>
Stub-Niggurath, the black class of the woods with a thousand methods.
22:58
<&McMartin>
Hooray!
22:58
<@TheWatcher>
IA, Ia, ShubNiggurath... damnit
22:59 himi [fow035@Nightstar-v37cpe.internode.on.net] has quit [Ping timeout: 121 seconds]
23:01
<&McMartin>
Unfortunately for me, I do not believe I'm going to succeed in levels of code reduction that Derakon is getting.
23:01
<&McMartin>
We've got a lot of, if not thousands-of-methods, at least over-a-hundred-method classes where I know for a fact that each function is live and crucial to some workflow.
23:02
<&McMartin>
So this is basically re-pigeonhole based on what state is shared as a first cut, I think, but I have a sinking feeling that gives you the god class again unless you add new ways to communicate between them.
23:07 gnolam_ [lenin@Nightstar-rf9l8k.cust.bredbandsbolaget.se] has joined #code
23:08 gnolam [lenin@Nightstar-rf9l8k.cust.bredbandsbolaget.se] has quit [NickServ (RECOVER command used by gnolam_)]
23:08 gnolam_ is now known as gnolam
23:08 mode/#code [+o gnolam] by ChanServ
23:12 himi [fow035@Nightstar-v37cpe.internode.on.net] has joined #code
23:13 mode/#code [+o himi] by ChanServ
23:13 * TheWatcher eyes the MediaWiki style guide
23:18
<@TheWatcher>
They have spaces all over the place, except for $obj->method (where I always include spaces). This is messing with my head.
23:20 gnolam_ [lenin@Nightstar-rf9l8k.cust.bredbandsbolaget.se] has joined #code
23:21
<&Derakon>
TW: you'd do "$obj -> method"?
23:21
<&McMartin>
Where do the spaces go in $obj->method?
23:21
<@TheWatcher>
Dera: yeah
23:21
<&Derakon>
Not what I'd do, but okay.
23:21
<&Derakon>
The one that gets me is when people do "foo (a, b)" or even worse "foo( a, b)".
23:22
<&McMartin>
I end up doing foo (a, b) by reflex in C but nowhere else, and I think it's UQM's fault.
23:22 gnolam [lenin@Nightstar-rf9l8k.cust.bredbandsbolaget.se] has quit [Ping timeout: 121 seconds]
23:22
<@Reiv>
I use foo(a, b)
23:22
<&McMartin>
Yes, that is the right thing to do
23:22
<@Reiv>
Oh, good.
23:22
<@Reiv>
I had no idea~
23:23
<&McMartin>
it should be if (a < b) and while (a < b) but not foo (a, b), becuase foo is not a keyword or statement type, foo(a, b) is a function invocation and as such a single unit
23:23 * Julius consistently does "foo (a, b) {".
23:23
<&McMartin>
I like doing
23:23
<&McMartin>
return_type
23:23
<&McMartin>
foo(int a, int b)
23:23
<&McMartin>
Because that way I can find definition locations with grep trivially
23:24
<&McMartin>
By grepping for ^foo
23:24
<&Derakon>
Ah, nice.
23:24
<&Derakon>
In Java I end up searching for "public|private.*foo" which isn't so great.
23:24
<&Derakon>
I really miss Python's "def" keyword :(
23:24
<&McMartin>
Heh
23:25
<&McMartin>
Yeah, and then this is one place where Java's refusal to have header files is an advantage
23:25
<&McMartin>
You don't have to distinguish declaration from definition
23:34 Derakon [MacPro@Nightstar-5fqf0m.ca.comcast.net] has quit [[NS] Quit: leaving]
23:35 gnolam_ is now known as gnolam
23:35 mode/#code [+o gnolam] by ChanServ
--- Log closed Thu Jul 03 00:00:31 2014
code logs -> 2014 -> Wed, 02 Jul 2014< code.20140701.log - code.20140703.log >

[ Latest log file ]