skysight-inc/HackerNews huggingface dataset:
Stack ranking as decided by peer review, no less.
Mercurial losing the DVCS wars is mostly irrelevant so long as HgGit[1] works.

[1] http://mercurial.selenic.com/wiki/HgGit
500 Startups Batch 8
Interesting, could you give a quick explanation how this could work?
Eh. I'm in Facebook bootcamp now. Between this article about the ranking system, a truly uninspiring (to me --- YMMV) choice of teams to work on, and the press Facebook has been getting lately, I'm seriously considering parting ways and going somewhere else. Nobody can beat Facebook's pay or food, but what good is it if I feel like I lack direction and purpose? How much would it damage my career to say I tried FB bootcamp and didn't feel it was a match?
My main concern - how does application state get handed off to the client-side code after the initial render? Sure, it's nice to have some pre-rendered templates, but at some point it needs to "transition" cleanly to the client.
To clear it up, it was a question wondering how one would keep a community as jerk-free as the one they seem to have right now.
Rap Genius will be fine, but most lyrics sites are just ad traps and I won't shed any tears about their disappearance.
How about hybrid sql-builder / data grouper solution?

Not limited to ORM methods - get the full power of SQL instead. Not string concatenation - get the full power of the language to build queries. Also, the ability to get join results in either flat or grouped form.

For example https://github.com/doxout/anydb-sql (shameless plug)
Good point, I accidentally left in these excess permissions from when I was first building it. Removing them now and submitting an update, thanks for letting me know!
Brand New Portable Transportation Device
We want to create a very portable transportation device as our engineering capstone project, and we want to hear from you!

Could you please take a couple of minutes to fill out the survey. Also share it with your friends. Thank you!
It would be nice if Github was giving a UI control over force-push behavior.
If you open a ticket they'll manually flip this repository settings on or off for you, but still... Maybe this is the wake up call: it's dangerous and doesn't scale?
Actually, Perl is many different Satans, depending on the particular stylistic quirks of the programmer in question.
You call someone a bad manager because they are friends with their subordinates? So you'd only hire psychopaths? That seems fraught with peril.

To be more explicit: calling a human a bad manager for liking people is like calling a tree a bad tree for growing toward the sun. Humans are designed by evolution to like each other. The only humans that don't have this bias are broken ones.

So I refuse to consider someone a bad manager for not wanting to fire Steve. Good managers still don't want to fire Steve, and in fact if you had a manager who was 100% willing to fire Steve, that person would be a terrible manager in every other way.

So the question remains: you have a bunch of good managers, who nevertheless show a bias toward retaining people that the corporation might want to get rid of. Design a process to overcome that bias without making life miserable for everyone... go.
To sound smart.
Their issue, as far as I can grok it, seems to be that they are attempting to use git much as Google use[s/d?] Perforce: http://www.perforce.com/sites/default/files/still-all-one-se...

Mercurial may let them continue growing in that way for a while, much like switching to Perforce would let them scale a single repo far beyond what either git or mercurial would tolerate, but it seems to me that they are delaying their problem (and likely digging themselves into quite a hole, depending on the unstated nature of their Mercurial modifications...)

Ultimately, being able to push a single repo into the dozens, hundreds, or even thousands of GB doesn't mean it is a good idea.
I've Got Whooping Cough. Thanks a Lot, Jenny McCarthy.
I think the word denotes mapping of client side data to the server side data. In frameworks like Meteor, if there some addition or deletion of data on the server side, browser notices the changes and updates the page accordingly. In frameworks like Rails or Django, changes of data on server side doesn't update the client side page (unless you customize the app with ajax)
You keep using that word. I do not think it means what you think it means.

Using precisely defined mathematical words in contexts where they only make sense vaguely to a layperson ruins their original usage. Make up a new word. Repurpose a shitty English word. But leave our damn maths words alone.

