97 comments

[ 3.1 ms ] story [ 163 ms ] thread
unclosable popup
Can't you just delete the element node.
I do this a lot of the time, too. And I believe it is ridiculous to have to do it...

Yes, I'm grateful that browsers today make it easy to pwn the DOM.

And it is disgusting that this is often necessary to avoid spammy website behavior. People who don't understand browser internals are forced to contend with popups and forced registration to unveil content indexed by search engines.

Yep I'm looking at you Quora.

Thanks for forcing my mother to register to read the text promised by her google query. Long live ExpertSexchange 3.0.

Yeah, the Google query text is an oft-broken contract.

I presume there is some German word that describes the feeling of searching, seeing what you want right there, bolded in the result text, and doing a CMD-F to search for it on the page, only to hear the plaintive beep of 0/0 results.

English doesn't have a word for Suchmaschineauswahlempfindungsfehlerschmerz?

(disclosure: not actually German)

There is a "Not now" link to partially hide the popup.
Not now, only places that pop-up at the bottom of the screen. You cannot dismiss it.
Upvoted you, but the substantive point surely is that Facebook is a bad web citizen for doing this. OTOH every sane person already has a (negative) opinion about Facebook and this is not the forum to air those.
Whenever i find a site with a popup window over the content I just go to firefox's view menu and select No Page Style.

If you are mostly reading text this can be amazingly useful:

No popups/covers. Text to the width of the page. No low-contrast colors (just stark black white).

I wonder, is there a way to configure it automatically for a list of domains?

Right click -> Inspect element -> Delete the offending div
Nuke Anything automates this.
Thanks i'll also take a look at these
uBlock Origin also has eyedropper tool to select elements to block, works pretty well.
Readability mode works in Firefox and Edge (and probably Safari since they share code).
(comment deleted)
Post content:

In almost all of the public VR critiques I have made, I comment about aliasing. Aliasing is the technical term for when a signal is under sampled, and it shows up in many ways across graphics (and audio), but in VR this is seen most characteristically as "shimmering" imagery when you move your head around, even slightly. This doesn't need to happen! When you do everything right, the world feels rock solid as you look around. The photos in the Oculus 360 Photos app are properly filtered -- everything should ideally feel that solid.

In an ideal world, this would be turned into a slick article with before-and-after looping animated GIFs of each point I am making, along with screenshots of which checkboxes you need to hit in Unity to do the various things. Maybe someone in devrel can find the time...

All together in one place now, the formula for avoiding aliasing, from the most important: Generate mip maps for every texture being used, and set GL_LINEAR_MIPMAP_LINEAR filtering. This is easy, but missed by so many titles it makes me cringe.

If you dynamically generate textures, there is a little more excuse for it, but glGenerateMipmap() is not a crazy thing to do every frame if necessary.

Use MSAA for rendering. Not using MSAA should be an immediate fail for any app submission, but I still see some apps with full jaggy edges. We currently default to 4x MSAA on Mali and 2x MSAA on Adreno because there is a modest performance cost going to 4x there. We may want to go 4x everywhere, and it should certainly be the first knob turned to improve quality on a Qualcomm S7, long before considering an increase in eye buffer resolution.

In general, using MSAA means you can't use a deferred rendering engine. You don't want to for performance reasons, anyway. On PC, you can get by throwing lots of resources at it, but not on mobile.

Even 4x MSAA still leaves you with edges that have a bit of crawl, since it only gives you two bits of blending quality. For characters and the environment you just live with it, but for simple things like a floating UI panel, you can usually arrange to use alpha blending to get eight bits of blending quality, which is essentially perfect. Blending requires sorting, and ensuring a 0 alpha border around your images is a little harder than it first appears, since the size of a border gets halved with each mip level you descend. Depending on how shrunk down a piece of imagery may get, you may want to leave an eight or more pixel cleared alpha border around it. To avoid unexpected fringe colors around the graphics, make sure that the colors stay consistent all the way to the edge, even where the alpha channel is 0. It is very common to see blended graphics with a dark fringe around them because the texture went to 0 0 0 0 right at the outline, rather than just cutting it out in the alpha channel. Adding an alpha border also fixes the common problem of not getting CLAMP_TO_EDGE set properly on UI tiles, since if it fades to invisible at the edges, it doesn't matter if you are wrapping half a texel from the other side.

