skysight-inc/HackerNews huggingface dataset:
I am so happy Postgres is adding support for JSON. This is a big change. The sole benefit of mongo to me is that you can be flexible with your schema at the beginning. But the consequences are

* you have to learn to do indexing right later (if you have to scale)

* failure and miss starting to occur (as you scale)

* more code to write to manage legacy schema and optional fields

The last is painful and ugly. Whereas if you start out with a good schema that last point is in a good hand. When you use SQL you always have the restraint that "xyz" attributes are repeating and you can just make a new relation, whereas with mongo you'd stuff 20 fields into a single collection. The refactoring is harder.

I will begin to migrate back to SQL for new projects.

Also ecosystem is richer in SQL. I have not seen a good ORM for Mongo. MongoEngine is fine but implementation + db have a lot of issues make that ORM a bit unusable from time to time. SQLAlchemy is good.

PS: For quick PoC and Hackathon projects sure prototyping with mongo is fine.
I believe you can repost a mirror link, such as a Coral cache link:

http://www.replyall.me.nyud.net/the-replyall-cast/an-inside-...

(Coral cache appears to be working as of 10:26 PM EST)
We're Android first. Exclusive actually. Barrier to entry is almost zero and none of the time-wasting finger-crossing hurdles you describe. We're self-sustaining with a top ten paid app and about to release another exclusive that can only be possible due to Android's open nature.
> while it's pretty easy to do schema migrations, it's not easier than _not_ doing them.

I just don't buy this argument, writing and executing migrations is braindead simple and usually takes what, 20 seconds start to finish? Writing the line of code you need for mongo must be about 5 seconds.

edit: I did actually give mongodb a good crack(used on a side-project for 6 months last year) but I found that I actually spent a huge proportion of my time working around things that were missing compared to ActiveRecord. It was a huge net loss for me in terms of productivity.
Every time I see this, I imagine the guy being like this:

http://www.youtube.com/watch?v=LMmdl4VltD4
Ha, great point! I had based my comment on memory.

Also, worth mentioning that while I don't want to be overly cynical, this article does sound like a brilliant PR campaign. Given the size of typical PR budgets, you could afford a lot of free fast-food lunches for people.
They would indeed rather delegate governance, and for the best of reasons; the more effort an individual is required to expend on governing, the less she has available to pursue her own talents and interests.

As for the respondents suggesting the answer is, in paraphrase, to "make governance interesting again" -- I would suggest they may wish to think twice about that superficially appealing suggestion. The process of governance was "interesting" in 1950s China, in 1930s Germany, 1920s Russia, the United States around 1925-1945; while conditions were vastly different in each case, of course, there is a strong common thread, and it is simply this: the process of governance is interesting only when times are not good; indeed, the worse things are, the more interesting the task of running the show tends to be. The argument eventually reduces to a suggestion that it would be nice to have a disaster or two around the place, in order to liven things up for everyone. Which it would, no doubt! But I submit such excitement is hardly worth the cost.
I was a pretty active editor in the early days, mostly building out articles on Jazz musicians that were particularly stubby.

I had a watchlist of pages I cared about and everything. I gave up as my personal life became more interesting.

