1,840 reputation
312
bio website apokalypsesoftware.com
location Crawfordville, FL
age 49
visits member for 2 years, 8 months
seen Jun 6 at 10:10
stats profile views 66

Seer. Founder/Pres, Apokalypse Software Corp., Publisher of Productivity Software.


Mar
18
comment Code Smell: Inheritance Abuse
@flamingpenguin, I have done so.
Mar
18
revised Code Smell: Inheritance Abuse
Expounded on what violation of DRY occurs with object composition and why.
Mar
5
revised Dealing with inflexible programmers
Replaced "this book" with the book's title.
Mar
5
suggested suggested edit on Dealing with inflexible programmers
Mar
5
comment Dealing with inflexible programmers
Please use the book's title in the link instead of "this book". It's one less step for those who readers to decide whether to click or not. Especially those who've previously read it.
Feb
27
awarded  Taxonomist
Feb
24
comment Advantages of object-oriented programming
Except the OP didn't ask about functional programming, so your comment lacks merit. Particularly so since my answer is the one accepted.
Jan
11
comment Is it common to print out code on paper?
You did DOS programming on a crt console? We had punch cards. The 80 character limit was a result of the punch cards. Being able to study code over 3 or 4 pages at once is pretty handy. I guess that's why I still prefer print-outs. It's easier to navigate amongst related functions.
Jan
11
answered Do you prefer building your interfaces in IB or programmatically? and why?
Jan
8
comment KPI's for Programmers
@Paul, engineering is a disciplined approach to building systems. Patterns for structuring the system such as layering, nesting, dependency injection, etc. were defined specifically to prevent the system and its components from becoming complex, let alone that complex. Further, while the sequence of network communication might be random to a member of that system, its state should never be. One might experience "random" events traveling from home to work, but it isn't okay to end up elsewhere or late. How is it okay for a finite -state machine to be in an unknown or inconsistent state?
Jan
8
comment KPI's for Programmers
@Paul, the system cannot be random. It's why even random number generators are difficult and such an intense field of study. What is required is for process states to be well-defined and respected and for control flow between processes to be strictly contained in order to prevent them to be in an unexpected state. There is no randomness in the system. It is the product of prior computations.
Jan
7
comment KPI's for Programmers
You've got a great start to answering your own question here: a measure of solving the business requirements. So how do you go from defining the requirements to running a system that meets those requirements?
Jan
7
comment KPI's for Programmers
Programmers are Michelangelos? Really? Our work is judged primarily on an aesthetic basis, and not for its performance by a logical calculating machine? In fact our work should be calculating machines: finite-state machines which are nested to varying degrees to produce work in a deterministic order. It is on that basis that KPIs should be determined: how decoupled your FSMs are, and how well integrated they still are to produce the desired work. Craftsmanship is a silly romanticization to justify a lack of engineering discipline.
Jan
6
comment What non-programming books should a programmer read to help develop programming/thinking skills?
Actually, two of the book's authors, Max Jacobson and Murray Silverstein, worked with Christopher Alexander (and others) to assemble those patterns. But again, while APL focused on the patterns to be implemented in a residential structure, this book focuses on patterns for designing/judging a well-designed home. It gives remarkable insight into determining how to design a software system well, or if it was designed so.
Jan
6
comment KPI's for Programmers
@CraigTP - and payment usually comes after the fact as well. Shouldn't there be some metrics to determine whether you were paid fairly and the client got value for the work done? Just as there should be metrics to determine what parts of a codebase are unsound and need of repair before new features are added so it can be determined what developers have been doing with their time or if repairs are warranted or the code should be replaced. Most of the fears expressed here are that metrics will be misused, but if we fail to define proper metrics bad ones are all we'll get.
Dec
30
comment How common are “bandage” fixes?
Your definition for band-aid is incorrect. The term doesn't mean "unknown flaws", but "the fix is unsightly". Guard clauses are certainly applicable in that case because they 1) invert the direction of the logic by redirecting outwards rather than narrowing the conditions under which the state-machine progresses and 2) make it harder to extend the state-machine because guard clauses inside nested state-machines introduce alternate flows which must be tracked (like gotos) rather than also nesting their states. Guard clauses also indicate the upstream logic is too coarsely grained.
Nov
30
comment Should one use pseudocode before actual coding?
@Michael, flowcharts are fine for thinking through processes at three different design stages: 1) use cases of how the user and execution environment interact with the processes (ignoring internal mechanics); 2) the internal mechanics of how the processes function; and 3) the process used to develop the software solution. However, because flowcharts provide procedural semantics (eg, conditionals), it's too easy for designers to expose low-level details into the design too early. For that reason I prefer starting with post-it flags, then state diagrams, during analysis & design.
Oct
28
revised What design pattern is best suitable with this context?
added 2 characters in body
Oct
25
comment How do you portray to non programmers what programming involves?
@John, the issue isn't what brought about the need to explain programming. The fact is that it's yet another variation on the same "explaining programming" theme, and doesn't add enough to the topic to deserve being a separate question.
Oct
25
answered Code duplication with no obvious abstraction