Don't use techniques like alpha testing or anything with a discard in the fragment shader unless you are absolutely sure that the contribution to the frame buffer has reached zero before the pixels are discarded. The best case for the standard cutout uses is to use blending, but if the sorting isn't feasible, using ALPHA_FROM_COVERAGE is a middle ground. Avoid geometry that can alias. The classic case is things like power lines -- you can model a nice drooping catenary of thin little tubes or crossed ribbons, but as it recedes into the distance it will rapidly turn into a scattered, aliasing mess of pixels along the line with only the 1 or 2 bits of blending you get from MSAA. There are techniques for turning such things into blends, but the easiest thing to do is just avoid it in the design phase. Anything very thin should be considered carefully.

Don't try to do accurate dynamic shadows on GearVR. Dynamic shadows are...

(comment deleted)
I am making $340 to $350 per hour by online working on facebook. i was jobless a year ago , but now i am getting my own salary by doing this online job. This salary is enough for me to meet my expences. I am really thankful to God. If you want to make this salary like my , you can check my details.⤵

CLICK THIS LINKHERE HERE===>>>>>>> w­­w­­w.W­­a­­g­­e­­N­­e­­T­­9.ℂ­­o­­m

fold --spaces --width 75 | sed -e 's/^/ /'

  In almost all of the public VR critiques I have made, I comment about
  aliasing. Aliasing is the technical term for when a signal is under
  sampled, and it shows up in many ways across graphics (and audio), but in
  VR this is seen most characteristically as "shimmering" imagery when you
  move your head around, even slightly. This doesn't need to happen! When
  you do everything right, the world feels rock solid as you look around.
  The photos in the Oculus 360 Photos app are properly filtered --
  everything should ideally feel that solid.

  In an ideal world, this would be turned into a slick article with
  before-and-after looping animated GIFs of each point I am making, along
  with screenshots of which checkboxes you need to hit in Unity to do the
  various things. Maybe someone in devrel can find the time...

  All together in one place now, the formula for avoiding aliasing, from the
  most important:

  Generate mip maps for every texture being used, and set
  GL_LINEAR_MIPMAP_LINEAR filtering. This is easy, but missed by so many
  titles it makes me cringe.

  If you dynamically generate textures, there is a little more excuse for
  it, but glGenerateMipmap() is not a crazy thing to do every frame if
  necessary.

  Use MSAA for rendering. Not using MSAA should be an immediate fail for any
  app submission, but I still see some apps with full jaggy edges. We
  currently default to 4x MSAA on Mali and 2x MSAA on Adreno because there
  is a modest performance cost going to 4x there. We may want to go 4x
  everywhere, and it should certainly be the first knob turned to improve
  quality on a Qualcomm S7, long before considering an increase in eye
  buffer resolution.

  In general, using MSAA means you can't use a deferred rendering engine.
  You don't want to for performance reasons, anyway. On PC, you can get by
  throwing lots of resources at it, but not on mobile.

  Even 4x MSAA still leaves you with edges that have a bit of crawl, since
  it only gives you two bits of blending quality. For characters and the
  environment you just live with it, but for simple things like a floating
  UI panel, you can usually arrange to use alpha blending to get eight bits
  of blending quality, which is essentially perfect. Blending requires
  sorting, and ensuring a 0 alpha border around your images is a little
  harder than it first appears, since the size of a border gets halved with
  each mip level you descend. Depending on how shrunk down a piece of
  imagery may get, you may want to leave an eight or more pixel cleared
  alpha border around it. To avoid unexpected fringe colors around the
  graphics, make sure that the colors stay consistent all the way to the
  edge, even where the alpha channel is 0. It is very common to see blended
  graphics with a dark fringe around them because the texture went to 0 0 0
  0 right at the outline, rather than just cutting it out in the alpha
  channel. Adding an alpha
  border also fixes the common problem of not getting CLAMP_TO_EDGE set
  properly on UI tiles, since if it fades to invisible at the edges, it
  doesn't matter if you are wrapping half a texel from the other side.

  Don't use techniques like alpha testing or anything with a discard in the
  fragment shader unless you are absolutely sure that the contribution to
  the frame buffer has reached zero before the pixels are discarded. The
  best case for the standard cutout uses is to use blending, but if the
  sorting isn't feasible, using ALPHA_FROM_COVERAGE is a middle ground.

  Avoid geometry that can alias. The classic case is things like power lines
  -- you can model a nice drooping catenary of thin little tubes or crossed
  ribbons, but as it recedes into the distance it will rapidly turn into a
  scattered, aliasing mess of pixels along the line with only the 1 or 2
  bits of blending you get from MSAA. There are techniques for turning such
  things into blends, but the easiest thi...