Old man quarterto shakes his fist at you! Get off my smooth, compact lawn!
I always wanted to experiment with a system where all employees have a currency that they can pay other developers who help them or that they think are doing really well. As well as the credits that all employees have, there are also large numbers of credits distributed to the product owners of products in proportion to how much money they make. Come bonus time, the bonuses are paid in proportion to how many credits you have received from others.
Sounds reasonable but not ideal. Probably some sort of ETL into a data warehouse would be needed for adhoc analysis.
The number of customers I would gain by making that available doesn't outweigh the hassle of requiring another shipping provider. It's not even close (I've tested it).
Apple Maps is equally unusable where I'm at (Colombia,) and Google's aren't perfect but are pretty good and getting better. I've even seen a few of their vehicles about. The weird bit is that the Google Maps iOS app isn't available in the country specific app store, so it's pretty difficult for the average person to obtain.
A great thing about the web is that a multitude of server side languages can be used. While I don't ever want to have to write the same template twice, having everything converge on nothing but Javascript doesn't seem like a very inspiring future to me.
The more powerful a system becomes, the less responsible the design choices seem.

There has been a rush to increase functionality without taking a step back to determine if it is a good idea. The concept of modularity seems to have been forgotten.
May I ask which model of USB drive you're using, if it works reliably with Linux?

I was reading about these just last weekend, and surprised to hear that several of the current, big name brand USB hard drives seem to come with "clever" software, not necessarily easily removable, that means they don't work like a vanilla disk any more. The result is that operating systems without supplied drivers, such as Linux, won't necessarily be able to access the drives properly.

I have no way to tell how much of this is real and how much is down to misunderstanding, but it was a recurring theme and applied to multiple major vendors, so as appealing as this simple approach is, I don't really feel like trusting my critical back-ups to any of these drives until I've got some facts.
I've been using an X1 Carbon as my primary machine for the past ten months, and have been very happy with it. Has the typical Thinkpad construction quality, and is amazingly light - can't imagine carrying around my old T60 any longer. Ubuntu LTS installs and runs great, pretty much everything worked as expected out of the box. My only complaint is that the USB docking station, which supports multiple external displays and means fewer cables to plug/unplug, doesn't work with Linux (or at least didn't the last time I tried).
Yep, we have weekly all-hands meetings. We use google hangouts.

Most people are remote. We'll need to get a better equipment setup with enough people in any one location. Cameras just don't have a wide enough field of view.

I was helping another company a while back that also used hangouts for the one or two people that were remote. The local people numbered around 20. They just needed to stand in front of the camera to talk.

If you go to a larger company all hands, there is someone talking with a mic and an audience. Then the camera would just need to be on the speaker in the front.
1 day? I think it was mentioned in OP in the form of 0.1bc/day. If someone big like cnn.com integrates this js code, you might make $20 a day. I still think adsense has better pay with that many viewers. One would need 5 million visitors to stay on your site for 24 hours. There are very few websites where people do that... maybe facebook/gmail.
Still I think @atwebb is right and as http://socialvest.us and http://aflattr.com were already shutdown Amazon is just not that happy with someone taking their revenue to charities. If it's just redirecting to smile.amazon.com it could be alright as it's the "sane" revenue share of only 0.5% and Amazon is promoting it itself, but still the automatic redirect will perhaps let them kill it.
Only tangentially related to your comment, but last year there was a series of postings "Damn Cool Algorithms" in which the last post covered HyperLogLog in the post on cardinality estimation [0]. Some discussion in the HackerNews submission [1].

