and unfortunately, they are the only ones who can offer support or implement a patch for their software!
With postgres and mysql you can find many companies competing to offer great service, and who can contribute their fixes and improvements directly should they so choose. The stronger the output of these communities and the organizations that support them, the more pressure for even the companies like Oracle to improve ( or perish :))
I find the official documentation to be superior for postgres (YMMV), but I think there are certainly more examples / blogs / tutorials for MySQL.
I prefer to work with Postgres when I can, but I also have found instances where MySQL better fit my needs, a heap table, even with more recently added index only scans ( and even reordering the table with cluster may not be desirable) you may want an index organized table (oracle term ) (mysql would say clustered index )
I am curious why even in the context of freely available engines we focus on competition, which I think can lead to great things, but I don't understand the animosity the communities feel towards one another, isn't it just a matter of horses for courses? Are we really interested in competitive kills or improving both the tools we use and our understanding thereof ?
I don't mean to single your comment out gbog, and I know this is certainly not exclusive to databases either ( witness almost any discussion of various programming languages on HN )
This actually made me think of: Oracle's "UTF8" vs "AL32UTF8" which I consider to be a gotcha, even though it is reasonable in terms of the evolution of the standard, a modern land mine perhaps.
The lack of limit sucks, but the thing that annoys me most regularly is that Oracle refuses to make the 0 length string / null behavior configurable to allow for ANSI compliance ( MySQL null handling is worse IMO, makes me insane.... )
What if we think about it in terms of augmentation of capabilities and something that is divorced from this implementation. People want to have the capabilities, without being seen to be entrapped by them. An example I suppose would be wearing headphones at a party or a concert ( anti-social) vs having easily accessible a vast array of music to be tapped at will during the many times when this is not considered to be anti-social. Can we receive more information without being anti-social? If there was no perceptible disengagement? Is it simply a function of developing a social context?
I have a bluetooth headset for making phone calls more safely with my older car (not capable of interfacing directly with my phone), and I don't agree with demonizing headset users, but the biggest issue that I personally found was related to the fact that the headsets were hard to see. Making it unclear when someone was talking on a call or to those around them. The headphones with mics, I find them to be less of an issue because they are more visible even though it would seem to present the same opportunities for confusion.
There was a time when vision correcting glasses were considered very strange I would imagine, but they proved to be very useful and we become accustomed to seeing them. What will be fun, I think, is as others have postulated wearable tech becoming less apparent to the naked eye, so much so that the plastic brick will be considered odd, and that one would WEAR vision correcting lenses mounted in metal or plastic frames right on the face?!
Adoption was good especially for simple queries, people were less focused on the language, and more focused on exploring/modifying examples.
For people who are already familiar with SQL and as you said, less interested in the query language, it may be almost immediately frustrating.
I can absolutely see circumstances where it would be overkill, I have never tried to use it as a performance critical tool, just as more an easy thing to slap on to ease access, two aspects that I have found useful on more than one occasion:
1. HTRAF toolkit is convenient for very basic visualization (depending upon the audience this can be very useful to have at hand quickly)
2. multiple output formats (json in particular) has been helpful in terms of quickly hacking together prototypes in the past
I still admire some of the work he has done, but I have to also count myself among those who would not want to work with someone so willing to grand stand and just generally so hostile to another human.
One phrase I remember from Cantrill re: Oracle & Solaris was that "People Innovate, not companies". Commits contribute, blog posts rarely do.
I don't like rhetoric either. I think it is good to consider the facts, and for me generally the situation/environment/problem as much as possible.
I like to consider the problem, before I recommend a solution generally ( I don't mean to accuse you of pushing a solution, I think you are offering help which is always appreciated ), but I think a lot of people are used to having had the choice already made ( and indeed, in some circumstances it is!).
One thing I always try to remember about mysql, as it is is less than intuitive to me, at least that there is no way I am aware of to alter or restrict this behavior directly, is that in mysql the client is allowed to alter the sql-mode ( I do think I have used proxies to filter out this behavior as a sort of guardian, but that was not an ideal fix by any means ), generally if you don't have control of your clients ( or also hopefully some good layers in front ) in the RDBMS world you are already sunk, but this has been more as a guard against accidental breakage for instance.
This can make it unsuitable for certain situations ( where you may not have control of the client ).
One thing that I think is both a strength, and a weakness ( again depending upon the situation ) is that mysql is very flexible and can be deployed in so many different configurations.
Generally I think it is best for people to carefully consider their situation and needs ( and be prepared to change when the situation does!).
I really enjoy working with Postgresql as well, and have long respected the code produced by that project.
In summary, I'd say there are many great databases ( both relational and otherwise!) which can be a real asset to solving problems. The best thing I think is to learn directly and continually :)
It may not have been something which you wanted to do, but I think it is a really interesting problem, and I bet it has been rewarding for both business, and in a pure engineering sense.
In some ways, I think about what it must have been like to create a fake identity in a less connected age, and I wonder at how it will continue to evolve.
I recall some Doctorow novel in which spam and its increasing sophistication was almost an escalating arms race between our ability to distinguish authentic interactions versus those that were staged or generated / general sock puppetry.
I am curious about additional signals and information, I would presume in addition to fingerprinting and collecting as much information about each of their implicit touch points, did you find yourselves increasingly relying on more traditional manifestations of identity/reputation, etc.
edit: Or I wonder about a discount for new sign ups with a one time facebook scan & score type mechanism :D
Thanks again for sharing more information, good food for thought!
in a quick blurb on express v restify:
"I get asked this more than anything else, so I'll just get it out of the way up front.
Express' use case is targeted at browser applications and contains a lot of functionality, such as templating and rendering, to support that. Restify does not."
FWIW I am a backend guy and have enjoyed prototyping and working with restify a great deal ( dtrace ftw :) ), just a user and YMMV of course.
Thought the same thing myself when I read that line, was also a little disappointed by the lack of content, I understand not wanting to leak information, but I didn't get a lot out of it other than "we have an algorithm, its great!"
Would be more curious to know about how effective they have observed this to be, or maybe more about what they learned a long the way, profiles are always interesting, how many false positives, customer complaints(& support time) etc. Maybe a future post?
"In deployment, a routing layer handles routing requests from a public-facing hostname to the port-bound web processes."