Rebuilding our tech stack for the new facebook.com - <AUTHOR> https://engineering.fb.com/web/facebook-redesign/ <comment><USER2> A big point of contention in the comments here lies around the concept of what a website should be.

A school of thought in web development believes the web to be the next frontier in application development. For them it makes sense that websites like this feel and act like apps, both as an end-user (animations, transitions without full-page reloading, rich dynamic content, etc) and as a developer (client-side state management, frontend/backend separation, with an API in between, modular application structure, etc).

Apps don't load in 10ms, but they also can support some offline functionality given their independence from the server. Overriding browser behaviour and managing your own loading behaviour makes sense, because the default browser behaviour is not the experience you're striving for; it's not the app experience. These people are usually those who have worked on large web projects too— the developer experience that web developers have built for themselves in "userland" (JavaScript) is pretty good, and has evolved a lot to have features that makes developing the exact behaviour you want easier, and correctly iterating on a codebase, quicker.

A separate school of thought wish websites stayed true to their origins as enriched documents, and think trying to evolve them in the direction of applications is counter-productive to their true purpose as interactive surfaces to get and send information. If I am just going to scroll and see a few pictures, why do I need to download anything other than the structure of the page and the pictures themselves? If all the building blocks are already there, in the browser, why do people need to re-invent them and ship them as yet more JavaScript?

What should a website be though? The fact there isn't consensus about this is indication that there really doesn't seem to be a clear answer.

Per the document-like school of thought, facebook.com just keeps straying further and further away from the ideal, but as far as as the app-like school of thought goes, the new facebook.com is a pretty remarkable achievement.

<comment><USER3> Perhaps we should split the web into two worlds. Create dedicated browsers for just enriched document etc. Add some sort of constraints on what the browser can do, and how much control is removed from the user.

<comment><USER4> They tried that in the 90s, its called Java. Didn't really work out for that purpose.

In practice things like Twitter and Facebook, interactive programs, should really be just that - programs you run. If the interface is nigh static and the purpose is content interaction rather than primarily consumption you should be opening the Facebook program that gives you this interface and uses its client / server communication to feed messages to and from the interface, not provide the whole thing over the wire spread across document addresses.

And they are that on mobile. Who uses Facebooks mobile website? Everyone uses the app. The contention only exists on "desktop" OSes because Windows and OSX don't provide a UX workflow to push an app at user (at least they didn't when it mattered) the way a mobile site can. And that the app environments on both were way worse than the Android or iOS SDKs for making a dumb GUI for something like Facebook.

<comment><USER5> > Who uses Facebooks mobile website? Everyone uses the app.

I do, just like I do with every app that might feel too comfy reaching out to my contacts. Not to mention how resource hungry it is.

If you think MFC, VCL, .NET are worse experiences than Android SDK you really never coded for Android.

</comment></comment></comment></comment><comment><USER6> I'm actually really surprised by the number of comments in this thread about how the new redesign is slower. I've had it since yesterday and it genuinely feels much faster and more responsive than the old Facebook UI - though, to be fair, that's not a huge accomplishment give that the old UI would take forever to finish painting or respond to input. I'd consider it a success, especially when compared to the disaster that was and continues to be Reddit's redesign.

<comment><USER7> Let's go on this tangent, why _is_ Reddit's frontend so sluggish and lacking quality of life improvements that should be in place by now?

Surely they are hiring world-class devs, so what's holding them back?

<comment><USER8> It's by design. Reddit doesn't want you using the website. They want you to download the app. As numerous annoying popups and notifications will tell you when visiting the website (especially on mobile).

<comment><USER9> This. Their UX is hostile to browsers, I suppose they make more money due to ads being harder to block in app vs in browser and much more data can be mined as well.

I recommend everyone the old.reddit.com experience while it's still available. There's browser plug-ins that force the subdomain everywhere on reddit

</comment></comment></comment></comment><comment><USER10> Quite sincerely, it's a total failure. I got the chance to try the new interface, and it's so slow that it's barely usable. It's even slower than the old website, that was already painfully slow.

Loading a random profile takes 8 seconds. Opening a messenger discussion takes 6 seconds. It reminds me of the new Reddit website. Facebook was more enjoyable to use 12 years ago.

It's really sad that in 2020, 10k+ engineers can't make a photo, video, post and message sharing website that is not a pain to use. We collectively failed as a profession. If one needs 2MB of CSS for such a website, there is clearly a problem.

<comment><USER11> _Facebook was more enjoyable to use 12 years ago_

We'll see what the data show. I have been reading comments about Facebook's supposed decline for as long as I've been aware of Facebook and yet their published numbers continually show greater engagement. [https://jakeseliger.com/2018/11/14/is-there-an-actual- facebo...](https://jakeseliger.com/2018/11/14/is-there-an-actual-facebook- crisis-or-media-narrative-about-facebook-crisis)

<comment><USER12> The unquestioning supplication at the alter of 'engagement' (a sterile marketing term if there ever was one) is what lead to where we are now in the first place. This is an affliction that pervades the entire consumer internet sector, but the folks at facebook seem to have refined it to its fullest potential.

The other day I got a facebook notification on my phone, which said something along the lines of "You have 4 new messages". Of course, thinking it was from my friends I opened the app to look at them. 3 of my 4 "messages" were notifications for friend requests from people I had never met. The last one was a photo someone had posted of cake she'd baked (not to me specifically, just in her feed). To someone sitting at her desk at facebook, looking at an engagement metrics chart, the notification would seem to have served its purpose - another data point, another person enticed to open the app in response, engagement maximized. But of course, this was deception. I found this experience distasteful enough to disable notifications entirely - probably another data point for their metrics team - and annoyed enough to complain about in an HN comment.

<comment><USER13> The new "Person X has posted a photo" notifications are the worst. Their abuse of the notification icon is getting ridiculous. It used to be focused on when someone interacted with something you had done, now it's just used to drive "engagement".

</comment></comment></comment></comment><comment><USER14> > _as little as possible_

I just opened FB with the cache disabled and it downloaded 5.85MB (19.76MB uncompressed).

Most of it happens after the page has rendered, which is great, but that's a lot of stuff. There are 13.74MB of uncompressed JavaScript.

<comment><USER15> That's pretty much size of a mobile app. But the thing with web apps is that they are downloaded every time and hence the outcry.

<comment><USER16> They aren't though. You have a cache.

<comment><USER17> Facebook release multiple times a day (or they did), so the browser cache is irreLevant.

<comment><USER18> As mentioned in the blogpost, they use code splitting and bundle hashing to actually maximize usage of browser cache.

</comment></comment></comment></comment></comment><comment><USER19> This is 100% incidental complexity. It's painful to consider that this level of sophisticated engineering is needed to render a website quickly in 2020. What went wrong?

I'm personally excited about things like turbolinks and phoenix liveview, which may provide a path out of this mess.

<comment> core-questions Facebook rendered just fine a decade ago. What changed between now and then, in terms of actual improvement to end user experience, to make it so slow this kind of crap is needed?