[0] http://blog.notdot.net/2012/09/Dam-Cool-Algorithms-Cardinali...
[1] https://news.ycombinator.com/item?id=4488946
awesome he is a real pleasant & organized teacher for this kindof stuff I will definitely take a look
thanks, that always makes me happy to hear! :)
Software Is Easy, Hardware Is Of Medium Difficulty
Another "issue" occurs to me. It seems likely that the data coming in about TV shows, especially old ones with decades of episodes, would be a bit "dirty". This sort of thing just slides right into a document store, but a relational one would have some problems with that. How do we know e.g. that "Bryan Cranston", "Bryan Lee Cranston", and "Brian Cranston" are the same (or different) actors? Of course these things can be fixed with enough manual (or, even better, user) intervention, but the time and place for that are after you've got the data in the system, not before.
Without rate limiting it looks be to susceptible to abuse.
So the point is that a Lenovo laptop is far superior for you, but maybe not for everyone. Maybe the people who talk about how great chromebooks are have come to different conclusions, based on different requirements?
thats not quite what he said. he said they were customizing the build of the tool and gits source was harder to work with.
> Did Sarah model the data poorly ("We stored each show as a
> document in MongoDB containing all of its nested
> information, including cast members").

Yes, they modeled the data poorly.

In this example, we have a TV Show, which is modeled as an entity (document). This TV Show has a list of cast members, each one modeled by a nested object.

In a relational database, this type of relationship would be modeled by having a TV_SHOWS table, a CAST_MEMBERS table with a foreign key to the TV_SHOWS table, and a CASCADE DELETE relationship to ensure that if a TV_SHOW is deleted, the related CAST_MEMBER records are also deleted.

This is obviously too strong a relationship between CAST_MEMBERS and TV_SHOWS. (In OO we'd call this a "component" relationship, that is, we're saying that a tv show is composed of cast members, and if we destroy the tv show we destroy the cast members as well.)

They should have modeled CAST_MEMBERS as true entities, by making them documents in their own collection, and storing a list of Cast Member IDs in each TV Show.

> But if you do break them out into unique entities, then
> how to you present the show information without doing
> joins?

You must join, albeit in MongoDB you do this in the application layer, not the database, so:

1. Query the cast members collection to find the cast member id.
2. Query the tv shows collection to find all tv shows with cast member id in the cast members set.

Those of us who sharpened our teeth using relational databases have trouble seeing past "two trips to the database" in the above strategy, and that's probably why there's an urge to embed documents rather than to query two collections sequentially. Resist this urge, as it's as as bad as the urge to denormalize, i.e. there'd better be a damn good reason to do it.
I wonder if I'm using my browser differently than others or if there is something wrong with my machine. Whenever I try to switch from Chrome to FF it seems way behind Chrome in terms of speed and snappiness.

edit:

Windows 8.1, SSD, i3, 16GB RAM (63% used)

Chrome 30.0.1599.101 m: 3.4/10

Chrome Incognito: 4/10

Firefox 25: 5.4/10

FF Private Browsing 3/10 O.o

All tests done at least twice with similar numbers.

But Chrome has been running for a few days while FF was just started. Guess I'll leave FF running a bit and see if it changes anything.

Also interesting, FF takes around 2-3 times as long to run the tests than Chrome.

The reason for the low Chrome score is this:

JavaScript jank
Tests responsiveness during JavaScript execution.
CSS: 1.0 frames jank, Scrolling: 170.1 frames jank
How do you find these devs who star interesting repos?

Edit: after some thought and poking around, one way to find these devs is to just look at the profiles of devs who run projects you use. If they've starred a lot of repos, see if they star things you would be interested in. If so, follow them. Easy.
Zoologists hunting Tasmanian tiger declare 'no doubt' species still alive
Facebook just took the known emails/passwords from Adobe and ran them through their own password encryption routine and checked for a match. For matches they reset the passwords on the FB accounts.
I think you're exactly right. The vast majority of enterprise software development is commodity work that can be done acceptably well by junior staff. The senior folks and leaders will bitch about it, but not to the point of getting themselves fired for insubordination.
You really shouldn't do it that way. Tests should be written by the guy that wrote the code, while the problem the code solves is still fresh in mind. If you don't, then you'll have to re-understand both the code and the problem it solves before you'll be able to write good tests for it. That means TDD.

You TDD because the code you write with it is code that is easily tested. If you write the tests after you write the code, then you'll have to refactor the code just to get it to the point where its testable without digging really deep into your classes. It will be painful, and the effort will be abandoned.

I thought I wrote good, clean code. Then I started unit testing. Now I wouldn't think of writing code first. The procedural mess that my brain comes up with inevitably results in hard to refactor, hard to test spaghetti.
CSS text filling with water
Video: http://youtu.be/Q52kFL8zVoM
The first 3 digits of a zip code represent the sectional center facility code, the smallest of which is 005. One would assume that 00501 is the smallest zip code (which apparently maps to HOLTSVILLE NY )

http://pe.usps.com/text/LabelingLists/L002.htm#xd_L002

https://tools.usps.com/go/ZipLookupAction!input.action
I hope I'm not the only person terrified about the lag/fidelity on Skype for surgery!
You can already do this with git config, but unfortunately it's a giant hammer that affects the entire repo at once.

It is of course possible to write a post-receive hook that denies non-fastforward pushes to specific branches, but really, git should include a config option out of the box to do this at a more granular level. A common workflow is the expectation that people should be able force-push to their own topic branches all they like, but never to the default branch (except in extreme circumstances). Being able to easily set this via a config option would be very helpful in keeping working repos more "safe" from this kind of thing.
Sure, but it's not clear cooperation should be prioritized over e.g. loyalty. (I happen to think it is, but it's not at all an objective inference.)
> why would this formatter method get anything but a valid zip code.

