46,906 reputation
8122208
bio website tech.turbu-rpg.com
location Seattle, WA
age 32
visits member for 4 years, 2 months
seen 11 hours ago
A lifelong programmer who's been coding in Delphi since its initial release and currently makes a living at it.

Oct
28
comment I want a trivial example of where MongoDB can scale but a relational database will have trouble
@RyanWeir: Morons is right, really. NoSQL is only better in large environments. Unless you're trying to build something on massive scale (ie. Facebook, Flickr, EBay, Amazon, etc) you almost certainly don't need it, and the tradeoffs in dev time become worth it once you get to moderate-to-large scale, which the relational model handles quite well on modern hardware. That's when you really start to appreciate the benefits and guarantees that ACID and the relational model bring.
Oct
28
comment I want a trivial example of where MongoDB can scale but a relational database will have trouble
@Morons: The A* pathfinding algorithm, used for finding the shortest distance between two nodes on a graph.
Oct
28
comment I want a trivial example of where MongoDB can scale but a relational database will have trouble
Why is this a database problem in the first place? If I had to run calculations like this, I'd set it up as a variant on A* that doesn't stop after the first result. Pull all relevant flight data from the database (or have it already cached in memory), build a graph weighted according to the priorities the user has set, and report the first X number of results.
Oct
11
comment How would I implement a “self-destruct” feature into the free trial version of my software?
I downvoted on factual accuracy grounds, because you claimed that something impossible is actually "not difficult to do."
Oct
9
comment If I try to monetize free software, what could possibly prevent someone from forking that software and creating a proprietary version?
The GPL was created to prevent a lot more than just that. It's pushing an ideology that believes that proprietary software in general is inherently evil and must be fought against, which is why the GPL is a strongly viral license that requires its terms to be spread not only to modifications of the software, but to essentially anything the software touches as well.
Oct
6
comment Why is Global State so Evil?
being able to unit test code is a major step in the process of proving its correctness (or at least fitness for purpose). No it isn't. "It is now two decades since it was pointed out that program testing may convincingly demonstrate the presence of bugs, but can never demonstrate their absence. After quoting this well-publicized remark devoutly, the software engineer returns to the order of the day and continues to refine his testing strategies, just like the alchemist of yore, who continued to refine his chrysocosmic purifications." -- Djikstra, 1988. (That makes it 4.5 decades now...)
Oct
3
comment xml based programming languages
The fact that you try to respond to this in terms of escaping in the first place--which is and always has been the wrong way to prevent SQL injection--and not in terms of separation of code from data via Parameters--which is the only correct way to do it--shows that you really don't understand the problem. And that's why SQL injection attacks keep happening: people keep not understanding why these things are important and how to do them right.
Oct
3
comment xml based programming languages
Conflating code with data is not an advantage; it's a security hole at the language level. The classic example is SQL injection: every time some site gets hacked and millions of dollars worth of damage is done and tens of thousands of users have to order new credit cards due to a SQL injection exploit, the fundamental reason is because some developer somewhere set up a query in some way that did not properly segregate data from code. Throwing around fancy words like "homoiconicity" does not change this fundamental fact.
Oct
2
comment Optional semicolons
@delnan: Python isn't designed to look like C. It's well-known to be indentation-based and thus highly line-oriented, and It doesn't require semicolons. JavaScript technically does require them; it's inserting one when it finds one missing, which transforms what looks like one syntactically valid statement into two distinct statements with completely different semantics.
Sep
27
comment Why is the yield keyword used in conjunction with return and break, and not by itself?
@Moop: What if you had a function named yield that took a single parameter?
Sep
27
comment Should ** bind more tightly than !, ~?
That just means that JavaScript is poorly designed. (But we knew that already.) And what do you mean that concatenation is more like multiplication, semantically speaking, than addition? I don't see that at all.
Sep
27
comment Should ** bind more tightly than !, ~?
I've never understood the need some people seem to have for coming up with exotic string concatenation operators. + works just fine. Some people complain that it doesn't make sense mathematically, but that's a silly argument because strings aren't math in the first place, and it does make sense intuitively in the sense of "taking this with that and producing a result that is equal to the two inputs combined together."
Sep
22
comment An ideal way to decode JSON documents in C?
@Falcon: You can try that if you really want, but IME union types tend to be more trouble than they're worth most of the time.
Sep
21
comment How to find bottlenecks in an application?
the really good profilers can get expensive. That definitely depends on the language. For Delphi, for example, easily the most useful profiler is a freeware tool simply called Sampling Profiler.
Sep
16
comment Are mutexes assigned to specific regions of memory?
@Qix: Glad I could help. :)
Sep
13
comment Why can't SQL return joined tables in a nested format?
@SeanMcSomething: Unless that widely-used tool is C++ or PHP, in which case you're probably right. ;)
Sep
13
comment Why can't SQL return joined tables in a nested format?
@Matthew: Trees actually make for very readable reports, if they're presented in a collapsible tree control that allows the user to "drill down" through the layers on demand. But if you're talking about printed reports, then yeah, I'd agree.
Sep
13
comment Why can static methods only use static data?
This is a lot less complicated to explain in languages that don't force everything to be part of an object by default.
Sep
9
comment What are the advantages of using LISP and Haskell? Will they make me a better programmer?
The people who say this usually are Lisp and Haskell programmers pushing their own agenda. All of the useful features of Lisp are already in common use in mainstream programming languages. But if these languages really were so much more useful, people would be using them. When's the last time you used a program (any program) written in Lisp or Haskell? (Do any programs written in Haskell even exist? I know Emacs exists, on the Lisp side...)
Sep
8
comment What is a closure?
@RoboAlex: In the heap, because it's an object that looks like a function.