I also had a knack of finding movies in the Public Domain and getting good image captures for their photos. Photos of Charlie Barnett and Count Basie are two examples that still exist. The photo of Paulette Goddard (which I'm the most proud of) did not survive on the English language wikipedia (http://upload.wikimedia.org/wikipedia/commons/7/73/PauletteG...)

Now, if I edit something, it's a typo, or something stupid (akin to "George Washington had X-ray vision.")
The distinction I'm alluding to is simply "the map is not the territory." In other words, in the same way that you can have something which represents a tiger without actually being a tiger (eg. the word "tiger") you can have something which represents "the boldness of this text" without literally being the boldness of that text. The double asterisk notation in Markdown, and the <b> tag in HTML, are symbols for the boldness of the text they annotate.

What I'm saying is that untrained users have trouble with the idea, fundamental to markup languages, that some text can represent attributes of other text. To such users, an asterisk means "the text has an asterisk in it." They cannot reinterpret asterisks as markup without relearning the way they look at text itself. They're used to having the territory laid out in front of them, and all of a sudden you're handing them one map and asking them to write another, but they don't know what a map is.
RethinkDB is not yet "ready for production use" but reportedly will be soon.

If you're currently on MongoDB but need more performance, concurrency, or compression, please try TokuMX: http://www.tokutek.com/products/tokumx-for-mongodb It's a drop-in replacement server that uses a better storage engine but speaks the same protocol and query language.
Im surprised nobody has mentioned that this is a case (or variant) of "Impostor syndrome" (from Wikipedia [1]):

"The impostor syndrome, sometimes called impostor phenomenon or fraud syndrome, is a psychological phenomenon in which people are unable to internalize their accomplishments. Despite external evidence of their competence, those with the syndrome remain convinced that they are frauds and do not deserve the success they have achieved. Proof of success is dismissed as luck, timing, or as a result of deceiving others into thinking they are more intelligent and competent than they believe themselves to be."

Feeling "as if you don't belong" or that you were falsely placed in a position (by accident, etc.) is a very common feeling among high-achieving students and adults (common, for example, in medical schools and graduate programs).

to the OP: you are clearly achieving success in your career (know several languages, challenging yourself to additional), and the fact that you read HN and have a sense of what makes a project great is important. There's been good practical advice elsewhere in this thread, but I feel that it's important to point out that your underlying feelings fall under a broadly typical pattern as well.

[1]: http://en.wikipedia.org/wiki/Impostor_syndrome
This is absolutely the case.

One problem is that the default leader board display is just too hard for even semi-decent riders in some areas.

In my area pros come out for early season training and the season opening race. The climb leaderboards are pretty damn competitive - the KoM of one is held by a junior TT world champion, and another by a semi-anonymous rider who rode the Vuelta.

I suspect some changes to the UI (eg show the 10 people ahead of you be default as well as the top-10) could improve this for many people.
Yes.

The definition of art is more a philosophical question that varies from person to person, so getting consensus on defining what Banksy is is bound to ask the question. Perhaps that's one of his objectives.
The ocean is broken? Sounds like aliens to me...
Obama didn't read The Mythical Man-Month.
You realize most writers start as taggers? It's part of the learning process. Everyone's a toy when they start out.
Good points, singularity. I don't have a better reply than "I'll be thinking about this".
That was my experience too.

I now run my own niche wiki, and it's shocking the number of people that come across it and say

"Oh man, I tried to contribute to wikipedia and ended up having all my stuff reverted and I got yelled and I kicked out. I'm never touching wikis again."

I personally think Wikipedia is giving open wikis a bad name, and I go out of my way to tell people my wiki is nothing like wikipedia in that regard.
The Slow Fade: The App Store's not so inevitable, not so beneficial devolution
Yeah, I agree. It is art, but if the owners sue, its vandalism.

Private property is one of the foundations of market economy, and I can't think of any necessity of art that calls for suspension of it.

On the same vein, the Mayor can't sue on behalf of private owners. If the owners like it, then its OK.
> What would it take for a system like this to become reality?

It already is a reality. If you want to divorce content completely from presentation, you can do that right now, today, with HTML & CSS. There's no technical hurdle stopping you.

The problem is that understanding that "content" and "presentation" are two separate things requires people to work at a level of abstraction that most of them are not used to working at. In the tools they're familiar with, it's all mashed together. (You can separate the two in Word with things like document styles, but that's not how Word works by default; and there's little practical benefit to doing so for small documents anyway, so few people discover it unless a more advanced user takes the time to teach them.) So when you try to teach them to do their work in this new way, it feels to them like you're just adding unnecessary complications to their workflow. They then reject your tools as pointless egghead stuff, and you for trying to foist them on them.

It's a cultural problem, in other words, not a technical problem.
I suspect it's Ruby (dynamic typing, syntactic flexibility, etc.) rather than OOP itself that's the root of the issue when it comes to tracing logic backwards.
[video] Stop "Disrupting" Everything thread made me think of these guys
Have you ever investigated the origins and etymology of the word "utopia"? Most these days seem happy to sling the word around without knowing where it came from and what it means; should you be among that number, I recommend the subject to your attention, as you may well find interest in the result of such investigation.
If I attempt to grab the result of a function eg:

f := os.Create(fname)
defer(f.Close())

It won't compile as `os.Create` returns `(file, error)`. So you must either:

// Proper error handling
f, err := os.Create(fname)
if err != nil {
log.Fatalf("Could not create '%s'", fname)
// Well may want to do something other than crash.
}
defer(f.close())

If you ignore the error it's obvious

f, _ := os.Create(fname)
defer(f.Close())

It's like doing this in Java

File f;
try {
f = new File(fname);
} catch (Exception e) {
// Ignore Exception
}
Google are generating a lot of uncertainty in their product offerings lately. To innovate you need to know when to call it quits and move onto something else. It's quite clear Google Checkout wasn't the success that Google had hoped it would be and are closing it down to divert resources and cash somewhere else where it might be better utilised. People will complain about this situation, but would you rather Google kept a service running just to appease a few die-hards when it's probably costing them money?

We need stronger and tougher competition in the online payments space. Paypal seriously can't be the only globally working payment and checkout substitute around, maybe Google has a similar service that's stronger and more feature packed up their sleeves? I hope so.
HTTP 2.0 is a bet that those ideals don't matter anymore. If the users of HTTP disagree, it just won't be adopted, simple as that.
That fear is what will prevent mediocrity...
Shorter hedge fund toolbag: "HEY KIDS - look at those old crabs over there, climbing towards the top of the bucket! PULL THEM DOWN! Pay no attention to me, sitting on top of a pile of money I stole from you via the tax code!"
What an effective display of the issues I have with art.

Only a few people want these pieces, they are worthless in a vacuum. Only when shown in the context of "These pieces are by legendary artist banksy" do they become valuable treasures, in great demand.

It distresses me the number of things on this planet that are valuable because people think they are valuable, not because they have any actual use.

I suppose their value is in manipulating others. That is a form of utility, I admit.
Your bias is showing. I didn't down vote you, as I replied to you I'm not even allowed to down vote you. And to then presume I did it because I'm liberal, you're clearly not the type for a rational discussion.
Because it's just a stupid response. It's like someone saying "I could really use a SAAS that does [X]" and you going "You're so lazy, what a stupid question". I know we're all hackers here and we're supposed to just magically obtain the time, means and expertise to create any product we desire.

Obviously going onto a forum and asking people to steal/repurpose/redistribute someone else's work is a poor idea, but it's very possible OP was looking for someone to say "they already have them here [link]" or "hey, I'm a voice actor, if PG says it's ok that would be an awesome project" or something.

I think just scolding the guy and calling him lazy was a poor approach, and although I can't and didn't down vote you, I thought I would explain my reasoning.
Hey Matt,

Can you pass along the scrapers details to the Adsense team too... I would think that account should be shutdown.
Real-time visualization of worldwide Bitcoin transactions
You can repost by adding adding an extra parameter to the URL (such as ?repost=true)
Mandelbrot with WebGL GLSL
What kind of computer programmers did the government hire to oversee the progress? I am going to question this person's ability. While I am just a senior in college, I probably can hammer a lot more practical issues before its launch. I am sure half of the HNers can do that too.

sigh
One Line Summaries of Startup School Talks
> I have not seen a good ORM for Mongo

Uh, Mongoid is good. I have used it on past projects. It's nice. (mainly use some form of SQL now)
Even for a one-time email to potential leads?
One man feeds Western Media on Syria
The job of an artist is to break the rules.
My real goal was just to get him to paste the content as a comment so I could read it now ;)
In my experience there's no silver bullet way to sell it, but there are some ways that work depending on who your audience is.