When will HN fix the dumb issue with pre text being maxed to 50% width on android. Having to scroll each line means I don't even bother.

Thank you for taking this time to post it though.

TIL 'fold', thank you.

I've always been a big fan of including the command you use to get the output you're quoting - people sometimes pick up even subtle tricks or flags from doing this.

Oddly this is one of the tricks in Programming Pearls that I love, but can't get others to want to do.

It doesn't help that json prohibited comments. So, anything that modified json is incapable of adding a breadcrumb of what it did.

Thank you! Reading the title, I was interested. Then I saw the domain and thought "ugh". Then I remembered that Carmack is with Oculus, and Facebook bought Oculus, making it a natural place for him to post, and was conflicted. Conflict resolved!
It's not a natural place for him to post. He was bought. From what I've seen of the guy, the natural place for him to post would be in a .plan file somewhere.
There's nothing wrong with posting a technical article on Facebook, especially if you're too busy being a graphical programming genius to set up your own blog somewhere. I don't see it as any different than posting on Medium...besides making a choice as to which company you're going to support? But seriously, who cares?
That I know of, Medium doesn't have as it's core business the mining and sale of user data with major intrusion and breach of privacy, much less a self-hosted, or even non-self-hosted blog.
> There's nothing wrong with posting a technical article on Facebook, especially if you're too busy being a graphical programming genius to set up your own blog somewhere

Well, he could have posted on the Oculus blog[1] - as the subject matter would have been very relevant.

> I don't see it as any different than posting on Medium

Medium doesn't try to coerce readers into singing up for an account. Nor does it track you across domains. Nor does it smash a lengthy article into 1/4 page width.

> But seriously, who cares?

A lot of folks, myself included. Not only was it difficult to read due to the formatting, but many have strong objections to Facebook in general, causing Carmack's thoughts have less reach.

Facebook is not a blogging platform, it never has been a blogging platform, and it never will be a blogging platform. It's simply not setup to be conducive of blog content. I wager this is the reason Facebook decided to not use Facebook for their own blog posts[2].

[1] https://www.oculus.com/blog/

[2] https://developers.facebook.com/blog

The only thing wrong with it is that you generally have to have a Facebook account to read Facebook content, which means you have to give them your real name. It appears that this month Facebook is allowing people to read this particular post, but they aggressively put the sign up wall wherever they thing it will generate the most conversions. You certainly can not see John Carmack's past posts without a Facebook account. Facebook is not the open web.

Technically you can violate the ToS and set up a fake account, but that's a bit of an inconvenience

Whether or not a post is available to "the public" (signed in or not) is completely the choice of the author, not some mysterious committee at Facebook.
Have you tried to read a page on facebook without an account? It's intended to be an almost unusable experience.

On loading a page, I get a modal popup obscuring all content insisting I "register" or "login", with a "not now" option. Then when you click "not now", the bottom third of the screen is obscured by a fixed overlay.

It is loosely describable as readable, but in practice, it's a fight to read it. The element has randomly generated id, so can't easily be blocked with ublock or similar.

indeed: inspect element -> style='display: none' should not be mandatory to read a page. Grease monkey is an option, but still.
It's coded in react or whatever so it just gets recreated a second or so later.
I agree Facebook is a bad place for placing public content. Note though that it's currently a lot more bearable if you disable JavaScript for Facebook. As someone who doesn't use Facebook at all it's easy for me to keep it disabled with NoScript. Then I just see content, no popups.
And what happens when facebook decides otherwise? Because it seems they already have with their strategy of curating content and information to maximise engagement.
Can you format text (eg different fonts for code snippets) in facebook posts?
In an ideal world this article would not be posted on Facebook.
> To see more from John Carmack on Facebook, log in or create an account.

Yes, it'd be nice if this didn't take up half the page.

> In an ideal world this article would not be posted on Facebook.

I'm certain we can expect a lot more of this as Facebook cozies up closer and closer to Oculus and gang.

> as Facebook cozies up closer and closer to Oculus and gang.

My understanding is that Facebook has “geared up” Oculus: added a lot of staff. I would assume that a majority of engineers who are working on VR were originally Facebook hires; it’s certainly the case for things like back-end / scaling.

It’s not the most visible part of the company, but when Mark says publicly that a project is a priority, that means that the team can have a lot of engineers if they need to.

Oculus job specs are published on the facebook website.
I was referencing blog posts that ought to be on a blog, not in a Facebook post.

