6,336 reputation
31929
bio website marjanvenema.com
location Netherlands
age 52
visits member for 3 years, 7 months
seen 23 hours ago

Software developer since 1985. Started in Cobol, moved via Clipper/VB to Delphi. Delphi developer since 1998. Sniffing at C# and playing around with javascript and some php for websites. Coaching new employees and less experienced developers. Focused on software architecture and SOLID design. Keenly interested in user experience and usability.

Questions

When you ask a question, show your effort, provide all the details that will help someone to help you and be precise.

Answers

When you answer a question, don't just paste your code. Your answers will be much better when you explain why your code is doing what it does and how it achieves the asker's goal. It makes it a whole lot easier to follow along. As it is I am much more inclined to up-vote answers that have explanatory text about what the code is doing and why it is written as it is.

Answers that just contain links aren't likely to get an up-vote from me either

Other

Obligatory link whenever someone thinks they are improving security by imposing all sorts of rules on password composition: Password strength


Nov
21
comment Why should a class be anything other than “abstract” or “final/sealed”?
@RobertHarvey: Ever heard of interposer classes? Where you give the derived class the same name as its ancestor and make sure it is closer in scope than the library unit? So you don't have to change every single line where the class is instantiated?
Nov
21
comment Why should a class be anything other than “abstract” or “final/sealed”?
@RobertHarvey: that certainly helps tremendously, but is not always necessary. Knowing the interface is often enough. Many Delphi component developers (used to) distribute the interface sections of all their units, even with "dcu-only" distributions. And nowadays reflection mechanisms also can help enormously.
Nov
21
comment Why should a class be anything other than “abstract” or “final/sealed”?
@RobertHarvey: yes it would be broken. And that is exactly when you need frameworks/libraries to be extensible. So I can program around the bugs in it without having to jump through hoops. After all: frameworks and libraries bugs do not get fixed instantly, sometimes not at all...
Nov
21
comment Programming language features that help to catch bugs early
Unit testing is not a feature of a programming language.
Nov
20
comment Is Google Closure a true compiler?
+1, and plus another for 'assumes that Wikipedia is authorative on this point'. Too many people blindly accepting whatever happens to be written there.
Nov
17
comment How to TDD test that objects are being added to a collection if the collection is private?
Yep. It sure does.
Nov
17
comment How to TDD test that objects are being added to a collection if the collection is private?
+1 for your first paragraph, though I admit the rest confuses me more than it helps. Perhaps if you made the example more concrete, it would better serve to explain your first paragraph.
Nov
16
comment Are there examples of non CRUD approaches?
You may also want to watch a talk about Datomic: infoq.com/presentations/The-Design-of-Datomic
Nov
16
answered How to be successful at BDD Specifications Workshops?
Nov
11
comment Why do node packages put a comma on a newline?
Interesting to read that I have been following a specific style... Yeah, I can now say that it is not just my preference :-)
Nov
11
comment Programming Interview : How to debug a program?
@ShivanDragon: because it is a perfectly natural response to want to answer the question...
Nov
10
comment Hallmarks of a Professional PHP Programmer
+1. I'd add team work. Developing in a small team/shop is nothing like developing in a large team/shop, even when you are in of a small team within that large team/shop.
Nov
3
comment Why is CSS3 doing animations?
And why couldn't animations be style? Animations are not the same as interactions. Interactions require a second party (user). Animations do not. So separation of concerns is not violated.
Oct
28
comment Combining template method with strategy
I'd say your thinking is pretty much spot on. If the feedback you get from your professor doesn't validate that, ask him/her to point out the flaws, or give a hint of what (s)he is after in the answer. Stop trying to read minds. Assuming stuff about what your professor (and later your users) want is possibly the worst you can do.
Oct
27
comment Is saying “if ( $a != null && $a == 5)” the same as “if ($a == 5)”
@user127379: but as the one who posed the question, you can "accept" an answer by clicking the checkmark under the vote marks.
Oct
26
comment Vocabulary: Should I call this apply or map?
Hi guys, finding new vocabulary here, can you point me to a (canonical) link where these "function patterns" are listed and described? Something akin to the Gang of Four's OO patterns?
Oct
20
comment What is the need for 'discoverability' in a REST API when the clients are not advanced enough to make use of it anyway?
Sorry, no links. Just common sense and years of having to maintain code in server apps to keep it backwards compatible with older clients. Whenever you have a client/server type situation, you need servers backwards compatible with old clients as you can NOT change an old client once it has been deployed. This holds even if you control both web client and server code and always deliver them as a whole: you can do without the headaches during development so a web client team can develop as independently as possible from the back end team.
Oct
20
answered What is the need for 'discoverability' in a REST API when the clients are not advanced enough to make use of it anyway?
Oct
18
comment How do you pronounce the '…' operator
@VaibhavAgarwal: neither wikipedia link gives any real information. Your other link does, thanks. I quess the ellipsis is not really an operator as such then, not like the plus or minus operators are, but "just" a syntactic element to allow for an undefined number of parameters.
Oct
18
comment How do you pronounce the '…' operator
Out of curiosity (not a c++ programmer)... what does the ellipsis operator do?