Notice HN: hey, the average karma score is gone. - <AUTHOR>

<comment><USER2> If the average karma score was ever going to be perceived as important it needed to update at regular intervals rather than every few days in a background process. I don't think mine changed at all during the period it was up there.

<comment><USER3> That's true, mine never changed either.

<comment><USER4> I think it would have had a reinforcing effect if there was an immediately visible change. It may not have been reinforcing something so great, however.

</comment></comment></comment><comment><USER5> Good riddance. Too much visual noise, too little value.

Once you're a regular, it's hard to change your karma avg that much. OTOH karma points can go up or down one point and that's an instant visual sign people agree/disagree with you. Then you go right to the threads to know where.

<comment><USER6> _Once you're a regular, it's hard to change your karma avg that much._

It was only the last 50 comments, I believe. But it did update too slowly, as other people are saying.

</comment></comment><comment><USER7> Random musing: What if karma was kept as a way to sort comments in each thread, and to maintain a threshold for the ability to downvote, but was concealed from the user?

i.e. I can upvote or downvote someone, but not see the current score their comment has, or their overall karma, or my own.

What happens then? Do we stop our subconscious trepidation over whether we will be downvoted and begin posting whatever pops into our heads, thereby improving HN, or do we begin posting a bunch of crap because karma no longer matters, thereby worsening HN?

</comment><comment><USER8> Average karma triggers one behavior: you can submit a lot to get karma points (no negative effect), and to keep you average up, you comment only when you think you'll be upvoted... It reinforces a HN readers cliché conformism (even if it is the conformism of being contrarian) about what one thinks HNers like.

<comment><USER9> I think it's solely based on recent comment karma, with at least the high outliers discarded.

<comment><USER10> having it be a trailing fifty comments actually increases the incentive to avoid writing anything that won't get upvotes. Ultimately, you have to step back and ask whether you're trying to encourage upvotes or not. Upvotes are useful for helping readers choose what to read in a thread. But just because voting is useful for guiding the behaviour of readers... Does it automatically follow that we wish to guide the behaviour of writers?

The current system of total karma encourages people to avoid comments that will get more downvotes than upvotes. Avoiding more downvotes than upvotes is not exactly the same thing as avoiding comments that won't get upvotes.

</comment></comment></comment><comment><USER11> As far as I can understand, it recalculates too slowly (I haven't noticed any change in my avg since it appeared)

</comment><comment><USER12> I can see it on everyone else's profile, but not my own.

I would guess that they found it to be useful information to have about others, but also wanted to eliminate the incentives created when people try to push up their averages. It also becomes a much more accurate indicator when people aren't gaming it. Of course, you could still game it by having a friend tell you what it is, but that's probably more trouble than most people are willing to go to.

<comment><USER13> They were talking about the upper right corner of the screen. It's still on profiles.

</comment></comment><comment><USER14> Presumably, news.arc just restarted; the average score in the corner was (IIRC) just a temporary hack punched into a REPL.

<comment><USER15> I can still see other users' average score in their profiles. That feature was added at the same time as average score in the corner. If your hypothesis is correct, wouldn't they both go away?

<comment><USER16> You sure? I swear I saw it there before.

<comment><USER15> I'm positive: <http://news.ycombinator.com/item?id=1853821>.

</comment></comment></comment></comment><comment><USER17> i didn't find it that useful, since mine didn't change at all.

but I think it might still have some merit for those with less than 200-500 points, so that they'll try to give better comments

</comment><comment><USER18> Just noticed too. I never really saw the relevance anyway.

</comment><comment><USER19> Rather than average karma, would perhaps recent karma be more valuable? Karma from just the past X days?

<comment><USER20> If you want to throw gaming mechanics into HN, sure. But then you get a situation where the only people who are able to keep up good karma scores are those who comment really frequently (or, I suppose, irregularly but always get tons of upvotes).</comment></comment>


Per-Title Encode Optimization - <AUTHOR> http://techblog.netflix.com/2015/12/per-title-encode-optimization.html <comment><USER2> I'd be curious to read about the software that does the PSNR analysis, or if anyone here has done some automated experiments of their own. I'm constantly looking to improve encoding of screencast-style video, which can be tricky to make assumptions about due to source material that sometimes has windows full of code being scrolled quickly.

Given a source file and, say, a series of ffmpeg encodes at various resolutions/bitrates, is there a simple(ish) way of automated perceptual quality scoring, a'la PSNR or another objective "proxy" variable that closely correlates with the subjective perception of video quality? Maybe representative thumbnails taken from every n-th frame and compared?

I guess that last point would expand the possibilities to include automated static image comparisons, since the script to get ffmpeg (or Elastic Transcoder, for that matter) to save out thumbnails is trivial.

</comment><comment><USER3> Having all of the images gated behind a Google Docs access request: accident or attempted recruitment lead generator?

<comment> vive-la-liberte Here's an archived version which won't send any data to Google: [https://archive.is/jzhJN](https://archive.is/jzhJN)</comment></comment>


Inline all the things (2014) - <AUTHOR> http://normanmaurer.me/blog/2014/05/15/Inline-all-the-Things/

<comment><USER2> This information is interesting. does anyone have information similar to this for the JavaScript V-8 engine. I know that function calls are cheap due to in- lining but never knew that there were other things going on behind the scene.</comment>


Code Health: Respectful Reviews == Useful Reviews - <AUTHOR> https://testing.googleblog.com/2019/11/code-health-respectful-reviews-useful.html <comment><USER2> I agree with the premise. Workplaces are much more enjoyable when everyone is respectful, professional, and courteous to their peers.

Most of these guidelines are reasonable enough. I think it's important to keep the DOs and DON'Ts list to the minimum, though. These interaction guidelines become counter-productive when they try to be all-encompassing definitions of good and bad interpersonal behavior.

I worked with one team who had an ever-expanding code of conduct. Each time they had a conflict, they tried to add rules to the CoC that they thought would prevent the conflict. Good intentions, but counter-productive execution. Three things happened:

1) New hires had to learn to navigate a minefield of obscure code of conduct rules. They tended to shutdown and socially isolate themselves for fear of accidentally triggering another obscure CoC issue, like including emojis in code reviews. The safest thing to do is only interact with close allies within the company, and minimize unnecessary interaction with anyone else. Silos.

2) The CoC became a tool for power plays. For a few bad apples, the CoC became a list of gotchas that they could use as a power play against others. At one point we had someone reading every Slack conversation and code review just to call out possible CoC violations (remember, this includes things like using emojis in code review) so they could call other people out on their violations. Substantiative conversations moved to private messages or in- person conversations. Not healthy. Partially solved by adding a CoC rule about minding your own business and explaining healthy ways to share the CoC with others.

3) Human interactions started to feel robotic, almost scripted. This one is harder to describe, but each interaction with someone in public or outside your close friend group started to feel like everyone was following a mental script for how our conversations could proceed. Conversations felt like a mental checklist of what was an acceptable way to discuss a differing opinion or answer a question without the possibility of stepping on anyone's toes. It became draining in ways that I haven't experienced since. It was a huge relief when I moved to another company where people were allowed to talk freely to each other, like professional adults.

<comment><USER3> Hmmm number 3 doesn't seem like a negative or counter-intuitive. I feel like software devs (in bay area startup world, or FAANG) are usually a certain demographic and they usually come from a place of privilege where they've never had to do the mental work that's involved in communicating effectively across diverse demographics.

<comment><USER2> > Hmmm number 3 doesn't seem like a negative or counter-intuitive.

This is the core of the problem: Some people like the idea of robotic, semi- scripted conversations according to a well-defined set of rules. They think that if there's a rulebook, they can predict how people will respond to them. Or worse, they think they can control how people react and respond.

Yes, we should put some constraints around egregious communication issues as well as provide general guidelines, but the important thing is to let people interact naturally within those loose constraints.

> I feel like software devs (in bay area startup world, or FAANG) are usually > a certain demographic and they usually come from a place of privilege where > they've never had to do the mental work that's involved in communicating > effectively across diverse demographics.

It's a fallacy, though. You can't create perfect rules for human conversation. Everyone needs to build those interpersonal and conversational skills, even if it's somewhat painful along the way. The basic skills can be guided with simple rules and guidelines, but the problem comes when you try to control too much of the conversation or set the constraints so tightly that it's a minefield to navigate.

<comment><USER3> >Some people like the idea of robotic, semi-scripted conversations according to a well-defined set of rules.

Thinking about the words you use in daily conversation with diverse peers doesn't have to be "robotic". You're just being exposed to how other people in less privileged positions have to think and act, and that's uncomfortable.

>You can't create perfect rules for human conversation.

Is anyone here claiming that their goal is perfection?

>Everyone needs to build those interpersonal and conversational skills

And there's nothing wrong with receiving help and guidance while you're on that journey.

<comment><USER4> > Thinking about the words you use in daily conversation with diverse peers > doesn't have to be "robotic".

I'd much rather save my mental energy for the coding.

If having to carefully think about how every turn of phrase could be seen and completely giving up on being able to make friends at work is the price of hiring less privileged people? I'd rather stay in my privileged monoculture thanks. The underprivileged can go join the company with the underprivileged monoculture and everyone can be happier, communicating in the style they prefer with people who are ok with that style.

<comment><USER5> "i cant make friends if i cant make dumb jokes about minorities and women"