If the audience is management, the gain is control. "You just spent umpty million dollars redesigning your visual identity, you don't want some low-level copy jockey deciding to throw all that out and publish a page on your site entirely in Comic Sans, right?"

If the audience is the people who actually have to use the software, the gain is simplicity. "Look at this editing window from your current system. It has four toolbars, with fifteen buttons on each one! Do you really know what all those buttons do? Do you really want to be responsible to your boss if you hit the wrong one and screw something up? Now look at this other editing window. Isn't it clean? Doesn't it look easy to use?"
Mayor Bloomberg's reaction is obvious.

If he says the city condones Banksy's work then he's going to immediately get asked "Who's job is it to decide which graffiti is art and which will get you arrested?" He's got 10,000 more important things to deal with so he just says it's vandalism and will be treated as such and then moves on to the rest of his day.
> A market maker is basically a wholesaler for institutional share traders and stock brokers. During my time there I replaced several key systems components with Go.

I'd like to hear more about how you deal with Go's garbage collection in a real time system like this.
>I have no idea why they didn't go with the accepted abbreviation of November as 'Nov'.

Perhaps because they're talking about October?
Your post made me reflect a bit and I agree with you whole-heartedly. I wouldn't have such a visceral dislike of HTTP/2.0 if it didn't have the TCP-like features in it.
One wonders why the hell they're trying to fix flow-control, traffic priority, encryption, etc. in a standard meant for just moving around document.

