1,381 reputation
820
bio website karwin.com
location California
age 46
visits member for 3 years, 7 months
seen Mar 24 at 17:30

I'm Senior Knowledge Manager at Percona, a services company specializing in the MySQL database.

I've been a software engineer since 1987, and my specialty is as an SQL maven. I also have experience programming in Java, PHP, Perl, C, JavaScript, and I have many other coding skills.

I've written a book, SQL Antipatterns: Avoiding the Pitfalls of Database Programming from Pragmatic Bookshelf, based on the most common SQL problems I've answered on Stack Overflow and other forums, mailing lists, and newsgroups over the past 15 years.


Nov
29
comment Why don't relational databases support returning information in a nested format?
@EamonNerbonne, yes, Date also says that it's more tolerable to support RVA's in result sets, and less tolerable in the relvars (i.e. persistent tables defined in your schema). FoundationDB is another vendor that provides an extension to SQL that expresses RVA's. They use it to combine multiple rows from a joined table into one RVA in a row of the result set. See foundationdb.com/layers/sql/SQL/dml/…
Nov
28
comment Why don't relational databases support returning information in a nested format?
@EamonNerbonne, symmetry of relational operations. For example, projection. If I SELECT some sub-attributes out of an RVA, how can I apply a reverse operation against the result set to reproduce the original hierarchy? I found page page 293 of Date's book is on Google Books, so you can see what he wrote: books.google.com/…
May
19
comment Why don't relational databases support returning information in a nested format?
@EamonNerbonne, this is the only way relational operations can be symmetric.
Feb
18
comment What are non-programming mistakes that a programmer should avoid?
@StephaneRolland, yes, I'm wearing the Smartglove right now.
Aug
30
comment What is the (craziest, stupidest, silliest) thing a client/boss asked you to do?
And development of the module will complete 2012-12-31.
Aug
4
comment What is the (craziest, stupidest, silliest) thing a client/boss asked you to do?
@NimChimpsky: Some of the client's "issues" were cases where they wanted the software to do something it was not designed to do, or when they made fat-finger mistakes (like misspelling SQL keywords). They reported these cases as "bugs".
Jul
10
comment Completing a project successfully despite hostile management?
I didn't get that from the OP's description. "Heading toward a death march" could mean the project is just beginning, or that the project has been going on for a while but the pace is changing. But I agree with you that adding people to a new project is just fine. :-)
Jul
10
comment Completing a project successfully despite hostile management?
Adding more people to a late project makes it more late.
Jul
7
comment Why don't relational databases support returning information in a nested format?
Result sets and tables are of a kind. Date calls them relations and relvars respectively (by analogy, 42 is an integer, whereas a variable x can have the value of integer 42). The same operations apply to relations and relvars, so their structure needs to be compatible.
Jan
27
comment What's your favourite quote about programming?
@David Kendal: Nice! Similarly, Henry David Thoreau said, "Simplify, Simplify." Which always makes me think, "Simplify."
Jan
27
comment What is the (craziest, stupidest, silliest) thing a client/boss asked you to do?
@Thorbjørn: Good idea, that would allow us to log most of the client's mistakes, but it wouldn't meet their goal of "we won't have any more issues." Anyway, this anecdote is from the 1990's. I earnestly hope that the developer who refused to check return status from our API is now working in a different career.
Dec
10
comment What's your favourite quote about programming?
@Keyo: Yeah, I thought of that take on it. I still think the quote is really clever.
Nov
28
comment What is the (craziest, stupidest, silliest) thing a client/boss asked you to do?
@Thorbjørn: It was a C API, so there were no exceptions. Just return values. Since the client programmer refused to check return values, there was not much we could do.
Sep
18
comment What is the (craziest, stupidest, silliest) thing a client/boss asked you to do?
This is a true story. The client above was a manager at an company who developed air-traffic control software for logging flight data. The sole developer on the project (who had no one reviewing his code) called to report a "bug" frequently, but it turned out to be an error on his part 9 out of 10 times. He didn't know about his own errors because he refused to check error statuses returned by our API. Why? Because he said any error must indicate a bug, and our library should have no bugs.
Sep
11
comment What is the (craziest, stupidest, silliest) thing a client/boss asked you to do?
1) Embed a flight simulator easter egg. 2) ... 3) Profit!
Sep
10
comment What's the most absurd myth about programming issues?
You might as well classify them as top, tippy-top, and critical.
Sep
10
comment What's the most absurd myth about programming issues?
I love this quote: "Java is to JavaScript as Car is to Carpet." I've read this attributed to Chris Heilmann (wait-till-i.com/2005/11/08/…)
Sep
9
comment What's the most absurd myth about programming issues?
+1 I once had an interviewer ask me, "what's the difference between C++ and Java?" So I listed some differences. Native compiler vs. JVM, ANSI standard vs. proprietary, garbage collection, classloaders, etc. He roared, "WRONG! There's no difference! They're identical!" He wasn't a student, he was the engineering manager.
Sep
9
comment What's the most absurd myth about programming issues?
I didn't work with that manager long enough, but I don't doubt it would have come to that!
Sep
9
comment What's your favourite quote about programming?
-- Fred Brooks, in "The Mythical Man-Month"