4,193 reputation
1120
bio website None
location North Carolina
age 50
visits member for 4 years
seen 11 hours ago
Software Engineer

Jan
23
comment about 2d game, side-scroller, in unity engine
Maybe migrate this to "Game Development"? Of course the solution is to fix the compilation error:)
Jan
23
answered How do I design an arbitrary system in an interview?
Jan
23
comment How do I design an arbitrary system in an interview?
I upvoted because you are the only answer who geared their answer to an "architectural" design solution. As that is the best you could do in the context of an interview for a problem of the given scope. An interviewee who understands that an architectural solution is all that can be accomplished, shows that they know what they are doing.
Jan
23
comment How do I design an arbitrary system in an interview?
While all the examples for what you call a "good answer" might be relevant. The question was to "Design a system that....". Considering that this is an interview situation so one would expect to only have 5 to 10 minutes at most to answer, most of what you identified seems off in the weeds for an interview solution. Where is the actual solution in your "good answer"? Once the person has the "happy-day" solution then they could start considering the "what-ifs" that you are referring to in your "good answer". But by then, I would think time has run out.
Jan
23
comment Heuristics on when should one subclass and when not
If you are just concerned with your specific example then it seems pretty clear that your BasicToolbar class should just be a container and you add/remove buttons to it any ordering you like. There is no need for an ExtendedToolbar class. I think your ExtendedToolbar violates heuristic 52 "Do not confuse optional containment with the need for inheritance." from the aforementioned book.
Jan
23
comment Heuristics on when should one subclass and when not
While some of the tips are probably "dated" or even "wrong" as it was written when OO was just starting to take hold in the industry, the book "OO Design Heuristics" by Arthur Riel still contains many tips worth learning. Some are obvious, others require a little thought to grasp. This web site lists the heuristics but the book explains the reasoning and gives examples. vincehuston.org/ood/oo_design_heuristics.html In particular, there are 18 heuristics regarding the inheritance relationship, of which a few might be considered "wrong" today, but they should be helpful none-the-less.
Jan
22
comment Architectural / Application Practices to guard against 'breaking changes'
...but if the architecture doesn't accommodate it (more likely in the piecemeal approach) then big changes are going to be required.
Jan
22
comment Architectural / Application Practices to guard against 'breaking changes'
@oleski:If all you have is a limited set of functionality to work with then that is all that can be assessed. You can identify some improvements but only in the limited context of the specific functions that are implemented. It isn't until your product can do most all of the functionality that it was intended to provide before users can really grasp the big picture and get a feel for how the overall usage process is lacking and can be improved. You can try and capture the big picture by doing this with upfront work or just piecemeal, like is the current trend....
Jan
21
comment How to make significant technical decisions given very little time
It really is that easy. We also do surveys where everybody assigns a value to each category to determine what everybody thinks is most important so we can apply weights to each category. After all, the software team thinks processor speed and memory is always top priority, but the hardware guys seem to have opposite opinions because battery life is important to them. Of course, the customer typically counts towards at least half the rating weights and doesn't give a darn about software or hardware concerns. The descriptions online seem really complicated when it is not.
Jan
21
comment Working with overzealous SoftDevelop company - how to mitigate their spending enthusiasm?
Did you stop to think that perhaps the contractor you chose was the best one because they have a "process" in which they follow, have been trained to perform and has been proven to work quite well for them. You are now asking them to abandon their battle-tested and proven process to do things how you want them done. Doesn't sound wise. Whether their process is "ideal" for all situations or not, it is the process they know and can do it well. They have little reason to change success. Process and scope should have been discussed prior to signing the contract.
Jan
21
comment Graphing Logical circuit C++ Programming
Judging by the question, my guess is that you are a long way off from creating your own graphics. I suggest you write your data out in csv format, import it into Microsoft Excel and use Excel's graphing functionality.
Jan
21
comment Architectural / Application Practices to guard against 'breaking changes'
eh...communication is an issue no matter what process you use. SCRUM doesn't solve communication issues nor would any other practice. Big changes tend to occur once the "real" users start using the system to perform their work. Partially working systems don't provide enough functionality for users to settle on a good work flow, so the big user changes tend not to appear until the app has been adopted. The only solution really is to have a solid architecture. Unless you've built similar systems, solid architectures are tough to do without the doing the currently frowned upon upfront work.
Jan
21
comment How to make significant technical decisions given very little time
What you described is called the "Analytic Hierarchy Process". It is the most common technique I've seen used for performing trade studies. Its strength is that it helps decide the best option in a fairly objective manner and takes all stakeholders opinions into account. I was surprised to see how complicated the websites make this technique seem. Don't let the apparent complexity shown by websites sway you, it really is very easy to use. Anyways, since I couldn't find a good example I suppose Wikipedia is as good a starting point as any en.wikipedia.org/wiki/Analytic_hierarchy_process.
Jan
17
awarded  Yearling
Jan
9
comment How to structure a loop that repeats until success and handles failures
I guess I would consider "aborting a loop" to only happen for unexpected conditions, not the expected condition. If we had an example like that then I very well may agree with you. But for the OP's specific example I see too many issues, not being semantically correct and harder to read IMO are my top complaints. About the only thing it has going for it is that it works.
Jan
9
comment How to structure a loop that repeats until success and handles failures
@Doval:I also don't know how you read code, but I certainly don't read every line when I am trying to figure out what it is doing or where might the error I am looking for be. If I saw the while loop, it is immediately apparent (from my example) that the loop is getting valid data. I don't care how it is doing it, I can skip everything else inside the loop unless it just so happens that for some reason I am getting invalid data. Then I would look at the code inside the loop. Your idea requires me to look at all the code in the loop to figure out that it isn't of interest to me.
Jan
9
comment How to structure a loop that repeats until success and handles failures
@Doval:You do realize that your explanation just made the claim that "for", "do" and "while" loops are wrong. You've essentially claimed there should only be a single "loop" keyword and inside the processing is where you decide to exit the loop or not, not at the entry/exit of the loop. So now you have to dive into the code of the loop to figure out how to get out of the loop. Sounds too nasty to me.
Jan
9
comment How to structure a loop that repeats until success and handles failures
@Doval:That is hogwash.
Jan
9
comment How to structure a loop that repeats until success and handles failures
@Doval:Dogmatic would be insisting never to use break/continue or insisting there should only ever be one exit point. Pointing out that the wrong tool for the job is being used isn't dogmatic. You aren't introducing an extra variable to dodge a break/continue. You are doing it to make the code easier to read and understand. As I said, the 2nd example could be better but is better than the OP's preferred method. do{....}while(!dataIsValid); is far superior to the OP's way. You can immediately look at the code and know exactly what was intended without having to pause and think.
Jan
8
comment How to structure a loop that repeats until success and handles failures
You aren't looping forever, so why are you using something that implies you are looping forever? A loop forever is not always a bad choice (although it usually is) in this case it is obviously a bad choice because it communicates the wrong intent of the code. The second method is closer to the intent of the code, so it is better. The code in the second snippet could be made a bit more tidy and easier to read with some minimal reorganization.