It reeks of overengineering--might as well spend that energy improving TCP or putting together a better secure sockets layer.

Most of the problems they cite are the result of people shoving too much shit (ads, trackers, social media, etc.) into their sites anyways.
Agreed.

PostgreSQL:

ALTER TABLE posts RENAME COLUMN author TO writer;

MongoDB:

db.posts.update({}, {$rename:{"author":"writer"}}, false, true);

(I'm excluding RethinkDB since it's still under development and doesn't have a rename command yet)
An Interview With Pierre Omidyar
a isn't necessarily the case. Consider fmt.Println:
func Println(a ...interface{}) (n int, err error)

I've never seen any code that handled err -- I don't mean ignoring it with _, I mean not even acknowledging its existence -- without the compiler saying anything.
Show HN: Simple mobile-friendly domain names brainstorming tool (and API)
How would they know this for sure if they are only supposed to be storing searches for 18 months?
I'm not sure that should be limited to 'entrepreneurs.' That's a great list of skills that anyone wishing to e successful should cultivate. Thanks for the link.
10x improvement compared to what?
Wait, so it's language-supported external polymorphism? That's...odd, since external polymorphism is considered an anti-pattern by OOP pl purists.
It means the #17, as in the 17th painting by Banksy, as the article says early on.
One major difference between panic and exceptions is that you can only catch it on a function exit boundary with defer and recover. There is no "try".

So really, you should think of panics more like Erlang's error handling, where a segment of the program (bounded by "recover") will just stop running, but can initiate the process of self repair.
I personally know someone who had a website seized by the U.S. Immigration and Customs Enforcement (ICE) for linking to copyright content. It all comes down to intent. When visiting a site like ThePirateBay or TorrentButler, it's clear that they are intentionally facilitating copyright infringement-- and that's what they will charge you with, amongst other things. It's hard to deny that fact when 99% of the content has a copyright, even if you hide behind the DMCA "user uploaded content" clause.

With that being said, they made 1M+ from it and didn't get caught. Your results may vary.
I feel the presentation would have had a lot more weight and clarity if not for the memes in the bottom right corner. As it stands, they just make it another fantasy creation- only the writer has an email address @google.com.
When we're talking about billions of queries per day, aggregate data is the only kind of data that is worth anything.
Exactly what I was looking for. Thanks.
That's a bit of a semantic argument. Python already has "object-oriented single dispatch" -- aka traditional object-oriented polymorphism.

What this module adds is "functional single dispatch".

So, whereas before you'd always be forced to implement some type-varying function using two classes `HandleA` and `HandleB`, each with an implementation for `handle`:

class HandleA:
def handle(self):
pass

class HandleB:
def handle(self):
pass

def main(obj):
# obj could be instance of HandleA or HandleB
obj.handle()

In this case, "dynamic dispatch" is done by `obj.handle()`, which will pick a different implementation depending on the type of obj.

With this PEP/stdlib addition, you can now write two functions, `handle_A` and `handle_B`, which take an argument, `obj`, and are dynamically dispatched using the generic function `handle`.

from functools import singledispatch

@singledispatch
def handle(obj):
pass

@handle.register(A)
def handle_A(obj):
pass

@handle.register(B)
def handle_B(obj):
pass

def main(obj):
# obj could be instance of A or B
handle(obj)

And in this case, "dynamic dispatch" is done by `handle(obj)`, or really, by the dispatcher decorator. It chooses `handle_A` or `handle_B` based on the type of the `obj` argument

The reason this is a nice addition is because it makes Python eminently "multi-paradigm" -- you can choose object-oriented or functional styles depending on your taste and the applicability to the task at hand, instead of being forced into one programming style or the other.

(the content of my comments got long enough that I decided to document them for posterity over on my blog: http://www.pixelmonkey.org/2013/10/20/singledispatch)
Your language exhibits a bias that says: a) Banksy is a culture hacker b) Banksy is outside mainstream culture c) Banksy is a successful hacker. All of that is arguable, but one thing we can say for sure is Banksy is interesting because people are interested in Banksy - famous for being famous like Paris Hilton.
I'd be more than happy to but it's an entire back and forth and it's still ongoing. It will be on front page of site as soon as we're back up.