Just because someone has worked for Facebook, or currently works for Facebook, doesn't make posting these sorts of articles on Facebook ideal.

Even Facebook knows this... which presumably is why they chose to use a traditional blog style site for their... blog posts[1].

[1] https://developers.facebook.com/blog/

Like it or not, when someone is a public figure, their posts on Facebook get LOTS of views. A larger percentage of internet users ONLY read Facebook these days.

Carmack's profile has almost 10,000 followers and several hundred 'friends' each of which will have been pinged about the new post immediately. Even a popular blog won't be able to do that, that instantly. So you can see the attraction.

Also, on Facebook there is the concept of 'Notes' which are better for long form writing and display in their own large overlay div. Not sure why Carmack didn't use it.

I am not a fan of Facebook, but from a technical point of view the platform does have its merits.

That article is shared to 'Public': it should be visible to non-logged-in users. Not sure what changed — could be an issue with excessive crawlers…

I’ve very convinced that Facebook is very comfortable to let the minority who are not comfortable having an account read a public post -- especially when it’s about engineering. Those are usually on the company blog (without log-in block); Carmack probably was just using internal tool, and didn’t want to bother.

It’s probably less high on the priority list than “give affordable internet access to 1 billion people”, but in an ideal world, posts that are meant for “everyone” should not be gated.

i can read it logged out of facebook

unfortunately there is an annoying box covering up 1/3 of the page asking you to login or signup. it does not "block" any content in that you can still read all of it. but it is highly annoying (and i assume purposely so).

The main question is why Carmack doesn't use the Facebook Engineering Blog. There are no popups or other annoyances there. For example:

https://code.facebook.com/posts/265413023819735/surround-360...

Facebook employees generally communicate internal results or opinion with Facebook posts, a lot like this, using a Company-only privacy setting. Posts like this one sound like something he posted internally first, and just reposted, or changed the privacy setting. I wouldn’t read any more into it than marginal laziness.
>Not sure what changed

Metrics driven design and development. 1) team gets told it has to increase sign ups 2) Product already too popular to go anywhere meaningful with it's content/features 3) Only hope left is to make the experience worse for non-users in the hope to irritate them into being users.

> It’s probably less high on the priority list than “give affordable internet access to 1 billion people”,

Both this awful login form and the cynical project to get the 3rd world online via Facebook are part of the same goal.

(comment deleted)
Carmack: Some times you read HN. If you are reading this, please consider writing on a blog or something neutral.

It is extremely disgusting for your readers to have to log in or else...half of your screen is occupied with spam.

There is people out there that prefer not to report everything they read, when, where, how, how long to a big multinational associated to the US secret services.

I think selling his company to Facebook has far wider reaching implications for privacy than where he hosts his blog, unfortunately.
His company? It's not his company.
It is a funny way to phrase that. If you own a meaningful stake in a business, do you call it your company? I think most people would have referred to it as Palmer's company. However, Carmack did have an ownership stake in Oculus.
Firefox's built-in reading mode was great in this particular case. That page is pretty unusable otherwise :/
"Extremely disgusting" sounds like an overreaction. "Not ideal" maybe, or "not helpful to those of us who don't want to read things in Facebook for privacy or security reasons". But "extremely disgusting" is over-exaggerating the importance of the choice of medium for a text post.
Watch out, the tone police are here. Any hint of hyperbole will not be tolerated.
Look out. They're gunning for you too.
I was just suggesting that people might take the parent poster more seriously if he didn't go straight from 0 to 100 on the pain-meter.

If it was an attempt at humor, it certainly seems like people here didn't enjoy it much.

In general hyperbole for emphasis is fine, but blowing the badness of something out of proportion is a common way that people polarize and shut down otherwise healthy discussions, often unintentionally. HN is a forum to foster discussion, so we should try to avoid doing things that shut it down.

(comment deleted)
I was going to say "criminally atrocious" but then the popup div literally made me vomit excrement.
I know it's not an either or situation -- but in my opinion this is a step up from Twitter. Technical discussions on twitter is super frustrating to follow along. And almost impossible to have intelligent conversations in 140 chars.
Good article. Terrible reading experience.
Could Facebook make the page narrower please?
The character count of a random sentence ("Don't try to do accurate dynamic shadows on GearVR. Dynamic shadows") puts it at 68 characters. The Rules of Typographical Style suggests 66 characters is considered ideal: http://webtypography.net/2.1.2.

This is possibly why their textual content is narrow. It's designed to make it more readable.