My guess is:

\- Desire to offload more processing to end user machines to save compute

\- More and more ads and user analytics in order to pick which ads to show

\- More engineers that irrationally hate the simplicity of PHP

Duct tape on top of abstractions on top of duct tape in order to make a document platform behave like an application platform. Isn't it time to just replace web browsers with something that doesn't suck?

<comment><USER20> > Facebook rendered just fine a decade ago. What changed between now and then

It does way more things. In particular, there are a lot more interactive experiences. A decade ago, it just loaded a web page and nothing changed until you refreshed. Now live videos and other content types have streams of comments and reactions pushed to the client in real time.

<comment><USER21> I really don't want a video to autoplay on the side of the screen when I'm reading some news article, for example.

It was so much better before when there just were less ways of doing what the website wanted and more ways of doing what you wanted with your browser and your computing power.

<comment><USER20> Sure, it's totally reasonable for somebody to dislike these features. I just object to the claims that it doesn't do anything substantially different than what it did 10 years ago.

</comment></comment></comment></comment></comment><comment> trevor-e What I find weird about the article is that they spend so much time talking about the performance of the new design, yet fail to include any hard numbers comparing the old vs new implementations. They do throw out a few numbers like how the new page only downloads 20% of the previous 400kb CSS for the homepage, etc, but I'm surprised to see no actual browser benchmarks for what they claim. How else would they be measuring this internally?

</comment><comment><USER22> Great write up. Glad to see they're making some changes as the current interface still feels like 2005 with the main feed at 500px wide. And as always, dark mode is welcome.

I really hope this helps performance on the site. In the past year or so I've been noticing that when the page sits in an unfocused tab for a while, clicking back usually takes 20+ seconds to actually load and I'm stuck at a white screen. It actually locks up the tab pretty well too, so navigating to other addresses and such takes a pretty long time.

<comment><USER23> > And as always, dark mode is welcome.

I don't get this infatuation with dark mode, beyond it looking cool. People claim it helps with eye strain, but a brighter background constricts your pupils, improving focus.

<comment><USER24> Just wanted to point out you might've pasted the wrong snippet, which is about eBay's policies.

<comment><USER23> Oops! Thanks for the catch.

</comment></comment></comment></comment><comment><USER25> I have been using Facebook for like +10years. Facebook used to be reference for speed and usability.

I left it ~4 years ago.

Last day I entered again for curiosity. It's so sad. Strange interface, slow, unresponsive. It's sad.

<comment><USER26> _Facebook used to be reference for speed and usability_

On web, for a while. Remember when Facebook's iPhone app came out, it was a disaster. It was so slow, I could open the app, then take the elevator down to the basement of my building, drop off some outgoing mail, and return to my apartment before it finished updating the news feed. It was legendary in its time for its slowness.

At first, nobody complained because there weren't a lot of "apps" available. But then all the other apps came out, and everyone complained for years that all the other app-building companies could build responsive apps, but Facebook couldn't.

Then one day Facebook updated its app and it was a little better. Then another update came and it was good enough, and everyone stopped complaining and forgot.

 _Last day I entered again for curiosity. It 's so sad. Strange interface, slow, unresponsive. It's sad._

I only use Facebook once a week, to update the page for a web site I manage. It is terribly slow on web. On both of the computers I use it on, loading the first page takes upwards of 15 seconds. Clicking on the text field to enter a new post takes eight to ten seconds for the editor to load.

I don't know how people who are addicted to Facebook manage to use it so much without going mad.

<comment><USER27> Remember when they had to monkey patch the android runtime because their app had too many methods? [https://www.facebook.com/notes/facebook- engineering/under-th...](https://www.facebook.com/notes/facebook- engineering/under-the-hood-dalvik-patch-for-facebook-for- android/10151345597798920)

It's a fun hack, and I enjoy spectacle, but it might be a sign that you are complicating your app more than you need.

<comment><USER28> Remember when reached the limit for __TEXT and had to put code in sections that weren't really meant for it: [https://blog.timac.org/2016/1018-analysis- of-the-facebook-ap...](https://blog.timac.org/2016/1018-analysis-of-the- facebook-app-for-ios/)?

Remember when they were taking to long to start up that they pulled stuff into a separate framework just so they could meet launch deadlines: [https://blog.timac.org/2017/0410-analysis-of-the-facebook- ap...](https://blog.timac.org/2017/0410-analysis-of-the-facebook-app-for- ios-v-87-0/)?

Remember when the app had 18,000 Objective-C classes: [https://quellish.tumblr.com/post/126712999812/how-on- earth-t...](https://quellish.tumblr.com/post/126712999812/how-on-earth-the- facebook-ios-application-is-so)?

Facebook's teams somehow cannot manage their bloat and they keep hiring people to hack the platform they're running on rather than fixing the actual underlying problem.

<comment><USER29> The root cause of the problem is that they have too many people working on it, and that's obviously not a problem you can hire your way out of.

<comment><USER28> Perhaps they should hire engineers who have the explicit job of ripping out things that should not belong.

<comment><USER30> Or if they must insist on writing more code than refactoring it out, perhaps they should build more products.

</comment></comment></comment></comment></comment></comment></comment><comment><USER31> > _We addressed this by generating atomic CSS at build time. Atomic CSS has a > logarithmic growth curve because it's proportional to the number of unique > style declarations rather than to the number of styles and features we > write._

I've always wondered... has anyone checked to see if this strategy of CSS (which AFAICT is slowly growing in popularity, since it's a super simple minification trick) ends up costing more in bandwidth?

It seems like it would, because 1) you frequently need multiple classes per html element, and 2) those html classes need to be sent _on every page load_ , where CSS caches well if used "normally". I can see it being smaller on _any individual page_ , especially with class-name minifying, but across many? And infinite scrolling loading many more elements?

<comment><USER32> we use this approach since more than a year with very good results. Regarding the data transfer it is not much of a problem because those classes usually get repeated a lot across the elements and having lot of repeated string is the best case scenario for gzip compression leading to basically no size impact.

