Home

2018.02.19

Pi

Ping Xia

March 21, 20226 min read

Title: 2018.02.19

Deep Reading

Lazy deserialization https://v8project.blogspot.com/2018/02/lazy-deserialization.html Lazy deserialization was recently enabled by default in V8 version 6.4, reducing V8’s memory consumption by over 500 KB per browser tab on average. Read on to find out more!

Under the hood: How Chrome's ad filtering works https://blog.chromium.org/2018/02/how-chromes-ad-filtering-works.html While most advertising on the web is respectful of user experience, over the years we’ve increasingly heard from our users that some ads can be particularly intrusive. As we announced last June, Chrome will tackle this issue by removing ads from sites that do not follow the Better Ads Standards. We’ve previously discussed some of the details surrounding how Chrome protects users from intrusive ads, but as we approach the launch date of February 15, we wanted to go under the hood and discuss how this feature works in more detail.

AMP stories: Bringing visual storytelling to the open web https://developers.googleblog.com/2018/02/amp-stories-bringing-visual.html The AMP story format is a recently launched addition to the AMP Project that provides content publishers with a mobile‑focused format for delivering news and information as visually rich, tap‑through stories.

nohoist in Workspaces https://yarnpkg.com/blog/2018/02/15/nohoist/ As wonderful as Yarn workspaces are, the rest of the community hasn’t yet fully caught up with the monorepo hoisting scheme. The introduction of nohoist is an attempt to provide an easy‑to‑use mechanism, natively supported by Yarn, for enabling workspaces to work with otherwise incompatible libraries. We hope this feature will ease the pain for monorepo developers and strike a balance between efficiency (hoisting as much as possible) and usability (unblocking libraries that haven’t been adapted for workspaces).

How production engineers support global events on Facebook https://code.facebook.com/posts/166966743929963/how-production-engineers-support-global-events-on-facebook/ People around the world come to Facebook to celebrate and share experiences during special events, such as the Olympics or New Year’s Eve. These global occurrences can cause spikes in load and traffic patterns on Facebook’s systems, especially with high‑bandwidth content like Facebook Live videos. The Production Engineering team at Facebook carefully plans and builds infrastructure to ensure service uptime and reliability even through such spikes. To illustrate how we handle these kinds of planned special events, let’s look at how the Production Engineering team prepared the live‑video streaming infrastructure for New Year’s Eve.

Hyperapp for Redux refugees https://medium.com/hyperapp/hyperapp-for-redux-refugees-2507c9dd1ddc Hyperapp is a single library that performs two functions which work well together. It provides a concise form of immutable state updates similar to Redux/Elm combined with a balanced subset of the virtual‑DOM functionality you would find in React and its peers. Hyperapp embraces idiomatic JavaScript customs and norms. It stays firm on the functional‑programming front when managing your state, but takes a pragmatic approach to allowing side effects, asynchronous actions, and advanced DOM manipulations (more on those first two later).

Implementing Compression and Decompression with Node.js https://zhuanlan.zhihu.com/p/33783583 ZIP and GZIP are the two compression formats we encounter most often; of course, GZIP is rarely used on Windows. TAR is an archive format that does not compress by default; it needs to be combined with GZIP to produce a .tar.gz file, commonly abbreviated as tgz. This article explains how to perform compression and decompression for GZIP, TAR, TGZ, and ZIP in Node.js.

Talking About the “Real vs. Fake” Design Systems on the Market http://www.zsoltnagy.eu/how-replacing-javascript-templating-engines-with-es6-template-literals-may-cost-you-your-job/ The term atomic design system (hereafter simply “design system”) has been popular for a long time—Ant Design 3.0 from Ant Financial, for example, claims to be built on a “design system.” If you’re not familiar with atomic design systems, I suggest you start with a basic overview. Although the concept has existed for years, from a designer’s perspective the industry still contains many “pseudo” design systems. Why do I say that?

Discussing Microsoft’s Newly Released Decentralized Identity (DID) System https://mp.weixin.qq.com/s?__biz=MzAwMDU1MTE1OQ==&mid=2653549389&idx=1&sn=158f9feb10d76a2e6ca7e15f8ec8a3e8 These past few days the blockchain community has been buzzing about Microsoft’s decentralized identity system DID (1). Microsoft’s DID Decentralized IDs (https://cloudblogs.microsoft.com/enterprisemobility/2018/02/12/decentralized-digital-identities-and-blockchain-the-future-as-we-see-it/) is the first time a major internet company has publicly embraced decentralized technology. Rumors have circulated that Facebook is also experimenting with blockchain, but no official confirmation has appeared. Microsoft’s DID project has been incubated internally for 12 months, and it presents a grand vision of how blockchain could be used for DID authentication in the future.

Promises are not neutral enough https://staltz.com/promises-are-not-neutral-enough.html Even though they fulfill their purpose, JavaScript Promises are an opinionated primitive that introduce a lot of weirdness. This weirdness ends up spreading to other corners of the JavaScript language and ecosystem. Basically, Promises are not neutral enough because they introduce four opinions: eager (not lazy); no cancellation; never synchronous; then() is a mix of map() and flatMap().

Choosing a JavaScript build tool: to config or not config https://dev.to/netlify/choosing-a-javascript-build-tool-to-config-or-not-config-2ia8 This post isn’t meant to be an exhaustive list. Rather, it’s meant to provide suggestions to help you get started in researching how different build tools improve the development workflow. While reading through this comparison of build tools you will gain knowledge to better equip yourself for comparing how these tools line up with your specific needs.

Ember 3.0 Released https://emberjs.com/blog/2018/02/14/ember-3-0-released.html Ember 3.0 doesn’t introduce any new functionality; instead it focuses the framework by removing long‑deprecated APIs and support for legacy platforms. This blog post will help you understand what is being removed in 3.0 and what migration strategies are available.

Replacing jQuery With Vue.js: No Build Step Necessary https://www.smashingmagazine.com/2018/02/jquery-vue-javascript/ What some people might not know is that you can incorporate Vue into your project the same way you would incorporate jQuery—no build step required. Vue is flexible enough to be used directly in the HTML.

Using SSE Instead Of WebSockets For Unidirectional Data Flow Over HTTP/2 https://www.smashingmagazine.com/2018/02/sse-websockets-data-flow-http2/ Nowadays, there are a few ways to implement these patterns: long/short polling (client pull); WebSockets (server push); Server‑Sent Events (server push). We will take an in‑depth look at the three alternatives after we have set the requirements for our business case.

Designing, Implementing, and Using Reactive APIs https://www.infoq.com/articles/Designing-Implementing-Using-Reactive-APIs In this article we aim to give you some opinionated suggestions about how you should write reactive code. These opinions come from years of experience developing.


Originally written by Ping Xia (平侠) and published in Chinese on Web技术周刊 (Web Tech Weekly). Translated and adapted for DriftSeas with permission.

Keep reading

More related articles from DriftSeas.