</comment></comment></comment></comment></comment></comment><comment><USER6> While I agree with the core of "DON'T: Criticize the person. ", I'm not sure I agree with the example. I get that avoiding "you" and "your" can help with setting the tone, but ultimately it matters more what is said in particular. The DO example to me seems overly distant, almost snarky and amplifying criticism in my mind, like somebody explicitly telling you "don't take it personally":

"This concurrency model appears to be adding complexity to the system without any visible performance benefit." just screams "I think this is shit but I'm not gonna tell you more directly because we have a policy not to do that". Might be only me, maybe.

In my experience, I have received a lot of comments with "you" and "your" on them but they were still constructive. But when I received very sterile ones like the DO example I typically felt a bit weird, guilty, like someone actively avoiding to tell me what they think, or colleagues using extremely formal/polite language. A lot of things can carry weird undertones, depending on context.

<comment><USER7> It does come off as passive-aggressive. The tone is so final and closed to all discussion.

If I were on the receiving end of that feedback, I'd much rather have the reviewer write something like:

"Can you walk me through the rationale for this concurrency model? It seems complex for what we're trying to achieve at this stage."

<comment><USER8> As some other commenters wrote, you can probably be more direct:

"Why use XYZ pattern instead of ABC? This seems more complicated than necessary right now."

There's also a useful communication/pedagogy technique I learned many years ago called "praise, correct, praise". You frame a "correction" or negative feedback with either neutral or positive feedback. The idea is that the other person receives the feedback without feeling "stung" or associating it with negativity, which could reduce their receptiveness or even their ability to retain and/or apply the information.

<comment><USER9> "Praise, correct, praise" is less fawningly known as "shit sandwich" and appears incredibly patronizing to anyone who is either aware of the method or possesses minimal skills of observation.

<comment><USER10> The fact that at least an effort was made does count for something, I believe.

<comment><USER11> But the motivation for that effort varies from 'this person is actively seeking to manipulate me with poppsych to use my failed career as a stepping stone' to 'genuinely concerned about how I feel about recieving critical feedback.'

</comment></comment></comment></comment></comment></comment><comment><USER12> They didn't have my favorite one: using questions instead of statements For example, "Why did you do it this way?" instead of "Here's why you should do it a different way". (or "have you considered...", "what are the benefits of A vs B", "is this going to meet this requirement or avoid that problem")

This approach has helped me because

a) It feels less aggressive (more like you're working through it together),

b) It prods them into thinking through what they missed, and

c) It prods for information that I might be missing. I might actually discover that I'm wrong and the other person considered more information.

<comment><USER13> In general I agree with your point. I just want to point out one particular edge case where it can be misapplied.

The one thing I always want to be careful of with questions is to make sure they don't come off condescending. One example of an anti-pattern with questions is to ask

"Why did you do <obvious mistake>?"

In that case, clearly they didn't mean to make the obvious mistake. Asking the question implies that they did it intentionally, when surely what actually happened is they overlooked the error. Instead, I just point out the mistake. "I think you forgot to check for null here." comes across way better than "Why didn't you check for null here?"

The general principle I find useful is to try to say exactly what you mean. When you spot an obvious mistake, there's not really a question to be asked. You are trying to note the mistake, so just use a statement to note the mistake. When it's less obvious, or it's a judgment call, a question is great, because that's exactly what you're trying to do: ask whether another approach might be better.

<comment><USER14> Few things in a professional setting annoy me more than what you're describing. I left the default date on a form once and got it back with a note that said "why did you put this date here? Today's date is XYZ."

You got me. I thought it was 2004. Thanks for correcting me, now I know it's actually 2019. Pretty shocking that I'm actually 15 years older than I thought! I guess I'm a huge moron!

</comment></comment></comment><comment><USER15> The most disrespectful part of the "Don't" examples are that they are _vague_ about their concerns while simultaneously expecting a concession from the other party in the review. They say, "your code/approach is wrong, but I don't feel like explaining why I think it's wrong".

That's what sets up the context for the you-s to be interpreted as jerky. "You" can certainly be used in a non-disrespectful way, but not when the rest of the comment it is attached to is disrespectful.

Code reviews are like small debates, and successful debates do involve courtesy, patience, and arguing in good faith, which are also basic life skills.

</comment><comment><USER16> On the spectrum of best to worst way to do code reviews - pair programming is the best. Writing comments, no matter how respectful, back and forth is the worst.

When I do code reviews I split the difference and "pair code review".

My preferred method:

I start by realizing the author has had more time to really think it through than I did, give them the benefit of the doubt, and realize I have some faulty assumptions up front (the classic "Building twitter can't be that hard!" type assumptions we see a lot on HN).

Then I read through the code on my own but don't post any comments, or only post "uncontroversial comments" (spelling, forgot to scope a query, etc)

Then it is time to pair. I start a screen share/video call with the author and let the author take the lead and walk me through it. They tend to find most issues on their own just by talking it out (rubber duck code reviews). Usually the author posts comments on the PR while doing this, not me. When I see a problem I can guide them to the problem with a few prompts and we can discuss it and resolve it right there, without any back and forth in pr comments.

Only after doing all this would I consider asking the author to make major changes or re-dos.

Sometimes I'm in a hurry and I don't do all this, and it often leads to hurt feels, pr flame wars, etc.

<comment><USER17> > Sometimes I'm in a hurry and I don't do all this, and it often leads to hurt > feels, pr flame wars, etc.

Have you considered framing all your suggestions in the form of questions?

Eg "have you considered doing this using <X>, because the style guide suggests it/it might be faster/etc"

That way if they have already considered it, they can just respond yes, and give the reason they didn't do it. And if they haven't considered it, they can think about it and make a more informed decision.

Maybe this is a very passive approach but it seems to work for me. Inspired by a sci-fi writing workshop I took and the tips they gave on how to critique without turning it into a confrontation.

<comment><USER18> Reframing statements as a question is less effective than training yourself to actually ask real questions. If you're 99% convinced that something is wrong, it's no use asking a question like "have you considered not leaving a print statement in the middle of your code?", but if you're only 90% sure then there's already a question you need to ask.

This may or may not be what you suggested, sorry if it's redundant.

</comment></comment></comment><comment><USER19> > DO: Assume competence.

The code reviews I've had the most trouble with are the ones where I can't. Blatant copy/pasting, 20 blank lines checked in, unrelated configuration changes included, one-line fixes implemented via complex logic, zero git hygiene/cleanup, zero self-review of the code review before assigning it...

If I leave a comment like:

> This logic is repeated in both view controllers. Should be DRY.

I'd love to be in a situation where that was actually intentional and a DRY implementation was considered but abandoned for X reasons.

Far more likely is that they needed it in 3 places and thus pressed CMD-V 3 times.

<comment><USER20> > This logic is repeated in both view controllers. Should be DRY.

It may well be a good idea _not_ to be DRY.

