Reputation
738
Top tag
Next privilege 1,000 Rep.
See votes, expandable usercard
Badges
4 10
Newest
 Nice Answer
Impact
~3k people reached

  • 0 posts edited
  • 0 helpful flags
  • 10 votes cast
Jan
28
comment Should we avoid language features that C++ has but Java doesn't to increase maintainability?
@K.AlanBates - Careful with that joke, it's an antique. :)
Jan
28
comment Should we avoid language features that C++ has but Java doesn't to increase maintainability?
You should avoid some C++ language features because C++ has too many of them. But choosing based upon what is/isn't available in Java seems fairly arbitrary. There are probably better methods of separating the garbage features from the good ones.
Jan
14
comment Is it effective to review code in language I don't know?
@Mawg - I'd tend to say that's what automated testing is for. Even with expert knowledge of the language, it's difficult to say whether or not code will actually meet the design spec by just looking at it / without executing it and observing the result (unless your design spec is so detailed that it's essentially code in itself). The aspects the answer enumerates cover many (though not all) valid reasons for doing code reviews. A code review does not generally include execution of the code being reviewed.
Oct
3
comment Is there a specific reason for the poor readability of regular expression syntax design?
I think at least part of the reason for the terseness of the syntax was also that network connections (and as a consequence, networked terminal connections) were much, much slower back when all of this was happening, so a lot of work went into minimizing the number of keystrokes needed to do pretty much anything. The preference for readability over conciseness is a comparatively modern phenomenon. And though that preference may be correct, it's far too late to replace regex syntax with something else at this point.
Sep
26
comment Is it possible to take a flexible agile approach to projects that require estimates of both time taken and time saved?
I think this answer glosses over the fact that while management is not unreasonable for trying to determine ROI, they are being unreasonable (or at least, extremely unrealistic) if they expect such up-front estimates to be remotely accurate in practice. This answer provides a good explanation of how to forecast release dates under Agile. But I assume the OP already knows that part, and was asking more about how you can provide a guaranteed accurate estimate up front in an Agile context (or any other). The short answer is you cant; which is why people use Agile in the first place.
Sep
9
comment Why do we have to wait for I/O?
Good discussion of the pros/cons of sync/async IO. But are you sure that's the reason for the slowdown? Generally I find that slowdowns under heavy IO load are firstly because of poorly-architected software, or when that's not the case then because the system is using a single, slow disk (i.e. non-SSD), and everything is trying to access it concurrently. I'd blame a bottleneck on the disk's ability to service requests before I'd blame it on saturation of the memory bus. You need really high-end storage to saturate a modern memory bus.
Jul
14
comment My coworker commits and pushes without testing
Not only do you have the backups, but also can your business afford the downtime while a restoration is done? And can it afford to lose minutes, hours, or even days of information because a rollback of the database had to be performed? I'd say in almost all nontrivial cases, the answer is a resounding 'no'. And even in trivial cases, you don't want 'restore a backup' to be how you deal with untested code getting checked in. There has to be something that ensures that testing happens between when code is checked in and when it reaches production.
Jul
14
comment My coworker commits and pushes without testing
This only works with an office. What's the equivalent concept for when you have a distributed team of remote developers who all work from home?
Jul
4
comment Is testable code better code?
@Telastyn - But that's anecdotal. My own anecdotal experience over the past 10 years is that 3 out of 4 companies don't care (that much) about unit tests. Of course, the 3 that cared least were startups, and the one that did was a much larger tech company (although even then, there was no company-wide mandate for tests; it was something that my Scrum team decided to include in its 'definition of done', because we cared, regardless of the company's policy or lack thereof).
Jul
3
comment Is testable code better code?
"Not having unit tests means you're not done with your code/feature" - Untrue. The "definition of done" is something that the team decides. It may or may not include some degree of test coverage. But nowhere is there a strict requirement that says a feature cannot be "done" if there are no tests for it. The team may choose to require tests, or they may not.
Feb
7
comment Can GPL licensed code be close sourced later by the author?
All the answers here basically say the same thing, but if anyone has the correct answer it's @paxdiablo. Regardless of what the GPL says or does not say, pulling back code that has been released under any open-source license is legally questionable and practically impossible. Even if the license explicitly reserves the right to do so. Once the code is out there, it's out there. That's a gray area, if you ask me.
Aug
13
comment Is there anything groundbreaking about NoSQL?
"my understanding is that NoSQL is rather arbitrary" - My understanding is that for all the hype it's basically a persistent HashMap. Which is useful in many cases, but not generally sufficient in and of itself. Think of it as sideband storage for things that don't benefit from being stored in a relational way.
Jul
4
comment How does the “Fourth Dimension” work with arrays?
I think your first sentence is actually backwards. Programs are limited by the physical constraints of the hardware they run on. And memory is flat. Programming languages may allow arrays to be specified in terms of arbitrarily many dimensions, but really all that happens is the provided numbers are multiplied together and you get a flat list of however many things you actually asked for. Some math is used to handle addressing into the flat list based upon multi-dimensional indices, but it's still a flat list. The dimensions are entirely illusory.
Jan
8
comment Loop fusion example using aspect-oriented framework
From what I can gather, it kind of seems like implementing loop fusion using aspects is a horrendous misuse of aspects.
Jan
8
comment Do coding puzzles make good interview questions
@MartijnVerburg - But if all you need is a web UI for Payroll then why hire a new employee for that in the first place? If that's the only development/coding that needs to be done you might as well just farm it out to a consultant. But if that's not the only engineering work that needs doing, it seems presumptuous to assume that the candidate will never encounter a challenging problem that requires them to think outside of the web arch. and TDD box. Anyone can be a code monkey; good developers are problem solvers.
Jan
8
comment What is the best way to discern an excellent programmer in a job interview?
I'll disagree with the "puzzles suck" viewpoint. Puzzle questions are useful because they can answer questions like 1) how does this person react to a challenging problem (do they get frustrated/give up easily, do they take a reasonable approach to working things out, etc.), 2) can this person think quickly and creatively and back up their ideas, and 3) approximately how intelligent is this person. Of course, an interview that is only puzzles is a bad idea. But one or two such questions can be useful. Remember that you want programmers who are problem solvers, not monkeys on typewriters.
Feb
28
comment Convince a lone developer to use a separate build tool instead of the IDE one-click build
I disagree 1000 times over. If you structure your build scripts correctly, then you really only have to pay the cost of writing them once, and can then reuse them almost verbatim across any number of projects. There's a lot to be said in favor of having a one-line build command that builds, configures, deploys, and runs the system automatically. And once you have that, it will save a ton of time compared to manual deployment/configuration management, which can then be spent on those new features you mention.