52,256 reputation
10146229
bio website tech.turbu-rpg.com
location Seattle, WA
age 32
visits member for 4 years, 7 months
seen 25 mins ago
A lifelong programmer who's been coding in Delphi since its initial release and currently makes a living at it.

Jan
28
comment How would you decline to have your name put on a software patent?
@Orbling: I still say "sometimes," depending on how strongly you believe it. For example, I believe creamy peanut butter is better than crunchy, but I wouldn't turn someone down if they paid me to eat a sandwich made with crunchy peanut butter. :)
Jan
28
comment How would you decline to have your name put on a software patent?
Sometimes standing up for what you believe is more important than money. And this isn't likely to hurt someone's career. Hurt their prospects of remaining employed with that particular company, perhaps, but it won't magically make them unemployable at other companies.
Jan
27
comment Why do some programmers hate the UI part of the development?
@Chad: I had a "wrong shade of light blue" issue one time. After a bunch of nitpicking, I just took about 2 minutes to produce a gradient in Photoshop and send it to the client. "Please indicate which shade looks best to you with an arrow." They sent it back with a little red arrow pointing to the "good" shade. I implemented it like that and never had any more trouble with that particular issue.
Jan
27
comment What is a “side effect?”
@S.Lott: Oh, right. C++. Sorry that I didn't remember about that rather obvious example; I haven't used C++ since college and I've been mostly successful at blocking out the traumatic memories.
Jan
27
comment What is a “side effect?”
@S.Lott: What "crypto-assignment statement"? I'm unaware of any language feature of any language that allows "crypto-assignment", or assignment without the use of either a plain old assignment operator or its slightly heavier cousin, the data copy routine. It's simply that these assignment operations tend to be contained within subroutines and methods, due to programmers employing abstractions and building software in layers. The simple fact is that the generation of "side-effects" is the entire point of using any computer program in the first place.
Jan
26
comment What is a “side effect?”
@Frustrated: +1. Whenever I see that term I can't help but wonder if it wasn't chosen by FP advocates to create precisely that subtly sinister connotation.
Jan
21
comment What parts of my computer should I upgrade first to speed up development?
@Developer Art: What are you talking about? SSDs greatly speed up the single biggest time-waster of the development cycle: compilation.
Jan
20
comment What's your favourite quote about programming?
@Maxpm: The version I heard was "The 4 S's: Smart, Sexy, Sane, Single. Pick 3."
Jan
19
comment Why are side-effects considered evil in functional programming?
-1 for side effects being "leaks that need to be handled." Creating "side effects" (non-pure-functional code) is the entire purpose of writing any non-trivial computer program.
Jan
19
comment What can I do? How would you react? HELP!
@Matthew: Delphi accomplishes C++'s job (writing native object-oriented code) far better than C++ does. You ought to take a look at it.
Jan
19
comment What can I do? How would you react? HELP!
Or, alternatively, stop using C++. This will solve many different classes of nasty errors.
Jan
12
comment Pointer ownership tips
@Stefano: Glad I could help. This model is basically copied directly from the way Delphi handles GUI objects, and it works well enough that most coders never have to worry about ownership at all.
Jan
12
comment Pointer ownership tips
@Stefano: Is this a technical issue or a matter of interpretation? I'm not sure how it works in Fortran 90 (or if there even are objects) but I don't consider an object to truly belong to anything before the constructor exits. So if ownership is set within the constructor, then it's always been that way and nothing's been transferred.
Jan
12
comment Pointer ownership tips
@Pemdas: no, but the talk about pointer ownership made it obvious that he's not in a GC'd language.
Jan
12
comment Pointer ownership tips
-1 on accuracy grounds. What he's asking for is not what Java or .NET do. Java and .NET are garbage-collected languages; he's specifically asking for a way to keep track of object ownership in a non-GC language.
Jan
11
comment Overused or abused programming techniques
You say that as if the coder is poking around blindly in the dark trying to do something--anything--to get the code to somehow compile. That's not how it works IME; the compiler gives you a useful error message and points you at the location of the error, and usually if something's not compiling it's new code that you wrote yourself, so you have a pretty good idea what's wrong and how to fix it once it's been pointed out. (Although if you're tossing random *s around, you might be working in C++, where compiler errors are known to be supremely unhelpful, so what I said may not apply.)
Jan
11
comment Overused or abused programming techniques
I think a huge fraction of the Unicode issues would have never come up if Borland had declared a DataString type that was basically the same as AnsiString but specifically for use with blobs, and then made sure people knew about it.
Jan
11
comment Overused or abused programming techniques
What's wrong with "using the compiler as a debugger"? Having a compiler that's able to point out errors in your code before they become an issue at runtime is a tremendous advantage.
Jan
11
comment Rationale behind freeware projects
+1 for Drive. Great book, though I don't like the name. The only "surprising" thing about it is that its principles are surprising to so many people today.
Jan
7
comment What features are helpful when performing remote debugging / diagnostics?
@Pemdas: Yes, it's very nice, especially because it provides full stack traces. That makes debugging so much easier! I'm not sure what you're coding in or what options are available for it, but we work in Delphi and I can name two different packages that will do that for you: MadExcept and EurekaLog.