5,537 reputation
1234
bio website
location Los Angeles, CA
age
visits member for 3 years, 7 months
seen yesterday

I love strange shrimp.

eh, string stream.


May
15
comment How to apply one of the OOP concepts (Closed for Modification and Open for extension)?
The simpler approach (just modify the class, don't follow OCP) would be appropriate when the object's logic is not modified by the addition of new fields/properties. If you need to add the same field/property to several classes, you may make an interface for that field/property. If you have several different Questions that would have different logic depending on whether it has hints, extract Question into an interface.
May
15
comment How to deal with users who think their computer could think?
@DavRob60: thanks for pointing out this question was one of the very first questions asked on this site.
May
14
comment How to deal with users who think their computer could think?
Aside from technical support professionals who may deal with this on a daily basis, is there any constructiveness for programmers to discuss users who have problems dealing with cognitive dissonance? Does this in any way enhance a programmers' quality-of-work, career, or wellbeing? Or provide useful advice to software design / user experience? (Aside from the well-known "Exception handling is part of UX")
May
14
comment Do you have any teamguidelines regarding exceptions?
It may be more straightforward to refactor the code to check preconditions first, and return from function early if any precondition is not met. Also, a number of prominent gurus consider finally (rollback logic) to be the more valuable part of an exception handling system.
May
14
comment In Java, what are checked exceptions good for?
FYI: Frank Sommers mentioned in this thread that fault-tolerant software often rely on the very same mechanism. Perhaps you can subdivide your answer into the recoverable case and the fatal case.
May
12
comment Are there some types of software that cannot be developed by all major programming languages?
In additional to Turing-equivalency, there is also the problem of I/O: Does it have a mechanism for communicating with the outside world during execution? If not, the language is like a brain in a vat. If it has at least one input and one output method, you can at least make a screen scraper for it.
May
12
comment Why should I care about micro performance and efficency?
+1: This is one of the employability factors for those hired to develop Shrinkwrap software and Commercial web sites. Prevention is less costly than the customer's curse.
May
12
accepted Will you list C++/CLI on your resume?
May
11
asked Will you list C++/CLI on your resume?
May
11
comment Why avoid Java Inheritance “Extends”
One nitpicking: the Circle-ellipse problem will still occur even if only pure interfaces are used, if the objects are to be mutable.
May
11
comment Why should I care about micro performance and efficency?
For simple matters, the mental overhead of choosing the probably-right algorithm is just a little. However, in the case where the wrong one was chosen, sometimes it got stuck in the product and no one was able to detect it before it is shipped. Then it becomes costly. Perhaps it's more important to learn to be a proficient profiler / benchmarker / call-stack-sampler to be able to catch performance bugs.
May
11
comment Why should I care about micro performance and efficency?
+1: worth pointing out that the "pathological performance" could happen to anyone in the world, regardless of language or platform. The ability to re-implement in a lower-level language for testing and read disassembly may provide more insights, but doesn't always provide a workable solution. Example: "I know I can do it in assembly - but it needs to run in partial-trust environment!"
May
11
comment Why should I care about micro performance and efficency?
@Carson63000: yes that could totally skew the samples. Or they spend time answering questions about why my operator ++ didn't compile.
May
11
comment Why should I care about micro performance and efficency?
@JUST MY correct OPINION: actually, for image processing, data processing is usually the second largest time consumer (I/O still is the biggest). However, optimizing for I/O requires a lot of unusual/crazy designs and their acceptance by fellow programmers, and sometimes it is outright impossible to improve. The processing part, however, is usually embarassingly parallelizable, hence they are easily reapable benefits. (One's tweaking might be seen by another as a straight textbook implementation... unless you reach the level of VirtualDub)
May
11
comment Frankly, do you prefer Cowboy coding?
In each stage, how does one learn from the experience that can help advance to the next stage? Or are these "types of mistakes" (stereotypes?) one tends to make when they are at a certain level of experience?
May
11
comment How do I design an arbitrary system in an interview?
(continued) please don't underestimate the importance of lessons learned from other sources.
May
11
comment How do I design an arbitrary system in an interview?
@Aaronaught: of course real experience from similar projects is infinitely more valuable than heard ideas. But when you are tasked with a project in an area where you don't have experience, do you just give up the opportunity? (Assuming you let the employer know that you do not have relevant experience and the employer is okay with that) If you decide to take it, then how do you start? You start with lessons learned from other people, other companies and so on. You can't start from nowhere. Perhaps you were right downvoting me because the OP seems to be interviewing for a senior position, but
May
10
answered How do I design an arbitrary system in an interview?
May
10
comment How are open-source projects able to sustain themselves?
The third reason, financial sponsorship from big-name companies with symbiotic relationships, is probably the biggest chunk if we look at the the "open source industry"'s pie size financially. Just my guess.
May
10
comment Managed Coders vs Native Coders
Are they using the same algorithm step-by-step? They could be computing the same output but the elementary mathematical steps used to arrive at the output might be different, and performance is determined by the raw count of elementary steps, which in turn is determined from how the "formula" is decomposed into them.