6,651 reputation
32130
bio website softwareonastring.com
location Netherlands
age 53
visits member for 4 years, 6 months
seen 8 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


Jan
30
comment Creating bonus incentives, reward structure - For yourself
+1 Hear, hear! Especially on the last paragraph. Do all developers get a share in that bonus or just the ones that worked on the project? I would say the latter is a tad unfair. People working on other projects than the profit generators deliver just as much value to the company as the ones working on the profitable ones, if only by enabling other people to work on those. Where I work, bonuses are on a yearly basis, their height is f x salary where f is a factor based on the company's performance and the individual's (general) assessments over the year.
Jan
28
comment Creating bonus incentives, reward structure - For yourself
Just give him the link.
Jan
28
comment Creating bonus incentives, reward structure - For yourself
Don't go there Drive: The surprising truth about what motivates us
Jan
26
comment Is eventual consistency a wrong solution for e-commerce applications?
"real time" and "eventual" don't sound like they mix well...
Jan
26
comment Where does the term 'serialization' come from?
@delnan: you are right. edited.
Jan
26
comment Where does the term 'serialization' come from?
@delnan: yeah, I know, just didn't want to muddy the waters even further.
Jan
24
comment How do I stress the importance of unit tests to my manager
Only article I know contrasting two approaches to software development within the same organisation, one being built around SOLID principles and automated testing. I think that this is as close as you will ever get to researching the costs and benefits of good practices. Are Your Programmers Working Hard, Or Are They Lazy?
Jan
24
comment What changes can I make to my IDE to minimize the effect of my dyslexia?
Selecting the right font to use in your IDE may play a big part. Apparently there are various fonts specifically designed to help dyslexic people. These links may be helpful to you: Tips for a programmer with Dyslexia; NYC Dyslexia Research font tag archive Dyslexic friendly fonts Free and open dyslexia font face
Jan
10
comment Lead developer unable to do INNER JOIN
@RobertHarvey: No, but you are making judgements about people you don't know and their level of competency or developer-ness based on knowing or not knowing a single aspect of programming which isn't exactly as ubiquitous as you may think.
Jan
10
comment Lead developer unable to do INNER JOIN
@RobertHarvey: You are assuming too much. Namely that you cannot be a developer without having to deal with relational data or a query language. You can. Many are. Doesn't detract one little bit of their developer-ness. Heck, I only know what a JOIN is because of my earlier work. Haven't touched a database or a SQL statement in my work for more than 9 years. Doesn't make me less of a developer. In fact, in those years I have grown more as a developer than in many of the years I did work with SQL JOINs.
Jan
10
comment Lead developer unable to do INNER JOIN
@pdr Usually better at picking up sarcasm when I read it :) thanks for responding. I wholeheartedly agree with your response to my question!
Jan
10
comment Lead developer unable to do INNER JOIN
@pdr I am missing your point? Plenty of musicians around that can't play the piano and are very, very, very accomplished if not famous musicians.
Jan
7
comment Should if/else statements be arranged by rareness of cases or difficulty of dealing with them?
Yep, double negatives, negatives combined with and's and/or or's (sic!) and negatives combined with a method/var with Not in the name, get my brain in a twist every time :-)
Jan
6
comment Constructor Injection, Single Responsibility and List initialisation
@pdr +1 instantiating the list in this case is part of the "construction process" and rightfully belongs in the constructor regardless of whatever else you are injecting into it.
Jan
5
comment API design with references to root object
@Telastyn Oh heck, you are right. I just went with the MS Office way of doing things and forgot the OP was just using that as an example. (Shakes head and returns to baking a cake, which probably is a much better activity considering the state of brain :-D )
Jan
5
comment API design with references to root object
@Telastyn: Yeah, if you are going to pass around classes (objects). There is no problem if you pass around a generic IApplication interface that various applications can extend into IWhateverApplication and clients investigate to see whether the IApplication reference they received also supports IWhateverApplication. Which it probably does, because clients generally know what application they are calling stuff on, so they would know that the IApplication is also an IWhateverApplication and could simply use a "soft" cast. (app as IWhateverApplication).
Jan
5
comment Should if/else statements be arranged by rareness of cases or difficulty of dealing with them?
Order by simplicity / understandability of the conditions! The rest can be taken care of by optimisers, branch predictors and refactoring.
Jan
5
comment Should if/else statements be arranged by rareness of cases or difficulty of dealing with them?
For performance I might agree. But then again, most optimisers and branch predictors are perfectly capable of taking care of that. For readability I might agree if the most likely case has significantly more lines than the less likely case. But to me that would sooner indicate the need to extract a method than to use a not. Personally I would concentrate on avoiding not conditions. They have been proven to induce more cognitive load to understand than "positive" conditions and are detrimental to readability / understandability of code. I tend to use them in guard statements only.
Jan
5
comment API design with references to root object
The reference in and of itself does not preclude re-use in other environments. It just offers the API user a convenient way to get back to the root and access other parts of the API from there. Re-use is / would be precluded if the child would actually call methods on the root reference. That would indeed create implicit dependencies that you might not be aware of and that would be better handled through dependency injection to make them explicit.
Jan
5
comment Two months in my new job, still having trouble learning a new codebase. How can I improve?
Related: programmers.stackexchange.com/questions/201724/…