[https://news.ycombinator.com/item?id=20395901](https://news.ycombinator.com/item?id=20395901)

<comment><USER19> > I'd love to be in a situation where that was actually intentional and a DRY > implementation was considered but abandoned for X reasons.

</comment></comment></comment><comment><USER21> Maybe it's a cultural thing but I find many of examples given to be worded in a way I would find a bit duplicitous. I'd prefer a much more direct approach and I'd be reluctant to trust anyone using these kind of couched expressions.

See here: [https://m.imgur.com/gallery/ltn3bla](https://m.imgur.com/gallery/ltn3bla)

</comment><comment><USER22> Practices like this are ridiculous. Of course you should be respectful in a code review, but you should also be to the point and ask questions if you don't understand why they did something they did, even if there is a "better" way you know of. That's how people learn.

The examples they give are just bad.

<comment><USER23> I agree. Really poorly done - I'm surprised this is on the front page of HN.

<comment><USER24> Perhaps, but I'm finding that the resulting discussion surfaces a lot of wisdom, good ideas, and different perspectives.

</comment></comment></comment><comment><USER25> "I don't understand this." is a valid review comment. Of course sometimes you can expand on the comment, but sometimes it's enough.

<comment><USER26> IMO, it's a waste of time. How does the person who wrote the code know what exact thing you don't understand? You also aren't asking a question so it's not really easy to answer. This stuff tends to take multiple review cycles to resolve where a more specific question might actually clarify things in one cycle (It's never good to assume your lack of understanding means it doesn't make sense, of course.)

<comment><USER27> Depends on your review process - if that comment acts as a trigger/marker for a face-to-face conversation then it makes sense.

<comment><USER28> If you want to trigger a conversation you could just as easily say:

"lets discuss this"

And avoid putting the burden of ambiguity on the author of the original code under review.

</comment></comment></comment></comment><comment><USER29> As a person who prefers profanity and hyperbolic exaggeration and over- reaction when dealing with technical topics (about which no sane person would do things like threaten violence, so it becomes funny for someone you know to do so), I entirely understand the need for policies like these. I am fully aware that I am not all people or even necessarily normal. Reviews inherently involve other people, and unless you are in a closed and close-knit social group, it is very easy for people to misunderstand things and be unaware of the subtext a person might be intending to communicate with.

I don't really understand why (at least not enough that I could effectively change the situation) some folks conduct themselves as if everyone else is their best friend and knows them intimately, knowing when they are joking, etc. Is it a matter of stereotypical 'social awkwardness' that society derides intellectuals with? Or something different? I haven't personally come across people that are earnestly writing code review comments with malice, but have certainly seen some that could be seen as overly negative/aggressive/etc by an outsider (they were written in a very close-knit team amongst friends, though). I presume most all problematic comments come down to misunderstandings.

</comment><comment><USER30> I've experienced where code reviews have worked well and where they actually have been more hurting for morale than useful. The difference between the two was that how well people knew how to work with the frameworks they were using. In the failing team the participants didn't know what their tools and code was doing and the code reviews basically became ravings about code formatting.

Another effect were it took days to do a code review because each review had to be explained in detail, instead of have a common understanding of why the changes should work or be different.

The effectively consequences of this was that people only asked reviews from other people that either accepted everything or didn't have the adequate knowledge about tools so the code just became worse and even less aligned with what the frameworks required.

This was recognized by the management and a huge effort were put into educating the staff so the common knowledge about the tools were raised. This was really appreciated move and, although the team still struggled at least the reviews became better.

I don't know if just respectful reviews work if you always feel, even if the reviews are kind and helpful, as the one needing a lot of explaining to commit your code, particularly if you are on a deadline and stressed out. People get fearful and defensive if you don't get what's wrong with your code.

It can also be the other way around, that you get loads of questions and downright wrong reviews which then has to be defended. And this is the beginning of disagreements which could cause tensions and ultimately disrespect.

</comment><comment><USER31> funny, I'd add :-

DO: Avoid using DO and DON'T

DON'T: Use DO and DON'T

They feel like "Political Correctness" rules and that can backfire (not that the advice isn't good advice!), oddly enough, another google guideline posted a while back on code reviews I thought got the language better [https://google.github.io/eng- practices/review/reviewer/](https://google.github.io/eng- practices/review/reviewer/) . It uses language like "In general, reviewers should favor..." which, to me, comes off a lot better than "DO:", I think it leads to the "better" idea of improving the way you do things and conduct yourself and the advice is giving you more tools to use during reviews, and that it feels like its always an open to further improvement and that there is a certain tolerance to not always doing it in a good way. Where the DO/DON'T approach seems to create an idea of there being a definitive way of conducting yourself which tends to irk people. Base definitive rules are the same as most legal requirements of conducting yourself in a employment situation.

<comment><USER32> I think this is particularly good point. In general, i would consider sentences in direct imperative mood as grossly inappropriate (for code reviews or anything else), unless from someone in position of legitimate power / competence.

It is interesting that they do not hesitate to use such disrespectful form in blogpost about respectful code reviews.

</comment></comment><comment><USER33> How do you deal with people who take _any_ critique of their code as a personal affront? I'm working with one of such people right now, for the first time in my 25 years in the industry. I'm a consultant, and he's an FTE. I'm considerably more experienced and senior and management knows it. The guy's PRs have been sitting in the queue for over a month now because there's no way I'll let him submit his shit code to master, and he just won't clean it up. That's not how I phrased it in the review obviously. I explained how the code could be improved (and why it needs to be improved) and gave concrete suggestions, using the most diplomatic language I could come up with. I explained to his manager why the PR is stuck. His manager is conflict-averse, so he won't push the guy, knowing how easily he gets offended.

I mean ultimately, my contract ends in January, so I could just merge the PR and say "après moi, le déluge", but in case I encounter such people again in the future, what do people usually do?

<comment><USER34> Go sit next to him with a cup of coffee tomorrow morning, and fix the PRs right there. Say "Let's do some quick pair programming and close these lingering PRs real quick."

He should appreciate the initiative, and communication is much more effective and resonant in person.

<comment><USER33> Thanks for the suggestion, but judging by my other interactions with the guy that'd be catastrophic. It goes without saying that we've already communicated in person about this.

</comment></comment></comment><comment><USER35> I find really hard about code reviews is how people have different styles. Some people writing more procedural, some more functional, some want to use Actor model, others like layers, others like having loads of dependencies injected. What are you supposed to do? Haven't even started on the plethora of libraries and frameworks.

<comment><USER36> Stick to whatever conventions already exist in the project for consistency.

<comment><USER37> I can count on the fingers of one hand the number of programs I've seen in my life longer than 100 lines with consistent conventions.

</comment></comment></comment><comment><USER38> No mention of providing positive comments? e.g. "Very readable. I think this abstraction will save us a lot of time in the future too.". It's tiring to work days on a commit only to get a bunch of fixes back with no understanding of what people consider good tradeoffs and high quality for future commits.

<comment><USER39> And then your commit is merged, and all your great code is going to be used.

While I understand wanting to be praised to some extend, wanting to be praised for doing your job still sounds a bit off to me.

That said, getting multiple rounds of fixes bothers me to no end, so I guess it's always merge after the first round of fixes.

<comment><USER38> > And then your commit is merged, and all your great code is going to be used.

It's more about understanding what qualities in your code your team appreciates. There's a big spectrum in code that gets accepted for being amazing and code that only gets barely accepted too.

> While I understand wanting to be praised to some extend, wanting to be > praised for doing your job still sounds a bit off to me.

Do you think it's weird that people in other industries might say "great work!" from time to time? Seems like a basic part of social interaction to me. I don't want to work with robots, especially the people in code review discussions that say everyone should just have a thicker skin.

Only getting negative comments back from people and "pull request accepted" notifications is a cold environment to work in, especially if you work remote.

<comment><USER39> > Do you think it's weird that people in other industries might say "great > work!" from time to time?

Not at all, it's just that I personally don't say, or expect, a "good work" message unless I'm honestly impressed by what was written.

I've received that once or twice, and given it a few more times (in 10 years).

But just saying good work to keep someone's motivation up, that is something I would have to consciously think about.

</comment></comment></comment></comment><comment><USER40> I often phrase code review comments as questions with _specific_ goals in mind, such as "Would this be simpler/faster/clearer if [refactor idea]?" or "How about [alternative]?" This makes it clear that I, as a reviewer, do not have all the context that the author does, and that it's a good chance they _did_ consider those ideas but rejected them based on previous experience. This may be as simple as a broken third party thing that they had to work around, or prioritizing differently.

The only thing this misses is code style, but holy crap automated code formatting tools are such enormous time savers for reviews. Black + isort on Python code and Prettier for everything else makes code reviews easily three times faster.

</comment><comment><USER41> These are all just basic principles of being a working professional, if any of this is non-obvious you have a culture problem not a code review problem.

<comment><USER42> I'm a manager and you'd be surprised at how many engineers (and people in general) can take issue with wording in communications. And all it takes is one person. More times than not that person is an overachiever - one who wants everyone else to be perfect, or one who wants to always be perfect. So much time is wasted sorting out miscommunication.

Just read through the other comments here regarding feelings for each of the comment types.

Personally I have a thick skin. Even harsh, direct verbal criticism doesn't faze me. I'll laugh in your face and tell you to get the fuck out of mine.

<comment><USER43> >Personally I have a thick skin. Even harsh, direct verbal criticism doesn't faze me. I'll laugh in your face and tell you to get the fuck out of mine.

I like this attitude. How do you develop this. I am exact opposite of you what you said. I get depressed for the slightest criticism. I want to learn how to develop thick skin. I think it arises from my need to impress everyone around me and my need for their approval.

<comment><USER44> I see what you're saying, but "I'll laugh in your face and tell you to get the fuck out of mine" is usually a very poor way to respond to criticism in the workplace so you shouldn't necessarily aspire to it.

<comment><USER45> I tend to disagree. Solving conflicts with this personality type is often easier because it will stay on topic and you can still share a coffee afterwards.

<comment><USER46> Many people have been raised in a social environment, where that sort of behavior is considered hostile and disrespectful. If you're laughing in someone's face, they have no idea of whether or not you think their work is shit, or they are shit.

The OP believes that it is not hostile or disrespectful.

If neither group changes their behavior, he's going to be the one who lose out in this exchange. He can feel he is in the right, he may even be in the right, but that's a bit of a questionable hill to die on.

</comment></comment></comment></comment></comment></comment><comment><USER47> > _If this is an optimization, can you please add comments?_

That's a snarky one.

</comment><comment><USER48> CMU's RPP: [https://www.cs.cmu.edu/~weigand/staff/](https://www.cs.cmu.edu/~weigand/staff/)

Was surprisingly effective. Probably something to it - that department has maintained lasting productivity longer than the lifetimes of many companies.

</comment><comment><USER49> Good guidelines for the most part. I don't really see anything wrong with "Why are you using this approach? You're adding unnecessary complexity" though.

</comment><comment><USER50> I just want to see more examples. Every situation is different and people should adapt their responses to different personalities. Real examples taken from real code reviews with contexts (chat logs and whatnot) and its aftermath would be fun. Maybe I can dig some GitHub discussions and list "funny/great/bad code reviews that went great/awry?" Also, as a thought experiment, it would be fun to think what if Gordon Ramsey did code review.

<comment><USER51> >what if Gordon Ramsey did code review

Just read the Linux or OpenBSD developer mailing lists. Linus puts the fear of God into Linux developers. Theo puts the fear of Theo into OpenBSD developers.

</comment></comment><comment><USER52> My biggest concern with this sort of thing, and it's a general criticism, is that the suggested way always comes across as very weak, roundabout, and doesn't ever convey the same kind of sentiment as the language that is discouraged.

You can be direct and unambiguous without being an asshole, but the suggestion usually is to use some artificial passive-voice construction that no real person ever speaks like, and which completely blunts the criticism.

</comment><comment><USER53> so which of the following things are the author claiming with the ==?

\- all respectful reviews are useful \- all useful reviews are respectful \- all disrespectful reviews are useless \- all useless reviews are disrespectful

Which of these things would the author defend when challenged, and which are they gesturing vaguely at and hope to slip under the radar?

</comment><comment><USER54> Before criticizing something, ask yourself "Is it wrong? Or is just not the way you would do it?"

</comment><comment><USER55> Ultimately, any rules you create tend to break down, as there is always an edge case personality that will dislike the way you worded something.

The best advice I have seen applies to regular conversation as well as code reviews:

When you see something that is confusing, incorrect, or debatable, take a stance of genuinely attempting to understand the other person's mindset before offering feedback.

\--

For example, asking questions in a respectful manner such as:

"Would you mind elaborating on why you chose this pattern of implementation?"

Will result in a positive conversation while also having them document in the review their mindset for posterity and further clarity of discussion.

\--

From there, constructive conversation and asking if they're interested in feedback/alternative approaches can happen.

This way you maintain respect and show an honest attempt to understand others with every comment and suggestion you make to a PR.

\--

tldr; ask questions to gain perspective before you start dictating to others how things should be done.

</comment><comment><USER56> Coders has the biggest egos. One wrong word, it's like a landmine when ever I code review.

<comment><USER45> It is often decried as ego, but sometimes they just care about it. Excessive fandom can be another example of this.

</comment></comment><comment><USER57> All of the examples of dos and don'ts in this article recommend obtuse, indirect, and unclear baroque language over clear and straightforward language.

</comment><comment><USER58> I think it's worth noting that the three authors of the article are all women. This is an explicit rejection of the "Lead Developers are your gods, and if you can't accept their vile/vulgar/abusive takedowns during code reviews as sage wisdom, you need to grow thicker skin" mentality that is particularly repelling to women in the tech community.

<comment><USER59> Those of us who got into programming BECAUSE of the famous 'characters' of open source and their ranty comments find it quite repellent to have codes of conduct and women in the position of cultural politeness enforcers. Even using an emoji/joke might be wrong? Really? The idea that women are uniquely invested in this sort of stuff only damages my perception as a female programmer. Who's going to want to joke around with me or review my code if I'm the fun police?

<comment><USER60> You missed the point. The point is a person with power over you needs to be respectful of that power. Your boss is never going to be as buddy-buddy with you as a coworker, because your boss has a lot more say over your pay and whether or not you're going to be fired.

The famous "characters" of open source are notorious, not famous. No one looks at a Linus rant and says "Wow I want to try my hand at adding a patch for Linux!". No, they say "Wow, I want to have that kind of power!"

That's just the rub, isn't it, you don't get to decide that we have to be hazed because you want the potential to hold that power of us.

<comment><USER59> > No one looks at a Linus rant and says "Wow I want to try my hand at adding a > patch for Linux!".

People who think it would be awesome to get their code past Linus, and at least very funny and instructive to have their code shat on by Linus, do :) Some of us just don't care about or even like 'hazing'. You know, cause once you show you can take the hazing, you're in the group.

Yeah I don't want to be, like, epically pwned by my boss on a code review at work, but neither do I want my coworkers believing that I may find a smiley emoticon or "I don't understand this" to constitute some sort of hostile environment.

<comment><USER61> What is the technical advantage of being intentionally abrasive?

It has the drawbacks of ostracizing those who are less confident with English and would prefer direct communication, the potential of being misunderstood and intimidating those who would prefer a more professional approach. If it cannot make the code better then it is poor engineering practice.

<comment><USER62> It's kind of odd to ask this question in response to a comment that already specified _two_ possible advantages. Namely:

1\. It sets up a challenge that incentivizes people to try to contribute; they "think it would be awesome to get their code past Linus"

2\. It serves a form of initiation ritual (a hazing) to give people a sense of belonging to the group

(I'm not sure I personally buy point 2, because as far as I know Linus is nice to newbies.)

Beyond that, I can list plenty more:

3\. It builds trust in your sincerity. If you openly bitch about everything that pisses you off, then when you say that something is decent work, people know you mean it.

4\. As a direct consequence of point 3, it makes the environment much more welcoming for people with scrupulosity complexes, who might otherwise worry that they're just being a nuisance who everyone would rather not have around (but is too polite to shoo away)

5\. It drives away hyper-PC social-justicey types who would otherwise impose CoCs and disrupt everything with conflict and hatred.

6\. It sets a tone in which people feel free to speak freely, which sets people at ease who would otherwise be anxious about accidentally giving offence (perhaps because they have poor English skills, perhaps because they're neuroatypical in some way that affects their social skills).

Are there downsides too? Sure. But this is just the age-old set of tradeoffs between having a politically correct space and a politically incorrect space; different people will feel alienated (or _be_ rejected by the group) in each of them. For me, anti-PC spaces are home; they're where I feel comfortable and safe and able to contribute, while PC / intersectional feminist / social justice spaces feel oppressive. I guess silveroriole feels the same way.

<comment><USER61> It sounds like you have a lot of triggers and do not do well when confronted with opinions that contradict your own. Many people prefer a less emotional environment but if you need to be surrounded by like-minded people and cannot put your personal feelings aside for the benefit of the product then you have the right to pursue a comfortable environment.

</comment></comment></comment></comment></comment></comment></comment><comment><USER63> Is this so heavily upvoted because it's written by women or because it's by google?

These all seem Professional Workplace 101 stuff. Blog bait really.

</comment><comment><USER64> Sure, if you have a company that wants to produce useful code and not haze employees. For many companies, especially in big tech, code reviews are more about asserting dominance than actual helpful suggestions. Looking at you, AMZN...

<comment><USER65> I've noticed that at my current company as well. There's one reviewer who puts a comment forcing someone to come meet with him every PR, often the comment shows he hasn't even read the description, let alone the code. It's just a way to prove he's the owner and gatekeeper and no one else can commit to that area without coming to him in person.

</comment></comment><comment><USER66> Oblivious everyone prefers to keep a good office atmosphere, but code reviews also has to convey clearly what the problem and ensure code quality is sustained or improved over time. Being to vague and "nice", can mislead developers to think that it is optional to fix the problem. Companies that produces great code, are those who have a strong meritocratic culture where directness and quality stands above niceness and vagueness. Companies with the opposite, whatever that is (perhaps a democracy or indifference), tends to produce worse code and prevent developers from improving.

So, be decent and direct (not nice and vague). And make sure to also praise progress and good code. End of the day, most developers prefers honesty and to become a better programmer.

<comment><USER67> Don't confuse aggression and assertiveness. Have rules, and stick to them.

I can scream and yell at my dog all day long because he pulls on the leash, but I'll just be angry and the dog will continue to pull on the leash.

If I'm calm, kind, but firm, I find it's usually quite a bit more effective. I'm not getting angry, but if my dog wants to keep walking, he's got to calm down first. I'm willing to wait.</comment></comment>


Royalty-free MPEG video codec to up the ante for Google's WebM/VP8 - <AUTHOR> http://fosspatents.blogspot.com/2011/02/royalty-free-mpeg-video-coding-standard.html

<comment><USER2> If you leave Google conspiracy theories out of consideration it should be obvious that Opera, Mozilla and the FSF (amongst others in the WebM supporters list: <http://www.webmproject.org/about/supporters/>) don't actually care about WebM in itself, they support free software/open source/open web friendly, royalty-free formats. But it's not just lack of royalties alone, they have to be useful too, so the more viable in the market the better, given the basic requirements are met.

That's why they supported Theora, and now prioritise WebM, and make clear they're happy to support any new codecs that meet their needs. Examining the new MPEG proposal from their point of view would be interesting.

For example, why is it better than just waiting for MPEG1/2 which already has great free software encoders and is implemented _everywhere_ to fall out of patent coverage. How good can it possibly be if they take an ultra- conservative approach to patents? Better or worse than Theora? When will it be ready? When will hardware support it, if at all? How can they avoid poisonous politics in their "open and inclusive" process if they are at the same time pushing H.264 and H.265 as the (very, very lucrative) present and future of video codecs? Why did it take MPEG so long to do this? How do we know this won't end up like the royalty-free profile of H.264 which they promised but never delivered? Which royalty-free audio codec do they intend to pair it with?

(Another interesting thing to read would be to choose H.264 patents at random and say "Let's just imagine VP8 infringed this. How much worse would the encoder/decoder be if VP8 simply dropped this element?" 10%, 1%, 0.1%, 0.000001%? This blog's analysis in parts seems to suggest that a single blow would kill VP8, in others he more realistically claims that it would require a number of difficult to work around/buy out/invalidate patents before it becomes a complete road block for VP8)

</comment><comment><USER3> The royalty-free MPEG video codec is currently vapourware.

</comment><comment><USER4> same troll as before.

<comment><USER5> Stop with the ad hominems. It is clear you have no clue what you are talking about on this subject.

</comment></comment><comment><USER6> This is just not enough, Far from it, It would also have to be free to implement without any restrictions and it should be free as in freedom, like Ogg Theora and WebM are.This is just MPEG-LA mafia being scared because they will not be able to extort money when they want to. The best for free and independent web and video is if this MPEG-LA shit dies as soon as possible.

<comment><USER7> According to these: [MPEG](<http://en.wikipedia.org/wiki/Mpeg>) and [MPEG LA](<http://en.wikipedia.org/wiki/MPEG-LA>) are not the same organization. Quote "MPEG LA is not affiliated with MPEG, the Moving Picture Experts Group."

<comment><AUTHOR> Yes, my article on this states: "t's important to note the difference between MPEG, the standardization body, and MPEG LA, the licensing agency. MPEG defines standards, and those can be royalty-free or royalty-bearing, depending on what the owners of the essential patents agree upon in each case. MPEG LA manages patent pools related to royalty-bearing standards, serving right holders and licensees as a one-stop solution by way of aggregation."</comment></comment></comment>


My Role as CTO of Flatiron School and Flatiron Labs - <AUTHOR> http://sarajchipps.com/post/79970954368/my-role-as-cto-of-flatiron-school-and-flatiron-labs

<comment><AUTHOR> Taking over where the school leaves off. I like this idea.</comment>


IPhone 5 to launch October 15th according to France Telecom CEO - <AUTHOR> http://www.bgr.com/2011/09/15/iphone-5-to-launch-october-15th-according-to-france-telecom-ceo/

<comment><USER2> You have submitted over 70 links to that blog in the past 3 months. Please share only your best hacker relevant posts.</comment>


Sinclair ZX81 1KB Chess vs. Stockfish Chess Engine (2018) [video] - <AUTHOR> https://www.youtube.com/watch?v=R3By_rdwxSg <comment><USER2> For a far more interesting matchup, with advanced long term oriented strategic play, consider watching a match between AlphaZero and Stockfish: [https://youtube.com/watch?v=JacRX6cKIaY](https://youtube.com/watch?v=JacRX6cKIaY)

The video linked here focuses on the ability of AlphaZero in making long-term optimal piece sacrifices against Stockfish, which is largely incapable of understanding these types of moves due to its hard coded bias towards losing pieces defined in its value function, causing AlphaZero to be able to consistently outmaneuver and ultimately handily defeat StockFish in almost every single game it plays against it.

<comment><USER3> Related to AlphaZero is the Leela Chess Zero project, an independent project people from across the glob contribute CPU/GPU resources to: [https://lczero.org/#tab-elo-estimates](https://lczero.org/#tab-elo- estimates). One of the main developers on LCZero is also one of the Stockfish developers.

It's been having an interesting time in various competitions, and much like the match you point out, it makes some decidedly more "human" moves, little stabs to try and get out of a draw situation that Stockfish won't due to its hard-coded biases. Here's an interesting game from TCEC 14 [https://www.youtube.com/watch?v=rhI4DKGSjtk](https://www.youtube.com/watch?v=rhI4DKGSjtk) Ultimately it came second to Stockfish, but that was the highest placing it has had so far, and they keep refining and improving it all the time.

<comment><USER4> Contribute to the go site of leela zero and play using it with gui. Not sure how to start chess part.

But open one is better than closed one as we can have other experiment such Facebook go, darkgo and minigo etc. Not sure there is any similar chess open net engine.

<comment><USER5> Both stockfish and LC0 are open source.

</comment></comment></comment></comment><comment><USER6> There were multiple chess-related submissions in SIGBOVIK 2019: [http://www.sigbovik.org/2019/](http://www.sigbovik.org/2019/)

In particular, there was one that played a bunch of chess engines against each other, and came up with a better metric than Elo, for when players aren't going to change skill.

</comment><comment><USER7> Another classic mismatched match-up:

[https://www.youtube.com/watch?v=E4N0Ap2rkdI](https://www.youtube.com/watch?v=E4N0Ap2rkdI)

...but I was more impressed by the Atari 2600 chess game which had castling and _en passant_. Having 256 bytes seems like a good excuse to leave out such nonsense.

<comment><USER8> 256 bytes of RAM, plus insane amounts of ROM (a whopping 4kB, acccording to [https://en.wikipedia.org/wiki/Video_Chess](https://en.wikipedia.org/wiki/Video_Chess))

<comment><USER9> Dang, 4kB... In 32 bit depth, you could encode that with a measily 32x32 image. Think of how many more bytes a smartphone from even several years ago has in it's framebuffer, that it is more than capable of filling 60 or even more times per frame.

</comment></comment></comment><comment> z-cam Relevant (and mentioned at the end of the video): [https://gist.github.com/ecelis/f2428c38fd7777b20ace](https://gist.github.com/ecelis/f2428c38fd7777b20ace)

</comment><comment><USER10> I had those three mags, and I typed it in. A wonderful introduction to what you can do in Z80 machine code.

Happy days

</comment><comment><USER11> Would much rather an explanation of what the code does to achieve this miracle.

<comment><USER12> [http://users.ox.ac.uk/~uzdm0006/scans/1kchess/](http://users.ox.ac.uk/~uzdm0006/scans/1kchess/) \- use the source, luke?

also maybe some previous hn discussion may have some analysis [https://news.ycombinator.com/item?id=9151552](https://news.ycombinator.com/item?id=9151552)

</comment></comment><comment><USER13> I am not interested to watch the video; PGN would be more useful (with comments added), I think. Then you can print out, too, if you want to do.</comment>


Show HN: KosmiPoker – Private Poker Rooms with Webcam Communication Using WebRTC - <AUTHOR> https://poker.kosmi.io/?ref=hn <comment><USER2> That's neat, what tech did you build it with? The github link didn't go to a particular repo so I'm guess it's private for now?

The wider site has some interesting games: [https://kosmi.io](https://kosmi.io)

I could see this being popular integrated into one of those viral social activity apps like [https://www.houseparty.com](https://www.houseparty.com) or [https://www.airtime.com/](https://www.airtime.com/) where you watch videos together with friends w/ voice/text/stickers/etc. Most of the reviews for those tend to be teenagers stuck in the bedrooms socializing with friends through their phones.

A group game of an SNES rom with a remote friend would be fun even for my adult friend group.

<comment><AUTHOR> Thank you! it's all built using Elixir on the backend and React on the frontend. In fact all the apps on the site are built using that same stack.

I'm actually planning to merge them all into one platform soon. Hadn't thought of integrating with others but good idea!

<comment><USER2> I'm not sure if you could integrate with Houseparty or Airtime.

If they were smart they would open an API for this type of stuff. Those apps could go a long way

</comment></comment></comment><comment><USER3> Looks cool. I think you should add a listing for public rooms, I couldn't really try it by myself but would have liked to.

<comment><AUTHOR> join in here [https://poker.kosmi.io/hackernews](https://poker.kosmi.io/hackernews)

</comment></comment><comment><USER4> Is there any central validation for hands and plays?

<comment><AUTHOR> The whole game logic is run serverside, including hand and play validation if that's what you are asking.</comment></comment>


Canada Approves Enviropig, Pig Inherit Genetic Modifications for Clean Manure - <AUTHOR> http://www.treehugger.com/files/2010/04/canada-approves-enviropig-genetic-modification-inherited.php?campaign=th_rss Given the past history of genetic modifications to plants and animals, I have a bad feeling about this. <comment><AUTHOR> Given past history of genetic manipulation of plants and animals, I have a bad feeling about this.</comment>


No More FoundationDBs - <AUTHOR> http://petabridge.com/blog/no-more-foundationdbs/

<comment><USER2> I see blame given to Apple and FoundationDB, but isn't the message here _choose open-source_?

<comment><USER3> FoundationDB had a lot of open-source code on Github. Good luck finding a copy now.</comment></comment>


Avoiding Common Backbone.js Pitfalls - <AUTHOR> http://ozkatz.github.com/avoiding-common-backbonejs-pitfalls.html?tagref=js

<comment><USER2> Great article highlighting some common areas for attention -- _especially_ when first moving from vanilla jQuery to something like Backbone ... but important for any basic Model/View layer separation.

For what it's worth, _all_ 5 of these points are addressed by the Backbone docs, and there are some further nuances worth mentioning:

1\. listenTo() is great when you're connecting _from_ an object (frequently a View) that will be removed long before the object that its observing is removed. But when the two (the observer, and the observed) tend to live and die together in the same cycles, no special care is needed, as garbage collection will simply remove both together.

2\. An easier way to avoid multiple DOM reflows when rendering collections, is to simply use a less granular template instead of a document fragment. You can even render the "item" template directly within the optimized "collection" template (remember, a template is just a function that takes data and returns HTML). For example:

        <div class="books-collection">
          <% books.each(function(book) { %>
            <%= templates.bookItem({model: book}) %>
          <% }); %>
        </div>

3\. Absolutely. Addressed in the FAQ: <http://backbonejs.org/#FAQ-bootstrap>. While bootstrapping models, be careful that you don't inject arbitrary user JSON into the page without properly escaping it first -- if there's any data shared publicly between different users of your app. Otherwise they can throw a "</script>" into their post, and ruin your day.

4\. All of Backbone's "save" calls are optimistic _by default_. If you'd rather a specific call be pessimistic instead, just pass "{wait: true}", in order to wait for the server to respond with a 200 OK before emitting the change on the client.

5\. Yep. Instead of putting further model changes in a "success" callback, simply have a listener waiting for the "change" event. Then Ajax is out of the equation, and whenever the model state is considered to be "change"'d on the client-side, that change propagates appropriately through the system.

<comment><USER3> Thanks for the comments, valid points. regarding #2, it gets tricky when the model subviews do more than just render the template (listen on model changes and/or DOM events from their element).

Regarding #4, I totally agree. This is why I'm talking explicitly about the "success" callback - it is often misused.

</comment></comment><comment><USER4> For those who have not yet tried it, I would highly recommend TIm Branyen's Backbone.LayoutManager [1]. It solves items 1 and 2 very well.

[1] <https://github.com/tbranyen/backbone.layoutmanager>

<comment><USER5> I've used Marionette up until now but this is very interesting. It looks like this solves one problem really well, but marionette solves a bunch of other problems with views/app management.

</comment></comment><comment><USER6> Respectfully disagree with point 3 - "Doing unnecessary XHR requests on page load".

It's better to have your main app page completely static so it can be cached. That said, don't use ajax either - load the initial data via its own script tag.

<comment><USER7> Doesn't that also involve an extra HTTP call? I discussed the same issue as OP a while ago: [http://branchandbound.net/blog/web/2012/11/unify-server- side...](http://branchandbound.net/blog/web/2012/11/unify-server-side-client- side-rendering-embedding-json)

Someone in the comments there mentioned a nice alternative to embeddding the data in a <script> tag to avoid the problem jashkenas raised (</script> in the JSON). Namely, setting it in a data- attribute.

</comment></comment><comment><USER8> Nitpick: I'm not sure that append() will trigger a reflow for every call. That will only happen if you interleave calls to a reflow-required property such as clientWidth. Anyone have a definitive answer?

</comment><comment><USER9> I often find people get hung up on the part where they already have an app that isn't RESTful and doesn't necessarily return a clean JSON object on page load.

Front loading data is an easy way around this and if you're savvy enough you can create a fairly clean, agnostic shim to programmatically handle this for you (so long as you can make your backbone info align with your backend model structure).

</comment><comment><USER5> Does anyone know if marionette takes care of the DOM reflow problem?

I'm looking at the source and it looks like it does not.

[https://github.com/marionettejs/backbone.marionette/blob/mas...](https://github.com/marionettejs/backbone.marionette/blob/master/src/marionette.collectionview.js#L88-L94)

</comment><comment><USER10> Is backbone the best Javascript framework to go with these days? I'm keen to switch to this style of web development but I'm waiting for the community to pick a winner.

<comment><USER11> I strongly recommend AngularJS. Huge reduction in application code complexity. There are other good frameworks, like Ember, but the only one I wouldn't recommend is backbone. The only things that it has going for it are that it is easier to get started (but harder to continue), and that if you really love to hand roll stuff you get to: both because it doesn't really do that much.</comment></comment>


Google's Remarkably Close Relationship with the Obama White House, in Two Charts - <AUTHOR> https://theintercept.com/2016/04/22/googles-remarkably-close-relationship-with-the-obama-white-house-in-two-charts/ <comment><USER2> A nice quote:

"In 2012, staff at the Federal Trade Commission recommended filing antitrust charges after determining that Google was engaging in anti-competitive tactics and abusing its monopoly. A staff report that was later leaked said Google's conduct "has resulted — and will result — in real harm to consumers and to innovation in the online search and advertising markets."

The Wall Street Journal noted that Google's White House visits increased right around that time. And in 2013, the presidentially appointed commissioners of the FTC overrode their staff, voting unanimously not to file any charges."

</comment><comment><USER3> I don't want to shoot the messenger here but is there any other source for all that info? I would like to read more about it but some other report investigation that came to the same conclusions would be nice. Given some garbage-level articles I've read at The Intercept recently I am very skeptical about their motivations and the quality of their report.

<comment><USER4> I'd love to see some comparison between these job moves, other companies, and the state of the world. Oh, no, the world's second largest company by market cap and that employes 50,000 people has had a few dozen move to government jobs! "Suchit Metrotra from Support Engineer Google Apps GOOGLE → to Research Assistant FEDERAL RESERVE BOARD (May 2015)". This is a mid-level support position, and according to his linkedin profile, he left google in 2012 and spent a year at another company before going to work for the government in 2015. This is a revolving door?

(Disclaimer: I singled out that name because I knew the name from my time at Google. And, indeed, nothing about his job role before or after would qualify as lobbyist, unless you consider anyone who's ever worked a government contract a lobbyist.)

</comment></comment><comment><USER5> I'd love to see transparency here so long as those arguing for transparency also are supportive when the proposals really are in the best interest of the average American.

Google has gone to bat to protect the privacy of the average American and they've pushed to open up markets with unnecessary artificial barriers to entry protecting the incumbents. Sometimes the interests of the average person and the commercial interests of a company align, and when that happens it's important we know that it's happening, but are also aware that it's in our best interests.

Even Microsoft lately has started to go to bat on behalf of the average American by suing the government over warrantless requests for information and abuses of the third-party doctrine.

</comment><comment><USER6> Does anyone not remember the candidates' interviews at Google? [https://www.youtube.com/watch?v=m4yVlPqeZwo](https://www.youtube.com/watch?v=m4yVlPqeZwo)

The Barack Obama one was likely the most viewed, as he was relatively unknown then.

Interesting the answers he gave and the state of politics and regulation 8+ years afterwards.

</comment><comment><USER7> I love to see House of Cards plotlines in the wild

<comment><USER8> Where do you think the writers draw their inspiration from?

</comment></comment><comment><USER8> I wonder how this dynamic will change if/when Trump gets elected.

<comment><USER9> He'll negotiate better deals. Amazing deals. Deals that none of the current guys would ever think of.

</comment></comment><comment><USER10> This is so incredible. Googles lobbyist at its forefront of political corruption.</comment>


Ask YC: Is this a good idea? - <AUTHOR>

I've had this idea for about 2-3 years.
In a single sentence: It's google adwords for the real world.
Let me explain: Two types of users: Realestate Owners (RO) and Publishers. An RO will login to a website and enter details about their physical location (where they live etc...). Based on traffic patters calculated automatically, they get assigned a score. This determines how much traffic (cars and pedestrians) go past that location everyday.
A publisher would then login to the website and search for locations they would like to advertise. They choose a location by any number of factors (score, street name etc..) and can put in a bid to advertise at that location.
The RO can then login and accept the bid. After the bid is accepted, the publisher would then send over a mini-billboard that the RO would place in his front yard for everyone to see.
This would not only just work for houses but will also work for cars - if a person travels long distance everyday, then they can get some money back by putting a stickers advertising a product.
I have done minor research on this and it looks feasable.
The way we make money is by takings a percentage of the agreed price between the RO and the publisher.
What does the HN community think? <comment><USER2> I think it's an interesting idea, possibly even feasible as a business.

But if you do it and it becomes widespread I'll hate you for it. I don't want my neighborhood cluttered with more ads than there already are.

<comment><AUTHOR> Thats a good point. I guess we could offer a feature where people say they dont want to receive any ads in a specific location and if enough requests arrive, then that location would be placed on a ban-list.

</comment></comment><comment><USER3> Great idea, this could work. I wonder if some areas have laws on the books that prohibit commercial sign sales in residential neighborhoods? I suspect there are some road blocks in the law to prevent blatant commercial signage everywhere.

<comment><USER4> Most mid-price and up neighborhoods do have some types of statues in their bylaws for this and I've often signs are posted at the neighborhood entrance ("No soliciting" or "No handbills").

</comment></comment><comment><USER5> You'd need some way to vet users, so that you could seem credible when selling ads to advertisers. As an advertiser, it'd be hard to me to verify that you're actually displaying my ad, and even harder for me to estimate my ROI.

<comment><AUTHOR> you would need to hire people to go around taking photos of the ads as proof for the advertisers. You could measure roi by simply asking your customers how they heard about you

</comment></comment><comment><USER6> I could imagine that many people would be interested in this.

Also somewhat related, yesterday I read a news item about a monitor that recognizes age and gender of people standing before it and shows suitable ads.</comment>


Netflix's Movie Blitz Takes Aim at Hollywood's Heart - <AUTHOR> https://www.nytimes.com/2018/12/16/business/media/netflix-movies-hollywood.html <comment><USER2> I find this development very sad. For a short number of years it looked like the Internet would enable me to legally watch any movie I want whenever I want it. But Hollywood did not want it that way. Instead streaming services are slowly but surely becoming just another TV station. Everything is siloed again and unless I want to pay ten bucks a month per movie studio I'm again left choosing between movies I don't really want to see. Not long now and it'll become strictly worse than renting DVDs in all dimensions but the small inconvenience of having to go to a physical store.

<comment><USER3> > _Everything is siloed again_

Jeez. Extrapolate much? A _few things_ are siloed. Almost everything is available at both Apple and Amazon.

<comment><USER4> > _Almost everything is available at both Apple and Amazon._

In the US. I.e. for roughly 10% of the Internet-connected population.

EDIT: I originally wrote "1%" which was correctly pointed out to be wrong. I meant 10% (the US population divided by 50% of the planet), just did an off- by-one-zero error.

<comment><USER5> According to [https://www.statista.com/topics/2237/internet-usage-in- the-u...](https://www.statista.com/topics/2237/internet-usage-in-the-united- states/) the United States has

> nearly 290 million internet users as of 2016

According to [https://www.statista.com/statistics/617136/digital- populatio...](https://www.statista.com/statistics/617136/digital-population- worldwide/)

> almost 4.2 billion people were active internet users

The US is roughly 7% of the Internet connected population.

<comment><USER6> True, but that percentage is probably going down as we speak, as China/India/etc. are moving up in the world.

</comment></comment></comment></comment></comment><comment><USER7> Netflix is churning out TV shows at an astonishing rate, some are great, most aren't. This has lead me to avoid clicking on thumbnails that have "Netflix" written on them unless I've already heard of the show.

Netflix is good at making shows that are satisfying to watch, but hardly interesting or innovative. It's like ordering fast food. Hope they don't do this to their movies.

Quality-wise HBO is still the best.

<comment><USER8> > some are great, most aren't Sturgeon's law* strikes again.

* [https://en.m.wikipedia.org/wiki/Sturgeon%27s_law](https://en.m.wikipedia.org/wiki/Sturgeon%27s_law)

<comment><USER8> Double newlines strike again

</comment></comment></comment><comment><USER9> Netflix has become nearly useless for me. The match score is useless. The homepage is full of content that's not up my alley. They removed public reviews? That was the only remotely useful thing to let me gauge if I want to watch something I haven't known about via other channels.

Netflix is just a search bar for movies where 90% of searches yield no results.

<comment><USER10> If I want to watch a specific movie or TV show I'll let my Plex server handle it. If I just want something on the background, or browse around, I'll fling on Netflix. I don't even bother searching around on Netflix anymore.

</comment></comment><comment><USER11> Anecdotally, I believe Netflix needs to up its game on original movies. Compared to its original shows that have many fantastic ones, many Netflix original movies I've seen have been mediocre to bad.

The larger concern still is every large content producer wanting to have their own streaming service and not wanting to sell content to others. It's bad for consumers, and it will turn out to be bad for the streaming companies too, because consumers will balk at subscribing to several individual services and just go back to pirating content. Add the so-silly-we-still-have-this-in-2018 geographical content restrictions, piracy is still the viewer's best friend.

</comment><comment><USER12> Netflix should comply with the 90 Theatre window for some films, grand films that need huge screens for the best experience. I'm a subscriber, their subscription fee is so cheap compared to Sky it hardly registers. I mainly watch TV shows not films on Netflix, I won't leave if a few films a year are shown in Theatre first, I might even get of my backside and go to the cinema - if Netflix enables a decent film like Gravity to be produced - instead of the usual inane superhero nonsense. I'm curious though, how does Netflix manage to spend so much money and produce so much crap?? Recently I've noticed myself watching more Amazon Prime, they seem to have a higher quality to volume ratio, they seem to get much more bang for their buck.

</comment><comment><USER13> It's fascinating to see Netflix's transition from the data-driven insights that led them to the perfectly targeted, yet ultimately artistically-bankrupt House of Cards to the critically-acclaimed, yet hard-to-target Roma.

Comparing a prestige TV series to a feature film may be apples-to-oranges, but it's hard to miss the contrast between a show that seemed to be triangulated from the successes of other networks' prestige dramas and a film that really has no popular successes to support it (apart from Cuarón's pedigree).

Roma is the kind of personal, auteur work that algorithms work against. It's an incredible credit to Netflix's new content strategy that it was produced, and furthermore, promoted.

<comment><USER14> > yet ultimately artistically-bankrupt House of Cards

House of Cards did a lot of things right (granted, I haven't watched their latest season). First and I think most important of all it informed the general public about what politics really is, i.e. a social activity involving very enterprising men and some women that more closely approaches the works of Machiavelli than those of Rousseau.

In other words, it made us aware that we live in the world of Putins, Bibis and Trumps and not in the world of Bill Clintons and Obamas, the latter's world being better described by a show like "The West Wing", which looks totally passé right now.

<comment><USER15> But the West wing is an order of magnitude more enjoyable to watch.

In house of cards, it gradually becomes impossible to emotionally invest oneself in the welfare of any of the characters, or any any outcome of the meandering plot.

<comment><USER14> > But the West wing is an order of magnitude more enjoyable to watch

I totally agree, which probably means that public life has become a lot less enjoyable to watch since "West Wing" used to air. As they say: ars imitatur naturam.

<comment><USER15> Is public life in reality so much different from what it was 20 years ago?

I've been assuming that most politicians are basically behaving the same, but that public sentiment about politics has taken a turn for the worse.

</comment></comment></comment></comment></comment><comment><USER16> I can definitely empathize with some of the points made regarding the "filmmaker's vision" as applied to Netflix.

Ultimately, I think feelings like this will degrade and leave those unwilling to change to be forgotten. Art, in particular, is interesting to see how it adapts to those who consume it. This puts Netflix and artists in a unique position to make art that can entirely utilize this medium of delivery. Whether or not this makes better content is to be seen, imho.

<comment><USER9> I'm curious what you mean by "art." In my experience what is referred to as successful artists on the internet are bootstrapped startups selling branded content and products.

<comment><USER17> Most of those 'artists', are just people playacting on instagram as artists. I suspect few will find any relevance for that reason alone. The number of people who want to appear as artists have always outnumbered actual creators by several orders of magnitude. Actual artists are loathe to do such marketing of 'branded content' ouside desperation and subtrafuge.

Personality marketing on social media might be an art in itself, but it sure isn't pretty up close.

</comment></comment></comment><comment><USER18> Just tweeted this thread // this is a weird flex. Fun time to be a filmmaker rn.

2/ I've been a longtime reader of @stratechery, especially @benthompson's analysis of Netflix // can't recommend enough his posts on aggregation theory when thinking the future of media distribution, especially re: Netflix.

3/ So…it wasn't new or surprising to read that Netflix is debt financing a larger slate than Universal, and competing for zero-sum prestige films courting top talent and mounting a massive award campaign to check off their first best picture nom on the strength of Alfonso Cuarón's Roma.

4/ What felt new and "infrared" was the reach for Lew Wassermann's lineage.

5/ "After graduating from the University of Arizona with a film degree…Mr. Stuber got a job at Universal in 1992 as a publicity assistant. His duties included delivering news clippings at 8 a.m. daily to the studio's all- powerful chief, Lew Wasserman.

6/ "After about six months, Mr. Wasserman, apparently impressed by Mr. Stuber's punctuality, spoke to him for the first time. "He said, 'Hey kid, what do you want to be when you grow up?'" Mr. Stuber recalled. The young Mr. Stuber's quick reply? "You."

7/ For those less geeked on Hollywood history, Lew was the man responsible for dismantling the Studio System as it had been known, and with the invention of film packaging gave birth to the start system we're living the end times of.

8/ That's why connecting Netflix's disruption back to the coup that reconfigured Hollywood for me sounds like a formal challenge. What a time to be alive.

<comment><USER19> How is the bidding for, and production of, prestige films zero-sum?

<comment><USER18> Scorsese can only make so many films at a time.

<comment><USER19> Is that the full reasoning? Seems pretty obvious that more funding encourages riskier bets, in search of more Scorseses.

<comment><USER18> You'd think / hope - but those kinds of rare throws seem to happen at peak disruption (think the 70's), instead we get Avengers 5.

</comment></comment></comment></comment></comment><comment><USER20> This is classic disruption but in a very high cost of entry market. Great if netflix can pull it off. There's so much nostalgia tied to movie theaters and distributing movies on a streaming app alone can be foreign to some people. But it's definitely the future, it's what people want.

</comment><comment><USER21> Dont torget Alibaba Pictures. It's here (last installment of Mission Impossible)</comment>


Judge Orders Failed Copyright Troll to Forfeit 'All' Copyrights - <AUTHOR> http://arstechnica.com/tech-policy/news/2012/03/judge-orders-failed-copyright-troll-to-forfeit-all-copyrights.ars

<comment><USER2> > But if someone does defend himself, the law allows the prevailing party in > an infringement case to be awarded its legal fees and costs, even if it were > the defendant.

I know it's a common strategy for patent trolls and extortionists in the US to count on the fact that the defendant cannot afford to defend themselves and would lose money even if they win the case. So small developers usually settle before going to court even on bogus patents.

Is it a different when applied to patents than to copyright? So on which cases are the defendant actually awarded its costs? Which ones are not? What's the difference? Is this case in the article maybe an exemplary case that might change how judges award defendants with its costs? Could this help set patent trolls back from suing small developers?

<comment><USER3> The real difference is that it's expensive as hell to get a patent in the first place, even if you're an independent inventor.

I just finished writing and filing my own - for normal entities, a normal patent is around $2000 dollars to file with the USPTO, for "small entity" inventors its $600. But that's before the ~two years it takes for the USPTO to review your case and the costs of fixing and refiling. With rush fees, and to get the USPTO to actually review your application in this lifetime (just kidding.. well kinda), add another 10k.

If you want to go with a lawyer (and these days, unless you're willing to literally spend _months_ drafting your application and researching previous claims, it's really hard to avoid) you'll spend anywhere from $5k for a basic patent to $20k for something building on existing tech for a "real world" product.

Whereas copyright is a) instantaneous and self-evident (you don't need to "file" for copyright) and b) actually a much more powerful protection. With patents from small inventors, you have a lot more at stake (enough that it was worth it to go through that process), a lot more has already been invested (so there's more to protect), but simultaneously protecting it against bogus claims is also more expensive.

</comment></comment><comment><USER4> Interesting that he's going to auction off the copyrights that they have...

I've held the view for a long time that copyrights, patents, and other "intellectual property" should be treated like physical property, specifically real estate.

Imagine, in trade for having exclusive rights to something, you would pay tax commensurate with the amount of revenue you derive for it. You could even keep an idea protected in perpetuity, assuming the tax is progressively structured so that the general public benefits from you doing so.

<comment><USER5> Just a correction: "ideas" per se cannot be protected. Only inventions (patents) and IP (copyright)

<comment><USER6> Works (poetry, prose, songs, art, source code, etc.) are protected by copyright.

Inventions and processes can be protected by patents.

Names and branding can be protected by trademarks.

Secrets can be protected as trade secrets, often in the form of non-disclosure agreements.

</comment></comment></comment><comment><USER7> The copyright owner can't give the bare right to sue? What about those legal firms sending DMCAs on behalf of copyright owner(s)?

<comment><USER8> It's a standard attorney-client relationship. The attorney acts as a representative for the client in legal matters. Just like an employee represents a company when they go to work.

What's the difference here? Righthaven tried to acquire some right to sue people for itself and they would pay royalties to the original copyright holder if they won. If Righthaven represented clients instead of becoming plaintiffs themselves, they might have had a workable business model.</comment></comment>


Scrabble Rule Change: Proper nouns ok  - <AUTHOR> http://news.bbc.co.uk/2/hi/uk_news/8604625.stm <comment><USER2> I guess it will make it easier, but that is pretty lame. I mean, proper nouns pretty much covers every letter combination these days.</comment>


Manticore: A 4096-core RISC-V Chiplet Arch for Ultra-efficient FP Computing - <AUTHOR> https://arxiv.org/abs/2008.06502 <comment><AUTHOR> A prototype built with the global foundries 22FDX process can do 188 gflops per watt, slightly better than the Nvidia Tesla A100, which is manufactured with the more efficient TSMCs N7 process.

The FP cores are "Snitch" ones: [https://arxiv.org/abs/2002.10143](https://arxiv.org/abs/2002.10143) (Snitch: A 10 kGE Pseudo Dual-Issue Processor for Area and Energy Efficient Execution of Floating-Point Intensive Workloads)</comment>


Rich Decibels on Teal, Scuttlebutt and Solarpunk [audio] - <AUTHOR> https://anchor.fm/stephenreid321/episodes/Rich-Decibels-on-Teal--Scuttlebutt-and-Solarpunk-e24qf9 <comment><USER2> I'd love to listen, but anchor.fm is yet another closed podcasting platform that doesn't let the listener download the audio.

No thanks, I want to listen my way, not stream it from you.

<comment><USER3> [https://d3ctxlq1ktw2nl.cloudfront.net/production/2018-8-2/43...](https://d3ctxlq1ktw2nl.cloudfront.net/production/2018-8-2/4364485-44100-2-806d91043bb5.m4a)</comment></comment>


Ask HN: What is the max audio quality to feed to machine-learning transcription? - <AUTHOR> Since machine learning doesn't map directly to human cognition, I was wondering how wasteful it is to feed something like 160 kbps speech audio to a transcription service, and how much time and performance could be saved by reducing it to something vastly smaller.<p>I know little to nothing about this field, but as someone interested in where transcription is and in archival, I was wondering what the optimal solution is when ripping videos from different places and extracting the audio to transcribe it programmatically. <comment><USER2> Most datasets are 16khz sampling rate, wav file. A good place to start is Mozilla deepspeech implementation.</comment>


Algorithm improvement for Coca-Cola can shape recognition - <AUTHOR> http://stackoverflow.com/questions/10168686/algorithm-improvement-for-coca-cola-can-shape-recognition#

<comment><USER2> A gorgeous question, but also somewhat controversial.

Corresponding meta discussion, mentioned in the question: [http://meta.stackoverflow.com/questions/129423/on-the- bounda...](http://meta.stackoverflow.com/questions/129423/on-the-boundaries- of-not-constructive-questions/130055#130055). I merely wonder why it's tagged 'java'.

</comment><comment><USER3> This computer vision stuff is so fascinating. Does anyone know what the career prospects are like if you specialize in this? Is there much consulting demand? What kind of fees do CV consultants charge?

<comment><USER4> The original post really highlights the "problem with computer vision" - finding the coke can is fairly easy (SIFT), although the author goes off on some other random approach that I doubt would work very well. The field certainly has its share of Do-It-Yourselfers, plus it's also quite common to outsource labour overseas.

As for fees, it's entirely reflective of a) how much money the problem is costing the client and b) your ability to prove to them your value to the client. Clients do not always respect the complexity of the problems they're facing, so it's easier to work with those who have tried for themselves.

For what it's worth, we're hiring right now in this space (computer vision software development), located in Ottawa, Canada: <http://ca.indeed.com/job/software-engineer-71a851096a104223>

<comment><USER5> I don't see any problem with the original solution. It is classic (but little bit old fashioned) way of detecting objects, far from random. I also think that you oversimplify the SIFT solution. You use sift, then what? Match the feature vectors, get bunch of possible correspondence points, prune outliers using 3D model of a cylinder (or assume that the face of the can is flat plane and just use homography) and robust fitting, validate fitting, find other cans, if none found change parameters? No preprocessing? Ignore color? Etc. Not so straight forward.

SIFT is faster than generalized HoughTF in this case, use of points instead of whole objects/blobs gives you nice ways to validate using 3D model, etc., but I would still not look down on some one who finds and implements this solutions as a student.

<comment><USER4> You're right, it's ok for a project. I guess what I meant was it's quite easy compared to the problems my company deals with every day. 30 images in 24 hours (I think it said) is kind of a problem.

Given the constraints of the asker (all available in OpenCV), the solution I would suggest first is SIFT + homography, both easy to use and in OpenCV (sample code is around). Yes, there's a lot of other possibilities, but this would be an improvement over the original.

</comment></comment></comment></comment><comment><USER6> Okay, someone needs to create an open repo of all these recognition algos before Apple or Google patents everything.

<comment><USER7> NOTE: SURF and SIFT are both already patented, btw, along with some other things in OpenCV, so watch out with them.</comment></comment>


"Name me a herd animal that hunts." (Hilarious book review) - <AUTHOR> http://www.nypress.com/18/16/news&columns/taibbi.cfm

<comment><USER3> I made it through 10 pages of this book and finally said "THIS is a NY Times bestseller?!" And tossed it down, never to be opened again. I'm glad a critic agrees. The world is round Mr. Friedman, and your metaphor is flat.

</comment><comment><USER4> there are plenty; it's just that if they hunt, they're called pack animals or swarms.

anyway, the review is good -- I like the descriptor of Friedman's writing as "middlebrow horseshit"

<comment><USER5> Good point. But I think the metaphor is still awful. Try to a herd pride of lions.

</comment></comment><comment><USER6> "Columbus's discovery that the world is round" What?! The review is just awful, goes on and on...

</comment><comment><USER7> I liked "The World is Flat", even if I was rolling my eyes a third of the time. Friedman definitely lays it on thick. He presents common ideas as if they are breakthrough concepts, he takes three pages to build up a simple idea, and he repeats himself over and over. At the same time, he makes assumptions that are clearly open to debate without justification.

My difference with this reviewer, however, is that I also think there's plenty to enjoy and think about it this book. I think "The World is Flat" would have made a wonderful 40 page essay - perhaps the kind that gets printed in two parts in the Atlantic.

So my objection is that a 40 page essay was stretched into a 400 page book, whereas I think the reviewer would still object even to the 40 page essay I have in mind.

</comment><comment><USER8> Humans?

<comment><USER9> Lions too.

</comment></comment><comment><USER10> I like Friedman, but enjoyed this article nonetheless. However, I had to stop reading when I got to the Columbus discovered America part.

<comment><USER5> Fools! Single celled organisms colonized America four billion years ago.

<comment><USER11> cglee probably meant to say "Columbus discovered that the world is round part", which is what the article says, essentially. Matt Taibbi is a smart guy, and he probably didn't mean to say that, but considering how arrogant his tone is, it's still rather embarrassing.

<comment><USER12> He repeats the misconception and goes on to build an argument on it. I can't see how he could not mean it. But then again, later he argues that the 'earth is flat' argument reverses "2000 years of human thought." (?)

Hilarious critique anyway.

</comment></comment></comment></comment><comment><USER13> Dog.

</comment><comment><USER14> I find interesting Kunstler's comments on Friedman's globalism cheerleading.

"I think we will discover (probably painfully) that globalism was a set of transient economic relations made possible by a half century of cheap oil and relative peace between the great powers, and the enterprises that rely on these transient mechanisms - such as Wal-Mart, with its 12,000-mile merchandise supply chain to China, and its "warehouse on wheels" of tractor- trailor trucks circulating incessantly on America's interstate highways - <USER2> be on their knees in a few years as we enter the export crisis phase of post- peak terminal oil depletion and the great powers of the world act with increasing desperation to compete over the remaining supplies." [http://www.321energy.com/editorials/kunstler/kunstler060107....](http://www.321energy.com/editorials/kunstler/kunstler060107.html)</comment>


Manufacturing quality time by DHH - <AUTHOR> https://m.signalvnoise.com/manufacturing-quality-time-fe043fa7b7a1#.m3zt9vryp <comment><USER2> If I'm in the mood to do activity _X_ , that's what I should do. If I'm not in the mood to do anything, that's okay because all of us have these moments.

Is that the tl;dr?</comment>