[https://github.com/utilitycss/atomic](https://github.com/utilitycss/atomic) This is the framework we developed to create atomic CSS component libraries if you want to have a look (documentation needs some love, but is quite stable)

<comment><USER31> Your HTML is still undeniably larger than something with dramatically fewer class attributes though, if you minify the same way. Hence my "single page" vs "many" difference.

gzip helps for sure, but I doubt `<class="card">...` ends up larger than `<class="a b c d e"><class="sub-a sub-b q etc"><class="repeat per element">...`.

<comment><USER32> there is of course a bit of difference in some use cases, my point is that in a real world scenario you often do not have

<class="card"> vs <class="a b c d e">

but more something like <class="card"><class="stuff-inside- card"><class="other-stuff">

vs <class="a b c d e"><class="b c f"><class="c d e g">

so in the long run you tend to have more repeated strings across even completely unrelated elements and that usually balances out the possible increase in non gzipped bytes. But to be honest we did not had a detailed comparison with edge cases and it would be interesting to see when it actually may be a bad idea and when it is totally fine

<comment><USER31> when you're less "component-y" with your styles, yeah, that happens pretty frequently. careful styling is mostly rare (like all careful things)... but atomic styling seems to make the savings of careful styling effectively _impossible_ , though I absolutely believe it helps the less-careful (especially the least-careful) cases.

</comment></comment></comment></comment></comment><comment><USER33> > We knew we wanted Facebook.com to start up fast, respond fast, and provide a > highly interactive experience.

And we forgot about it while developing it, this is just common mistake in product management, when projects are not iterative, things are so long, that you even forget why you are doing them

</comment><comment><USER33> Future will tell, but I do think this is a good strategic move by FB.

FB is now seen as an app for old people and not fun at all, and probably one of the reason is because of how it looks. With the new design, things are more shiny, and the product now looks cool. How a product is perceived has a big influence on how people use it, (for example why people use snap when they can send the same videos on insta).

I wouldn't be surprised that this is a beginning of a lot of changes on FB

<comment><USER34> It's not seen as an app for old people. A lot of college students use fb religiously, and it's still the place to go for nearly any college discussion.

</comment></comment><comment><USER35> Can we now sanely read comment threads with several hundreds or thousands of comments without clicking 200 times on "show previous comments" only to then lose all "progress" if we click somewhere else? Also looking at you Instagram.

<comment><USER36> One minute of contemplation for those who scroll for 10 minutes on mobile, to finally find something interesting to read/click, just to click by mistake the back button, and the whole timeline completely changed. Youtube recommendation feed also terribly guilty of that.

</comment></comment><comment><USER37> I saw no mention of Reason or ReasonReact. I thought they rewrote Messenger in Reason, and so I figured facebook.com would be next. Did Reason fall out of favor or something?

<comment><USER38> Was Reason ever more than an experiment?

<comment><USER37> ReactReact just had a release (0.8) a few days ago, so it's apparently not dead

[https://github.com/reasonml/reason- react/blob/master/HISTORY...](https://github.com/reasonml/reason- react/blob/master/HISTORY.md)

</comment></comment></comment><comment><USER39> Did they fix the "back" button? (I.e. if you click a link in the middle of a feed, then "back", do you get back at the same position in the feed?)

<comment><USER40> My guess is that they have a/b tested that if you remove the item from the feed user clicked, users become "more engaged" i.e. frustratingly scrolling to find the place where they were.

</comment></comment><comment><USER41> I miss information density.

HN is great for this and you can change enough settings on reddit to get it where it used to be, but FB is really bad for it and Twitter is just ok (though with the tweet deck app you can get a lot on macOS).

In that FB screenshot you can see half of one post?

</comment><comment><USER42> I rarely use Facebook, but when I do I use [https://m.facebook.com](https://m.facebook.com) instead of the main site. Similarly i.reddit.com and the HTML version of Gmail. Which aren't great looking, but pretty usable. I hope these versions will be maintained for a long time.

<comment><USER43> >Similarly i.reddit.com

Try [https://old.reddit.com](https://old.reddit.com)

It's so bad that people made Browser Extensions for Firefox[0] and Chrome[1]

[0] [https://addons.mozilla.org/en-US/firefox/addon/old-reddit- re...](https://addons.mozilla.org/en-US/firefox/addon/old-reddit-redirect/)

[1] [https://chrome.google.com/webstore/detail/old-reddit- redirec...](https://chrome.google.com/webstore/detail/old-reddit- redirect/dneaehbmnbhcippjikoajpoabadpodje)

<comment><USER44> Old Reddit is so damn ugly though apart from the Subreddits which have nice custom themes (although does make for a 00's Myspace-like inconsistent interface)

The new Reddit definitely seems a lot faster nowadays than it did when it first launched.

<comment><USER45> I don't think old reddit is ugly, though it takes some getting used to. Combined with RES for some minor enhancements (navigation etc) and it's great.

It's similar to HN. Not fantastic design, but incredible information density and usability.

<comment><USER46> Incredible? HN has horrific usability.

Good luck knowing when people respond to your comments. Searching takes you to a completely different website. You can't delete comments (which should be a basic privacy ask from this crowd). Click targets are incredibly small.

It took years of begging for them to even implement collapsing comments. And for some reason they put it on the right side (not lined up with the tree level), and made it a super small click target.

<comment><USER44> HN could definitely do with a redesign. Just seems like stubbornness from the owners not to change it.

I'm not talking turning it into an SPA or adding tons of JavaScript, just a bit of CSS/HTML TLC with some nicer fonts and make the whole thing a bit more scalable and bigger with some UX tweaks.

Something akin to [http://gabrielecirulli.github.io/hn- special/](http://gabrielecirulli.github.io/hn-special/)

</comment></comment></comment></comment></comment></comment><comment><USER47> I don't really care about their end result because I don't use facebook. But in spite of all the negative comments here, I'm actually interested in how their styling solution works.

<comment><USER48> If I had to guess, I would expect it to be similar to react-native-web. They say the api is inspired by RN (StyleSheet.create) and the atomic classes look similar to what react-native-web produces. Also the author of RNW works at facebook.

It's called xstyle and you can see some examples in a talk from last year that presented the new tech for new faceook. I will update if I find the link (can't right now).

Edit: starts at about 28:00 here, but the rest about react+relay data fetching is interesting as well if you care about that stuff [https://developers.facebook.com/videos/2019/building-the- new...](https://developers.facebook.com/videos/2019/building-the-new- facebookcom-with-react-graphql-and-relay/)

</comment></comment><comment><USER49> There is nothing about backend here, that's where the heavy lifting is done. Is that all in PHP still and GraphQL ?

</comment><comment><USER50> The most irritating "feature" of Facebook is they insert themselves like eight deep in the history when opening their page so the back button doesn't work.

<comment><USER51> This kind of thing is normally the domain of sites you find after searching "office 365 warez". Pretty bad.

</comment></comment><comment><USER52> It looks a lot like the new Twitter. I guess the new trend is just to show multiple tabs from the mobile app at once as the desktop site.

<comment><USER53> it is yahoo from the 90s

[https://cdn.searchenginejournal.com/wp- content/uploads/2006/...](https://cdn.searchenginejournal.com/wp- content/uploads/2006/04/132826009_254ee440c11.jpg)

Nothing new under the sun

<comment><USER54> The Yahoo I knew and loved from the 90s manifested as a web directory:

[https://www.ttcs.tt/wp-content/uploads/2014/09/screenshot- of...](https://www.ttcs.tt/wp-content/uploads/2014/09/screenshot-of-yahoo- home-page-circa-1997.jpg)

<comment><USER55> Wow. That made me way more nostalgic than I was expecting.

</comment></comment></comment></comment><comment><USER56> For me, I consider the real test for a website's performance to be how it reacts under JS disabled conditions. Using NoScript has completely changed the way I use the internet. Combine that with DoH and filtering and you can remove a large part of the jank that fills browsers needlessly.

It's a delicate balancing act, but it puts _you_ in control. Sometimes it's just not worth the hassle, and I suspect it's why you see many comments like "just read the f* article", except sites are so slow and cause so much rendering and CPU cycles it's just an abuse of the platform.

Websites are capable of serving text without JS being required.

<comment><USER43> With increasing adoption of reCaptcha v3 which won't let you browse on any page without Javascript, it will become harder and harder to use the internet with NoScript enabled.

</comment></comment><comment><USER57> It uses scrolling as cookie consent, apparently.

Which is wrong as discussed here: [https://news.ycombinator.com/item?id=23090393](https://news.ycombinator.com/item?id=23090393)

<comment><USER58> It's not like Facebook is concerned about GDPR compliance, and given the lack of enforcement I can't really fault them for this.

</comment></comment><comment><USER59> impressive attack on would be competitors. now new start-ups will look up this doc and say, ahya let's build our interfaces with react + relay. & the new css | js wizardry. when they don't have the manpower and time to do so. end of day can't launch. when they forget this rewrite is implemented 15 years later when fb is already making money. and likewise, as other commentators have said in the thread - we have failed as an industry due to usability regression

</comment><comment><USER60> I wonder what the Mobile App versus Mobile Browser versus Desktop Browser usage percentages look like.

Generally speaking, how important is it to actually update the desktop version other than for the sake of updating tech? I only use desktop as part of my marketing work, if I do it use it at all.

(Side Note: I can't believe it took this long for Dark Mode to be a normal option for all software)

</comment><comment><USER61> I opt in when Facebook prompted me to test out the new UI in Chrome browser, immediately I regretted and frustrated to find the button to revert back to the old one.

But then I found out my "old" Safari browser wasn't supported in their new fancy UI. Now I only check my Facebook once per day in Safari and never sign in again from Chrome.

</comment><comment><USER62> Facebook folded to the "quit changing the UI" crowd years ago when they opened registration up beyond colleges.

</comment><comment><USER63> The use of Monokai is so off-brand for FB.

</comment><comment><USER49> Atomic CSS is a bad idea, read more here [https://www.browserlondon.com/blog/2019/06/10/functional- css...](https://www.browserlondon.com/blog/2019/06/10/functional-css-perils/)

<comment><USER32> nowadays is quite rare to write classes in pure html, using any framework like react, vue and similar we are used to pass classes in a JS environment. Obscure and minified class names can be imported from a package using a perfectly meaningful name, also the same set of classes can be exported with many different names to even better usage specificity with no cost in size.

We overcome most of those issues using a mix of postcss compose and css modules with a custom hashing solution based on the actual css rule content, this allowed us to have virtually infinite semantically named components with a css bundle size that tend to stabilize around 20/25kb gzipped for a very big e-commerce use case and I doubt any other use case would go much higher than that size.

[https://github.com/utilitycss/atomic](https://github.com/utilitycss/atomic) If you want to have a look (documentation needs some love, but the samples generated by the init do give a good idea of the concept)

</comment></comment><comment><USER64> [https://saagarjha.com/blog/2020/05/10/why-we-at-famous- compa...](https://saagarjha.com/blog/2020/05/10/why-we-at-famous-company- switched-to-hyped-technology/)

</comment><comment><USER65> My browser constantly pegs the CPU, Firefox performance manager indicates it might be Facebook but CPU metics never seem accurate. I use the new layout and swear the issue occurs after a tab has been left open for a long period of time (8-16 hours).

Anyone else experience this?

</comment><comment><USER66> There doesn't seem to be any mention of actual KPIs/metrics changes in the relaunch?

</comment><comment><USER67> Everything is in the past tense without dates. When was this massive re-write? 2010? 2018?

<comment><USER39> Looking at the graphical design changes, they haven't rolled this out yet.

<comment><USER68> They did roll this new interface on some users (like me), and this new experience genuinely sucks.

It's easy to guess what happens under the hood:

"Legacy" programmers implemented working solution.

A newcomer comes into the company, doesn't really give a shit about the company because he is #XXXX, follows textbook processes, has a very nice pay- check so no pressure, and decides to rewrite because "code sucks".

A second newcomer joins, still no pressure, because he knows he will get his pay-check. Tells his manager that he cannot work without refactoring (it's not true).

10 programmers later, you refactor code instead of producing features. You can do that for all your lifetime.

To their defense, the FB initial codebase from the time of Mark Slee or Philip Fung was not a gift but because they had pressure to make revenues they were trying to do what was right.

When you have 10 years of positive iterations regarding product experience and user feedback, revamping everything in a big bang boom is a terrible idea from both engineering and product perspective.

Sometimes, full revamp are positive because the initial product sucked, but when you managed to onboard a billion user, it's dangerous to change their habits if you aren't 100% sure it's an improvement.

Here, we have PO/PM pushing for change, for whatever reason (engineering pressure, or they get a bonus if they deliver the product, etc). Same story with all the Google Messengers.

<comment><USER69> This is not a big bang rewrite. All the technology here is stuff that's been built over the last decade. Haste is a decade old, React is 8 years old, GraphQL is around 7 years, Relay must by 5 years old by this stage. This is simply bringing them all together.

</comment></comment></comment></comment><comment><USER70> I can't remember the last time I loaded FB on a computer. At this point it's clear that they care far more about the mobile experience than the desktop. Even if I'm sitting at my computer I'll still use my phone for FB.

</comment><comment><USER71> If you want to know more about the atomic css-in-js Facebook is using, check my article [https://sebastienlorber.com/atomic-css-in- js](https://sebastienlorber.com/atomic-css-in-js)

</comment><comment><USER72> I don't think there's a single piece of software (if you can call facebook's website a piece of software) that I've used longer than facebook.com. I was one of the earliest users in 2004 and have had an account the entire time. It's really interesting, in sort of a morbid way, to see how it really has become a shittier experience every year. I'm sure it's hard to get right and I wouldn't claim to know better than them but it is quite amazing that they have so many engineers being paid so much money and the product from a usability standpoint manages to get worse. I really think that will be their ultimate downfall one day.

</comment><comment><USER73> I wonder how much time and how many managers/PMs/engineers (a.k.a. Prod Dev) did it take to refactor/rebuild it? Or you can throw a number in terms of money?

</comment><comment><USER74> Tech stack? This is only stuff they put in the browser.

<comment><USER49> exactly it's missing all the backend information which is most critical.

</comment></comment><comment><USER75> > We knew we wanted Facebook.com to start up fast, respond fast,

You failed.

mbasic.facebook.com on the other hand, is actually fast. Oh. Wait. That's no js at all.

</comment><comment><USER76> They reduced CSS by 80% but the new site looks like garbage! On the desktop, It looks like a mobile app just really stretched out.

</comment><comment><USER77> I like the approach to css with stylex. I hope that now linaria and astroturf will get more support.

</comment><comment><USER78> Advancing technology doesn't make up for destroying humanity, IMO. Fuck Facebook.

</comment><comment><USER79> I hope the new fb works with Javascript disabled, like it did in the old days

</comment><comment><USER80> I understand the new stack is React + Relay, but what was the old stack?

<comment><USER81> A hodgepodge of (mostly proprietary) technologies.

</comment></comment><comment><USER82> I don't like it.

Round borders with misplaced text, cannot go to a specific time on my timeline anymore, does not feel very responsive.

Overall, the UI does not look very appealing and feels like a downgrade.

<comment><USER83> Reminds me of the new Chrome UI. Not a fan of this soft, rounded-off aesthetic that seems to be spreading about.

</comment></comment><comment><USER84> The new interface caused my iPad to heat up severely so I switched back to the old clunker interface. It might be ancient but it doesn't cause my iPad to heat up.

</comment><comment><USER85> interesting to see these kinds of details, but this is hardly 'rebuilding the the stack' \- just UI<->API layer

<comment><USER86> there is such a thing as a frontend stack

</comment></comment><comment><USER87> who shat in all your brains?

</comment><comment><USER88> I hope this speeds things up for Facebook. On the rare occasions I use it these days to check up on family photos or something, the entire site is fucking painfully slow. Even on my quad core I7 desktop on a fibre backbone connection, I'm routinely waiting 10+ seconds each time I click on the "notification" icon (or any other action).

</comment><comment><USER89> I think the only HoC I consistently use these days is `connect` from `react- redux`.

</comment><comment><USER90> Title says tech stack but content is about css

</comment><comment><USER91> A browser extension that automatically filters out Karen from your feed would yield better results, but they wouldn't want to alienate their core users

</comment><comment><USER92> Do they still use PHP on backend. If so ick

<comment><USER44> AFAIK they use 'Hack', a language designed to be very similar to PHP.

[https://hacklang.org/](https://hacklang.org/)

PHP is a lot better than it used to be now though! It's got a bad rep but newer versions are fast and surprisingly modern-feeling.</comment></comment>


Ask HN: Israeli Search engine? - <AUTHOR>

My site has been getting slammed with connections from 18.104.22.168 and 220.127.116.11 today.  Both of these IPs appear to be owned by Bezeq International.  It looks very much like when Google or Bing initially indexed my site, basically crawling every link on the site, four or five requests a second.
What is interesting is that all these requests are using real browser user-agents (Firefox 24 (Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20100101 Firefox/24.0), Chrome 32 (Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.72 Safari/537.36), IE 10 (Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)), Opera 9 (Opera/9.80 (Windows NT 6.1; WOW64) Presto/2.12.388 Version/12.16), etc), rather than a spider, or the more common bots I see that will specify FireFox or Chrome with no version.
Any idea what is going on here? <comment><USER2> Cycling through a couple of user agent strings to pretend to be a real user takes only few lines of code. Are images requested and Javascript executed?

I wouldn't read too much into this. There are lots of crawler/spiders around. From product search engines, people search engines, image or audio, generic or research, some crawlers' whole purpose is to point to your referrers (ads) or maybe your competition hired somebody to crawl you.

Once you have a website for a while those crawlers are as usual as programs that try to login or look for old Wordpress vulnerabilities (/wp-admin, /cgi- bin/ etc).

</comment><comment><USER3> Whats this? Stack exchange?

<comment><AUTHOR> No, the topic has stayed unlocked too long for that :-)</comment></comment>


Early Sound Recordings From Alexander Graham Bell Recovered, Played Again - <AUTHOR> http://www.npr.org/blogs/thetwo-way/2011/12/13/143674790/early-sound-recordings-recovered-from-alexand-played-again

<comment><USER2> The linked article is informative, but if you would like to listen to some of the recovered sound, here is a direct link to a page with audio files: <http://bio16p.lbl.gov/>

<comment><USER3> If only their server was still responsive.

<comment><AUTHOR> Yeah, I would have linked to that, but it seems to have been overloaded at the time.</comment></comment></comment>


I sell services, what the $%# should I sell (Part 4-- reducing risk) - <AUTHOR> http://www.mimiran.com/proposals/i-sell-services-how-the-should-i-sell-part-4-reducing-risk/

<comment><USER2> Too bad customers don't even know what they want half the time. I think you have to build a vision for them that they can buy into. Which only really works for higher end jobs.

I like the ideas behind this blog series. I need to revisit continually as I put together proposals. Thanks!

<comment><AUTHOR> True-- customers often don't know what they want. This can be frustrating when you are trying to sell them something, but think of a time you had to buy something when you didn't have expertise.

I often think about the time my wife and I did some landscaping. The vendors had to deal with 2 stakeholders who didn't know what they wanted, and didn't have the exact same priorities or budgets. The vendor had to help step us through the decision making process, presenting us with options and trade offs. In many cases, customers aren't ready to implement the whole vision, but may just want to do a phase or 2.

An even more extreme example is the doctor-- they have to deal with situations where there are big consequences for the patient, but the patient has little knowledge. The doctor has other lock-in benefits that most professionals lack, but the basic process is the same.</comment></comment>


2019 Data Predictions: Demise of Big Data and Rise of Intelligent Apps - <AUTHOR> https://www.forbes.com/sites/forbestechcouncil/2019/02/22/2019-data-predictions-demise-of-big-data-and-rise-of-intelligent-apps/ <comment><USER2> Very interesting article. I know a few consultancies who are betting heavily on Data Lakes, though the predictions seem to be tilted towards the writer's vested interests.</comment>


Traits great conference speakers have in common - <AUTHOR> http://businessofsoftware.org/2015/07/fifteen-traits-of-the-most-brilliant-conference-speakers/

<comment><AUTHOR> I was asked whether we had guidelines for speakers for the events we run as they would be great tips for someone that wanted to improve their public speaking skills.

Not sure this is an exhaustive list but it seems to cover most of the things that the best conference speakers have in common. Would welcome other contributions.

Written from perspective of audience but many of those things make a conference organiser's life easier too and both of those things dramatically increase the likelihood that speakers will get asked back.

</comment><comment><USER2> "I am a UI. Nothing more. And what's a key attribute of a good UI?

It disappears.

It does not draw attention to itself.

It enables the user experience, but is not itself the experience.

And the moment I remember this is the moment I exhale and my pulse slows. Because I am not important. What is important is the experience they have. My job is to provide a context in which something happens for them."

Like it.</comment>


Convicted Murderer Sues Wikipedia, Demands Removal of His Name - <AUTHOR> http://www.wired.com/threatlevel/2009/11/wikipedia_murder/ <comment><USER2> _German publications must also alter their online archives in a bid to comport with laws designed to provide offenders an avenue to "reintegrate back into society."_

This seems like a reasonable limit on free speech. Murder is a terrible crime to commit, but in certain circumstances, I think it's fair to give a person legal protection which would allow them to move on from such misdeeds.

</comment><comment><USER3> It seems like it would be easier for him to change his name than to change everything ever written on the subject.</comment>


Hydroxychloroquine Update - <AUTHOR> https://statmodeling.stat.columbia.edu/2020/05/25/hydroxychloroquine-update/ <comment><USER2> Discussion of the paper when it was posted and promoted by various news outlets:

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

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

</comment><comment><USER3> basically the most recent study of 96,000 people is alleged to be based on fabricated data...

[https://defyccc.com/anti-hcq-paper-in-the-lancet-uses- fabric...](https://defyccc.com/anti-hcq-paper-in-the-lancet-uses-fabricated- data/)

<comment><USER4> defyccc spews climate change denialist propaganda. Why should I put more weight on an article from them than in The Lancet?

<comment><USER3> that defyccc link was from a comment in the OP's post, there are other links from the same source site:

[https://statmodeling.stat.columbia.edu/2020/05/24/doubts- abo...](https://statmodeling.stat.columbia.edu/2020/05/24/doubts-about-that- article-claiming-that-hydroxychloroquine-chloroquine-is-killing-people/)

[https://statmodeling.stat.columbia.edu/2020/05/25/hydroxychl...](https://statmodeling.stat.columbia.edu/2020/05/25/hydroxychloroquine- update/)

</comment></comment></comment><comment><USER2> An open letter to Mehra et al and The Lancet: [https://zenodo.org/record/3865253](https://zenodo.org/record/3865253)

</comment><comment><USER5> Link was more informative when the domain was andrewgelman.com

<comment><USER6> [https://statmodeling.stat.columbia.edu/2020/05/25/this- contr...](https://statmodeling.stat.columbia.edu/2020/05/25/this- controversial-hydroxychloroquine-paper-whats-lancet-gonna-do-about-it/)

Edit: Gelman has posted 3 articles on this topic in the past 2 days. (The guy is prolific! He also publishes about 1 paper per month over his decades long career)

Tangents:

What is all this?

> The beauty-and-sex-ratio research, the ovulation-and-voting research, > embodied cognition, himmicanes, ESP, air rage, Bible Code, the celebrated > work of Andrew Wakefield, the Evilicious guy, the gremlins dude—all peer- > reviewed.

<comment><USER5> Laundry list of utterly bogus papers that were published and not retracted or not due years where the authors probabky also doubled down on un-reproduceable garbage.

Wakefield published papers on the link between vaccines and autism, do example (I believe, mercifully not familiar with it),</comment></comment></comment>


Apple Inc, going for free within 8 years - <AUTHOR> https://kirkburgess.wordpress.com/2016/02/01/apple-inc-going-for-free-within-8-years/ <comment><USER2> Yes, free cash flow increases the value of the company by close to that amount of cash every second the company makes more cash.

But don't take this article as investment advice. It is at or just after market tops people point out things like 'company will make its value in cash in X years' or 'it's not market timing, it's time in the market', or 'the market is cheap on a forward earnings basis' or 'when everyone is selling, it's time to buy'. Be very careful if you're thinking about investing in the stock market right now. Stay away from index funds because there's a lot of alpha in shorting the most popular stocks and buying the most hated ones, which means betting against index funds.

Do not take this as financial advise. This comment is for entertainment purposes only. Do your own research.

</comment><comment><USER3> A bird in the hand is worth two in the bush. The only question is: When?</comment>


Congrats, Self-Righteous Internet Mob. You Killed a Magazine. - <AUTHOR> http://techcrunch.com/2010/11/16/congrats-self-righteous-internet-mob-you-killed-a-magazine/ <comment><USER2> From the TC post:

> Was Griggs a total jerk who deserved to be called out? Yes. Plagiarism is > obviously never OK and when called on it, even if you've had a bad day, you > don't ask for money. It was just mind-bogglingly stupid.

Given the Cooks Source editor's utter insincerity and refusal to admit that she did anything wrong, I'm not surprised they're going under. It's one thing to make a mistake, it's another not to learn from it.

</comment><comment><USER3> I can't say I have much sympathy for either the editor who took the work or Sarah Lacy. The editor shouldn't have done that, nor should she have replied to the original person in the way she did.

Equally, Sarah Lacy should STFU.

</comment><comment><USER4> "If you don't experience an ounce of empathy there's something wrong with you".

Really? Like stealing content should be forgiven as long as you're "sorry" for it and, especially, if you're not the target.

I remember TC's reaction against the company that "stole" them the CrunchPad idea or something like that. Isn't stealing content the same thing, after all? Maybe the dimensions are different, but the underlying truth is the same. Stealing is bad. Bad in general and bad for the Internet.

</comment><comment><USER5> This is not the first time Cooks Source has copied something without permission. Check this out: [http://www.edrants.com/the-cooks-source-scandal- how-a-magazi...](http://www.edrants.com/the-cooks-source-scandal-how-a- magazine-profits-on-theft/)

<comment><USER6> The "woe is mob" TechCrunch author really should have highlighted this piece.

The mob didn't kill a magazine, it killed an ongoing content theft mill.

</comment></comment><comment><USER7> Relating this to web startups, imagine the damage that would be done to a startup if private data being held on behalf of a customer were made public, accidentally or otherwise. Then a response stating the customer should be happy they are storing their data at all was given.

I've seen plenty of startup scandals on HN in the past where the founder has come out and defended what they did or admitted they did the wrong thing, but none as bad as the response for this magazine editor.

<comment><USER8> I'm not really sure I understand your analogy, copyright infringement and privacy violations are very different mistakes. Can you explain?

<comment><USER7> I mean more generally, a public outcry about something, either deliberately or inadvertently does. If a startup responded to one of these events in a similar way it would put people way offside and bring their credibility into question, as has happened in this situation.

</comment></comment></comment><comment><USER9> I wholeheartedly agree that what the editor, Ms. Griggs, did was unethical and copyright infringement. I believe she should, and tried to, make it right. However, after watching the whole debacle through Facebook and Twitter and reading some of the reprehensible things, I was disgusted. The things that were said or written about were very often irrelevant from people who had no dog in the fight. And, there were some things that were written that would never have been spoken. I fear this event goes beyond copyright infringement.

Douglas Rushkoff, in his book 'Program or Be Programmed' has an entire chapter about the social aspect of the web and the mob it/we produce; it's quite a good read: <http://www.orbooks.com/our-books/program/>

</comment><comment><USER10> Self-righteous internet mob seems like a better idea than DCMA and government action.

<comment><USER11> Indeed, they can't throw you in prison.

</comment></comment><comment><USER8> I wonder how many of the people involved have opinions on pirating movies/songs/other forms of IP, and what those opinions might be.

Somehow I can't see an internet mob ganging up on someone who remixed a song (of an indie artist) and refused to see anything wrong with it.

This also shows that there are very, very weird people out there on the Internet. Who would bother to send the editor personal hate mail?

<comment><USER12> _I wonder how many of the people involved have opinions on pirating movies/songs/other forms of IP, and what those opinions might be._

I wonder why anyone would use such a passive-aggressive construction in their writing.

 _Somehow I can't see an internet mob ganging up on someone who remixed a song (of an indie artist) and refused to see anything wrong with it._

See, I can explain this. Believe it or not, most people do not study copyright law for years in order to develop opinions about what activity should be infringing. Instead, they develop an ad-hoc set of intuitions about what sorts of activity copyright should regulate. Sometimes those norms happen to line up well with what copyright law actually says and sometimes they're in complete disagreement. In this case, the norms line up. In other cases, like a poor artist who earns basically zero dollars remixing, they don't.

In other words, what is legal often differs from what most people's intuitions about what is legal, and this difference is especially large in area of law that are complex and divorced from popular debate. The truth is that if you tried to explain copyright law to the average person, they simply wouldn't believe you because so much of it is so absurd. This is all explained in any of a number of good books, starting with Jessica Littman's _Digital Copyright_ , which I highly recommend.

<comment><USER8> _I wonder why anyone would use such a passive-aggressive construction in their writing._

 _Believe it or not, most people do not study copyright law for years in order to develop opinions about what activity should be infringing._

Really?

Anyway, I don't think you can disregard the point by pointing out (quite correctly IMO) that copyright law is a pile of crap. I think in general, Internet mobs are pro-piracy of songs/movies, but in this case these people saw something massively wrong with what is basically piracy of someone's article. Staying away from the legal side, what moral/ad-hoc/intuitive basis do you think the people had for making this distinction?

</comment></comment></comment><comment><USER13> Good.</comment>


Show HN: Usabilla Discover - Collect, rate and share UI Elements on sites - <AUTHOR>

Most designers and developers we know use a combination of Evernote, a directory of images and bookmarks to collect interesting design elements.
We think collecting and curating UI elements can be easier than that, so we built Usabilla Discover. Please have a look at http://discover.usabilla.com/, or look at our blogpost announcement at http://blog.usabilla.com/announcing-usabilla-discover/.
Signup with the code HACKERNEWS and I'll approve the invitation manually.
I'm curious to hear what you think. <comment><USER3> Great idea. I have been wanting something like this ever since the popularity of Pinterest.

I don't see why such sites are invite only. It only means that I might be too busy when I get the invite and might not come back - unless I hear about it again (in my opinion, it only slows growth).

Feedback: 1\. Would be great to have the site be a little faster. 2\. I would love to be able to see who all the discoveries within a domain - <USER2> like <http://snip.it/d/blog.kissmetrics.com/>

</comment><comment><AUTHOR> You can sign up by clicking 'request an invite' on the top of the page (<http://discover.usabilla.com/>).</comment>


How Data Mining Could've Prevented an ISIS Terror Attack in Tunisia - <AUTHOR> http://www.iafrikan.com/2015/06/22/data-mining-isis-tunisia-tunis-bardo-terror-museum-atack/

<comment><USER2> A post-hoc correlation demonstrated through data mining is not difficult. What's difficult is make predictive statements that are strong enough to be actionable.</comment>


Tell me please about the problems in the company where you work? - <AUTHOR> Hello Hackers.
Tell me please about the problems in the company where you work?
It can be anything. Toilet paper that ends up at the wrong time. Not convenient programs. Conflicts with colleagues or leaders. it could be any problem.
Tell us about the problems that concern you most.
We try to help each other. Maybe someone will tell you how to resolve these problems.
As a bonus, I hope, such discussion may inspire you to the idea of a new startup.
I'm sure many of the problems can be solved by technology. Many entrepreneurs are trying to find promising ideas.
let's help each other.
Write a description of the problem in the comments of the first level. Write solutions in response to the comments of the first level.
(It would be great if you write on what position in company do you work?) <comment><USER2> Very poor communication. The managers communicate with each other but don't pass the info on to us. So one manager will ask if something is done, when the other manager never told us that it needed to be done.

Our qa environment is a joke. It doesn't match our production environment at all.

Too much of our work relies on people outside of our team. So when we need them to review, approve, or contribute it takes forever because it doesn't matter to them.

<comment><AUTHOR> The problem of poor communication is not solved by anyone. Still. Therefore, we have hundreds of systems to communicate, but they do not work effectively enough. In my company we use Slack (for communications) and Asana (for task management). These are good tools, but not universal.

<comment><USER3> Agreed. Nobody seems to be tackling the big picture here.

What we need is not more communication apps. What we need is one communication app that's better than anything out there. Something like the English of apps.

</comment></comment></comment><comment><USER4> I work as an analyst, and the biggest problem is a lot of people on the business side are bad at thinking through requirements for an application or process.

<comment><USER5> My experience can confirm this as well.

</comment></comment><comment><USER6> Culture clash.

They're from an English speaking country, so are we. They want to get challenging work done, and so do we. They come from an entrenched culture that's hyper-aware of fine differentiation of class and hierarchical structure, we come from a democratic culture of mutual consideration and informal comradeship between all levels of hierarchy.

They think being the boss means being The Boss. We think that being the boss means being another employee with more responsibility and privilege.

</comment><comment><USER7> In one of my past employment - toilet cleaning in the middle of the day. Necessary but annoying to no end as you'd have to go to different floor.

</comment><comment><USER3> Those who make decisions usually are not competent.

Those who are component usually don't make decisions.

<comment><AUTHOR> It seems this is a problem for all people.</comment></comment>


Creating a low-latency calling network - <AUTHOR> https://whispersystems.org/blog/low-latency-switching/ <comment><USER2> Very smart to avoid Asterisk, FreeSWITCH and SIP in general for a security oriented program. SIP is moronically complex. As an illustration, the spec talks about using SIP to setup _chess games_ , non-ironically. Like, that's how super-duper-abstract the SIP authors thought they were being. Of course, it's a bit strange to then explain why a mandatory header is "Call-ID", but hey, this is the IETF...

Also, all the major SIP platforms are thousands of lines of C or C++ just to parse this fucked up format. One particular popular project has almost 1M lines of C in its repo. And not a single CVE issued. Anyone taking bets on if it's more likely that there's never been an issue, or if we just don't notice? I mean, with switch statements spanning 1000+ lines, we can be sure it's top quality everywhere, right? One popular system allowed you to put shell commands in SIP headers, and it'd just go and execute them, due to ... creative[1] ... escaping and evaluation rules.

Not to mention that on every SIP network I've tested, even simple, trivial, things like IP-based auth _don 't actually work_. It's mind-boggling. It's just that there's even lower-hanging fruit so no one bothers with remotely fun attacks.

1: Insane and terribly thought-out.

</comment><comment><USER3> Do users attempting to call each other have to be on the same switch? Or do you route data explicitly from one switch to another?

<comment><USER4> I have the same question... If clients choose the closest entry point to the overlay network, are they fully meshed internally?

It's an interesting problem any time you are routing in an overlay network. It's probably tricky enough selecting a single optimal connection point for two clients to connect to minimize the end-to-end latency between the clients.

<comment><USER5> The load balancing they describe in their article is only used for inbound requests, similar to a traditional HTTP LB setup. If I understand it correctly they don't implement the outgoing message delivery to the called user themselves, but instead use SMS or a Google Service to deliver push notifications.

So the problem of "how do I route request X to user Y" has to be solved by either Google or the Provider that delivers the short message. -- Actually, with their current setup they don't even need to know where a user is located geographically, since they simply choose a proxy server by asking Route53 for a list of close servers (I presume close to the calling user) and then use their connect-then-disconnect-hack to choose the "best" server from that list.

        > Instead we decided to write our own minimal signaling protocol
        > and use push notifications (at first SMS, then eventually GCM when
        > it was introduced) in order to initiate calls.

So I imagine you could just stick the address of the switch that was chosen by the caller into the message that gets delivered to the called device when a call is initiated.

Obviously this doesn't solve the hard part of "how not to drop a call when your switch goes down mid-call" though.

<comment><USER4> The signaling is the first part of the article. The challenge there is avoiding your own persisted connection or polling mechanism. (The solution is to use someone else's persisted connection or polling!)

In the second part they're describing TURN which is a 3rd party packet relay which you bounce your packets through when you can't directly route between two endpoints (usually because of NAT). As in, the call has been signaled, the keys exchanged, and now I just need to get packets of audio between Alice and Bob every 20ms or so and how nice would it be if they could do that between themselves and my servers could stay out of it?!

Broken NAT (the need for TURN) is probably the thing that frustrates me most about the Internet. If any two endpoints could always simply and easily connect just through direct routing it makes a lot of applications lives much easier, and many applications possible which otherwise end up centralized.

This is just one case in point. Just like Skype, the IP isn't even really in the actual "product" but in the hacks it takes to make the product work in the reality of pathologically NAT'd networks.

<comment><USER5> Yes, this seems like a bunch of work to keep up and running and I agree that most of the meat of their solution is actually in Google's or Amazon's systems running the GeoDNS/push stuff. Hopefully IPv6 will fix it all ™.

However, until then, GCM [1] seems like a really good workaround. And I believe it is actually free of charge and available for both iOS and Android.

[1] [https://developers.google.com/cloud- messaging/](https://developers.google.com/cloud-messaging/)

<comment><USER4> Just centralize it :-). Exactly the reason I think IPv6 won't fix it (arbitrary inbound will still be firewalled by upstream either as a ToS/AUP or as a "feature") because too much money is at stake for the centralized services.

I think solid decentralized service discovery and direct routing would be as pivotal as the Blockchain itself. One actually helps solve the other, e.g using an altcoin for anti-spam. But the direct routing (a better NAT hole punch) apparently is not possible without service provider cooperation.

Tor is probably the biggest reliable semi-centralized overlay network, I'm not sure if there are any better options for punching through NAT that don't involve running your own public relay or trusting a 3rd party. But I assume Tor is much too slow to support realtime voice between an arbitrary client and hidden service?

Bitcoin miners faced a similar problem of needing to build a higher speed relay network to shuttle large blocks faster than the existing P2P relay network. In that case there was a group of P2P nodes configured to allow much larger number of peers combined with dedicated fast paths between themselves each located in high-speed hubs. I'm not sure if it was ever deployed.

<comment><USER6> Comcast Residential only filters 25, 135, 139, 445 and -for some reason- 1080.

If Comcast isn't applying an aggressive inbound firewall, pretty much noone will.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> Regarding the TURN server, if they are already defined a custom protocol they could try to do a hack where they try first to connect via a TURN then while progress, test if peer-to-peer direct media would work. If it does transparently switch to that.

I do like the idea of load balancing on the client, that is pretty cool. I did something similar on the local LAN.

Apple uses TCP multipath for cases where connection might drop out wonder if that would be an option here as well.

<comment><USER8> > Apple uses TCP multipath for cases where connection might drop out wonder if > that would be an option here as well.

As far as I've seen, that's for Siri only. I don't think any of the other mobile platforms allow MPTCP for apps, either. (I would love to be wrong though)

</comment></comment><comment><USER9> > However, the NATs generally employed by mobile data networks are > pathological, such that it's virtually impossible for two clients on a > mobile data network to establish a direct connection with each-other.

This problem, and the entirety of the resulting "solution¹" and the engineering complexity that stems from it in the article, is completely solved by IPv6, because it renders NAT obsolete.

¹not that they had a choice.

<comment><USER10> While I agree that IPv6 makes NAT obsolete, I, unfortunately, don't see NAT going away even after everyone is 100% on IPv6. Too many people/companies rely on NAT for "security" for it to completely die.

<comment><USER6> At worst, I see NAT being replaced with default-reject-unless-associated-with- an-existing-internally-initiated-connection border firewalls everywhere a sysadmin with half a clue works.

<comment><USER10> And that's what I would do (basic stateful inspection), but there are too many organizations (especially SMBs with little/no I.T. staff onboard) who will simply use NAT with IPv6 to get that same end result.

<comment><USER11> We'd probably be better off giving those people a default-deny firewall and _calling it_ NAT to pacify them. But I doubt that will happen.

<comment><USER6> I could _maybe_ see Cisco doing such a thing.</comment></comment></comment></comment></comment></comment>


Ask HN: Getting back into Web-Dev after a few years – What to read? - <AUTHOR> Hi, years ago (6-8) I was a fairly confident web-developer.
Having diverted from that path, I have unfortunately lost touch with more recent developments and I'm absolutely overwhelmed by this 'new' world of frameworks, languages, and practices.
I'm now looking to get back into web-development (both frondend and backend), and I'm keen to learn. I have a relatively strong background in HTML, CSS, JS, 'oldschool' PHP, and relational databases.
My biggest concern is not knowing the current best practices. My search, so far, has only led to more confusion.
Hence, I'm looking for material that will get me up to speed, especially on a 'meta-level'. What to learn? How to organize/start modern web-development projects? What are current best practices of doing things?
I would really love your input on that! <comment><USER2> I would be easy to give you a lot of references to things you could go and read, but the real question is what do you want to archive? Programming is only a means to an end, and you can do everything with the tools you already know such as PHP, HTML & CSS.

React.js or the meta-level behind it, virtual DOM, has no doubt improved my front-end skills 10-fold and together with Node.js where I can render all the things in the backend and use the same code, but all that doesn't really matter.

What are you doing currently? Maybe I can help you get started? What are your interests?

<comment><AUTHOR> Hey, thank you for your answer. Currently I'm doing a lot of scientific computing in Python and R. I would love to get started with some smaller (personal) web-projects because I always really enjoyed developing for the web.

Given my background I thought about looking at Laravel more closely, however I would also love to understand the whole JS/Node/X.js hype/world. As it looks, we have moved towards an infrastructure that heavily relies on backend APIs.

<comment><USER2> I would suggest you make a simple blog/twitter with node.js and mongo, that would take you a couple of hours and you will have something quick to show!

If you want, you are very welcome to reach me on skype "kevinsimper"!</comment></comment></comment>