111 reputation
4
bio website cs.virginia.edu/~abh2n
location Charlottesville, VA
age 44
visits member for 3 years, 2 months
seen May 11 at 19:35

I am a Principal Scientist at Dependable Computing in Charlottesville, VA, where we work on safety case engineering, formal specifications, requirements gathering, and other safety-critical and security-critical software engineering issues. I have a PhD in Computer Science from the University of Virginia, with my dissertation involving a genetic algorithm exploration of neural network models of the hippocampus. I've also previously earned Masters degrees in Physics/Astronomy (involving General Relativity) and Computer Science (involving improving multi-processor implementations of hippocampal neural network simulations).


Sep
12
comment Why can static methods only use static data?
Actually, I think this is a very good addition to explaining the point. It highlights the point that the static method needs an instance of the class before it can access non-static data while providing an intuitive reason why that is so.
Sep
12
comment Why can static methods only use static data?
I think it's worth pointing out that static methods sometimes do use non-static data. It's not uncommon for a static method by the name of main to create an instance of the class and to (occasionally) use non-static data from that instance. (Of course, it's not limited to main, but that's where one is most likely to encounter this behavior.)
Aug
31
comment What is the opposite of initialize (or init)?
a) You're right that I did not down vote. Your suggestion is reasonable and I think this discussion is useful. b) I've seen finalize() used in exactly the sense I indicated. For example, in a class calculating Delauney triangularization, after all of the points were added, finalize() was called to do some additional calculation before results could be used from it. In that case, it indicated that the object was no longer open for modification, but it was still available for use, i.e., to get the results of the triangularization.
Aug
31
comment What is the opposite of initialize (or init)?
+1 for terminate(). I feel it is generally unambiguous and probably reasonably applicable across use cases.
Aug
31
comment What is the opposite of initialize (or init)?
Unfortunately, 'Finalize' could be either a synonym or an antonym of 'Initialize', so I think that it would be a poor choice in general. 'Destroy' and 'Terminate' are contenders, however. See m-w.com/dictionary/finalize for definition saying "to put in final or finished form". I've even seen it used this way in code. I.e., finalizing an object is the last step in its initialization. In contrast, Java's Object class has a finalize() method indicating no more references to the object.
May
18
comment Should the most recent date be named 'start' or 'end'?
Your advice to simply search for anything between the two dates (regardless of order) can often be the right thing, but sometimes might not be. There are cases where a start date after the end date means that you don't want any dates whatsoever.
Feb
22
comment Are there any benefits to checking in commented out code into version control?
@Ben: Commented out code that starts with a comment Never use this can be a good thing, as long as it explains why you should never use it, and as long as it's not littering up your code base. I've used it before where an obvious and simple solution turns out to be the wrong solution, and I want to prevent future coders (including myself) from going back to "improve" it. That said, if such comments aren't rare, you're doing something quite wrong.
Jul
29
awarded  Teacher
Jul
27
comment Blaming the ills of today on the technical debt of yesterday
@Nemi: One important difference between technical debt and financial debt is that it is much easier to quantify the latter. It's much easier to know how much financial debt you have left to pay off (even factoring in interest accumulation and recurring financial obligations) then it is to do so with technical debt. I only point this out because that's one thing that exacerbates maple_shaft's problem.
Jul
26
answered Is it good to keep the bugfix comments within the code?
Jun
23
comment Do I own copyright of program I made in own time?
@Dave Mess: See answers.onstartups.com/questions/19422/…
Jun
21
awarded  Commentator
Jun
21
comment Is it wrong not to create Javadoc for my code?
As an intern, I'd say the most important rules to follow are those of your workplace, written or unwritten. If others are using Javadoc style comments, you should, too. If others aren't, well, it's still not a bad idea to do so, but it's also less important to do so.
Jun
15
comment Is there a point to including a “change log” in every code file when you are using version control?
adding a comment explaining why a process changed can be useful, and sometimes adding a comment explaining when it changed, but I don't see the merit in putting that comment in the form of a change log. For one, it somewhat disguises the utility of the comment ("Oh, it's just a change log comment"), and two, it encourages further, unnecessary change log comments (reinforcing #1).
Jun
14
comment Is there a point to including a “change log” in every code file when you are using version control?
Not only do they show up as yet another difference, worse yet they can also become wrong over time, whereas any good VCS will always be able to tell you who really wrote a particular line, as well as the history around that line. The only thing worse than useless comments are harmful comments. These comments start out as useless and eventually become harmful, if not totally ignored.
May
23
comment How to foster intrinsic motivation in a software team
@Matthew Rodatus - I think that @haylem has covered that pretty well, but I think it's dangerous to overlook the point being made by @Jas here. I've heard of some managers focusing on only the intrinsic motivation, and that's as big a mistake (if not bigger) than not focusing on it at all.
May
23
comment How to foster intrinsic motivation in a software team
I'd say that money is (usually) necessary, but not sufficient for motivation.
May
14
comment I'm in over my head at my job. What should I do?
@Dov: if you're the only developer there, then you have more experience in certain aspects of the problem than anyone else will. Part of being "part manager" will be conveying your lack of experience.
May
13
comment I'm in over my head at my job. What should I do?
If he's the sole developer, he should take on some responsibility for scheduling. I.e., he needs to be part manager.
May
12
comment How do I convince my team to use smaller classes/methods?
@Gratzy: I'm sure it depends on your personal experience. I don't want to go into details, but when you see projects in "technical debt" up to their necks, the expression becomes very apt. Coders can spend 90% of their time "paying the interest" on the debt. In those cases, it's not surprising to find out that no one on the team has heard of the term.