PlayStation VR Will Arrive in October for $399 - <AUTHOR> http://techcrunch.com/2016/03/15/playstation-vr-will-arrive-in-october-for-399/ <comment><USER2> With a 36-million installed base with compatible hardware, ~$150 lower starting cost (including PS4 camera), and the ability for people without a headset to play on the main screen in the livingroom, it looks like Sony might clean up on the first generation of consumer VR.

<comment><USER3> This will certainly be a big step for VR democratisation. I'm surprised they aim for 120hz, it's really amazing. Can't wait to see what gets out of it.

<comment><USER4> That's an 8 millisecond frame time! I've seen physics simulations that take longer, never mind graphics intensive systems like post-processing (think Depth-of-Field, Tonemapping, 'HDR'/Bloom).

I'm skeptical at how this will affect the quality of upcoming VR games since less time to render generally means a scene that is less photorealistic. Then again, maybe the immersion (presence) factor will overcome the graphical drop in quality?

<comment><USER5> Photo realism isn't going to happen in the first generation. Game developers are going to have to be creative in art direction and gameplay instead. And for games that do this well you won't ever notice a drop in quality.

To me, that's one of the most fascinating things about games. Breakout hits make the right trade offs to push the platform further than you thought it could go. This stands true since games were put on computers.

<comment><USER6> At this point, photorealism isn't so much a question of hardware limitations as one of scene complexity and interactivity.

If you have a simple enough subject to start with, and bake enough lighting and shadow mapping into the textures, you can make a photorealistic scene on even previous-generation console hardware. Once you start adding more objects, and allowing more things to move, you start needing to calculate more in real time, and you need more processing and rendering power.

A room with a table and a teapot could probably be made photorealistic on a PS3, even at 90 FPS. A densely populated street with moving cars and pedestrians, however, would have to be fairly visually abstracted to hit that target even on a PS4.

</comment></comment></comment></comment></comment><comment><USER7> The most interesting bit for me was about "Social Screen." If I understand correctly, this will allow two people to play non-VR games on the same PS4 without splitting screen on TV. One person will be looking at the TV, and the other person will be looking at the VR headset. This means that even if we get no good VR games for a while, there will still be nice benefit of owning a VR headset.

<comment><USER8> Keep Talking and Nobody Explodes comes to mind almost immediately here...

</comment></comment><comment><USER9> I'm always surprised at the lack of enthusiasm for VR and AR on HN. Is there something specific about this vertical that makes it lackluster for this crowd?

I get cynicism and all that but given how much HN users talk about on demand delivery, CRM tools etc... things that are relatively boring in comparison, and the massive growth in the VR/AR industry I don't get the lack of discussion.

<comment><USER10> I think VR and AR ( _especially_ AR) has largely failed to prove why anyone should care.

And keep in mind this is coming from someone who backed the original Rift DK and is looking forward to getting the final Rift.

There really hasn't been much in VR-land that isn't just a cool tech demo. "Hey you can walk through this virtual world and it's like you're actually there!" \- yep, sure is cool, but then what?

Both VR and AR are at the stage where we have the technology to make whiz-bang cool tech demos that are legitimately technically impressive, but are not real products the masses actually want. Worse, we _know_ we don't have any real killer applications of this tech, so we're branding a lot of these tech demos _as_ products, which only generates more disappointment in the field.

At a previous job we hacked around for a bit with a Google Glass - which isn't real AR, but certainly has similarities. We never could figure out anything _real_ to do with it. Everyone had tons of ideas for cool tech demos, but the only things they accomplished were being cool and making you feel like you're in a sci-fi movie. We could never come up with anything that was truly a lot of _value_.

Right now VR and AR feel like _very_ early motion pictures - I'm talking about the period between its invention and the development of cinema. We're still at the stage where it's a novelty trotted around like a circus act, and curious people pay a penny to view a 5-second loop of something dumb. Motion pictures obviously found a real place with real substance and lasting demand - VR and AR are struggling to do the same.

<comment><USER11> "I'm talking about the period between its invention and the development of cinema."

Right. Which should absolutely _scream_ to an entrepreneurial crowd there's an immense opportunity here to develop the VR version of cinema.

The time you want to get into an emerging technology is precisely this stage. The groundwork has been laid but the direction is not yet set.

That's the puzzling part to me, that HN isn't all over _that_ aspect of things.

<comment><USER10> I take a less optimistic view on it - we're in this limbo state where the technology exists but no good application has been found or developed.

Now, it can either achieve its Eureka moment and blossom into something really useful.

Or it can continue to wallow in obscurity finding at most a few niche applications.

Not every technology that is invented is destined to become world-changing like cinema or antibiotics. There are plenty that become the Betamaxes and Segways of history. At one point the Segway was also heralded to be the Second Coming of transportation.

Part of the problem is that the groundwork has been laid but nobody has the slightest idea which direction to go in. To be clear, it's not that we have a wealth of choices ahead of us and can't choose which one, it's that we have so few choices ahead of us that look genuinely promising.

\- VR workspaces/entertainment spaces (see: 50 foot theater screen in your living room!)

\- Cockpit-style VR gaming experiences (flying, driving, etc)

\- Room-sized VR gaming experiences ("experiences" might be overselling a bit, all are tech demos where the room-size motion tracking feels more like a bug than a feature)

\- ???

It seems pretty likely at this point that #2 (cockpit style gaming) is likely to succeed, at least moderately, but all of these other things are being tried but just aren't that interesting.

<comment><USER12> I don't think any Eureka moment is needed to find high value applications to implement. Just nobody has executed well enough yet.

Even if you think conservatively and consider only vr-ifying apps we already have: For VR, some types of games (Elite Dangerous, Until Dawn), applications directly related to design of real physical environments and objects. For AR there many obvious industrial applications even with simple overlaid indicators, eg in inspection and manufacturing. In AR games there are also many quite obvious concepts that should work (think eg party games or outdoor games) and you would be way off to say "we haven't come up with any worthwhile games" at this point.

</comment></comment></comment></comment></comment><comment><USER13> Seems like it's only one 1920x1080 screen, so half that resolution per eye at 120hz. That's going to be some chunky pixels.

I'd rather have double the resolution at 90hz with a Vive or Rift :)

<comment><USER14> Is a stable 120Hz frame rate realistic on a PS4? Can it achieve that kind of rate just in normal 1080p output? Or will this relegate the Playstation VR to rendering 5-10 year old graphics? Bearing in mind that VR is a lot more sensitive to frame rate jitter than a traditional screen.

<comment><USER15> I believe (and I could be way off the mark here) there are two modes, one is a kind of frame smoothing to achieve a 'fake' 120Hz similar to what you see with modern LCD TVs, the other is actually 120FPS which is accomplished by dropping the graphics quality down.

You're not going to see Uncharted 4 doing 120FPS natively in PSVR.

<comment><USER15> FYI this slide from Sony explains a bit more about what I was talking about:

