284 karma · joined November 10, 2008
Every time. Until you're an expert.
$> touch -- --
$> rm --
usage: rm [-f | -i] [-dPRrvW] file ... unlink file
$> rm -- --
$> touch \
$> touch \\ \ \ . \-
favorites of malware authors everywhere.
Better yet is having someone who's a fast learner and can pick any/all of the above up as needed.
You probably have a case, but I'm skeptical you'd recoup the cost of prosecuting it (in legal fees and in distracting yourself from executing.) Best case scenario is that they decide it's too much of a hassle and fold up shop; if they decide to fight they could change the infringing aspects and still compete with the same basic idea.
I doubt any company that stoops to this sort of thing is capable of out-executing you, so if I were you I would focus on doing your thing and let it sort itself out.
Despite that (or perhaps because of it) my experience has indicated it's in wider use than either, and it has some enterprise-y backing (SpringSource) so I expect it's not going away.
Both Scala and Clojure are attracting people who weren't originally on the JVM though, which (again anecdotally) I don't think you can say of Groovy.
That said, I think that calling the whole event NoSQL was kind of asking for it; of course people are going to try to squeeze some drama out of that stone. (I would have gone to the meetup anyway, though, if I hadn't already been booked.)
On the low-end, administration for MySQL is certainly not easy; for an app you build in a day or two on Rails or Django or Sinatra (or as a CLI tool for that matter) you can easily spend more time doing sysadmin work to provision, configure and maintain MySQL than you do writing software. (MySQL shared hosting isn't everywhere.) There are plenty of throwaway webapps out there that just aren't worth setting up a database server for.
On the high end, it's not a matter of what's easy; it's a matter of what's possible.
These are different use cases, and there are different software packages being advocated for them. No one who needs a disk-backed hash table is using Hypertable, and no one who needs massively parallel analytical capability is using Tokyo Cabinet. And no one's advocating reconsidering RDBMS use as a whole; just RDBMS use as the default choice.
However, the discussion about "kids" is a total red herring, because I'm pretty sure all of the people involved in talking up Tokyo Cabinet, memcachedb, Couch etc on one end and Cassandra, Hypertable or HTable on the other are fully aware of the difference between a class and a table. The truly clueless don't even know the discussion is happening.
The object/document database revival circa 2009 is about three things:
A. People are already using object-based access for almost everything, so if they're not using relational features it's trivial to drop in an object store and get better performance/less overhead.
B. On the low-end, sometimes a relational database is too much overhead -- if not in performance, in administration. (SQLite is cheap, sure, but sometimes you want just a disk-backed hash table.)
C. On the high-volume-data-analytics-end, RDBMSs don't perform well enough- unless you shell out serious cash for Oracle or Greenplum, Aster Data, Teradata, etc, and even then they still can't handle the volumes MapReduce and Bigtable-alikes can.
Stating your position in firm (i.e. "conclusive") terms is generally an advisable practice. The reader can judge the merits of a position for themselves, and counter it if necessary; using wishy-washy language or the passive voice doesn't help anything.
At least half the magic of Sinatra is that you can write a single Ruby script, exec it and not have to fool around with build/generate/scaffold script or web server configuration to get something useful. It seems like you're pretty close, given that Java has no standard dependency retrieval system.
I think HN is not the best place to ask about "languages to learn to get a job", though.
If she's coming from a rigorous background, I highly suggest Scheme and the book Structure and Interpretation of Computer Programs (SICP: http://mitpress.mit.edu/sicp/.) For some people using a language with more batteries (and thus instant gratification) is better to learn programming, I think, but for learning to think about computation I think Scheme is pretty hard to beat.
Scientific programming might mean C/C++ (that's where the fast math libs are, to be sure), but it might mean Matlab or Forth or lots of R, who knows.
The 'humor' I was referring to wasn't in the article (which is pretty bland) but in the fact that hey, this fits the stereotypical image of a programmer: slightly OCD (nitpicky) and lacking social grace. You'd think we'd be used to it :)
The author defends his position pretty coherently and civilly; you can disagree with his conclusions but calling him a troll or an idiot is certainly not warranted.
I just think it's worth reinforcing that there are interesting actor systems other than Erlang, and that some of the people at MSR deserve some credit in the area.
Practically speaking, I think you'll need to be at least a competent Java programmer for the next few years if you don't plan on reimplementing a lot of bits that are in the extended Java stack.
If I were you, I would not move here to do the solo founder thing without having plenty of connections; you need a good support network (which will hook you up with contract gigs too.) Bring a co-founder or hook up with some people who are already here and can introduce you.
That said, just being young and having the balls to move out here and give it a shot will open doors for you. Network aggressively, who knows?
As far as tips go: You can get a room for $500-$700 a month with varying levels of sketchiness; there are enough hacker houses around that you might find something helpful if you trawl CL long enough. Food is a matter of how gnarly you're willing to get :)
Don't bring your car and don't bring a bunch of gear; parking will cost you upwards of $150/mo and it's never included, and gearwise there's a non-trivial possibility you'll need to move fast if you're doing a cheap sublet or hosteling it.