Reputation
3,577
Top tag
Next privilege 5,000 Rep.
Approve tag wiki edits
Badges
3 12 33
Newest
 Good Answer
Impact
~233k people reached

Dec
23
comment Is individual code ownership important?
@pdr "Ownership" can have a few different meanings. For example, there's been some talk here of reintroducing it for our internal libraries, where the "owner" is the one that does code reviews, ensures consistency in the architecture, and prevents everyone else from doing hacks that could be better implemented (since a random dev is probably focusing on their specific feature/bugfix, and not the library's whole codebase). But the knowledge itself isn't siloed off.
Dec
17
comment Merge bug fixes from trunk in old branches
For completeness, let's say the test was a little wrong and version 3.7 has the same bug (say, it only happens on an edge case in 3.7, but happens in more easily-tested cases in 3.8+), but was only discovered after the fix was merged like this. Would you just cherry-pick at that point?
Dec
1
comment Maintaining SVN history for a file when merge is done from the dev branch to trunk?
Note that svn blame also supports -g at least as far back as svn 1.6.11, so you can see where individual lines come from as well
Sep
27
comment Why are the sizes of programs so large?
@Voo One of the phenomenas Lightness is talking about is extremely well-known as "java schools". It's not just anecdotal.
Aug
21
comment Automatically reverting commits that fail the build
@CarlosCampderrós Squashing the auto-revert and their revert of the auto-revert is a bad idea; that's changing history already pushed somewhere
Aug
20
comment How has an increase in the complexity of systems affected successive generations of programmers?
And below physics is math
Jul
8
comment What problem do algebraic data types solve?
In return, adding new cases is complicated because you need to go over basically the entire code base and extend every match - The tutorials and introductions I've seen don't even mention this feature. The problem is, without it, to an outsider the whole thing looks like an OnErrorResumeNext anti-pattern, where you don't have to handle all cases - hence questions like these, and confusion about how NullPointerExceptions won't happen, and etc. It needs to be kept in mind a lot more when explaining advantages of algebraic types to beginners.
Jun
17
comment Best practice boolean assignment
My first assumption with code like Variant 1 is that the two branches at one point in the past were more complicated, and someone wasn't paying attention when refactoring. If however that's how it was when first written, then I agree with "not understanding booleans"
Jun
17
comment How can I write unit tests that simplify feature implementation?
@anaximander strom mentioned that everyone involved is rather inexperienced, which is why it's a good thing to keep that possibility in mind as well
Jun
17
comment How can I write unit tests that simplify feature implementation?
@anaximander There's middle ground between your thoughts, which is what usually happens to us: Something in the design changed, and the tests are now out-of-date. In that case, changing the test is the right thing to do short-term. I think this question is about trying to avoiding that situation, a long-term solution for refactoring the code so the tests don't become out-of-date as easily.
Jun
5
comment Why do we use the word “sprint”?
@enderland Percentage-wise, your run last night is right about the same balance as a 1-week agile sprint
May
8
comment Fast comparison of recursive directory tree against a database?
If the file changes, then other things change as well - like the last modified date. But this almost sounds like a premature optimization to me, have you measured how long it takes?
Apr
30
comment Is it okay to have objects that cast themselves, even if it pollutes the API of their subclasses?
@codebreaker Related to Crisfole's last comment, there's another way of looking at it that might help. For example, with the move vs fly/run/etc, that can be explained in one sentence as: You should be telling the object what to do, not how to do it. In terms of accessors, as you mention is more like the real case in a comment here, you should ask the object questions, not inspect its state.
Apr
29
comment Should I validate a method call's return value even if I know that the method can't return bad input?
@MSalters Don't validate the value if it is there ;)
Apr
29
comment Dealing with states in a immutable approach
@Snowman It's oddly phrased, but I'm pretty sure what he means is that since playerOne is immutable, it won't have the current state - so how can state be updated?
Apr
27
comment What is the maximum number of steps to find a bug using bisecting?
@DocBrown This is awkward to do in comments, but if the commit tree is A -> B -> D and A -> C -> D (a diamond), and the bug is in B and D, then your arbitrary linearization cannot choose A, B, C, D and still work - even though B and C are still independent
Apr
27
comment What is the maximum number of steps to find a bug using bisecting?
@DocBrown If you choose the wrong order, the bug can disappear and then reappear in the linear ordering. Bisect at its most basic works as a binary search; those intermediate "fixed" commits would make it go in the wrong direction if it landed on one of them, so I don't think the simplification works here
Apr
25
comment Explanation of two of Lehman's Laws of Software Evolution
@JayElston Agile projects take input from the stakeholders after the initial build in order to drive the direction and possibly change the goals. They don't necessarily have a single defined goal or timeline for the entire duration of the project/product. It seems to me like it fits
Apr
25
comment Structuring Procedural vs OO code
@DocBrown Declarative is more "opposite" than imperative, I'd say. But even more accurate would be that none of these are opposites of each other, they're just plain different methods of programming
Apr
3
comment Is it the standard accepted practice to install software using VBScript?
*entering a token, not license key