[https://i.imgur.com/UijG9Qll.jpg](https://i.imgur.com/UijG9Qll.jpg)

</comment></comment></comment></comment><comment><USER16> It seems like there will be three tiers of VR...

High-End VR: Gaming and graphic intensive applications will run on computers wired to special HMD systems. Vive, Oculus and PSVR

Smartphone VR: This will be the GearVR type experience, dedicated VR appstore of content.

Casual VR: Google Cardboard type devices used for viewing 360 photos and video,download content from existing Play store and Apples App Store.

full disclosure we are making and selling things in the casual VR category ([https://www.indiegogo.com/projects/smartvr-make-your- phone-a...](https://www.indiegogo.com/projects/smartvr-make-your-phone-a- virtual-reality-viewer/x/7469849#/))

<comment><USER17> I'm not sure the PSVR can qualify as high end. And I'm not saying this as a subscriber to PC Master Race Weekly, I'm saying it with the limited specs of the PS4 in mind compared to even the minimum requirements of the Vive and Rift.

Given how those requirements are just north of crazy right now, it follows that there must be something that was compromised on to allow the PSVR to work - and also keeping in mind that the Rift/Vive specs are _that high_ just to get VR that's _acceptably convincing_.. I just can't work up the excitement.

I'm hoping that I'm wrong here, and that they did some kind of insane algorithm or something to do a lot more with a lot less hardware. Anyone who's had hands on the device care to chime in?

<comment><USER18> The insane algorithm could just be "design games that need less power". I mean, why not?

<comment><USER17> And maybe it is just that simple - you don't need super high detail to convey presence.

I just wish I could get my hand on one and see with my own eyes. With VR, there's no substitute.

<comment><USER19> "And maybe it is just that simple - you don't need super high detail to convey presence."

In my experience with various modern VR systems this is absolutely the case. Latency and proper movement tracking is non-negotiable when it comes to achieving an eerie feeling of presence in the simulated virtual world, but rendering detail is far more optional. Nice to have if you're going for true reality, but not required.

If they've nailed the latency and tracking (I haven't used a PSVR so I don't know if they have) the lesser detail will be lost in the noise, sort of like it is now when you compare the PC version of a game (say, the Division, for a contemporary example) to the console versions.

Everyone knows the PC versions of these games are capable of looking better in A/B tests, but many people are perfectly happy with the lesser detailed version.

I buy PC/console releases on console far more often than on PC despite having a powerful enough PC to run new games just because I find avoiding the pitfalls of driver versions, the perfectly standardized voice communications for multiplayer, etc more valuable to me than the extra rendering detail.

</comment></comment></comment></comment></comment><comment><USER20> And with ARM claiming [1] that they will produce mobile chips with PS4 equivalent performance by 2018 ... We are heading towards snow crash.

[1]. [http://www.phonearena.com/news/ARM-says-mobile-game- graphics...](http://www.phonearena.com/news/ARM-says-mobile-game-graphics- will-catch-up-to-PS4-and-Xbox-One-by-2018_id78415)

</comment><comment><USER21> looks like VR/AR is (finally?) the new gold rush! any recommended starting point for Web/mobile dev like me who's interested to try his luck?

</comment><comment><USER22> Does anyone have links to someone playtesting the PSVR recently? One imagines there's some quality lost compared to the more expensive Oculus and Rift offerings, and I'm curious to know the difference.

<comment><USER23> Yeah, it'd be interesting to know if this gives you 'presence'

</comment></comment><comment><USER24> Tested.com has done great coverage of the various VR gear.

PSVR hands on: [https://www.youtube.com/watch?v=Dq5VVnsQgB8](https://www.youtube.com/watch?v=Dq5VVnsQgB8)

<comment><USER25> Those guys always ask really good probing questions in their interviews with VR folk too.

</comment></comment><comment><USER26> It seems history is repeating itself. This VR hype is going to be killed by lack of business innovation. We've seen this exact scenario with 3D printers. Awesome tech, but with a pricetag that has kept those devices from going mainstream. With VR, the guys are delivering innovative tech, but with the oldschool business model, trying to make money on the hardware. Sony would lead the game if they would lose money, offering a simple to use VR headset for $99 -$199, dominating the market and then make money on games and apps.

<comment><USER27> What sort of VR headset do you expect for $99? At that price, you get Cardboard and Gear, at best, and those have underwhelmed the market and people who have tried them & Vive/Rift/PS.

<comment><USER26> The question is: why not lose money on the hardware, to accelerate distribution and put an awesome device in people's hands and then make money on software. So my suggestion would be to sell the $399 devixe for $99. Not push out something crappy

<comment><USER28> Come on Javascript (no pun intended), they'd lose money very quickly. They are already below the price tag of the competition.

</comment></comment></comment></comment><comment><USER29> Neat. Has Sony demoed this yet? I've heard first hand reports of Valve's and Occulus, but I've not heard anything about Sony's yet...

<comment><USER30> They've demoed it a fair bit. Impressions I've heard so far seem quite positive.

This announcement is from Game Developers Conference, which is going on right now and where they're demoing it to a ton of people, so I'm sure we'll get even more impressions soon.

</comment></comment><comment><USER31> Protip to future VR marketers: The generic "staring longingly into the future" pose does not work if you put a freaking VR headset on!

</comment><comment><USER32> The ps4 rendering 1080p at 120hz? Yeah no.

Unless they significantly pare down their graphical fidelity.

<comment><USER33> They're aiming for rendering at 60hz from what I can tell. Graphics will still have to take a hit to meet that, but not quite as badly.

</comment></comment><comment><USER34> Heads up, this also requires a PS4 camera which costs $60 if you don't have one.

<comment><USER35> Also a heads up: Based on Amazon's price history you can usually get it between $40 and $50. If you see it for $60 probably worth waiting for it to drop.

</comment></comment><comment><USER36> Just to clarify, is it possible to use the VR headset as a TV/monitor replacement? I live in a super tiny studio and this would actually make owning a console pretty feasible.

<comment><USER37> Yeah you could probably write a program to put a TV in virtual space and use a live video stream as a texture.

</comment></comment><comment><USER38> I remain sceptical yet hopeful that they've solved the motion sickness problem. Biggest problem for me playing DK2 was spending more than a minute running around in anything first person induced the urge to vomit.

I see that Star Wars Battlefront has been announced, and the idea of that seems excellent. One thing lacking in the Rift demos was a distinct lack of _characters_. Lots of vast, empty landscapes, but no actual people.

</comment><comment><USER39> And with it... Rez Infinite.

I am so stoked.

<comment><USER40> I was hoping for Rez designed around VR instead of Rez with VR tacked on.

I went from wanting to buy a headset to play the game, to wanting to buy the game if I get a headset.

<comment><USER39> Rez gets a leg up from being conceptually built around what we thought VR would be like (think Lawnmower Man), and (according to Mizuguchi) designed to accommodate future VR technology from the start.

The game engine has been significantly reworked to accommodate VR; it offers a 360° panoramic perspective rather than constraining you to face forward, and the playstyle in VR is "look to aim" much like Vanguard V. I'm to understand that the enemy placement in the original levels has been changed somewhat to make better use of the technology, and no one has seen "Area X" (all new content) yet...

</comment></comment></comment><comment><USER41> Go Microsoft, make Oculus work poorly on Xbox One...

</comment><comment><USER42> Looking forward to using it!!!</comment>


Kill sticky headers (2013) - <AUTHOR> https://alisdair.mcdiarmid.org/kill-sticky-headers/ <comment><USER2> Combine this with the recent surge of sticky footers as well, especially on small/mobile devices. Vice is a particularly bad offender: [http://i.imgur.com/ltqYRX9.png](http://i.imgur.com/ltqYRX9.png)

That's a 60px sticky header + a 50px sticky footer on a 480px-tall screen. 23% of my screen space is lost to sticky elements. The footer is only two buttons, "Share" and "Tweet".

Every time you scroll down, the header slides up, _and then back down again_. It's an incredibly distracting experience.

The icing on the cake is the ad in the middle of the article, it's in an iframe that hijacks your scrolling, until you swipe through all _5_ slides you _cannot_ continue scrolling through the article.

Why would I ever subject myself to consuming content this way?!

<comment><USER3> Reader view on iOS Safari makes the web usable on mobile.

<comment><USER4> [https://outline.com](https://outline.com) if reader mode not available -- works in pretty much any (JS-supporting) browser.

A small set of sites fail to render, including Google's Blogspot, using dynamic themes, which are abominations to the Web. _No_ "fix this site's fucked CSS / styling" tools seem to be able to handle that.

<comment><USER3> Clever. Thanks for sharing.

</comment></comment></comment></comment><comment><USER5> My gripe is the disappearing header that reappears at the slightest twitch of reverse scrolling. The behavior needs to work more like drag down to refresh: only reappear with a deliberate and significant scroll "up" (a drag down with the finger) or just stay at the very top where it belongs (it only takes one tap on mobile to get back there).

With most of them if you need to backtrack and read a few lines up, you have to scroll well past the point or the exact text you want to read gets covered by the header.

<comment><USER6> Or just don't re-appear, and leave scrolling alone. If I want to view a header, I'll scroll to the top of the page.

<comment><USER7> Are you on iPhone? It's easy to scroll up on iOS (tap the top bar), but hard on Android. That might be one reason why sticky headers are popular.

<comment><USER8> No, sticky headers are popular because site owners hope for people to browse the site some more.

<comment><USER9> And people do use them.

My theory is that analytics is to blame for all of this. You can track how many people clicked the button in your share header. You can't reliably track how many people left because of it (there could be a million reasons for leaving the page).

So your analytics shows an uptick in engagement by X%, and no clearly discernable downtick. So the header stays.

All it would need is an A/B test or two, but easier said than done...

<comment><USER10> a.k.a survivorship bias

</comment></comment></comment></comment></comment></comment><comment> awinter-py anything that hijacks ordinary scrolling behavior is going to ruin the experience for most users. More and more web pages have found some way to break page down -- either by initially stealing focus or by making scroll completely JS-based.

Sticky headers make pgup/pgdn worse by make the visible size of the page smaller than the window size, so you lose a line or two and have to rewind. The ones that reappear when you scroll up are even worse.

Even worse, when you click to an anchor section on a sticky-header page, the title of the section is hidden by the sticky header.

Take me back to the static web.

<comment><USER11> NYT actually takes the page-down/lines of text problem into account. Odd that others haven't copied.

Now that both position: sticky and Scroll Snap Points from CSS are landing in browsers, those complaints will hopefully be resolved. Scrolling is much better off left in the hands of CSS than JS.

<comment> steve-howard NYT is pretty obnoxious in other ways, though, especially with a touchscreen. If you click and drag to highlight something, it navigates to a different article. If you double-click to select a word, it changes the text size. If you accidentally hit the left or right arrow key while trying to scroll up or down, it again tries to load the next article.

<comment><USER4> And it's not possible to select text at all on Mobile.

I've taken to using alternative links (archive.is, archive.org, outline.com) for sharing the articles simply because it's too much of a PITA to manage the NYTimes.com page itself.

</comment></comment></comment></comment><comment> nv-vn Reddit is even worse with their sticky footer that takes up 50% of the screen. It tells you to install their official app (which is by far the worst Reddit app I've found on Android) to continue. However the footer shows a big orange "Continue" button (implies that you continue through the site, the heading above this saying it will install the app is much less visible than the button's text). Below this, in tiny grey text, it says "Or go to the mobile site" (implying it will redirect to the website, which is in fact the opposite of what actually happens). This is blatantly attempting to confuse users and every time I end up on the reddit site in a mobile browser it revives my hatred for reddit: the company.

<comment><USER12> This is why I append .compact to the desktop URL to browse with their older mobile version. I find it much more usable.

<comment><USER13> You're my hero

<comment><USER14> And mine!

</comment></comment></comment></comment><comment><USER15> AMP is a horrific web standards breaking power grab but if there's one thing that's going to kill it it's that google can't help but put a dang sticky header at the top of every page.

<comment><USER16> Drives me nuts. That's why there's a back button built in to the browser

</comment></comment><comment><USER17> Finally I see something posted about this.

If any of you are interested, I have been maintaining a filterlist that works for uBlock origin that attempts to pin (so they won't move when you scroll down) these sticky headers to the top and remove additional screen real estate hijacking web elements.

It may be a losing battle but I update the list almost daily with all new instances of this web plague that I come across. It also works on Firefox Mobile for Android if you have uBlock Origin installed there.

If you'd like to subscribe, enter the following link[1] into your 3rd party filters menu within uBlock Origin - just paste it into the 'Custom' URL entry at the bottom of the '3rd party filters' menu option.

The project homepage is at: [https://github.com/yourduskquibbles/webannoyances](https://github.com/yourduskquibbles/webannoyances)

Cheers!

[1] [https://raw.githubusercontent.com/yourduskquibbles/webannoya...](https://raw.githubusercontent.com/yourduskquibbles/webannoyances/master/ultralist.txt)

<comment><USER18> Thanks so much for working on this!

</comment></comment><comment><USER19> Thanks for this!! It's unbelievable how OCD I am about this particular detail. It feels like I'm physically constricted as I scroll through a webpage. The other gripe is a webpage taking up 100% of the width of the page. I feel like everything should have at least a small border so I know I'm not missing content outside the width of the page.

</comment><comment><USER20> > The bookmarklet just finds all fixed-position elements on the page, and > removes them.

That will do quite a lot more than remove sticky headers.

<comment><USER21> True, but remember this is a bookmarklet, not an extension. So you use it on a site that is actively annoying you. If it breaks the site, you can refresh.

</comment></comment><comment><USER22> > Finally, I just don't care right now about navigating your website, or > following you on Twitter. I'm trying to read. Let me focus on that for now, > please.

Agreed. Those sticky headers almost always wind up on sites like blogs and text articles where they have no place and just reduce usability.

</comment><comment><USER23> I don't really mind the slim ones on desktop, but they seem to be trendier than ever and particularly annoying on mobile.

<comment> apk-d What drives me mad on mobile is the headers that expand/collapse depending on whether you're scrolling up or down, except without any hysteresis which makes them randomly activate as I scroll down. This, combined with the additional lag caused by JavaScript, occasionally makes me ragequit from reading an article. I don't know whether this is just my device (mid-end Xiaomi) or a complete lack of usability testing.

<comment><USER24> A lot of stuff works amazingly well when you're on the same wifi network as the development server and use a top of the line iPhone 7. I assume most "usability testing" from such websites are done like that.

</comment></comment></comment><comment><USER25> Great minds think alike - I also have an 11' macbook and got annoyed enough to make a chrome extension [https://chrome.google.com/webstore/detail/zapfixed/jgiflpbko...](https://chrome.google.com/webstore/detail/zapfixed/jgiflpbkoefoepgmeifoglafkomgjbge?hl=en)

I think his one may be better. Mine toggles using jquery.

</comment><comment><USER26> You can use this userscript [1] to hide most floating headers when you scroll down the page. (When you scroll up, the header is displayed again, so the site doesn't become unusable.)

[1] [https://iwalton.com/wiki/#NoFixed](https://iwalton.com/wiki/#NoFixed)

</comment><comment><USER27> Sticky headers bother me especially when trying to read news sites on a laptop. Similar bookmarklets I have found helpful are "static ding" and "static nuke" (staticding.org). Static Ding just changes "fixed" DOM elements to "relative". They remain in the DOM and visible but they can scroll off screen. I use that to read (for example) New York Times op eds because a NY Times' link to view comments is on the sticky header itself. If I don't need continued access to a sticky header, I use Static Nuke, which sets "fixed" DOM elements to "display: none", similar to the posted bookmarklet which removes them from the DOM.

</comment><comment><USER28> Why not set the position to absolute instead of completely removing the element. The solution to losing the navigation is reloading the page, seems unnecessary.

</comment><comment><USER29> Oh cool, the bookmarklet also works on medium.com to remote the utterly annoying bottom bar. Bookmarked and will be used.

With a 15" laptop screen the medium.com "Never miss a story from ..., when you sign up for Medium."-bar takes up like 10% of vertical space.

</comment><comment><USER30> I'd love to have such a feature, but this doesn't work for me. On Chrome, it's in my bookmark bar but it has no effect. On Firefox, it doesn't allow dragging to the bookmark sidebar. (I actually don't see how it could possibly work - how could something sitting in the bookmark bar have such an effect? But I'm happy to grant the possibility there are things I don't know about how browsers work.)

What am I missing?

<comment><USER31> Here's the introduction:

[https://support.mozilla.org/en-US/kb/bookmarklets-perform- co...](https://support.mozilla.org/en-US/kb/bookmarklets-perform-common-web- page-tasks)

When you properly install it, instead of the link, there should be an executable code in the bookmark (if it starts with http: or something, it isn't). To activate the code, first you visit the page on which you want the code to work, then you click at the bookmarklet.

<comment><USER30> Ah! That works, thanks!

</comment></comment></comment><comment><USER32> Reminds me of a bookmark I made for work to override a JavaScript function that clears a form. So test input on our live site will stay in a form and we can stop typing it in over and over. the nice thing about the web is being able to manipulate the front.

</comment><comment><USER33> Heh, walking the dom to evict these kind of elements is a pleasure of mine.

I have too bookmarklets very similar. Makes for a nice tree recursion thinking exercise at first.

ps: yes sticky is subtle and nowadays it's often wasting space.

</comment><comment><USER34> The problem is that they convert, so they are going to keep being used.

<comment><USER35> Citation? I ask this because data at my company has shown that virtually nobody taps on the header, especially on hamburger menus.

<comment><USER34> Guess my citation is also anecdotal, we have a series of extremely high converting sites in the rehab market that drive calls from the sticky header.

</comment></comment></comment><comment><USER4> Is there a way for bookmarklets such as this to work in a mobile browser?

I find that they don't, because I don't have a bookmarks bar I can add the bookmarklet to.

It does, however, work within the demo page itself.

<comment><USER36> In iOS it would require a Safari action extension that lets you load arbitrary JS. In Android I'm sure there's a bunch of apps that do something along those lines.

Edit (no affiliation): Safari Snippets by ydangle [https://appsto.re/us/biIhdb.i](https://appsto.re/us/biIhdb.i)

</comment></comment><comment><USER37> So simple, yet so useful! How have I not found this before? It even kills the annoying "Log In/Sign Up" pop-up dialog on facebook pages!

</comment><comment><USER38> I must say I dislike just as much the very similar trend with mobile apps to save a few lines of screen space, particularly with mobile web browsers.

</comment><comment><USER39> In Firefox you you can go to about:config and set layout.css.sticky.enabled to "false", which is helpful.

</comment><comment><USER40> And one day someone will invent sticky body. Oh, wait, it is called flash :)

</comment><comment><USER41> 1Blocker recently added a 'tap to remove elements' feature.

</comment><comment><USER42> > I use an 11" MacBook Air, which means that I don't have much vertical screen > space.

Maybe that's the problem? I use 27+ inches monitors at home and office, and never had any issues with sticky headers.

Leave them alone! :)

<comment><USER43> Your answer to a problem no one should be forced to deal with is to spend more money on a bigger monitor?

Not only does that not address the issue in the slightest, but that's very much like saying if you don't like the banner ads run across the bottoms of t.v. shows you should buy a bigger t.v. so it feels smaller.

</comment></comment><comment><USER44> Sticky headers ave their place, but they should be minimal and supply links to other locations on the site. They should never be used for advertising.

</comment><comment><USER45> But… I like them. It makes navigating easier. I'm talking about just the nav bar though—like the one here on HN.

<comment><USER46> Right. But the nav bar on HN isn't sticky.

</comment></comment><comment><USER47> Is this being reposted as satire? Mcdiarmid.org has a sticky header on mobile in 2017...

<comment><USER48> Afaik, only this one article uses a sticky header - and only then it seems to be to show off the bookmarklet

</comment></comment><comment><USER49> getComputedStyle = undefined

Don't visit websites you don't like. That's the only way.

<comment><USER50> I passionately hate my uni's automation website, it's a great example of haphazard overkill, but I need to choose my lessons each semester. What should I do, switch schools?

</comment></comment><comment><USER51> Honestly, this is an issue with having absolutely terrible browsers. This sort of thing should be easy to do without having to know javascript. The user just has so little power with the user interface they're given for interacting with the internet. Obviously, this will change over time, but the transition period is very frustrating.

<comment><USER25> A trouble is it's a moving target. As soon as you sort one annoyance they'll invent a new one. That said Chrome could really do with a simple do not autoplay video setting.

<comment><USER52> > do not autoplay video setting.

Not to mention _sound_.

<comment><USER53> At least they added the feature to mute a tab. No more hunting for that one ad that's making sounds.

</comment></comment></comment></comment><comment><USER54> I'm sympathetic, but forcing style calculation for every element on the page may not be the most performant solution.

<comment><USER55> It doesn't need to be. It's a bookmarklet.

You click it when there's a sticky header. If it takes 200ms to run, that's not a problem.

If it were a browser extension running on every page, sure, that's a disaster.

</comment></comment><comment><USER56> A lot of blanket statements in here, but there are sites out there that have tested them and found sticky headers useful in some way. We're not the only demographic.

I personally don't like them either, but I also know how to scroll. I've seen instances on long pages where there are audiences who have a hard time navigating through a lot of content without a constant point of reference.

</comment><comment><USER57> Nobody mentioned the yellow sticky header on the "kill sticky headers" page...?

<comment><USER58> It's to help you test out the script on the page

</comment></comment><comment><USER59> Well this blog post is _really_ shortsighted for a couple reasons:

1\. There's position: sticky; recently added to CSS: [https://drafts.csswg.org/css-position/#sticky- pos](https://drafts.csswg.org/css-position/#sticky-pos)

2\. Position: sticky; is gaining browser support fast: [http://caniuse.com/#feat=css-sticky](http://caniuse.com/#feat=css-sticky)

So what I draw from that are the following insights:

3\. The author of the bookmarklet should update the code to also check for elements now using position: sticky;

4\. Sticky elements haven't peaked on the web, the deluge is _about_ to begin actually. Brace yourselves…

<comment><USER60> Does this little update to the bookmarklet solve the issue? I'm not a webdev, feel free to fix it.

(function () { var i, elements = document.querySelectorAll('body *');

      for (i = 0; i < elements.length; i++) {
        if (getComputedStyle(elements[i]).position === 'fixed') {
          elements[i].parentNode.removeChild(elements[i]);
        }
        // 2017 update:
        if (getComputedStyle(elements[i]).position === 'sticky') {
          elements[i].parentNode.removeChild(elements[i]);
        }
      }

})();

<comment><USER61> Almost. This modification would cover it:

        ...
        for (i = 0; i < elements.length; i++) {
           if (getComputedStyle(elements[i]).position === 'fixed' ||
               getComputedStyle(elements[i]).position === 'sticky') {
             elements[i].parentNode.removeChild(elements[i]);
           }
        } ...

There are probably more clever ways to go, but this will do the trick. BTW haven't found many sites using "sticky", but good to be ready just in case.</comment></comment></comment>


Create Amazingly Effective Emails - <AUTHOR> http://clickhere.io <comment><AUTHOR> For entrepreneurs, startups and small business owners who communicate with their tribe via email: Smart technology to instantly boost email click-through rates</comment>


Dynamic Forms with Django and Vue.js - <AUTHOR> https://medium.com/swlh/building-dynamic-forms-with-django-formsets-and-vue-js-f3c6e2dddd4a <comment><USER2> Very interesting. I was thinking of using Json Schema forms to populate [0] models in Django where we have a JsonField. Is it possible?

[0]: [https://github.com/koumoul-dev/vuetify-jsonschema- form](https://github.com/koumoul-dev/vuetify-jsonschema-form)

</comment><comment><AUTHOR> Hi everyone, I've created this blog post as a guide on how to use Django nested formsets together with Vue.js to build dynamic forms. I hope you can find it useful!</comment>


The Restart Page: rebooting experience from vintage operating systems - <AUTHOR> http://www.therestartpage.com/# <comment><USER2> This is brilliant! Sites like this remind me of what made the Web great: nothing to sell you, nothing to advertise, nothing to buy; just some nerdy amalgamation of the reboot sequences of yesteryear.

<comment><USER3> Not that you would have discovered the page without a hyperlink to it. Maybe, just maybe, that's what made the web great. ;-)

</comment></comment><comment><USER4> The Amiga one is wrong. It shows a 2.0+ restart window, but then does a 1.3 boot when you click it.

Edit: Also, there are some oddities with the Windows 2000 one. The gradient- bar... thing, scrolls from right to left, but it should go the other way. And the boot progress bar starts out solid and ends up dashed, but should do the reverse.

<comment><USER5> The XP one makes an alert noise, and then the shutdown sound. As I understand it, the error noise is some program crashing or showing an error in the background, but you can't see it because, well, it's showing that shutdown screen.

Also, on the Windows 95 and 98 ones, you can double-click an option to do that action - instead of clicking e.g. "Shut down" and then OK, you can just double-click "Shut down" to shut down.

</comment></comment><comment><USER6> Interesting to note the patterns of where you put 'default' actions.

Most of the Mac screenshots have the 'ok' button on the right, while windows is usually (but not always) on the left.

This is always a UX debate when designing something new, and you can always find supporting examples of doing it a variety of ways. It's a bit surprising that it still hasn't been settled after all these decades.

<comment><USER7> Maybe because settling UX decisions that have become part of habits, documentation and shared visual language in one environment in favor of the complete opposite would by itself be worst practice in terms of UX?

(see the changes of Windows' Start button and its surroundings and how users appreciated it)

</comment></comment><comment><USER8> Not present for reasons obvious to end users: the OpenVMS or AS/400 restart pages. Usually just a vague memory for them. ;)

</comment><comment><USER9> One of the nice things about being an old fogey is that I've seen almost all of these...

</comment><comment><USER10> Awesome. but would have liked to see some old Linux, SunOS, IRIX, etc. reboot screens.

</comment><comment><USER11> This is amazing. Recalling many times trying to press DEL quickly enough to get into BIOS set up... sadly doesn't work.

Has anyone found an Easter Eggs?

I know Windows Me was bad, but did its gradient progress bar really go backwards?

</comment><comment><USER12> I felt an instant of panic when I saw the restart countdown.

</comment><comment><USER13> The Amiga restart even has floppy drive sounds.

<comment><USER9> Nice!

I wish the Mac SE one had the classic BING! and then hard drive sounds. Lots of memories of restarting Mac SEs to play games.

</comment></comment><comment><USER14> Wow. The Amiga one brings back some memories.

</comment><comment><USER15> _" Sorry mate, but the Restart Page only works in desktop computers. We think that in order to reproduce the original rebooting experience you need to be seated in front of your personal computer, as we used to do back in our beloved Amiga Workbench days. Press the button below to email yourself a reminder to revisit The Restart Page."_

Meta and whiny trigger warning.

Not a chance. I don't do any casual browsing on my actual computer. Reading this has just made sharply aware of that, which is interesting in itself, so thanks, I guess!</comment>


Impact HTML5 Game Engine released - <AUTHOR> http://www.phoboslab.org/log/2010/12/brace-for-impact <comment><USER3> The grand list of similar (free) projects:

<http://easeljs.com/>

<https://github.com/biilly/doodle-js>

<https://github.com/fairfieldt/xcjs>

<https://github.com/batiste/sprite.js>

<https://github.com/mrdoob/three.js>

<https://github.com/ysimonson/canvas.js>

<https://github.com/davebalmer/jo>

<https://github.com/lostdecade/diggy>

<http://gamejs.org/>

<http://www.aframejs.com/>

<http://gamequery.onaluf.org/>

<http://www.kesiev.com/akihabara/>

<comment><USER4> Does anyone have any experience with one or more of the above, to help narrow down the field of viable frameworks?

<comment><USER5> <https://github.com/mrdoob/three.js> has 900+ followers on github, by far the biggest project from my initial analysis.

<comment><USER3> I watch (follow) three.js on github for a while and I see frequent activity (commits, pull requests) on the project. Compared to most of the other (2d, simple stuff) frameworks this one is a full blown 3D engine albeit it does only rendering (no collision detection etc).

</comment></comment></comment></comment><comment><USER6> Biolab <http://playbiolab.com> runs so smoothly on a mobile web browser it's worth $99 just to see how it's done.

Purchased a license immediately :)

<comment><USER7> Sorry, it doesn't. The only publicly released game, his Biolab Disaster, loads an initial screen and just stops. This is on an iPhone 4, having cleared the safari cache and even restarting the phone. Not exactly impressed.

<comment><USER8> iPhone 4 here, smooth and addictive despite the 20 secs it took to load ( wifi )

<comment><USER9> It's a bit choppy on my iPhone 4, but it does work just fine for me. Choppy, but playable.

<comment><USER10> Considering the last three parent comments are using an iPhone 4, the diversity of performance reports astounds me.

</comment></comment></comment></comment></comment><comment><USER11> Quite a nice job, especially with the editor. If you want a bit of a lower level, open-source framework there is <https://github.com/batiste/sprite.js>

<comment><USER12> Wow! that's awesome. I just checked the demo links in the readme. Sprite.js has collision too (haven't checked how it does collision).

I tried to find out if three.js supports collision and I came across this issue <https://github.com/mrdoob/three.js/issues/issue/49> which says that three.js will focus on rendering part alone. And mrdoob suggests JiglibJS (<http://www.jiglibjs.org/>) on the same thread.

The other stuff available right now are:

* gameQuery, a jquery plugin <http://gamequery.onaluf.org/>

* Akihabara, an NES style engine <http://www.kesiev.com/akihabara/>

* xc.js, new one under dev <https://github.com/fairfieldt/xcjs>

I however have to mention that ImpactJS looks more complete and solid than the rest. I have a lot of kids coming home asking for small games, so made a few play Biolab (i liked it too) and was waiting eagerly for ImpactJS.

P.S: Wasn't it mentioned on the impactjs website that it would be free? Well not that I care about the $99 fee.

</comment></comment><comment><USER13> I am for one happy they charge money. I am happy paying knowing it provides incentive for developers to make product even more awesome.

</comment><comment><USER14> Currently Audio support in html5 in iOS is really bad, and there's no way around that. Native code is the only realistic option right now for games on iOS. I don't see Apple going out of their way to "fix" the situation either.

Specifically, telling an Audio element to simply load and then play a sound fails much of the time, or takes upwards of a full second to start playback of a very short sample file.

Not to mention that iOS specifically prevents an Audio element from playing unless it is in a function responding to user touch. This means background sound effects and such are effectively impossible. I'd love very much if someone told me (with working sample code) that I was wrong.

</comment><comment><USER15> I kind of think that $99 is a lot for a js library. But then again its really well done and a game like biolab (<http://playbiolab.com/>) runs so smooth. It might be worth it.

<comment><USER16> Game-related libraries and engines can get expensive. They're both 3D, but C4 and Torque for example can both cost >$300USD.

It's pretty expensive, but given how well that demo worked i'd probably buy it if i did any javascript.

<comment><USER17> That price is totally worth it though. I'm finishing up a first version of my own (native) C++ 2D engine. It runs smooth on iOS and Android, PC and I'm going to get it running on Bada, WebOS and Mac OS as well. The time it took me to get this up and running is around 1000ish hours, and I'm pretty experienced in the area. Going to put in 3D as well soon. :)

<comment><USER18> I am probably in your customer target group.

How it will compare with other engines, for example Unity3d. It will be only C++, are you adding a script language on top to make development faster?

<comment><USER17> I'll be adding lua as a scripting language, but it probably won't be in v1.

That said, I don't really want to take the same direction that unity is currently taking. Since the engine that I wrote currently pretty much works on every mobile platform, I'm aiming to sell source code licenses to game companies.

What kind of solution are you looking for?

</comment></comment></comment></comment></comment><comment><USER19> I'm shocked, _shocked_ to find that gambling is going on in here!

</comment><comment><USER20> $99 to make games with no sound, dodgy input, and a tiny fraction of the graphics and CPU power of native code.

In case you've forgotten what native games look like: <http://vimeo.com/16945125>

EDIT: I wouldn't be critical at all if this wasn't being sold. Since it is, I'm criticizing it as a business proposition, and it's a bad one. When games like Rage HD are being sold for a few bucks, I don't know how one would even make the $99 back on this engine.

<comment><USER21> Let me know when you get Rage running in a browser.

Also let me know when you get Rage running on all platforms with no modification to the code.

<comment><USER22> <http://en.wikipedia.org/wiki/Webgl>

[http://mrdoob.github.com/three.js/examples/geometry_minecraf...](http://mrdoob.github.com/three.js/examples/geometry_minecraft.html)

Not there yet, but it's a start.

<comment><USER23> I wrote a little WebGL last week, and it seemed like a really solid API. Auto- compiled shaders right in the page as scripts, conversion between js arrays and GL buffers is easy, etc. The only major problem in Chrome 9 beta at least is 100% pegged CPU even on a simple scene...

<comment><USER24> Try starting Chrome with: --enable-accelerated-compositing

</comment></comment></comment></comment></comment><comment><USER25> A little OT, but where do game designers here tend to buy their artwork? Is there an equivalent of ThemeForest/GraphicRiver for sprites and other game assets?

<comment><USER26> www.wayofthepixel.net isn't bad for finding artists looking for contract work.

</comment></comment><comment><USER27> I've been waiting for this for quite some time now. I just picked up a license solely for the purpose of checking out his code for the map designer.

Can't wait!

</comment><comment><USER28> I'm not sure if it's technically feasible, but there is probably a huge market for a game engine that can export JS/Canvas code to a native app code.

I think now that Apple lighten up on their developer rules this is now a possibility.

</comment><comment><USER29> purchased! now I have a toy to play with during christmas :-)

<comment><USER30> any experiences? how well is it documented? I plan to buy it as well. 99$ is very little compared to the development time you might have doing it yourself.

</comment></comment><comment><USER31> If you are interested in getting paid to work on a small ImpactJS project, get in touch: yosephgilad AT gmail.

</comment><comment><USER32> And there we go - the typical HN oh no, it costs money ($99 for an engine, mind you, that may save you hundreds of hours development time). How much do you charge per hour? Can this library save you hundreds of hours? Do the math.

I am not surpirsed at all that the average tech startup is a failure, with more than half of the people failing to get the "charge money for product/service" model everyone else in the world is using.

Oh no, it costs money. So what exactly are you trying to start that succeeds without having a price tag on it? Man, I get tired of this, really. For every spot-on comment on HN, I read 5 that make me dumber each day.

<comment><USER33> For the game market right now, no, it's not worth $99, because:

1\. HTML5, and more specifically Canvas, isn't ready to deliver on its gaming promises yet. Too many slow/incomplete implementations to be fully cross- browser/cross-platform.

2\. You will get an almost identical engine with a strong community ecosystem if you use Flixel and a map editor(e.g. Flan, DAME, Wasabi M). And that resulting game will be tailored for the Flash portal market. Here is a perfectly great game made for Ludum Dare 19 in 48 hours in Flixel: [http://www.ludumdare.com/compo/ludum- dare-19/?action=preview...](http://www.ludumdare.com/compo/ludum- dare-19/?action=preview&uid=528) And here is a different LD19 entry that was done with no engine at all, just raw haXe: [http://www.ludumdare.com/compo/ludum- dare-19/?action=preview...](http://www.ludumdare.com/compo/ludum- dare-19/?action=preview&uid=2982)

3\. In a year it is likely to be obsoleted by engines based around other HTML5 technologies(CSS and SVG make for stronger "general 2D scenegraph" technologies, and WebGL is faster). It's a feature-poor engine - <USER2> highlights are the collision system and map editor - and the existing free ones are similar.

If you do buy this engine, it's probably because of ignorance, which in itself is a bad sign. There's reams of game code lying around the internet, and the most important thing isn't having the code but having an understanding of how it works. You are better served by buying a book on engine creation, reading that, and reading open source engine code, than to buy one set of documented engine code and only read that.

The only time this equation differs is when we're talking about features that are not dime-a-dozen and are truly a pain to integrate properly. I would be more impressed if it had one or more of:

* A tightly integrated full-physics engine(in addition to the basic platforming collision)

* Scene serialization/in-game editing

* More of a story for UI code - menus, settings, user profiles, keybind configuration, etc.

* Networking features

* Features for AI design(for example a state machine editor).

<comment><USER34> 1\. agreed.

2\. flash = javascript + super vector libs + sweet IDE. it has been around for a decade+ so yes: it is better.

3.a. 3D (webgl) does not make 2D obsolete. I'm not sure you imply that?

3.b. not everyone wants a scene graph for doing games. SVG + CSS is superior if you want a scene graph but plenty (and i would argue: the best) libraries for opengl, sdl, you name it are non scene graph driven.</comment></comment></comment>


Internet anemia in Australia - <AUTHOR> http://blog.binarybalance.com.au/2012/05/12/internet-anemia-in-australia

<comment><USER2> Internet plans in Australia are pretty bad. I've found Telstra to be reliable until recently. I live in Melbourne and the quality of service has been degrading for some time now, especially in the CBD. However, I was recently in a small town and the quality was excellent. Depends on where you live. And one more thing, I've tried Optus and Vodafone - they have both been equally bad. I am stuck with Telstra because of a plan now :).

<comment><AUTHOR> It does seem that if you're looking for the best coverage in regional areas, Telstra is pretty much the only show in town. But regional isn't that important to me and I've been traumatised by Telstra in the past so just want nothing to do with them anymore. :)

Optus 3G coverage can be pretty crappy for my particular circumstances, but 3G is more or less available where I most often need it, so I have no major complaints.</comment></comment>


How Stripe teaches employees to code - <AUTHOR> https://stripe.com/blog/teaching-employees-to-code <comment><USER2> When I worked for Eventful, I organized several study groups for beginners similar to this.

Like the Stripe team, participants in these study groups also found that cross-departmental collaboration improved. After learning the fundamentals of coding, people understood better how to work with engineering teams.

We also found a few people out on the edge of the bell curve who had strong engineering aptitude, including one fellow who eventually became a stellar engineer for us.

The main difficulty is that you need a lead who enjoys teaching. Personally, I find the challenge of explaining concepts at varying audience-appropriate levels fascinating and stimulating. We had one other fellow lead a group, and he had a good experience too. But as you can see from this discussion, not everyone wants to take this on.

<comment><USER3> One doesn't have to lead all lessons. Linux can be taught by Linux admins. Setting up personal workstations with Vagrant, etc can be taught by desktop team. HTML/CSS can be led by FrontEnd dev.

Also, these training courses are great, but ultimately it costs $ to the company.

<comment><USER4> Even the best investments incur short-term balance sheet deductions.

<comment><USER5> Sorry to be pedantic, but you are buying an asset with another asset there is no deduction on the balance sheet.

</comment></comment></comment></comment><comment><USER6> Flipping this the other way - a company that works in a particular area, whether it's law, finance, retail, advertising, anything - it's important to educate engineers about the specifics of that industry. The alternative is to forgo bottom-up innovation in the company (with engineers that don't have enough business context) and risk embedding a command and control approach to feature development (coming in from sales, through product management, into engineering design, all the way down to the interchangeable coding monkeys).

<comment><USER7> What's most important is that engineers have contact directly with users or their representatives and get a grasp of how and why their code is used in real life.

The more this gets filtered through layers of communication and management, the worse the software will be to use.

Making the programmers understand the subject area on their own also has a benefit, but it seems a far more costly way.

<comment><USER8> If the business side, specifically product management / direction is reasonably skilled, you're missing out on a lot not talking with them regularly.

Talking directly with the users is fine. But if that is your sole input, something is probably broken.

<comment><USER7> Yeah, that's what I mean by "or their representatives".

<comment><USER8> Ah, okay. Took that to mean customer support or similar. Customers sometimes describe what they want, not what they need, what they would pay for, what might change things entirely, etc. There is some amount of product direction that is made without existing customer input.

<comment><USER7> Yeah, representatives" is not the best word.

</comment></comment></comment></comment></comment></comment><comment><USER9> I'm currently running a very similar thing over at Atlassian. I was brought in to run their prototyping, and one of the things I immediately noticed is many of the designers didn't have the tools they needed to make proper prototypes. Rather than just teach them on invision/atomic/principal, I figured it'd be better to just teach them how to do front end dev. We're now holding lessons for a 2 hour block every week in 10 week cycles, and that seems to be the best for people schedule wise. Originally we did all day courses but too many people had conflicts. Course notes are here if anyone is interested: [http://prototype.guide](http://prototype.guide) \- also includes a small electron server to help dynamically compile stylus/pug.

<comment><USER10> This strikes me as the wrong approach. Front End Dev can be but it not usually that great of a prototyping tool.

Doing it this way they'll end up spending time working on things that aren't designing (fixing css bugs, etc).

Also Prototyping tools overlap more with how many designers think (the tools are made for designers), while html/css/js overlaps more with how programmers think (the technologies are made for programmers).

<comment><USER9> I think you're right if the designers would _only_ end up using code for their prototypes. One of the things I really try to teach is to use the right level of prototyping for what you're trying to test (whether that be paper, clickthrough, or code prototypes). The reality though is that you don't really need courses for paper and tool-based prototyping. Invision and other tools out there have done a great job in being quickly learnable and easy to use. Front end dev however is a different beast. But if you're designing micro- interactions and anything with a lot of motion it can be really tricky to do those without code. By teaching the designers to code, it allows them to cover all ends of the spectrum when creating prototypes. Also it lets them communicate with the engineers in a much deeper way - very valuable since Atlassian has been a very engineering based company for a long time.

</comment></comment></comment><comment><USER11> This is great! I think every one should have some fundamental knowledge of how coding works, especially those working at SaaS companies who aren't directly involved in code. It would definitely be a confidence booster to those who are in roles where the primary function is supporting software and the processes (and bugs of course) around the primary product.

The problem we have is that we are strapped and everyone is pedal to the metal every hour we are at work. We just don't have the time to sit down and layout these kind of courses for all the employees and then follow through on properly teaching them. I sure wish we did. I can see how at large stable companies this can be a huge win, but the reality is for the smaller fish it's tough to pull this off.

</comment><comment><USER12> There is substantial domain knowledge you require to code safely.

Explain someone who hasn't been exposed to how numbers are represented in memory that doing financial stuff with IEEE 754 floating point numbers (default in JavaScript and others) can lead to precision errors, with possible financial consequences. Very hard to do without going all the way to the basics.

Or maintainability, security, configuration, construction for verification, performance, scalability, concurrency, thread-safety... and all non-functional requirements.

You can save money in less skilled people. I have fixed bugs implemented by self-taught guys. I remember profiling a service experiencing service degradation (with terrible financial consequences) and finding a O(2^n) function that could be O(1). That's the kind of risk you expose yourself to.

<comment><USER13> Teaching non-coders to code isn't primarily about getting them to do core engineering work, although I personally love the idea that that could happen over time for ones who wanted it. These classes don't have folks implementing feature requests for our payments APIs; they're largely producing side projects so that they understand the world their engineer coworkers live in every day.

Also, if O(2^n) code made it into production, that isn't a failure of the programmer, that is a failure of the system.

We want to be serious and rigorous about engineering process, because bugs at Stripe could affect a lot of peoples' livelihoods. Accordingly we implement things like code reviews, automated testing, and performance monitoring. We make _substantial_ efforts on all of these, and they improve the quality of output for all developers, including both ones who picked up coding late in life and ones who've been coding since age six, have a CS degree, and certainly implemented an O(2^n) function at their first job [+].

Other companies doing meaningful things should also be placing their bets as to process improvements as to reduce failure. "Hire only people who don't make mistakes" seems to be a hard bet to win with.

[+] I'd never point fingers at anyone for this since it is entirely natural but since it was me I feel less guilty about it.

<comment><USER12> Learning is good. I am OK with people going outside of their comfort zone and learning about other disciplines, it helps people empathize, appreciate the effort of others, it facilitates collaboration, etc.

But we don't say: doctors make a lot of money, I am going to go to a doctor camp and learn to think like a doctor in 12 weeks! Then I will work as a full- stack doctor and become rich! But replace doctor with some software engineer and suddenly it makes sense.

Some people argue that we don't do life and death stuff, just harmless friendly websites. But one careless mistake can result in personally identifiable information being leaked for millions of people. Do that in healthcare and it's a HIPAA violation with only 1 single record instead of millions and you can get fired with your license revoked.

Then, I am not saying or implying "hire people who don't make mistakes". Everyone makes mistakes. Even the top 1% of top performers make mistakes.

The difference is how those mistakes happen and why. Mistakes can come in all forms, because we make assumptions and sometimes those assumptions can be wrong. The reason we can make fast decisions is because the human brain simplifies problems by making assumptions. But the assumptions made by a trained person are different.

<comment><USER14> Well realistically, someone could become a reasonably _functional, useful_ doctor in 12 weeks, but the problem is they'd kill people pretty frequently. Bad programmers just write bad code, so if you're building a stupid website it's a lot less bad when it goes wrong.

</comment></comment></comment></comment><comment><USER15> Take recruiting for example, would that really allow you to have a more technical conversation with a prospective employee? If they are any sort of engineer they'll run circles around you in every sense, so what's the benefit here? I'd love to see the data breakdown of how/why this benefits certain jobs or teams.

<comment><USER16> I definitely think the knowledge would help, especially given the rigor in a course like this one - it's basically a part-time coding bootcamp - but I don't know if that much is necessary. As a recruiter I think it'd allow you to get a sense of the degree of nuance involved in replying to technical questions. You'd have a better idea of how to ask for details from a resume and maybe jot down some notes, even if you might not grasp the full scope. You could even ask them to help bridge the knowledge gap a little, and get an idea of how they interact with non-engineers. Anecdote, my girlfriend worked for a staffing agency and just hearing me talk about work helped her see tech resumes a bit more clearly.

<comment><USER17> Definitely agree. At the trivial level it could cut down on the Java/JavaScript equivalency, and at the higher level is that visibility into how they conduct engineer/non-technical interaction you mentioned (although at that point I don't think the full meaning of non-technical is a fair label).

</comment></comment></comment><comment><USER18> How about opening the course and sharing on github so other can benefit/help improve as well?

<comment><USER19> Open sourcing material from within a company takes a _lot_ of time and effort. It has to be a reasonably high standard to be something that can represent the company publicly. Not everything has to be open sourced -- why shouldn't they feel free to run their coding class internally? Anyway, it would just be another jumble of intro material and tutorial.

</comment></comment><comment><USER20> I would humbly suggest that they cease and desist from calling their workers stripes.

<comment><USER21> Seconded.

</comment></comment><comment><USER22> Everytime there's a post about Stripe, it is a positive post. Programms they initiate, people they hire, how they act in their business. To me they seem like an example of a 'good' company with great culture as opposed to what you read about Uber [edit: removed caps] and co. these days, very refreshing!

<comment><USER23> Did you just comment in a Stripe post just to say "Oh look how bad Uber is compared to Stripe!"?

Really. I like Stripe, I dislike Uber, and none of this is warranted.

<comment><USER22> No, I meant to praise Stripe (or at least how they appear to me based on what you read about them in public) first and foremost. As many articles you read about companies these days highlight negative practices (I mentioned Uber as the prime example), it's nice to read when companies seem to do good.

<comment><USER23> It's possible to praise Stripe without mentioning Uber. I'm mentioning this because it's really tiresome to see Uber brought up in a thread that has nothing to do with it :/

</comment></comment></comment></comment><comment><USER24> > For example, "==" is used at Stripe to mean you're in agreement

Is this normal? I have never heard this before.

<comment><USER25> It's dumb. If you agree just say it. Every time I've seen corporate speak, which this is, I want to kill it. Your company isn't smarter than a thousand years of English usage.

<comment><USER26> This is not about corporate speak, but about social group speak. I am sure you use words and terms on your own social groups that could be expressed with an old english word.

</comment></comment></comment><comment><USER27> Next can they teach their web designers about contrast?

<comment><USER28> Indeed, I had trouble reading that.

Good stuff getting programmers familiar with the domain they work in.

[http://contrastrebellion.com/](http://contrastrebellion.com/)

</comment></comment><comment><USER29> It is nice to see how more and more tech companies are taking this initiative to hold on-campus intro to programming classes (mostly it is javascript or python). But before most of these companies decide to teach coding to every single employee, I would first focus on those god awful "tech" project managers who get hired because of some fancy MBA degree and most of the time they have no clue about the complexities of a software project in general.

<comment><USER2> People generally want to do their best, including the project managers you refer to. Project managers with less tech expertise will often find themselves frustrated that they can't get what they want. On average, I would expect them to participate enthusiastically because this will help them be more effective.

At different companies, there will be different pain points: salespeople who overpromise, pixel-perfectionist designers, etc.

Regardless, having people speak the tech team's language will tend to benefit the tech team, so it behooves us to take a positive attitude when people are willing to engage.

</comment></comment><comment><USER30> > In seating, we mix engineering teams with non-engineering teams

In my experience this is a huge productivity killer for engineering teams. No, sitting us down next to the recruiting guy doesn't make the recruiter better at technology or the engineers better at understanding recruiting. It mostly just makes us hate the person who talks on the phone all day while we're trying to work.

<comment><USER31> I think it depends on the industry and needs of the company.

As an example, In video games this is used as a way to get a feature shipped. Plop a bunch of artists with a coder or two and a couple of QA guys and roll a feature together. It cuts communications time, keeps everyone focused, and as long as your feature is encapsulated nicely it should merge back cleanly into main in a few days.

If you are just applying a blender to the org chart it isn't going to be a great choice. However, something like putting a developer within ear shot of Technical Support isn't always a bad idea.

<comment><USER32> _As an example, In video games this is used as a way to get a feature shipped. Plop a bunch of artists with a coder or two and a couple of QA guys and roll a feature together. It cuts communications time, keeps everyone focused, and as long as your feature is encapsulated nicely it should merge back cleanly into main in a few days._

At the studios I worked at, these were called "meetings."

</comment></comment></comment><comment><USER33> Perhaps a follow-up blog post on which department the people who attended the program were from and how did the program help then in their day-to-day work.

Once, we have success stories, more companies would be interested in implementing such programs.

Kudos to the initiative!

</comment><comment><USER34> I'm surprised by how controversial this article has been. I think it reflects the wide gamut of workplaces that continue to exist in tech, despite the external homogeneous appearance the industry maintains.

</comment><comment><USER35> A part of me does not understand how start-ups find so many different ways to burn the inventors money. Another part of me wonders how these people have so little workload that they can afford to sit in a 2.5-hour class every week and take projects home / do them at work?

I worked with companies that tried to do something similar, and besides a nice PR piece for the blog, these types of things are nothing more than a nice 2.5-hour break for people who can't schedule enough meetings to make their day go by faster.

Wait until individuals who came there to work get fed up with carrying the rest of their team and start looking elsewhere.

<comment><USER24> The average employee is lucky to be productive 70% of the time. 2.5 hours a week is only 6% of a 40 hour week. I think it is a great use of time.

The change of pace between day job and learning can help people be more productive than they would if they were doing the same type of thing all day.

People are not machines.

<comment><USER35> > The average employee is lucky to be productive 70% of the time. 2.5 hours a > week is only 6% of a 40 hour week. I think it is a great use of time.

I don't know where you are pulling those numbers from, but you are assuming that 6% magically comes out from the 'unproductive' time without factoring in the take home homework and other things that blow up the 2.5-hour mark.

It's not a static number and can't be used to make those claims.

The 2.5 hours will also scale up with the number of participants, 20 employees who are committing 2.5 each week (at very, very minimum) is a loss of 50 hours per week.

I can go even further and add people who did not attend the workshop but felt like they are now entitled to a 2.5-hour break of some sort (and rightfully so).

If the company can cut more than 50+ hours a week and still function, more power to them. Usually, that only lasts until the finance guys need to start cutting costs to improve the bottom line.

<comment><USER36> > take home homework and other things that blow up the 2.5-hour mark

I would think "take home" implies you take it home, i.e. do it in your own time. I don't know what your undefined "other things" are.

> The 2.5 hours will also scale up with the number of participants, 20 > employees who are committing 2.5 each week (at very, very minimum) is a loss > of 50 hours per week.

It is this sort of thinking that is super counterproductive. Even if one of those employees learns something simple, like how to programmatically create CSV files and import them into Excel, they will have saved thousands of man- hours.

You can't nickel-and-dime people's time like this. Philosophies like yours tend to end up with timing people's bathroom breaks and scathing articles in the newspaper; rarely successful companies.

<comment><USER37> Also, I have a very simple policy: I'm as strict about work hours as my employer is.

You want 40 hours, butts-in-seats, timed breaks? Fine, I'm circular filing that idea that's going to save you multiples of my salary each year because I thought of it at home during off-hours, and you weren't paying me for that time.

<comment><USER38> You sound awful to work with. It makes me appreciate how lucky I am to work someplace where everyone has good attitudes towards each other and their workplace.

<comment><USER37> I'm sorry, that's based on what?

If you honestly think me responding to a terrible work environment by refusing to do work outside of work hours or go above and beyond for the company makes me a bad coworker, I think you have a very distorted view of workplace relationships.

</comment></comment></comment></comment></comment></comment></comment><comment><USER39> It's all nice and everything, but I have few "questions"

Is asking people about how they "felt"about the course really a good method of evaluating the course's effectiveness? It sounds like people would always makes up a reason to say they felt good about the course, either as lip service, or because they enjoyed it even though it might have zero effect on their work.

Maybe instead they should try to come with specific things to measure before and after the course?

<comment><USER2> Depends on what degree of certainty you require, and how antagonistic a relationship you have with your employees. (You seem pretty hostile.)

Providing career development opportunities isn't a revolutionary idea. Lots of companies will pay for external coursework at community colleges and what have you. The main distinction here is that Stripe is doing the education in-house.</comment></comment>


Ask HN: On China VPN block, would you help us out? - <AUTHOR>

Hi HN, A native Chinese living in China mainland here, may I ask for your help:
If you are a hacker, online freedom NGO or a team in any form, would you develop software or technology to help us bypass the Great Firewall in China? I mean a real total solution beyond tips or workarounds.
Dictators always want to control the free flow of information, seems they're one step closer to the target. Please do something to stop that. No matter it's China, Iran or who-knows-who-is-next.
TL;DR version: GFW is not new, but recently it becomes severely tight up. Things got worsen months ago, GFW got technical upgrade which enabled it to interfere even OpenVPN and SSH tunnel which had worked fine for a long time. I had used openvpn and astrill for 2 years, worked perfectly okay (to bypass internet filtering instead of privacy concern), GFW could not do anything to them but after the tech upgrade, no matter how I config protocol, port, TLS, MTU, no matter where the server is, the VPN connection could not be established or last no longer than 5 minutes. Tor? Too slow.
We guess the big brother has been collecting commercial VPN services' data or GFW gained ability to operate based on packet behavior.
I'm not saying my whole life is total f*cked because of that but the truth is that I'm and so many people here are really angered and frustrated. It's not because facebook or youtube, it's about us connecting with the world. Our right to watch, know and learn from YOU and the outside world is abruptly violated.
Sometimes I even wondered there're people like Anonymous who would bother to take down some websites (I personally think that's controversial way to express or protest), why not leverage you tech skills, teamwork and passion to do something to the GFW? Track the GFW nodes down? Analyze how it works? Counter interfere it? Develop a new tech solution?
And Finally Unblock Us?
Thanks for your patience and hope I'll still be able to come back to you. <comment><USER2> > GFW gained ability to operate based on packet behavior.

Yes, that's what happened -- keyword is "deep packet inspection".

> Tor? Too slow.

I think Tor is your best bet, either directly or indirectly. One of the projects coming out of Tor is "obfsproxy", which attempts to defeat deep packet inspection by obfuscating the protocol that you're using so that it looks like a different one: <https://www.torproject.org/projects/obfsproxy.html.en>

(So, perhaps it will be possible to use OpenVPN routed through obfsproxy?)

</comment><comment><USER3> I'm working on a package that will help. I don't think there's any silver- bullet single-solution, but we're trying to make things better.

What would be the best way to get in touch with other people in your situation? Is translation worthwhile, or should I spend my time beefing up the tech instead?

Email me - email@example.com - I'd love to know as much about your specific situation as possible. I can't promise a perfect solution, but we're trying.

<comment><USER2> Hm, please don't give unpublished/unaudited circumvention software to people in censored regimes -- you could get them in a lot of trouble by promising privacy that you aren't actually giving them.

<comment><USER3> I agree; I think it's important to be extraordinarily careful in such circumstances.

But I also think it's important to engage with potential users whenever possible, to help ensure I'm building something that's actually useful and helpful, rather than spinning my wheels on my guess on what to do.</comment></comment></comment>


It's surprisingly simple to click jack using CSS4 - <AUTHOR> http://jsfiddle.net/ewuKu/

<comment><USER2> Ah. Good old noscript.

<http://i.imgur.com/Cb17T.png>

</comment><comment><USER3> The trick is to overlay an element over the top of a link, with the CSS of "pointer-events: none;".

Clicking the div will click the underlying link, which will (if you're logged into facebook) "like" the Facebook Developer group.

Is this an issue with HTML5, or is it really an issue with how easy sites can manipulate your Facebook account?

<comment><USER4> Neither. The problem is that your browser handles click events on an invisible layer.

<comment><USER5> Well, no; there's two problems now. The first one is that your browser will handle click events on invisible and near-invisible layers. The second one is that your browser will allow click events to flow through opaque and near- opaque layers.

<comment><USER6> Those are not bugs, IMO.

A lot of web Javascript would be useless if events didn't bubble, and being able to define invisible click areas is useful in a variety of contexts.

Sucks that a few people are going to be malicious about it but I think the benefits outweigh the drawbacks.

<comment><USER4> The problem is not that events bubble, but that clicks fall through visible layers to lower ones and get caught invisible ones on top of what you intended to click on.

Invisible click areas as you called it are not the same as multi-layered click targets imho.

</comment></comment></comment></comment></comment><comment><USER7> Even without this trick it's trivial to clickjack a like button - just place the button on a div with an alpha transparency of 0.01 and trick the user in to clicking it.

Unfortunately it simply isn't possible to provide something like the Like button without being vulnerable to click jacking. I assume Facebook decided that the benefits outweighed the drawbacks. There's probably something clever they can do on the server side to statistically detect and penalize likely clickjacking attempts.

<comment><USER8> They do, eventually (unsure of the criteria) it will start showing a second confirmation dialog if they detect something untoward which you have to confirm your like with, although click jacking that too might also be possible.

</comment></comment><comment><USER9> You don't need CSS4 to clickjack, just put the Facebook Like button on top of the link and apply opacity: 0.

<http://jsfiddle.net/txbYs/>

<comment><USER4> The problem is that this new directive makes this exploit first-class citizen.

<comment><USER10> That's not a problem at all. If it's worth it to do it, people will do it even if it takes 200 lines. If it's not, they won't bother. So, even with it being achievable as a "first-class" option in CSS4, I don't see any particular rise of this exploit happening.

It's like arguing that something is safer because it requires 10 lines of code instead of one to do the exploit. That's security by obscurity.

<comment><USER4> I guess you're right. Maybe the effect is reverse even - by raising attention to potentional pitfalls.

Still, I can not think of a possible use case this can be useful. Maybe other options will make it worth knowing about.

</comment></comment></comment></comment><comment><USER11> Looks like the same game as the "don't click" twitter button (that everyone clicked anyway) from 2009. That was iframes/css.

<http://shiflett.org/blog/2009/feb/twitter-dont-click-exploit>

</comment><comment><USER12> It prompted me to log in even though I have FB open and am logged in in a separate tab.

<comment><USER13> I tried it and I did not have any prompt. I liked the Facebook Developers page without seeing any prompt or confirmation so it was completely transparent.

Maybe our privacy settings are different and that's why you saw a prompt even though you were logged in.

</comment></comment><comment><USER14> I've used pointer events ages ago - surprised it's part of CSS4… (the nav bar on <http://www.splashdisplay.co.uk/> uses it so the nav can be behind the curve)

</comment><comment><USER15> I don't see how this is any different XHTML or HTML 4... what am I missing?

<comment><AUTHOR> I updated the title, it should have been CSS4 since that's where it's being defined.

</comment></comment><comment><USER16> I know people who used tricks like this and some clickjacking on the share button to get 1 million+ person fan pages. Many of them were seized, but for a while it was easy.

</comment><comment><USER17> I run Facebook Disconnect and it makes the web much nicer, this demo is non- functional with it.

<comment><USER18> That's not really the point. I mean, not having a Facebook account stops this demo too. There are other things you might not want to be tricked into clicking on.

</comment></comment><comment><USER19> This has likely been happening quite some time, especially on file locker sites.

</comment><comment><USER20> CSS4? Where was I? and When??

<comment><USER21> They make a new version every time there's been enough changes...</comment></comment>