One of the more interesting comments that I will summarize was that uneven equity splits between founders is a red flag. Hadn't heard that elsewhere. Also oh assizes that one if the keys to a good application is showing that the founders won't ever divorce.
Is there a good explanation somewhere of protocol internals -- what it looks like in the JVM when a protocol member is called/what bytecode is generated from a protocol extension?
Anybody could explain to me why multiplexing is necessary? It definitely won't speed things up and I don't see why different resources couldn't be loaded sequentially (instead of concurrently) over the same TCP/TLS connection. Adding multiplexing increases complexity and brings overhead by introducing frame headers.

Also flow control seems weird to me too. Maybe it's just I failed to see a scenario where flow control in HTTP layer is really useful.

Binary header and streaming (long-live TCP connection) are definitely interesting. In fact I would be really happy if I've got a connection, and can keep sending binary-format HTTP request, and the server will just respond with resource I requested in the same order.

EDIT: typos
Wow thanks I always felt 1,532,938,424,235 articles about bitcoin each week wasn't quite enough.
I'm an HD Widgets user and all, but AFAICT, you guys are in 15th place right now.
if all the numbers from 1 to 250, but one, were written in random order (no spaces) how would you find the missing number?

FOR EXAMPLE, 132456789101113 is 1-13 and not very random. most answers below have misunderstood me (well, less now that some have been deleted in shame... ;o)

you can get the digits, just by seeing what is missing. but then you seem to be left with a rather tricky partition problem. so i guess dynamic programming? is there a better way?

would it help to pick out unique combinations (if the pattern 249 occurs just once, it must be 249, unless it is the missing number)? how far would that get you?

i guess since you know the missing digits you should check for each permutation - you might get lucky and not find one.

is there some cute trick? something involving suffix trees?

[edit: anonymoushn has a good point - it's not guaranteed unique]
I just tested Samuru vs. Google with the query:

speed of the iss

I think Google clearly won in this case.
Let's take a look at some of the recent headlines on this blog:

* Why Android First is a Myth

* How Apple iBeacon Will Transform Local Commerce

* On Apple’s Vertical Silicon Strategy

* On the Apple M7 Motion Processor

* On Apple’s A7 Processor

* 1980: Steve Jobs on Hardware Software Convergence

* On The Future of iOS and Android

* Why a Standalone Google Maps App Has Already Lost

I think we can pretty safely say that this author is living in an iOS-centric fantasyland (I'd have included blurbs from each post to make this point even more apparent, but I didn't want this comment to get too long).
"Broken" Julia sets animation
Unless you ignore all returned values:

func Something() (a, bunch, of, stuff) {
// stuff
}

...
_, _, _, _ = Something()
Something()

Both are valid.