Not everyone agrees with the Rules of Typographical Style.
The source you sited as stating 66 characters being "ideal", has an approximate average of 134 characters per line.
Here’s roughly what it’s supposed to look like, http://i.imgur.com/yOndq70.png

Your browser window is just too wide. With such an oversized browser window, a substantial proportion of content on the web, perhaps the majority, is going to have an absurdly wide measure to the point of extreme illegibility. I highly recommend narrowing your window; as a general rule it will dramatically improve web typography.

HTML/CSS technology are really bad at giving page authors easy control over precise text layout. If they make the CSS code short and use percentages, then everything will end up too wide in large browser windows, and too narrow in small browser windows. But if they use fixed widths or maximum widths, it’s easy to screw up and break the layout in some browsers.

P.S. the author directly addresses your point in the linked page, did you read it?

“From a typographical perspective, the most appropriate method is to set box width in ems (elastic layout) as it ensures the measure is always set to the typographer’s specification. Setting box width as a percentage (liquid layout) gives the typographer approximate control over measure but also allows the reader to adjust the layout to suit his or her comfort. This website has been designed with liquid layout to afford readers this control.”

> I highly recommend narrowing your window; as a general rule it will dramatically improve web typography.

That will have the side effect of knocking most sites into "responsive" mode, giving you less of a desktop experience than you believe you're getting.

My monitor is 1920x1080, a fairly standard desktop monitor resolution. Narrowing it back to 1024x768 or something will give you a poorer experience on most modern websites.

I do believe this "typographical style" is more relevant for printed material with smaller font sizes.

You'd think with all of that money, Facebook could hire some typography/layout expertise. Horrendous.
I remember reading that the Galaxy phones have trouble with pixel refresh rates. In that blacks can ghost because the nature of amoled.
The Rift and Vive also use AMOLED screens, so I don't think it's the pixel tech that's the issue. LEDs can turn on and off extremely fast. It's probably that the screen's electronics were made for power-sipping mobile devices running at most 60 FPS and not 90+ FPS gaming.
OLED is the issue. Look into the black smear problem on Oculus DK2 and how they had to half-way fix it by overdriving for a frame and then falling back.

CV1 of the Rift headset is OLED and has the same issue. They have to run the panels at a notch above minimum brightness to work around it and as a result they lose out on true blacks.

https://vrwiki.wikispaces.com/Black+smearing

None of those threads mention the Rift CV1, the Vive, or the Samsung Galaxy S6 or S7 (the ones that fit in the current Gear VR headsets). I tried the test image from this thread http://forum.xda-developers.com/showthread.php?t=2765793 on my S6 and didn't see the issue. That thread and this one https://forums.oculus.com/community/discussion/10924/true-bl... say it's only an issue around areas where the screen is actually black, so keeping things very dark would seem to be worse?
I think I wasn't clear. It isn't a notch above minimum brightness as in running the panel very dim.

It is a notch above minimum as in: minimum is pure black, and instead of every allowing pure black they set it to one notch higher, because pure black causes the smearing.

It isn't an visible issue in Rift CV1 or Vive because they do that as a workaround.

New project: A script that extracts public posts from Facebook for a given user, and formats them for consumption via RSS, or generates content/markdown to be served by Jekyll/Lektor. I should get on that...
Might I humbly suggest a project name? FFSS. For F(acebook|uck)'s Sake Syndication. :)
You just wrote Facebook Fuck's Sake Syndication with 1 extra character, and with more reading difficulty!
Looks like you need to brush up on your regular expressions.

> For F(acebook|uck)'s Sake Syndication

The pipe (|) means or, so the regex is indicating that FFSS can stand for either:

For Facebook's Sake Syndication, or

For Fuck's Sake Syndication

I thought it was clever, anyway.

I don't know about clever, but it's a common idiom on tech forums.
there is literally nothing wrong with jaggies or aliasing
(comment deleted)
Anyone here doing HTC vive dev? I'm really interested myself, but as a poor student I'll settle for hearing other's stories.
I guess you could try google cardboard?
What's the problem with specular lighting on bump maps? I think I see what the issue can be, specifically, that when the bump map texture is smaller than 1-1 texels-to-pixels, then the normal chosen will 'shimmer' between the possible texel values. But can't one use mipmaps for bump maps as well to reduce this?
I think the problem with mimmapping bump maps is that it effectively smooths the surface, so you loose the bump effect.
Can't the same be said for mipmapping textures? Losing detail at low LOD is expected, though I can't picture if bump maps lose 'more' perceptually.