Ask HN: How long has Google been censoring YouTube comments critical of China? - <AUTHOR> I was just alerted to YouTube censoring comments critical of China. I then tested this by commenting on one of my own videos with random hotkeys that I knew would trigger anything of the sort. About 10 seconds later, my test comments were gone.<p>Edit: I posted the following comment to my video, and this was deleted too. This could not be a spam filtering false positive:<p>"The world's sanitisation problem could be helped with more recycling of chinese trash, especially in wuhan. The green waste that's turned into compost in tiananmen square is a bonus to sustainability." <comment><USER2> I don't know about China in particular, but I find youtube censorship to be particularly deceitful.

If you make a comment, and it is censored for some reason, perhaps the video owner blocked you or whatever, the comment still shows; TO YOU. When you are logged in, you can see your comment.

But no-one else can see it.

Log out, or logon as someone else, and your comment is simply not there.

I found a similar thing with facebook. If you join a group, and are then banned for some reason (I'm not sure the exact mechanism), you can no longer see the group - it's as though it doesn't exist; it doesn't show in searches, etc. But log out, or logon as someone else, and there it is.

This 'customized view of reality' seems to me much more dangerous than simple censorship.

<comment><USER3> I think this method is called a "shadow ban" on Reddit. You can see your comment on the sub only when logged in.

<comment><USER2> Yes that's it exactly, thanks for naming the practice.

It should be banned, lol.

<comment><USER4> It's used here on Hackernews too.

It contains troll harassment. By not letting a troll know they've been banned, you remove the incentive they might have to create a new account to continue their harassment.

<comment><USER5> > It's used here on Hackernews too.

Source?

Many times I've seen a comment that's dead for unknown reasons, then realized all that user's comments are dead. Then tracing back in their history to the point that started (I'm curious!), inevitably there's dang explaining patiently to them why they've been banned (and usually doesn't sound like a first warning, but the last of many) and what to do about it. I've never seen a user's comment history just mysteriously turn dead at some point for no reason. (A couple of times I've seen every comment of a user is dead for no apparent reason, I figure it's from being a sock puppet or something.) So that makes me think shadow banning is not used.

There are subterranean dwellers who comment dead comments for years, apparently not knowing no-one can read them, but trace back their history - and they know very well they're blocked, and usually have a conspiracy theory to explain why. Maybe people see those comments and assume they're shadow banned. Because who would spend years writing dead comments on HN?!

<comment><USER6> We still use shadowbanning, but only when an account is new and shows signs of spamming or trolling. When an account has an established history then we tell people we're banning them and why.

Past explanations here: [https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...](https://hn.algolia.com/?dateRange=all&page=0&prefix=true&query=by%3Adang%20shadowban&sort=byDate&type=comment)

</comment></comment></comment></comment></comment></comment><comment><USER7> Watching people embrace censorship is the most depressing thing I've ever witnessed.

<comment><USER8> I mean, defining "censorship" is kind of difficult.

You've got a stream of data, in the form of text, that is being added to a database. It would be logical to apply a 'filter' of sorts because let's be honest, there are bad actors out there (remember penis enlargement/viagra for example).

More and more of these filters are being done automatically, based on models of previously removed comments. You could try this yourself, create a simple application that submits 1,000,000 comments per second, of all sorts of varieties including links and disguised motives and try to decide which stays and which goes. Analyze your results, do you have a platform where the comments are meaningful/useful? Are you more "liberal" in allowing comments to stay even if they are _obvious_ spam/unwanted content because "muh free speech!"?

If you're lucky, you may end up with something half readable, and not completely overridden with bots or content that is absolute meaningless.

Imagine if hackernews or other content sites didn't have the same measures, awful content would over run the site and make it less attractive.

All sites _need_ to have some form of moderation. As a result, sometimes, content is removed. Whether that's "malicious" to you depends on your worldview.

I appreciate that moderating a large platform is a thankless task, you have potentially _millions_ of comments each and every day, no human could possibly handle that volume of information.

Reddit is the same, automoderator can "censor" users, without them even knowing, and allows regex based filters, which may not be perfect but at least allow obviously terrible content to be removed before it's posted.

Remember, the bad actors (some might say russian interference during an election is bad) will always be trying to "game the system", so you need to constantly adapt your filters to try and be one step ahead in a cat and mouse game.

Just some food for thought not everything is "censorship".

</comment></comment><comment><USER9> Try to post some grammatically incoherent comment and include the words "penis", "enlargement", and "pills". Let us know how it went.

This is probably just an anti-spam measure. There are many anti-china bots out there, so posting off-topic bot-like comments will get you removed.

What happened to Occam's razor?

<comment><AUTHOR> It was a comment on my own video, and this is after I saw a clip from a friend doing the same thing to one of his videos - random words that would be picked up be a naive regex.

<comment><USER10> It would help if you'd share the exact comments that got removed.

<comment><AUTHOR> I mentioned then in another comment here. It was: Chinese trash wuhan tiananmen square

The comment below was that "Chinese trash" could have been blocked for "anti- harassment", but for a year old, low-viewed volume video giving a synthesizer demo, I'm not sure how Google could have interpreted it as harassment vs a comment on sanitation and recycling.

<comment><USER10> I don't think the video and its popularity matter, your comment looks like spam. It's entirely possible for Google to censor comments critical of China, but this is not evidence of it.

<comment><AUTHOR> I posted the following, and it too was deleted:

The world's sanitisation problem could be helped with more recycling of chinese trash, especially in wuhan. The green waste that's turned into compost in tiananmen square is a bonus to sustainability.

<comment><USER10> Now that's more problematic. You could test this further by replacing those phrases with references to a different country, though it's possible that your account will receive more scrutiny from moderation bots due to your recently deleted comments.

It would be interesting to test trigger phrases on a larger scale from different accounts and publish your findings.

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> Came across this recently when posting on someone else's video, the comment wasn't even critical of China but I can see how a pair of words in sequence might have come off that way. Tested on a private video of my own just now, comment gone within seconds.

<comment><AUTHOR> Thanks for the confirmation. Can you tell us what words you used?

</comment></comment><comment><USER12> Link with more details that I found (I am not sure if this is the original post about this):

[https://www.reddit.com/r/HongKong/comments/glr2h4/youtube_go...](https://www.reddit.com/r/HongKong/comments/glr2h4/youtube_google_llc_is_banning_words_that_the_ccp/)

I really hope that is just some stupid bug and not on purpose. The trigger keywords seem pretty harmless to me.

<comment><USER13> The terms listed in what you've linked to are insults, not "words that the CCP considers offensive".

It's like if you called someone a "Republican asshole", "libtard", of whatever the poetic Americann English lexicon has invented.

For example, I'm sure someone could write in response to this very comment: "how much are you paid to post, you 50 Cent Commie Bandit". This is not a reply, this is an harassing insult.

This has nothing to do with political censorship. This is about insults, harassment, and civility.

<comment><USER14> If a large fraction of insults were being automatically deleted, this would be a different conversation. I, for one would welcome a setting where I could hide incivility by default.

This is more like permitting "libtard" while deleting "Republican asshole", suggesting a preference for one side over the other.

</comment></comment></comment><comment><USER8> Personally, I feel the YouTube comment section is vastly better than it used to be in the early days of the site. I watched a music video by an artist and the comment section surfaced a comment that the artist had died last year, a piece of information that was actually useful, rather than "FIRST!" or whatever tripe I used to see.

It's not perfect, but progress has been made here, more often than not an overly aggressive moderation that yields better more informative comments is better, even at the risk of the legitimate ones being removed.

<comment><USER15> > rather than "FIRST!" or whatever tripe I used to see

It's sad that the lack of "first" is considered as a breakthrough while it was actually the normal situation for decades (every single forum will give you a ban if you start spamming "first" or similar shitposts). The only reason why "first" became a thing is because YouTube has near-zero comment moderation.

</comment></comment><comment><USER16> All of the social media platforms have become hotbeds for information warfare. From country based subreddits (or any subreddit with some political content) to Youtube banning videos that are mass reported, it is crazy. Right now in India a popular youtuber had his video deleted. It was apparently on track to becoming the most liked non music video on the platform.

<comment><AUTHOR> Sure, but that's why I chose my video, which was posted a year ago with only 800 views. I knew there was no way somebody could have been watching my video within a minute and saw that comment then flagged it - this was automated.

</comment></comment><comment><USER17> The fact that it may be an automatic filter is sort of missing the point, IMO. An irrational, mechanical Kafkesque dystopia is still a dystopia. Censorship doesn't need to be obvious and straightforward, like _1984._

</comment><comment><USER18> I'm more intended to think that YouTube is trying to prevent the leaking shit stain that is the youtube comment section from growing even further.

There's some nice channels I see, but anything discussing something even remotely political (which, these days, includes mobile networks, solar panels and other categories that have fallen victim to conspiracy nuts) are full of trolls or shit people in general. Some comment threads incite violence against Jews, others violence against Muslims, and then there's the white supremacists inciting violence against everybody.

Putting comments trolling any Chinese viewers below anything that covers China is something that's taken off lately, either because of racism or because of increased activism in Hong Kong.

Having everybody be free to say anything had led the YouTube comments to be generally regarded as a place or toxicity and horror for many people. YouTube trying to brush up their image after Elsagate and other such PR disasters only makes sense, and their comment section is the first I'd personally clean up. I don't know how you'd do that without dancing on the dangerous line between (American) expectations of complete freedom of speech and getting out the nutjobs, but someone over at Google seems to be trying to and probably uses this new-fangled machine learning thing to do it because it doesn't involve paying people to keep the stream of verbal manure in check.

There's also the danger to your platform that comes with angering Chinese nationalists. When Notepad++ added a message to stand up to the Chinese concentration camps, its Github got completely flooded by angry Chinese people and trolls from both sides. Some of the people calling the author "filthy dog" and other expletives were maintainers of seemingly commonly-used libraries and projects. Criticising the worst of China seems to have the same effect as posting a video of a burning American flag. I doubt many platform owners would like their platform to host these social garbage fires.

All of that culminates into topics where trolling often occurs being removed or shadow banned. Posts on HN get shadowbanned as well, usually after manual flagging, but I do have doubts about the absence of troll farms controlling the narrative here.

As far as I know, YouTube has always had certain words being blacklisted, usually swears and such. This system can also be used by channel owners to maintain their comment section. I can only imagine when Google decided to add material criticising China, but I'd expect it would have started when the first Hong Kong protests were met with violence.

<comment><USER19> > There's also the danger to your platform that comes with angering Chinese > nationalists. When Notepad++ added a message to stand up to the Chinese > concentration camps, its Github got completely flooded by angry Chinese > people and trolls from both sides.

I've definitely seen this kind of thing happen, even on HN, but it's not necessarily organized or paid for like the wumao stereotype implies. Just ordinary "human flesh search engine" dynamics will easily do that - the West has its 4chan trolls, the Chinese have their angry internet nationalism. The most you can say with certainty is that it's definitely tolerated by the authorities, but then there's no reason why it _wouldn 't_ be.

<comment><USER18> I don't think these people were paid at all. From what I read about it at the time, it seemed that a somewhat popular Chinese news source pointed out the message put into Notepad++ which caused outraged people to lash out across the internet.

The trolls were just there to ruffle feathers and laugh at other people's misery. Chinese nationalists were met with overt racism, which sparked more outrage by other Chinese people, which was then met with more resistance from people defending the software author from the attack on their Github page, creating an argument between two groups that would have otherwise never considered going up at arms against each other.

There wasn't as much of an agenda as there were just a bunch of angry nationalists (you're bound to have those in a country counting over a billion people) and trolls using their outrage for their own amusement.

</comment></comment></comment><comment><USER20> Can confirm works on my own videos, even if they are unlisted. My own video, 0 views, 0 comments.

共匪, 五毛党, or 五毛

These are all instantly deleted, roughly 10-20s

<comment><USER13> These are insults, trolling terms.

It sounds like Youtube now has filters against harassment in order to keep things a minimum civil (rather than being involved in a pro-China conspiracy...)

There is plenty of material highly critical of China and its government on Youtube.

<comment><USER21> That's not true. The 1st term is a historical name for soldiers on the winning side of the civil war that has become a _political_ smear somewhat like "Rethuglicans" or similar.

The second and third refers to the well-documented practice of government paid commenters trying to shape public opinion. There's no good justification for YouTube to censor all comments on that topic. If anything the topic has become more important over the years and people are more concerned about it than ever after the 2016 elections.

<comment><USER13> So the first one has indeed become an insult (if it wasn't all along...)

The second and third are also insults. Whether the Chinese government pays posters or not, the fact is that the terms are most commonly used in an insulting and harassing manner against anyone that has posted something deemed too "pro-China".

</comment></comment></comment></comment><comment><USER22> Moderators, why was this post removed from the front page (and the Ask HN front page)? It is newer and has more upvotes than many other submissions. Are questions like the OP's still allowed on HN?

<comment><USER23> If many people will flag it it will automatically removed from front page. This is likely is not a mod's job but flagging.

</comment></comment><comment><USER24> What is really sad is that it is neither new or unexpected. People have been warning about exactly this for years. We have seen this happen before. Yet I see a lot of people throwing around Occam's razor and trying to convince themselves that this is not happening in this very thread.

</comment><comment><USER25> [https://translate.google.com](https://translate.google.com):

共匪 => "Gangster"

Interesting.

</comment><comment><USER26> It wouldn't be such a problem to have YouTube colluding with Chinese censors if we didn't depend so much on YouTube to disseminate information.

</comment><comment><USER27> "random hotkeys that I knew would trigger anything of the sort" Just single keywords? And which ones? The stories I've seen were about people posting just 共匪, and honestly I'm not too bothered if comments that are just name-calling get deleted. If actual well-written criticism disappears, that would be another matter.

<comment><USER28> > _I 'm not too bothered if comments that are just name-calling get deleted_

I am if it's done silently. Particularly at the behest of a government that's more than willing to flatten well-written criticisms alike.

<comment><USER29> YouTube has banned harassment for a while now. That why YouTube comments are mostly memes now instead of a complete cesspool like they used to be. I'm sure YouTube bans other political slurs like "libtard." That doesn't mean they're doing it at the behest of the Democratic Party.

</comment></comment></comment><comment><USER30> This submission was flagged. I just upvoted it, the flag disappeared instantly. Maybe that's the answer?

</comment><comment><AUTHOR> And now this post has been removed from the Ask HN front page too...

</comment><comment><USER31> What video did you comment on? Your own? The owner/uploader can remove comments too so it might not have been YT.

Edit: As comments pointed out, I clearly didn't read the post properly, OP already stated it was his own video.

<comment><AUTHOR> I commented on _my own video_ and the comment was gone in about 10 seconds!

</comment></comment><comment><AUTHOR> ... and this post has now disappeared from the front page? It was #13 with 77 upvotes.

</comment><comment><USER32> What is going on with Google lately? They're really going downhill

<comment><USER33> They're too big for their own sake.

That shows on things like this, lack of vision in some products, lack of consistency, abandoned products, products that seem to be detached, etc...

</comment></comment><comment><USER34> Obviously automated, so this is irrelevant and besides the point (in this case).

But it strikes me as odd that that comment sounds so innocent to you. There's an ongoing multi-sided arms race between AI-assisted spam filters, censorship, trolls, socio-political movements, scammers, etc. The result being that many groups find new ways of communicating and circumventing filters.

So, if I randomly came across your uncanny and unnatural post in the current context, it would read to me as if you were crypto-advocating for chinese genocide to help resolve world overpopulation, calling the Tiananmen massacre a net positive for mankind.

Seriously, read it carefully.

</comment><comment><USER35> I wonder if YT deletes comments or content critical of the U.S.? Based on some of the comments here, only China is being shielded from criticism...

<comment><USER36> Is America an authoritarian state that would prevent YouTube from doing business in its country if people were allowed to post anti American comments?

Should it be?

<comment><USER35> No, and it should not be... freedom of speech is a good thing.</comment></comment></comment>


Show HN: Mitmproxy 3.0 released, an open-source console-based proxy - <AUTHOR> https://mitmproxy.org/posts/releases/mitmproxy3/ <comment><USER2> I used mitmproxy a few days ago, trying to compare my implementation of some API client. It feels lightweight, but getting started can be confusing. I used the command line, and I had difficulty finding the shortcuts.

Their homepage shows "brew install mitmproxy" front and center. Ok good. Installed. What's next? A 5-minute tutorial e.g. how to spy Tinder API can go a long way.

<comment><AUTHOR> Thanks! This is something we're subconsciously aware of, but it's helpful to hear it as explicit feedback. :) The first steps towards that were indeed OS- specific install instructions on our new website. We currently have a user survey (there's no telemetry in mitmproxy) to see what we should focus on for a 5-minute tutorial.

<comment><USER3> > there's no telemetry in mitmproxy

Thank you kindly!

</comment></comment></comment><comment><USER4> My ~/bin/mitmproxy.sh:

      interface=$( ifconfig en0 | grep inet | grep -v inet6 | awk '{ print $2 }' )
      mitmproxy --no-mouse -b $interface

Edit: This causes the IP address to show up in the mitmproxy UI. I use mitm for iOS development, and having my IP visible is handy when setting up the phone to use a proxy.

<comment><USER5> Brilliant, thanks so much!

</comment></comment><comment><USER6> I'm using mitmproxy as super easy to setup SSL reverse proxy for local html5 development as many API nowadays require ssl to work.

<comment><USER7> That sounds really useful. Could you share the recipe for getting that running - is it just a one-line console command?

<comment><USER8> [https://mitmproxy.org/docs/latest/concepts-modes/#reverse- pr...](https://mitmproxy.org/docs/latest/concepts-modes/#reverse-proxy)

It's an operation mode, no recipe

<comment><USER7> Looks like "mitmdump -p 443 -R [http://localhost:80/"](http://localhost:80/") should do the trick

<comment><USER6> yes, that's it

And also install self signed mitmproxy certs to your device.

</comment></comment></comment></comment></comment><comment><USER9> I'm happy to see this. I switched to MITM from Charles a couple months ago. The documentation for 3.0 is, in my opinion, much clearer.

<comment><USER10> I think MITM had the limitation that you could proxy only traffic from the different machine. Was/is it the case, or did I just get something wrong? Because if that's true Charles has an advantege there.

<comment><AUTHOR> It's technically possible, but requires iptables or equivalents. For now, if you want to proxy the whole machine, Charles is your way to go!

</comment></comment></comment><comment><USER11> Using mitmproxy as a reverse proxy from local development to our development servers. A few lines of code and we have authentication headers attached w/o having to manage them between projects.

</comment><comment><USER12> Shameless plug: We are building a desktop proxy based on our streaming proxy module for node (node-proxify if you have time to check it out). Funny timing. We are doing a beta release next week ([https://secapps.com/appbandit](https://secapps.com/appbandit)). You might hate the fact that this is yet another electron app but we are adding a tone of useful features which I am sure most people will find very useful in many different tasks. A cli version is also on its way.

</comment><comment><USER13> This is super cool. I've used mitmproxy 2.0 in my project ([http://world-of- bits.com](http://world-of-bits.com)) to create an offline approximation of the website. We were trying to create a digital environment for AI agents to learn to interact with the web. The proxy captures a good amount of HTTP traffic.

</comment><comment><USER14> Another one that I worked with and quite liked is Anyproxy ([https://github.com/alibaba/anyproxy](https://github.com/alibaba/anyproxy))

</comment><comment><USER15> Is there an easy way to set latency for chosen responses? I guess it's possible using mitmdump with custom Python script, but maybe there is such a feature built-in?

<comment><AUTHOR> Not yet, although this would make a great fit for the new addon mechanism. :)

</comment></comment><comment><USER16> Neat! But certificate pinning (or rather, CA pinning) inside app binaries is getting more common, is there any way around that with mitmproxy?

<comment><USER17> Is there a way around that at all without modifying the binaries ?

<comment><USER16> I don't expect so, I guess I'm wondering if the mitmproxy community has any insight into what they'd do to the binaries.

<comment><USER18> Last time I did this, I had to reverse the binaries and remove the cert pinning code. There are a few examples of this around the place, but it can get fairly complex pretty quickly.

</comment></comment></comment></comment><comment><USER19> Is there any way to use this on .net applications I tried putting this in between a business logic and web tier but I couldn't get it to work. The things were compressed but I couldn't figure out how to enable decompression.

<comment><AUTHOR> Decompression is usually done automatically, we also try to render some binary application-layer protocols (e.g. protobufs). If you feel that wasn't the case, please lodge an issue on GitHub. :)

<comment><USER4> Perhaps his Content-Encoding header was bad?

</comment></comment></comment><comment><USER20> Oh, congrats to the team :) Hope you are doing well max!

</comment><comment><USER21> Is there a way to use mitmproxy with secure websockets?</comment>


IPad - please don't ding while you and I are asleep   - <AUTHOR> http://modern-products.tumblr.com/post/25384729998/ipad-please-dont-ding-while-you-and-i-are-asleep

<comment><USER3> _"Second, if you ever build a product that can go to sleep, ask yourself: when my owner puts me to sleep, does he think I'll make unsolicited noises unless they were explicitly requested by him (eg alarm clock)?"_

I think what's at issue here is the mental model at work on the part of the designers vs. this user (and other users, clearly)

For the designers/Apple, locked is clearly not synonymous with "sleep" – any device that can receive push notifications or perform background tasks isn't really asleep... it's just not the focus of my attention. Would you say your smartphone is ever asleep? Mine never is. If it's not powered off, it's constantly working in the background, for my benefit (presumably). It checks email, weather alerts, waits for calls and everything else. It may not be the focus of my attention, but it's certainly not asleep.

The author clearly wants to treat it like a traditional computer not surprising given his opening statement about not viewing it as a worthy replacement to act as one's "main device". If that's the mental model one uses, then yes, I completely see the issue – and yes, the upcoming do not disturb settings will be an all around blessing.

However, the big take away isn't whether the designers at Apple were right and the do not disturb settings will be just an added feature or if the author is right and the lack of a do not disturb setting is a huge failure.

The point is, instead, that we need to be better about understanding and predicting alternative mindsets on the part of others.

From a design perspective, this is pretty obvious... but from a consumer/critic's standpoint, it's a necessary one as well. Failing to see this subtle issue makes your criticism much less impressive and much less valuable if you're in a place to be influencing future development because seeing the more abstract difference in mindsets will (often) help you see other issues (good and bad).

<comment><AUTHOR> Exactly! By the way, when I talk about "sleep", I didn't mean clicking the lock button, but rather "closing the lid" of my iPad cover. And you're absolutely right I didn't mentally treat my iPad as a smartphone but rather as a laptop. What right and what's wrong? I'm not sure. Just shared my thoughts and immediate insights, and as always - open for criticism.

</comment></comment><comment><USER4> Wait a few months for Do Not Disturb.

<http://www.idownloadblog.com/2012/06/11/do-not-disturb/>

</comment><comment><USER5> Isn't this what the new Do Not Disturb feature in IOS6 addresses? <http://www.apple.com/ios/ios6/>

Also, all iPads have the switch above the volume button as a mute button already for notifications like this.

(Note: yes, I know most people have changed this setting (back) to be an orientation-lock, but this guy's new to iPads so I'm assuming he didn't change the setting)

</comment><comment><USER6> Just out of curiosity, why not hit the mute switch when you're going to sleep? That's what I do. It takes a tenth of a second and allows me to control when I hear notifications just the way I want.

I guess if you want the notification sounds but not while the device is open, then yeah you've got a bit of a problem (you would have to hit slide down and then slide the switch back up once you opened it.

<comment><USER7> I put my iPhone in airplane mode when I go to sleep - my alarms still work, I don't get disturbed, and because the radios are all powered down the battery barely drains at all (I charge mine in a dock at my work desk during the day).

<comment><USER8> I used to do this until I started missing important calls/texts because I forgot to turn it back on. An airplane/sleep mode with a timer would be nice.

<comment><USER9> It is nice. And it's called 'Do Not Disturb', and is part of iOS 6. It has plenty of other features (like letting a call through, if the caller has calling twice in a row. It could be urgent).

</comment></comment></comment></comment><comment><USER10> On Android it is solved by simple installing a app which controls the devices sound profiles based on times you prefer. It probably took the developer 5 minutes to cook up with an ugly UI, but it works.

I guess in the Apple world you need to wait for Apple to do it. And this feature has been missing since iOS 1. Yeah. Not missing iOS one bit.

<comment><USER11> I've never found the abstract argument about more control a compelling reason to choose a product. Does product A or product B provide me more value?

iOS is a much better user experience for me, and the people that point to "user control" of android never show anything that is of such value to me that it would overcome the better experience of iOS.

I'll give one huge value iOS has over android in my life. My 2 year old can use an iOS device without needing assistance. She can't do the same with an android device.

<comment><USER12> More control is a big source of value for a lot of people. Personally, I don't need a 2 year old to be able to use my phone, but I draw great enjoyment from being able to customise it to my tastes very easily. Don't like the stock keyboard? Chuck it out. Don't like the app launcher? Download a new one.

If you want a more consistent UI and smoother animations over that, then great - there's a polished, well made device for you too on iOS. Different strokes for different folks.

<comment><USER11> I agree with you, but let me rephrase one sentence.

"More control is a big source of value for a [minority of people]"

<comment><USER10> Given Android's rampant popularity, you would have to come up with a source for that claim.

I know here on HN the mantra is that people buy Android because it is cheaper/"they cannot afford iPhones", but in the real world people deliberately choose things not made by Apple.

Despite the Apple fandom on this website, there is no universal truth in Apple being a superior platform.

In fact, I say the lack of customizability speaks of it being poorly engineered.

<comment><USER11> So your argument is that quality is a function of sales volume?

<comment><USER10> My argument is that sales volume is a function of customer acceptance. And thus Android has the biggest customer acceptance of all the platforms out there.

The hacker news meme that Android is barely usable is getting rather stale.

<comment><USER11> You love strawmen. I said that iOS is much better in the usability department. I didn't say "android is barely usable".

Also, most android phones are not nexus phones. Most of these phones can not be upgraded to 4.0 yet. By your logic customer acceptance clearly shows they aren't interested in control if they can't even upgrade the OS.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER13> This is an actual beef, but is this seriously the the biggest criticism this guy could come up with? If so, it would seem the iPad is pretty well designed.

</comment><comment><USER14> The first paragraph was incomprehensible to me; I stopped reading there. This is no criticism of the author, whom I assume is not writing in his native language. But so many links here seem to be to articles that read as if they were written with a crayon while the author was talking on the phone and watching TV.

</comment><comment><USER15> Ok, this reminded me of the HACTRN : <http://www.poppyfields.net/filks/00117.html>

I too find it annoying that calendar event notification doesn't honor the mute setting.

</comment><comment><USER16> You can't just put it on mute?

<comment><USER17> Thats what I was thinking...

it comes with adjustable volume controls... it comes with configurable sound menu... he has an iphone so knows the process.. seems like someone bought into hype so much it blinded him to the obvious.

</comment></comment><comment><USER18> I put my iPad to sleep to save battery more than for any other reason. I often find that not only do I prefer it making noise, but I've grown to _rely_ on it to let me know if somebody sent me something that I might need to respond to.

Of course, I have different use patterns than the author I guess. I do everything I can to get the _least_ amount of mail, for one. In lieu of just dealing with a lot of mail and getting upset when I'm notified of it, I prefer to limit the amount of mail I get by limiting newsletters and the like the I subscribe to.

I suppose if he's more famous than myself, that might be more difficult, but I think I'd try to work on a high-volume /public mail account that wasn't auto- polling in order to keep my personal/low-volume email account more usable.

My iPad also sleeps in a different room than me, so that might be the biggest difference maker.

I think Android's solution solves _his_ particular problem better (but is suboptimal in perhaps other ways) in that it only dings on the first notification of each event type. I'll get a ding for 1 unread email, but the second and _n_ after emails don't bother me until I've checked and cleared the active alerts.

<comment><AUTHOR> I waited all my life for someone to think I'm famous :) But seriously - <USER2> part of my job I get hundreds of emails every day that I need to review or respond to. It's a reasonable usage scenario I think.

<comment><USER18> I'm not saying it's unreasonable. But you have _very easy_ fixes:

1) mute your iPad,

2) Don't sleep in the same room as your iPad.

In addition to more complicated ones being offered elsewhere in this thread.

I was just posting to point out that it isn't necessarily a design flaw just because it doesn't fit your use case as, to the contrary, I would be very upset if my device didn't notify me of something just because it was sleeping.</comment></comment></comment>


CERN experiment discovers five new particles - <AUTHOR> http://www.stfc.ac.uk/news/cern-experiment-discovers-not-one-but-five-new-particles/ <comment><USER2> Just to give a bit more context:

* These are not elementary particles. * It was predicted for a long time that these composite particles should exist. So it is not "new" in the sense that it was unexpected, but we finally have the resolution (energy, luminosity etc.) to detect these with statistical significance. * These belong to the same class as protons and neutrons - these are hadrons made with multiple quarks.

Here's a super simple overview of Quantum Field Theory & Particle Physics:

Everything is made of force fields and matter fields.

* We discovered that force fields (i.e. electromagnetism) is quantized, giving rise to quantum mechanics etc.

* Matter fields are also quantized, hence their excitations behave like discrete particles - the ones we observe at the atomic scale, for instance.

* In hindsight, we should've been able to predict this after E = mc^2 telling us energy <> matter, thus if energy is quantized so should matter.

<comment><USER3> I've never heard the term "matter field"... Is that a thing?

<comment><USER4> I assume you've heard of particle/wave duality, or how really tiny things are never _exactly_ in only one place.

There are a set of wave equations that describe how this works.

There are also two kinds of things. Some things can go thru eachother, like photons. Other things bounce off eachother, like neutrons (and other things considered matter).

The equations for the kind of things that bounce off eachother would be a matter field.

<comment><USER5> _There are also two kinds of things. Some things can go thru eachother, like photons. Other things bounce off eachother, like neutrons (and other things considered matter)._

This is not true. The difference between bosons and fermions lies in the way swapping two of them works. The carriers of the weak force, W and Z bosons, are for example electrically charged and can therefore scatter off each other. Gluons, the carriers of the strong force, also interact with each other. Even photon photon scattering is thing. On the other hand you can try to collide two neutrinos, which are fermions, for quite some time and not much will happen.

<comment><USER4> _The difference between bosons and fermions lies in the way swapping two of them works._

That sounds like what Wikipedia says is the rigorous version of the Pauli exclusion principle[1].

I was trying to get close to the not-rigorous version (1st paragraph of the link) in terms that are easily understandable without having taken a university QM course. I guess can/can't be in the same place at the same time would be a better approximation of it?

[1] [https://en.wikipedia.org/wiki/Pauli_exclusion_principle](https://en.wikipedia.org/wiki/Pauli_exclusion_principle)

<comment><USER5> Loosely peaking the wave function of a quantum mechanical system specifies for each possible state of the system the probability of finding the system in that state. Actually it is not the probability but the probability amplitude, a complex number from which you can derive the probability by squaring it.

Assume you have two identical fermions, say two electrons, the first one in state x and the second one in state y. State means everything required to fully describe the particle, for example position and spin. Therefore x stands for the first electron being in a specific position and having a specific spin, similarly for y and the second electron.

Let A(x, y) be the probability amplitude for finding the first electron in state x and the second electron in state y, i.e. the first argument of A is the state of the first electron, the second argument is the state of the second electron. Now swap the two electrons, take the first and put it where the second one is, take the second one and put it where the first one was. Also change the spins as necessary. The probability amplitude is now A(y, x), the first electron is now in state y, the second electron is now in state x.

The important thing is now that the two electrons are identical, you can not tell the difference between the situations before and after swapping the two electrons. Had you painted one electron blue and one red, then you could easily tell the difference, but without that you can not. That was the entire point of swapping the electrons, bringing them into exactly the state of the other one.

But if you can not distinguish the two situations, then it better be the case, that they have the same probability, i.e. A(x, y) = A(y, x). But that is not quite right, A is the probability amplitude, not the probability. It turns out that there are actually two valid possibilities, A(x, y) = A(y, x) and A(x, y) = -A(y, x). As mentioned at the beginning, you get the probability by squaring the probability amplitude, so that the minus sign in the second case vanishes.

The first possibility is how bosons (particles with integer spin, for example photons and gluons) behave, the second one is how fermions (particles with half integer spin, for example quarks and electrons but also helium-3) behave. Now we finally arrive at the important point, what happens if both electrons are in the same state, i.e. if the first electron is in state x and the second electron is also in state x. Then the probability amplitude is A(x, x) and we have to satisfy A(x, x) = -A(x, x) because electrons are fermions.

But there is only one complex number identical to its negative and that is of course zero. Therefore the probability amplitude and in consequence the probability obtained by squaring the probability amplitude are both zero, which means that the probability of finding the system in the state where the first electron is in state x and the second electron is also in state x, is zero. The two electrons or more generally two fermions can never be in the exact same state.

</comment></comment></comment></comment></comment></comment><comment><USER6> I assume these particles were already predicted as part of the Standard Model?

<comment><USER7> Professor Tim Gershon, Professor of Physics at University of Warwick and UK spokesperson for the LHCb experiment: "After the LHCb experiment is upgraded in the next long shutdown of the LHC (during 2019-20), it will be able to move to the next stage in the search for new particles: namely, doubly heavy baryons. These states – which contain two charm quarks or two beauty quarks or one of each – have long been predicted, but never yet observed. Their discovery will help to address important unsolved questions about how hadrons are bound together by the strong interaction."

So I would assume that yes they have been predicted and is opening the doors for further confirmations?

<comment><USER8> > Their discovery will help to address important unsolved questions about how > hadrons are bound together by the strong interaction.

If the particles were already predicted by the standard model, what kind of unsolved questions are to address here, besides validating the predictions of the standard model even further? (serious question)

<comment><USER9> Because a prediction is just an assumption (theory), and it can become a house of cards when basing future science on that assumption. Observation is proof, so future science can use that proof without worry.

<comment><USER10> Can you clarify? In my mind

      "prediction" != "assumption" != "theory"

and

      "observation" != "proof"

Basically I seem to disagree with everything you wrote.

<comment><USER11> By assuming validity of a theory you can make predictions. Observations provide evidence in support of this.

<comment><USER12> A theory comes later. You start off with a hypothesis. You don't make any assumptions of validity.

</comment></comment></comment></comment></comment></comment></comment><comment><USER13> For more in-depth information see the CERN press release "LHCb observes an exceptionally large group of particles" at [https://home.cern/about/updates/2017/03/lhcb-observes- except...](https://home.cern/about/updates/2017/03/lhcb-observes- exceptionally-large-group-particles)

Or, the paper "Observation of five new narrow Ω0c states decaying to Ξ+cK−" is available at [https://arxiv.org/abs/1703.04639](https://arxiv.org/abs/1703.04639)

And finally, the LHCb web site section on "Observation of five new narrow Ωc0 excited states" at [http://lhcb-public.web.cern.ch/lhcb- public/Welcome.html#Omeg...](http://lhcb-public.web.cern.ch/lhcb- public/Welcome.html#Omega_c)

</comment><comment><USER14> I have to admit, I rather admire their putting a brave face on things, with their mildly-too-insistent claim that the LHC is vital for finding new physics despite the increasing likelihood it's not going to find any.

In that sense the LHC is a political failure, because it has failed at its primary political job, which is to make the argument for an even bigger collider.

<comment><USER15> How'd it fail at it's primary task? Wasn't the Higgs a big part of that? Or is the argument that is hasn't found anything outside of the standard model?

<comment><USER16> It succeeded at its primary task, and the Higgs was a big part of it. Its still doing its job, so give it time. Finding nothing can often be just as important as finding something unexpected.

<comment><USER8> > Finding nothing can often be just as important as finding something > unexpected.

From a scientific point you are right. From a political point or the point of securing further funding this statement is (unluckily) wrong.

<comment><USER17> I think its a fundamental problem with teaching science history. We tend to look at achievements in history as being inevitable, like of course we discovered flight after the locomotive was invented, that's just how it happened! But those discoveries were all a circumstances of chance. If we're going to continue to make progress in science we need to accept that new, groundbreaking discoveries don't happen inevitably, they happen from people doing a lot of the dirty work and from imaginative people putting the puzzle pieces together in new ways. There's no inevitability to discovery.</comment></comment></comment></comment></comment>


Filament: Physically-based rendering engine - <AUTHOR> https://google.github.io/filament/Filament.md.html <comment><USER2> Kudos to Romain Guy on the Android Graphics team. Stunning WebGL demo here:

[http://www.curious-creature.com/2017/08/14/physically- based-...](http://www.curious-creature.com/2017/08/14/physically-based- rendering-demo/)

Good example of visual state-of-the-art on Android is probably the ARK dinosaur game. The Vulkan API is now included on latest Android. And with the compact gltf 2.0 format we can expect great experiences on mobile ;)

Vulkan glTF 2.0

[https://www.youtube.com/watch?v=sl7iN- vQCOs&list=PLy80eMh1-z...](https://www.youtube.com/watch?v=sl7iN- vQCOs&list=PLy80eMh1-zPUz7y1JtFiS9I6H7_trBUAf)

<comment><USER3> glTF is pretty great, to be honest. At work I am writing a tool to convert Creo View models to glTF 2.0 models and I am experiencing actual joy while doing it.

I looked at the COLLADA and glTF formats (I wanted something open) and very quickly chose glTF 2.

I don't have any 3D format implementation experience, and I implemented glTF 2 in Golang in a day, or less.

Anyway, it's a great format (AFAIK) and I wish more 3D modeling tools supported it. I imagine more will come on board as time passes.

<comment><USER4> Any thoughts on these criticisms from this Wikipedia article? [https://en.wikipedia.org/wiki/GlTF#Criticism](https://en.wikipedia.org/wiki/GlTF#Criticism)

(I'm not agreeing or disagreeing with them, I'm genuinely curious to hear from someone working with the format at the implementation level)

<comment><USER5> I'm a few years removed from 3D work so take this with a grain of salt especially since today was first time I've seen GITF. I've implemented several 3ds Max Game Asset importer/exporter tools for modding over past decade. While I like the look of GITF 2.0 quite a bit, it does seem to lack a number extension points that I would probably need for a generic importer/exporter for handling game asset round trips (import, edit, export). I would love to handle import/export in a generic way and have tried with FBX and collada to poor effect in the past. Really want to take asset convert to GITF then import to max edit and then export from max to GITF and then finally bake back to game format. The less stuff software you need between the game format and the GITF file the better but should allow for automation/customization.

You can get 80-90% there but miss quite a bit of fine detail needed as a interchange format (which is why this is a transmission format I guess). Extensions seem to be basic and I question how well they work in 3d editors but not really sure how that works and is probably editor specific. I've had a lot of issues trying to have a single file like collada be properly supported in multiple editors unless it was fairly basic model. That leads to a lot of wasted time for modelers trying to get the edited model back into the game and working correctly.

Back to GITF, collision seems to be missing. They admit that they dont have vertex compression implemented or animation for things like material colors or animation metadata (timelines, looping, ...) . Is there a way to describe a partial surface sort of like skinning for other reasons (for example Fallout 4 needs to tag certain surfaces/vertices as to say that they are part of the head or arm for decapitation in game). Anyway looks like a nice start as its all JSON (or binary) unlike GEX,obj,3ds,... which seems to need its own parsers to read and they did only claim to be an transmission format. Again only did cursory read of the format so I might have missed things.

<comment><USER6> It's glTF not GITF.

<comment><USER7> I've always assumed that was an "L". Whoever named this thing and made the decision about capitalization needs to possibly think a bit harder next time.

<comment><USER8> It is an "L", glTF means "GL Transmission Format".

<comment><USER7> In that case it's still the capitalisation that is remarkably ill considered.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> Wow. It's so hard to find expert-level documentation like this all in one page these days. I'm usually stuck piecing together information from a couple dozen (often poorly presented) websites. The topic is fantastic, but the presentation deserves some applause too!

<comment><USER10> Glad you like it. We found it hard to piece together all the information we needed and after reading hundreds of papers and presentations we figured that writing such a document would be helpful to beginners like us (in this field that is).

<comment><USER9> I think my render in Chrome is pretty broken. Here's a screenshot of the top of the page: [https://drive.google.com/open?id=1YVtcV-J0JrDyW2pJ6vwgEDsgjO...](https://drive.google.com/open?id=1YVtcV-J0JrDyW2pJ6vwgEDsgjOEusyEH)

<comment><USER10> Looks like the page wasn't able to load all of its resources. Try to refresh the page until it works. I should make an offline version that doesn't require online processing.

<comment><USER11> It took multiple reloads for it to work for me on Android Chrome, and was almost unreadable for a couple of minutes (MathJax processing? Tried KaTeX?) due to an enormous right margin. The margin and font(?) changed multiple times.

Is there a PDF version?

<comment><USER12> Sort of!

The document uses a JS tool called MarkDeep to convert extended MarkDown into styled HTML. Just look at the source, it's 99% plaintext Markdown.

If you read the MarkDeep docs, you'll find that it has a feature to convert the source into PDF instead. I admit I haven't tried this, though.

If it were up to me, I'd do the transform offline and just serve the static HTML instead. And sure, a link to the PDF just to be nice :)

<comment><USER10> We just serve straight from the source tree so it's not out of date :)

</comment></comment></comment></comment></comment></comment></comment><comment><AUTHOR> The actual code: [https://github.com/google/filament](https://github.com/google/filament)

Additional docs on their material system:

[https://google.github.io/filament//Materials.md.html](https://google.github.io/filament//Materials.md.html)

[https://google.github.io/filament/Material%20Properties.pdf](https://google.github.io/filament/Material%20Properties.pdf)

Also, I'll plug [http://casual-effects.com/markdeep/](http://casual- effects.com/markdeep/) which was apparently used to format the docs.

</comment><comment><USER13> The PBR tutorial series on LearnOpenGL.com covers a lot of the concepts implemented here like physically based BRDFs and HDR lighting, if anyone is looking for more resources like this.

[https://learnopengl.com/PBR/Theory](https://learnopengl.com/PBR/Theory)

<comment><AUTHOR> If like me you actually enjoy tech talk videos, "SIGGRAPH University - Introduction to Physically Based Shading in Theory and Practice" is great. PDF version is linked at the bottom of your learnopengl page. [https://www.youtube.com/watch?v=j-A0mwsJRmk](https://www.youtube.com/watch?v=j-A0mwsJRmk)

</comment></comment><comment><USER14> Ok this is way fun and drags me back to the days I was diligently trying to build a 3D rendering engine from first principles (sort of, I had Glide to put stuff on the screen).

The renderer is perceptually better than the one that is included in my CAD package (TurboCAD) for pretty much all materials. So I'm guessing they will snarf it and dump the proprietary renderer and replace it with this stuff if they can.

But the really interesting idea that popped into my head was this; could Google offer 'rendering as a service'?

Specifically they have a zillion machines, many of which are doing nothing important, and they have this rendering package, and they have a scheduler that can put things on any machine. Imagine a service where you sent them a suitably detailed model description, and a set of lights, could they send you back a rendered image? Could you parameterize changes to the model description over time so that they could send you images in time based on your models? Could they do say 480 renders 'free' per month and then maybe $0.19/render over 480 in a single month?

Could you create a studio of modellers who would design models, and animators that would animate those models over time, and a director who would compose those animations into scenes? This is basically Pixar without the expensive renderfarm. Does that enable new studios to bring their own vision to life? Does it offer a cost effective service to places like Pixar which allows Google to make money on otherwise idle resources? Curious minds want to know :-)

<comment><USER15> Google Cloud Platform offers [https://www.zyncrender.com/](https://www.zyncrender.com/)

<comment><USER14> Okay that is pretty close, and acquired by Google in 2014. So presumably it is possible to be a small CGI shop and use this as your back end. Now I'm wondering if the economics pencil out. Clearly there was something that motivated Google to buy them.

<comment><USER16> They work just fine, the product is one of many that's used by shops now. GCP even recently launched a LA region and had an entire day dedicated to the local VFX shops. Nothing stops you from just running a bunch of VMs which many do and they have rolled out the Filestore NFS to make shared disks easier too.

<comment><USER17> Is that a recent shift? I remember talking to someone from a VFX shop a few years ago, and they made it sound like back then anything cloud was a no-go due to their customers requiring material to stay in-house for fear of leaks.

<comment><USER16> Yes, smaller studios were early but now the majors like Sony Imageworks are all in. The cloud is a great fit for most of their rendering jobs and security is no different (if not better handled by the cloud).

Here's a session from GCP Next 2018 for cloud render farms: [https://www.youtube.com/watch?v=ODOJ3UbnV6Y](https://www.youtube.com/watch?v=ODOJ3UbnV6Y)

</comment></comment></comment></comment></comment></comment><comment><USER18> I'm still waiting for someone to do a completely physically based renderer, and simulate the whole EM spectrum, not just the 3 colors we can see. Then you can model chromatic aberration, and the difference between fluorescent and incandescent lighting, and prisms.. you could call it a really really physically based rendering engine.

<comment><USER10> There are several spectral renderers out there, such as Weta Digital's Manuka. I don't know if they bother with parts of the EM spectrum that are outside of the visible range though. I imagine UVs can be important to model in some situations.

<comment><USER19> To model fluorescence accurately, it's necessary to handle the non-visible spectrum in some way.

<comment><USER20> Handling non-visible spectrum isn't much of an issue, after all the wavelength used when path tracing can be whatever (some have used path tracing for sound). Though getting realistic data for non-visible parts may prove tricky depending on the material.

IIRC the issue is that if you can ignore fluorescence, then reflection is simply an element-wise multiplication of the incoming light at the wavelengths under consideration[1] with the reflection coefficient of the material at those wavelengths. With fluorescence, that turns into a matrix multiplication, with obvious speed implications.

If only a single wavelength is considered at a time, then the wavelength must change upon reflection, otherwise there's no way for the fluorescence to occur. That can also have performance issues, for example conversion coefficients to/from regular color spaces needs to be recalculated.

At least that's my understanding having worked on a physically-based renderer which did do spectral rendering but not fluorescence.

[1]: using for example binned wavelengths or stratified wavelength clustering.

</comment></comment></comment></comment><comment><USER21> This looks very good.

Ironic aside: Notice the "Processing math" message on the lower left when you first open the page? That's MathJax, a huge JS library, chugging away because Chrome doesn't support MathML. Try going to the page in Firefox and you'll see that it processes "the math" a hell of a lot faster than Chrome. Firefox supports MathML, and MathJax probably generates MathML for it.

<comment><USER22> No it doesn't, it renders it as a bunch of spans. MathML is basically a dead standard for the web - browsers either don't support it or support is incomplete and with bugs which makes it useless.

[https://www.peterkrautzberger.org/0186/](https://www.peterkrautzberger.org/0186/)

</comment></comment><comment><USER23> Really beautiful. Funny how high tech 3D engines get better at making things that look low tech and run down.

<comment><USER24> It's kind of like Moravec's paradox but for graphics. :)

</comment></comment><comment><USER21> Also, there should be a warning in case you're running tab heavy on a lower end machine, or just out of courtesy. The web page is 37 MB (saved as an MHTML in Chrome -- see your About:Chrome flags). It's yuge. MathJax alone is usually >1 MB of JavaScript.

</comment><comment><USER7> 1\. What's the likelihood of seeing a Unity wrapper for this in my lifetime? I imagine the takeup of it if it plugged into Unity or Unreal would be massively increased.

2\. How does it compare with what OTOY are working on for realtime? I imagine they are focused on quality over performance and aren't even considering mobile.

<comment><USER25> PBR is already enabled in most game engines, it's even supported out of the box by Three.js

<comment><USER7> I'm asking about this specific engine - not PBR in general.

<comment><USER26> Why would Unity use Filament? They have a PBR solution that works for them and is in active development. OTOY's OctaneRenderer is an unbiased path tracer. It's not comparable to Filament, two different use cases.

</comment></comment></comment></comment><comment><USER27> Does anyone know how this document relates the the rendering done in the 2016 ratchet and clank game? That game has always astounded me and 8ve never been able to find a deep and comprehensive relation about how the rendering works.

<comment><AUTHOR> They certainly use some of these techniques.

Here's a bit of convo about the code and art of R&C

[https://youtube.com/watch?v=Y65h1aO-xps](https://youtube.com/watch?v=Y65h1aO- xps)

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

[http://advances.realtimerendering.com/s2014/index.html](http://advances.realtimerendering.com/s2014/index.html)

</comment></comment><comment><USER28> Had to do this:

CC=clang CXX=clang++ ./build.sh -j release

to get it started to compile (as it seems it had cc pointing to gcc and it did not understand some, apparently clang-specific flags).

</comment><comment><USER29> Do will this replace Escher? Or do they serve different purposes? (UI vs 3D)

</comment><comment><USER30> Such beautiful documentation!

</comment><comment><USER31> There is no such thing as physically based rendering, and the sooner the world learns this the better. It's a marketing term, nothing more.

Here's food for thought: what does it mean to multiply two colors? Nothing. It's meaningless. It's an approximation that happens to look good. But if you're going to claim your engine is physically based, you can't use it, because multiplying two colors is not based in physics.

<comment><USER32> "Physically based" in context of rendering means just that the light calculations preserve energy of light. So there is such thing actually.

<comment><USER31> There is no clear definition, further adding to the confusion.

[https://en.wikipedia.org/wiki/Physically_based_rendering](https://en.wikipedia.org/wiki/Physically_based_rendering)

[https://marmoset.co/posts/basic-theory-of-physically- based-r...](https://marmoset.co/posts/basic-theory-of-physically-based- rendering/)

</comment></comment></comment><comment><USER33> Ahhhhhhhhhhh - I will be DVd to death for this but:

I have a screen (it happens to be about 18" wide in this case). Why on earth is the text in a stupidly thin column in a small font? It looks like TeX's daemonic alter thingie got into the render process somewhere or perhaps someone forgot the other two columns or wanted to torture a webby reader with multiple columns (mmmm ArXiv scrolly uppy n downy pdf) and lost interest.

Anyway ... it looks crap in my browser unless I hit CTRL(num)+ a few times - 200% works.

<comment><USER10> Would you mind sharing a screenshot somewhere? I'm just using Markdeep's default CSS and the font size seems reasonable on all my screen. I'd be happy to try and tweak it though.

<comment><USER33> I'm not sure what has gone wrong (if anything) - I'm a sysadmin not devops/webby minded.

This is what I see:

[https://nextcloud.roseandjon.gerdes.co.uk/nextcloud/index.ph...](https://nextcloud.roseandjon.gerdes.co.uk/nextcloud/index.php/s/ttqRiyJK7zQrTC3) \- that should yield two images.

Fonts/typefaces - lovely. Layout - a bit limited.

<comment><USER10> Thank you! This is exactly the same render that I get. I could try and widen the column. I've grown to like the narrower width when reading graphics papers like this but I understand it's not for everybody.

<comment><USER34> I am not 100% sure why people are discussing their individual styling preference. Keep what you have. Thank you for sharing.</comment></comment></comment></comment></comment>


The Lenovo ThinkPad A285 (12.5-Inch) Review: Ryzen Pro Gets Down to Business - <AUTHOR> https://www.anandtech.com/show/13726/the-lenovo-thinkpad-a285-review <comment><AUTHOR> Pity there seems to be no Linux option.

<comment><USER2> You mean that Lenovo isn't offering a GNU/Linux pre-installed OS? Why not just install it yourself?

</comment></comment><comment><USER3> What? No comparasions to the MacBook Pro?</comment>


NASA Before PowerPoint in 1961 - <AUTHOR> https://imgur.com/4YbhjqI <comment><USER2> Pretty sure people knew how to make slide based presentations since well before computers existed. And I somehow doubt that NASA's primary use of PowerPoint today is for presenting complicated mathematical equations. But hey, clickbait title gonna clickbait.

Still a cool picture. Not sure why they decided tall blackboard + ladders was better than multiple normal blackboards at ground level. But then these are the guys who built this[1] so they didn't have to lay their rockets down when assembling them.

As for the equations, I'm no mathematician, so I wonder if people of that ilk still find use in sketching out their ideas on a black or white board. Or is it all LaTeX and matlab these days?

[1] [https://en.wikipedia.org/wiki/Vehicle_Assembly_Building](https://en.wikipedia.org/wiki/Vehicle_Assembly_Building)</comment>


Ask HN: Do you still use/like Usenet/NNTP? - <AUTHOR> Hi!
As of subject: do you still hang on "newsgroups" ?
I see some "winning points" in newsgroups, namely:
- Text based - cross-platform - distribuited system - possible to set-up custom systems
I was wondering what HNers think about NNTP. <comment><USER2> Oddly enough, I'm heavily into NNTP, but not much into the Usenet. Specifically, I use gwene.org, which is a bridge between RSS and NNTP, to keep up on all my feeds. I've found using a newsreader easier than any feed readers that I've tried.

Since I am regularly loading up a newsreader, I do occasionally decide to try and get into the actual Usenet, but I have yet to find a group that was both about a topic that interests me and had more contributors than spammers.

</comment><comment><USER3> A few years ago my beloved taught online for University of Phoenix. At that time, NNTP was used for the classroom. My impression is that it is great for irregular long-form asynchronous shared communication.

The downside was that NNTP readers are increasingly a corner case and even though Outlook had support, it was a bit of a PITA to configure it properly.

My personal take is that it's an underutilized protocol. Which is not to suggest that I miss the Usenet. People behaved badly as a general rule.

</comment><comment><USER4> I still check in on a couple newsgroups. Most activity has moved to web-based forums but on the other hand, so has most of the spam.

There was a time when the best (or only) way to find how to do something in TeX/LaTeX was to search google group's comp.text.tex archives. However google groups got worse and tex.stackexchange now exists.

</comment><comment><USER5> It was good, great even, while it lasted.

<comment><AUTHOR> Could you elaborate on that ?

<comment><USER6> What is there to say that hasn't already been said?

At one time, I was so invested in USENET that I wrote a client app for it, on two different operating systems (BeOS and Mac OS X). These days I make no use of it at all, and I haven't for years.

USENET was designed for a simpler, more naive period. It has no defense against spammers and trolls, and no way to establish a firm identity that can't be spoofed. It just doesn't work in today's internet.</comment></comment></comment>


How did you go from being an adequate to exceptional programmer? - <AUTHOR> I'm new to web development and am primarily self-taught. I know enough to get my own site live, make it look good, and make somewhat nuanced decisions about its architecture and the best method for accomplishing X task.
But now I feel stuck. I just started working full-time as a software developer (!) and was hoping this experience would help me learn a ton--however, for whatever reason, work is relatively slow and I end up doing what I already know or am left out of any "teaching" going on.
I'm a little nervous I'm stuck when it comes to my skills and don't know what to look/ask for next. What experience/situation allowed you to learn the most? Was it an awesome mentor, a great freelance project, some course you took? Is it something I could find at work or does real learning come when you're working on your own projects? <comment><USER2> I will give you one general advice about getting exceptional at anything which should also apply to programming. When you learn something, try to learn the "why" of it and not just the "what and "how". Once you master the "whys" of a topic, you will realize you have got really good at it already. Challenge yourself and others about conventions and understand why things are done a certain way. What if you try to do it differently ? Does that make sense ? Does it make it better or worse ?

When it comes to programming,learn to break things. In programming, it is easy. Put bad code on purpose and see how and why it breaks ? I remember one of our excellent CS professors who told us that the best way to learn pointers in C/C++ is to write pointers that don't work. Leak some memory. Create null references. I never understood that for a while but now I do.

Oh and the common advice: practice practice, practice. Do the same thing over and over again even if it is repetitive. Again to give you an example, I was really good at Math as a kid and I remember I got even better when one of the teachers gave me a book in which for every topic, there were 50+ questions that were very similar. he wanted me to do all 50 of them. I was like "why cannot I just do 3-4 of each type and move on to next". But again, after doing the 50, I mastered it.

Having said all this, I don't think I am exceptional at most of the things (certainly not programming) but I am so sure that these are some of the actions that makes one exceptional.

<comment><AUTHOR> This is really helpful advice--being primarily self-taught, I've probably missed out on a lot of the "whys." Thank you. :)

</comment></comment><comment><USER3> Work environment doesn't necessarily always help. It comes down to how experienced and brilliant co-workers are plus whether they care deeply about clean design and clean code. In some places, there are A programmers from which you will learn a lot. In other places, it's broken windows, so the attitude of the people is 'it works, so why bother.'

To answer your questions, I find awesome code and techniques through books and from the internet. Keep reading new books even if you have become familiar with the language. Try working on your own projects because different problem sets demand different way of solving things which will not be offered through normal work environment. Write small games, puzzle solvers, etc. Understand how things work and be familiar with the tools which you can then incorporate back to your work.

Another way of improving your programming skills is by learning a completely different programming paradigm. That will make you think differently when solving problems even if you don't end up using that particular language.

<comment><AUTHOR> Thanks for this--I think the guys I work with do care about clean design and code. However, as soon as we start to discuss bigger concepts like that the lingo changes from practical to highly technical. Having little computer science background, I definitely end up missing some of it.

Thanks for your thoughts. :) I think I definitely need to focus more on building my own projects if just to keep practicing what I do know and have the opportunity to build something more complex.

</comment></comment><comment><USER4> Programming is more than just writing code. Programmers must also assess tradeoffs, choose among design alternatives, debug and test, improve performance, and maintain software written by themselves and others. At the same time, they must be concerned with compatibility, robustness, and reliability, while meeting specifications.

It is important for a Software developer you must be willing to work outside of their comfort zone. Technologies are constantly changing, and as developers we must execute integration or updates that we have never done before. By pushing yourself to try new things, you end up being exposed to more code and alternative ways of tackling issues. This drive to constantly learn and do new things that makes the difference between a good developer and a great developer.

Don't be afraid to break stuff. Breaking things is an important part of learning process.

Don't try to be great. Being great involves luck and other circumstances beyond your control. The less you think about being great, the more likely it is to happen.

</comment><comment><USER5> I think being great at something isn't really something that you can teach. I also think that very few people hit a brick wall and stop being able to learn how to be an exceptional programmer. If you ask people that are REALLY good at something how they are so good, more often than not they'll shrug their shoulders and will probably tell you they don't know.

For me, the only way to become really good at something is to keep learning, and to ensure that you know of your own failings. If you don't know what you don't know, you won't try and fix those holes in your knowledge.

If you are aware of what you suck at, it's easy to pick that knowledge up through experience. If you are going through the motions and aren't finding yourself challenged, it's extremely easy to not learn anything of use. An exceptional programmer will have probably spent most of their careers working on problems they didn't know the answer to, and as a result have built up a huge body of knowledge.

</comment><comment><USER6> Learn in a manner where you would have to teach it. The bad part about this approach is it forces you to confront how little you really know. The good part is...well, the same. If the cool kids at work won't let you into the 'teaching' then you will be forced to make your own way. This is a good lesson because companies generally don't care about you. So make sure you care about yourself. I should add I'm not "exceptional" , but for how little time I've been doing it I'm good with regard to my subset of interests. If it wasn't for the the above methodology this would not have happened.

</comment><comment><USER7> I don't really think I'm "great" per se, but there's several things that really "upped" my abilities beyond someone who was just comfortable with ifs, loops and arrays.

Now I should state that all these things are with respect to how to learn things, not with what makes the best employee/product.

1) Getting a job where I could program/learn full time. Once I picked up the skill that other people hadn't learnt, then I became "the SKILL guy", which means that you get more work based on that skill, which lets you learn even more.

2) To learn things, I would set myself the goal of trying to do every task in one language. And I mean every task, including tasks that it sucked at. Whereas other people just took the pre-written tool/software and used it, I wanted to see if i could do it from scratch. Its not the best way to do business, but its the best way to learn something inside and out.

3) Plain stubborn persistence and realizing there are no hard problems/theories/techniques, just ones you haven't spent enough time studying and getting familiar with. Its ok not to know or understand things. What's not ok is to run away from them because you don't know or understand them. There's a lot of fragile egos in programming/academics/business where people try to insinuate that because they don't understand something its "not worth knowing/is useless", or that you are stupid for not understanding what they understand. Forget all that and just keep bashing away at a topic, looking for different opinions and perspectives on how to pick it up, and when you understand something on your 8th go, you're now on equal footing with the person who understood it on the 1st go (if there ever was such a person, and there often isn't).

4) Always pushing my self into the things that I can't do. This is a bit weird, because most of our school systems condition one to do the things you score well at and avoiding the things you fail at. Screw that. You might get good grades and a job but you will never grow as a person that way. If you're only given projects you "can do" at work, try to mix it up by doing it in a way, or with a language, or with a perspective that you can't currently do.

<comment><AUTHOR> These are all really helpful points. I've been trying to do #1 over the past few months but I'm not sure if what I'm good at is valued in this environment. I think I have a little bit of processing to do to understand if that's a problem with me or them.

I especially appreciate #3. Thank you. :)

</comment></comment><comment><USER8> The three great virtues of a programmer are laziness, impatience and hubris. I picked up some skills from the first guy I worked with out of college (pair- programming is great), but more important than that was the attitude. Cultivate a sense for when you're doing something by hand that the computer should be able to do for you, then figure out (or ask someone) how to get the computer to do that. Keep doing that and in a few years what you do looks like magic to your previous self.

<comment><USER9> _Once you understand how to write a program, get someone else to write it._ \--Alan J. Perlis, Epigram 27

</comment></comment><comment><USER10> Practice, try new things, learn more languages.

Check out [http://blog.jenniferdewalt.com/post/56319597560/im- learning-...](http://blog.jenniferdewalt.com/post/56319597560/im-learning-to- code-by-building-180-websites-in-180).

</comment><comment><USER11> not saying that I know anything, but from what I can tell it is time and practice. Don't think that something is "beneath" you, just keep building stuff. Read books, talk to other people that know something. Talk to people who don't. I am not sure if you should ever reach being an exceptional programmer, because there is always more to learn. Also: depending on the language, try to solve problems without looking up how to solve it, and then compare your solution to other peoples. You may solve the problem, but sometimes you can be quite surprised about how much more someone knows, so they can teach you little things that really deepen your understanding of a language.

</comment><comment><USER12> You just gotta put in the time. Experienced programmers still get stuck and will feel like you do a lot of times.

</comment><comment><USER13> Teach yourself more about the tools you use, like frameworks, servers, OSes, editors, etc.

<comment><AUTHOR> Well, what do you mean by "teach yourself?" It's one thing to read up/use trivially vs becoming fully competent at speaking about it and using it. Or is it normal to be googling things every day until it sticks?

<comment><USER7> I think its perfectly normal to be googling things every day for the rest of your life in programming.

The notion of there being a wizened old man who just sits there and "knows everything about it" is, if not a myth, exceptionally rare.

Sure over time, bits stick and foundations build and you grow to be relatively expert on some topic. But if you stand still or grow too comfortable with what you've got, these days the world will move past and leave you behind.

</comment></comment></comment><comment><USER14> I'll let you know when I get there.</comment>


Towards a More Peaceful World [insert `!' or `?' Here] - <AUTHOR> http://www.mn.uio.no/math/english/research/projects/focustat/the-focustat-blog%21/krigogfred.html <comment><USER2> Amazing post, thanks. I was recommended this youtube video today:

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

where Pinker shows a graph with a very strong decline in global war deaths. Along with many of the other graphs in his talk, I was very skeptical of it and believed that it must have been made using highly cherry-picked data, probably justified with a convenient definition of war.

This post makes it clear that such an analysis is really very difficult to make and depends on so many things, even without asking some tricky questions: What about terrorism? What about the war on drugs? Are deaths in the Israel- Palestine conflict counted? How about union-busting mercenaries in the Congo? What about the war on black people in the US where over 1000 were killed last year?</comment>


The Second International RoShamBo Programming Competition (2001) - <AUTHOR> http://webdocs.cs.ualberta.ca/~darse/rsbpc.html

<comment><USER2> Is there source code available for the programs? I can't seem to find it on the website.

<comment><USER3> The source code for the winner of the first competition, iocaine powder, is at [http://dan.egnor.name/iocaine.html](http://dan.egnor.name/iocaine.html), along with a good explanation of its algorithm.

It did well in the second competition even after the publication of the algorithm and source code.</comment></comment>


Bloggers: Read this before moving to https - <AUTHOR> https://jjude.com/cost-of-https/ <comment><USER2> RSS 2.0 was specced in '02, if I have my dates right.

The web world has changed a fair bit in 12 years.

That the spec demands a protocol is hardly surprising, and I do wish that most readers out there would allow other connection protocols, but as they mostly don't, offering a part of your website over HTTP seems the only option.

To mitigate: Statically generate your RSS on each change. (If you use something like Jekyll, a breeze, something like PHP, a pain in the ass).

In the long run?

We need RSS 3.0, as long as the big players don't compromise it or kill it, but instead adopt it.

<comment><USER3> Simply use Atom Syndication Format instead of RSS.

</comment></comment><comment><USER4> RSS 2.0 does actually allow HTTPS URLs[1]. The author of the blog post appears to be misreading a StackOverflow comment which is specifically about <enclosure> elements, which are the only URLs that the RSS spec restricts to HTTP.

1: [http://www.rssboard.org/rss- specification#comments](http://www.rssboard.org/rss-specification#comments)

</comment><comment><USER5> This is obviously an issue, but I feel like this is a situation where you should ignore that part of the spec or at worst offer an http-only alternate version. When the spec is dangerously out of date like this, there's no reason to fetishize compliance.

<comment><USER5> Also, a bit surprising he went with StartSSL. I thought they had a digital death sentence because of the WoSign thing. Is that not accurate?

<comment><USER6> Is there any reason at all to go with anything other than Let's Encrypt if you're getting a cert for your personal blog?

</comment></comment></comment><comment><USER7> Concerning the link changes, couldn't the author have used the "//url.com" format in order to avoid this issue in the first place?</comment>


List of those who voted for and against CISPA - <AUTHOR> http://clerk.house.gov/evs/2012/roll192.xml

<comment><USER2> Let's not forget companies such as Google which actually lobbied for CISPA. They had the huge blackout for SOPA since it threatens their business plan, but they are in the business of collecting data so supported CISPA.

So much for their "Do No Evil" bull.

[http://thehill.com/blogs/hillicon- valley/technology/223069-g...](http://thehill.com/blogs/hillicon- valley/technology/223069-google-acknowledges-lobbying-on-cybersecurity-bill- cispa)

<comment><USER3> I was really surprised by the lack of cynicism surrounding the SOPA blackout. Yes it was in the public good, but it was merely a coincidence that what was good for Google happened to align with what was good for everyone else.

Current US politics is like watching a television program were you root for one team or another, you may feel excited when 'your team' wins but your participation will always limited to that of spectating. The analogy breaks down because in our case we also live in the television.

<comment><USER4> >>your participation will always limited to that of spectating.

Only because you choose to. You can join groups that align with your beliefs to help influence the legislation process. Don't complain that you are just an spectator when you don't even want to play the game.

<comment><USER5> I wonder how many people who complain about politics even vote. Here in Brazil I see people actively trying to avoid voting (it's mandatory).

</comment></comment></comment></comment><comment><USER6> Can someone give a short, accurate explanation of what CISPA is about and how it's a threat?

Unlike SOPA, where there was plenty of accurate information about why it was bad, I can't figure out what's going on with CISPA. For instance, reading the Wikipedia page it doesn't seem there's any obligation for companies to share information, nor a right to break privacy policies they couldn't earlier.

So it's entirely unclear to me why my privacy is threatened. I'm pro-privacy but I want to know what there is to be worried about.

</comment><comment><USER7> If you're wondering why Ron Paul didn't vote, he didn't have a chance because the vote was abruptly moved up a day in advance and rushed through while he was campaigning in Texas.

[http://www.techdirt.com/articles/20120426/14505718671/insani...](http://www.techdirt.com/articles/20120426/14505718671/insanity- cispa-just-got-way-worse-then-passed-rushed-vote.shtml)

<comment><USER8> He has missed 92% of votes this year. [http://thehill.com/blogs/ballot- box/gop-presidential-primary...](http://thehill.com/blogs/ballot-box/gop- presidential-primary/220121-ron-paul-has-missed-92-percent-of-votes-in-2012)

<comment><USER7> In Congress, a "not present" is the same as a "nay" vote since only the "yeas" count. Given Paul votes against most legislation, 92% sounds about right.

<comment><USER9> Aren't they recorded differently though? Even though it doesn't change the results, you should be able to tell the difference between those who vote "nay" and those who just don't vote.

</comment></comment></comment></comment><comment><USER10> I am absolutely floored. The sun rises in the west and sets in the east. My Congressman (Schiff) did something right. I will reward him with small campaign contribution and a thank-you letter.

<comment><USER11> A pat on the back and a monetary reward for not fucking up?! even through it ultimately didn't matter? it's amazing how low the bar is set for politicians.

<comment><USER12> Like I read yesterday here in HN. They need to be rewarded/trained otherwise they will never learn. I'll send a letter to my representative to tell him how disappointed I'm. If a lot of people do that, they will know if they screwed up or did well. Although to be honest, I feel they will never learn.

<comment><USER13> This kind of practice also encourages congress to hold frequent votes on controversial legislation.

</comment></comment></comment></comment><comment><USER14> If you want this in JSON format rather than XML, I have reformatted it as such here:

<http://drostie.org/votes-HR-3523.json>

</comment><comment><USER15> Not surprised to see Amash on the No vote. (He is voluntarily leading a drive to increase Congress transparency by explaining every vote on Facebook/Twitter. <https://www.facebook.com/repjustinamash>) Regarding CISPA he said: "I voted 'no' on CISPA. The bill passed 248-168, but my amendment to protect library, tax, gun, educational, and medical records also passed 415-0."

However, I am rather surprised to Issa on the Aye vote. He was one of the few members that actively worked against SOPA while it was still in committee. His Twitter bio (@darrellissa) says he enjoys "an #OPEN, accessible & uncensored internet."

<comment><USER16> There's nothing in CISPA that would violate those criteria. It doesn't close or censor anything.

</comment></comment><comment><USER17> I hate to generalize, but (I'm about to anyway) all my old representatives (dem or repub) voted Aye. You'd think that old people would enjoy some sort of anonymity. However, if is this being sold as a counter-terrorism method I could see why they'd vote for it.

<comment><USER18> I think the problem is that the "old" people just don't understand the bills. Call it Counter-terrorism, or anti-child-porn and you've got people signing because having a " nay" on a loosely languaged bill probably means fodder for attack ads down the road.

"Congressman [x] voted NO on stopping cyber terrorism"

My rep pulled support for SOPA at the _last_ possible second, and only after public out cry. I sent him a letter thanking him for actually listening to his constituents, but kindly asked for him to resign. If these people don't understand the technology they're being asked to regulate, they should be replaced by those who do.

<comment><USER16> There is no possible way that a member of Congress could understand everything that they are passing laws on, so they rely on their staff members, constituents, and special interests to educate them.

In this case, unlike SOPA, there were quite a few people who _do_ understand Internet technology who supported the bill.

<comment><USER19> There should be a Congressional Technology Office, similar to the Congressional Budget Office.

</comment></comment></comment></comment><comment><USER20> If you don't know who your representative is by name, you can look them up here: <http://www.house.gov/representatives/find/>

</comment><comment><USER21> This is the one thing I envy you for in USA politics, you get to see who voted for what. We do not have that in Germany.

<comment><USER22> Interesting, I didn't realize that recording votes wasn't done regularly in a number of major democracies. While looking for more information I dug up this book chapter on the subject, and it looks like practices vary a lot more than I'd thought: [http://www.uni- potsdam.de/db/vergleich/Publikationen/Parliam...](http://www.uni- potsdam.de/db/vergleich/Publikationen/Parliaments/chapter16.pdf) (PDF).

</comment></comment><comment><USER23> What does having the Representative's name in italics signify? (Please don't say co-sponsor...)

<comment><USER24> There is a key at the top of the page:

      (Republicans in roman; Democrats in italic; Independents underlined)</comment></comment>


Krugman and Other Stuff - <AUTHOR> http://cafehayek.com/2015/06/krugman-and-other-stuff.html

<comment><USER2> I'm no economist. But I've been reading Paul Krugman's blog for about 10 years now. And time after time his predictions about what would happen turned out to be true.

And most of his predictions were the exact opposite of the predictions that I was reading in the papers or I was hearing from the politicians. So, is it true that "other stuff" is relevant? Sure. But I'll take his economic insights - mistakes included - over all those other Nobel prize winning economists any day.</comment>


Cambridge Analytica CEO – Online Marketing Rockstars Keynote - <AUTHOR> https://www.youtube.com/watch?v=6bG5ps5KdDo&feature=youtu.be <comment><USER2> Another good video:

[https://twitter.com/twitter/statuses/976245751259971584](https://twitter.com/twitter/statuses/976245751259971584)

BBC news interview with the Zucks.</comment>


Google Launches Chrome Experiments To Showcase JavaScript Applications - <AUTHOR> http://www.techcrunch.com/2009/03/18/google-launches-chrome-experiments-touts-javascript-processing-power/ <comment><USER2> I know we're looking at a technology restart here, but I still can't quite get over the idea that we've been here before. (Xwindows, NeWS, etc.)

Still, things like Cappucino and Bespin augur some serious tectonic shifts a-comin'.

Javascript is the new machine language. Funny.

I guess Canvas + JS is the new cross-platform UI base. (Though only something like Cappucino actually provide a higher-level platform. Bespin's lower-level model looks like just a (shared) editable array of strings.)

</comment><comment><USER3> Some of these are pretty cool for javascript.</comment>