Ask not, lest ye receive an answer.

Seriously speaking, you can't trust that callers will be sane unless you establish a priori with a higher level contract that all possible callers will be sane.
Why do these companies have Microsoft-style stack-ranking systems? Because many engineers are pussies who don't fight for themselves.

Imagine if that stack-ranking nonsense were done to a law firm. (Law firms have a very civilized way of managing people out into external promotions if they, after ~6 years, obviously aren't going to make partner. Google "Cravath model".) There'd be lawsuits galore. Attorneys would start legal process just to get embarrassing details (about said stack ranking, perhaps) into the public in discovery. Why? Because they (including the female ones) have balls.

Doctors and lawyers would never put up with MSFT-style stack-ranking. Bankers find clever ways to subvert and abuse it when it is imposed upon them.

But there are a lot of engineers who are just cowards, unwilling to stick up for themselves.

Example: in many companies, negative performance reviews are part of the transfer packet and impede mobility. Being (again) pussies who don't fight for themselves, many engineers just assume that's how things work. No, it's not. You can actually build a legal case on that alone. It's harassment (interference with job duties, here interpreted as using internal mobility opportunities) and already the start of a legal case-- if you get your shit together and start documenting. Use the right words and the bad review will go away.

Stack ranking isn't technically illegal, but if it renders immobile people who perform in good faith (i.e. don't flagrantly blow off job requirements) it does leave the company civilly liable for harassment charges-- interference with job duties. If software engineers collectively grew a pair, it would fall down within minutes.
So a lack of ability of managers to actually manage then.

Which is a flaw in the people responsible for those managers to train and to bring them along properly.

If we follow that chain to its conclusion...
I think it is a lot more complicated that just that. The root cause here is there is no easy way to quantify one's contribution to the company (or even a team) in software development. Some other professions are easier to evaluate, e.g. stock traders have their own P/L, lawyers/doctors have their own customer billings, etc. Note that I said "easier", but not necessarily bullet proof, because it still encourages people to optimize for short term goals.
They probably don't use relational databases the way you do for smaller projects that don't need to scale to the millions.
Capture the flag - hardcore edition
You're basically saying: don't use mongo. It's trivial to emulate a blob of data in a relational database; just use a... blob of data. Or any of the many, many other options at you fingertips. Conversely, manually implementing efficient joins is a total hassle and it'll probably end up slow and brittle. At the very least you'll need indexes and that means an (implied) schema.

So in the normal mongo usecase for storing (as opposed to caching) data with relations, let me see if I can summarize:

