Reputation
53,958
Next tag badge:
189/100 score
17/20 answers
Badges
10 153 237
Newest
 Enlightened
Impact
~1.7m people reached

Feb
18
comment Why freeware (closed-source) instead of open-source?
@Joe: Admit? You make it sound like something to be ashamed of. If you really believe that, please make sure to share your views with my competitors; if they listen it will further increase my competitive advantage. ;)
Feb
18
comment What to do if you find a vulnerability in a competitor's site?
@user17610: The shared resource in question is the security of the Internet.
Feb
18
comment Why freeware (closed-source) instead of open-source?
@Joe: Sampling Profiler, a non-invasive profiler for Delphi apps and the most useful tool I've found for hunting down bottlenecks.
Feb
18
comment What to do if you find a vulnerability in a competitor's site?
-1. This kind of thinking is a classic example of the Tragedy of the Commons. Security holes are everyone's problem.
Feb
17
comment Is software innovation still primarily North American and European? Why, and for how much longer?
@Malvolio: Paul Graham tends to be like that a lot. He's very talented at persuasive writing, so he can make the ideas that he's trying to communicate sound very good, but when you actually separate the actual ideas from the rhetoric, most of what you end up with turns out to be a lot less interesting than the presentation. Plus, a lot of it is demonstrably false and harmful, especially when he starts talking about computer programming, so it's best to take his work with a grain of salt...
Feb
15
comment Best time to start writing technical blogs
I wish I could upvote this more than once. It's far better advice than the answers with more votes.
Feb
14
comment Do you think code is self documenting?
@Thorbjørn: Yeah, that's exactly the sort of thing I'd stick in a comment about.
Feb
14
comment Do you think code is self documenting?
You're missing the key: Code that clearly explains what is happening will also clearly explain why to a reader with domain knowledge of the task being performed. This is why, in my code, I don't usually write comments--those who care enough to read the code will know what it's supposed to be doing anyway and thus already have the "why"--but when I'm doing something that looks unusual or arbitrary I'll put in a comment explaining why it's necessary.
Feb
11
comment Is software development a field suitable for people who have unconventional methods of solving problems?
"Your manuscript is both good and original; but the part that is good is not original, and the part that is original is not good." -- Mark Twain
Feb
11
comment How can software be protected from piracy?
@Steve314: Heck, if you're cynical enough about it, the case could be made that it's actively in your best interest, in this particular circumstance, to not put in any copy protection. If they do pirate it and you take them to court over it, you can make a lot more in damages than you would have in sales, so why not make it as easy for them as possible? ;)
Feb
11
comment How can software be protected from piracy?
@Steve314: If you're developing an app for one specific company to use, then your target market is small enough that compliance can be verified by a human being and does not need to be automated. (And if it can't, fire the lawyer who drew up the contract and get a more competent one.) Plus, this one company most likely understands that it would not be in their financial interest to break the law and expose themselves to the threat of litigation, especially in a situation where they could be caught so easily. Wasting resources on copy protection still doesn't make sense.
Feb
10
comment How can software be protected from piracy?
@Steve314: Maybe, but if there are no pirates after you anyway, then it's even more of a waste. Instead of trying to solve a problem that exists but can't be solved well, you're devoting resources to solving a problem that doesn't exist.
Feb
10
comment How can software be protected from piracy?
@mohabitar: Yes, that's exactly what I think, because it does not, and can not, ever work. No DRM system I'm aware of has lasted more than 1 month after being exposed to the Internet before being cracked wide open. Microsoft spends more money on R&D every single day than you'll see in your entire life, and they can't get it right. Heck, Windows 7 was cracked before it was even released! So what makes any smaller developer think they have any chance whatsoever of success?
Feb
10
comment How to make people new to programming stop asking me questions and distracting me?
+1 for having them explain their code to you. Not 10 minutes ago I helped a coworker solve a very frustrating problem this way. He'd been beating his head against a memory corruption issue all day. He knew it had to be somewhere in the call stack, but he'd been through the whole thing and couldn't find it. So I told him to walk up the stack with me. A few minutes in, as he was explaining what was going on, he looked at one line and said "hey, wait a second..." and there was his problem as plain as day. But he never noticed it until he had to analyze it with someone else sitting there.
Feb
9
comment Strategies for managing use of types in Python
@Dave: Re: "you can't test what you have not written yet." Obviously you haven't had enough kool-aid yet; that's exactly what you're supposed to be doing! First you write the test that tests what your code is supposed to do, then you write code that will pass the test.
Feb
7
comment Worst practices in C++, common mistakes
@David: Are you saying that in C++ Land, RTTI is the same thing as vtable use? I thought it referred to additional metadata about a class, used for things such as getting the names of your classes and determining the inheritance hierarchy of an object at runtime.
Feb
7
comment Worst practices in C++, common mistakes
You're either mis-remembering what your professor said, or he had no clue what he was talking about. Derived classes don't generally need to use RTTI (AKA reflection) to look things up. If they're using virtual methods, the code might need to do a vtable lookup for the dispatch, but that translates to a single ASM instruction on a lot of processors. Because of caching issues it can slow things down by a certain amount, but you're unlikely to ever notice the overhead under any but the most demanding use cases. There are plenty of good reasons to avoid C++, but vtable lookups aren't one of them.
Feb
7
comment Is C++ suitable as a first language?
@David: The problem is, doing "a lot of stuff in C++" without pointers is even worse. Without pointers, all your objects get declared on the stack, which is one of the worst programming ideas EVER. Value types and inheritance/polymorphism just don't mix, and trying to mix them leads to entire categories of errors that don't exist in better-designed languages.
Feb
7
comment If we can do functional programming with Python, do we need a specific functional programming language?
@Andrés F.: Fair enough, but bear in mind that this paper was written in 1984, before hybrid languages (such as Python) even existed. The example imperative language he's comparing against is FORTRAN. It wasn't possible to do any serious functional programming in languages that weren't specifically designed as functional languages. That's not true today, and in that context it doesn't invalidate my original point.
Feb
7
comment Is C++ suitable as a first language?
@Andrés F.: Gotta disagree with that. Knowing assembler makes you a better programmer no matter what you're writing in, because then you can understand what's really happening.