- you can have relations, it's just mongo won't help you deal with then: you just need to implement them yourself.

- you can have (actually need) a schema, it's just mongo won't help you deal with that; you'll need to implement that yourself. Have lots of fun with schema-changes, especially because...

- Since you're changing decoupled entities, you need to keep them in sync. You can (and probably should) use transactions, but mongo won't help you with that. You also probably want foreign keys, but mongo won't help you with that either. Migrations on mongo are a special kind of terrifying.

But hey, on the upside, it can store structured blobs, and it's probably hardly any slower that your filesystem, which could do that too.
Formalizing NIST standards
I understand this is for a good cause, but isn't this just stealing money from Amazon? You are exploiting a program that is designed to encourage additional sales, not give money away from any random Amazon transaction.
I can't speak for anyone else, but it depends a bit on what you do next. One or two solid jobs down the road, I doubt anyone will really care, but if you do it enough that it looks like you have made a habit of joining up and then not giving it a fair chance based on gossip from outside the company, then yes, that will count against you.
I think we're actually in violent agreement.
Here's a question to which most people experience revulsion, but must be thought of and answered honestly:

Why not give everyone the same bonus based on company performance? Make it collective good.

You'll probably think of reasons, like "good people should be rewarded," or "people who do things wrong need to have consequences," but you must realize the alternative is this vile demotivational anti-pattern with even worse consequences.

The right way is to align the company goal with the individual goal, and do it simply and clearly.

American companies need to understand and follow Deming's principles (http://en.wikipedia.org/wiki/W._Edwards_Deming#Key_principle...), or we'll continue falling into the soul-sucking black hole we're already halfway into. He already knew all of this, every bit of what we're experiencing, and our objection to his ideas is nothing more than an ideological almost religious belief that the most effective way to motivate individuals is to rank, rate, measure, and reward them accordingly. In fact, those archaic methods of management only serve to demotivate and systemically destroy culture and productivity alike, and reduces the quality of whatever you produce, be it innovation or physical products.

We know this. Deming's ideas work. They are truth in writing, and knowledge in practice. He pulled Japan out of a post-war recession and made them legends of quality production for pete's sake. Why can't we learn?
Reminds me of Daniel Gross's first product (before Greplin/Cue) http://www.lostinmobile.com/home/daniel-gross-and-greplin.ht...
Yeah, I realize this method is open to abuse. I just figured that the counter really was more of a "nice-to-have" so I can see how many times it was working, but if someone really wanted to abuse it than it wouldn't be that big of an issue. I'd have an incorrect count, but that's about it.

At the end of the day, it wasn't worth spending the initial effort to build against that. I intend on doing this in the future, but for now I'm willing to accept the risk of having an incorrect redirect count and get it out to more people in the meantime.
Pretty cool stuff. How big is the team working on these Go projects?
If you are building a service or API, then you can do that in whatever language you like. The natural language for writing client side apps is JS (ok, the only language, for now).
So the surgery lasted about two hours. We used a 7000 mAh battery pack, since without external battery Glass would make it about 25-30 minutes in the Hangout before going dark.

The resolution was good enough for the remote proctor to assist. We did notice that as the device got warm as the surgery progressed, quality seemed to decrease a little. Overall I think we were really pleased though with the reliability and quality; we didn't experience any drops, or much packet loss or jitter.

I would say the biggest hurdle was audio. Because the version of Glass we used relied on bone conduction and didn't have an available earpiece, it made it pretty difficult at times for the surgeon to hear his remote proctor, especially since there was a lot of sawing and suction going on.
I always find comparisons to tools disingenuous because people take simple tools (a hammer) and compare them to complex software tools that if you misunderstand can ruin your company.

Your database isn't a hammer. It's closer to 19th century industrial machine with hundreds of buttons and levers that will cut your hand off if you use it incorrectly.
It sounds as if multi-node Redshift could actually be useful now (because it's picked up the minimally necessary data distribution options).