深阅读

Introduction to Dart VM
https://mrale.ph/dartvm/
This document is intended as a reference for new members of the Dart VM team, potential external contributors or just anybody interested in VM internals. It starts with a high-level overview of the Dart VM and then proceeds to describe various components of the VM in more details.

The State of the React Native Community in 2018
https://facebook.github.io/react-native/blog/2019/01/07/state-of-react-native-community
The biggest shift in 2018 was to empower the React Native Community. From the beginning, Facebook encouraged developers from all around the world to participate in React Native’s open source project. Since then, a number of core contributors emerged to handle, among other things, the release process.

Trash talk: the Orinoco garbage collector
https://v8.dev/blog/trash-talk
Over the past years the V8 garbage collector (GC) has changed a lot. The Orinoco project has taken a sequential, stop-the-world garbage collector and transformed it into a mostly parallel and concurrent collector with incremental fallback.
另附:Chromium - Building a Better World Wide Web.

New ES2018 Features Every JavaScript Developer Should Know
https://css-tricks.com/new-es2018-features-every-javascript-developer-should-know/
Additionally, ES2018 drops the syntax restriction of escape sequences from tagged templates. These new changes are explained in the subsections that follow.

Medium 架构实践:避免微服务综合症
https://www.infoq.cn/article/fv8tgq0VBeoToVT*TKy8
微服务架构的目标是帮助工程师团队更快、更安全、更高质量地交付产品。解耦服务使团队能够快速迭代,并尽可能降低对系统其余部分的影响。在 Medium,我们的技术栈始于 2012 年的单体 Node.js 应用程序。我们已经构建了几个卫星通讯服务,但还没有系统地制定一个采用微服务架构的策略。随着系统变得越来越复杂并且团队不断发展,我们在 2018 年初转向了微服务架构。在这篇文章中,我们希望分享关于如何有效实现微服务架构并避免微服务综合症的经验。

Front-End Performance Checklist 2019
https://www.smashingmagazine.com/2019/01/front-end-performance-checklist-2019-pdf-pages/
If we created an overview of all the things we have to keep in mind when improving performance — from the very start of the process until the final release of the website — what would that list look like? Below you’ll find a (hopefully unbiased and objective) front-end performance checklist for 2019 — an updated overview of the issues you might need to consider to ensure that your response times are fast, user interaction is smooth and your sites don’t drain user’s bandwidth.

Node.js Performance Tuning and Testing
https://stackify.com/node-js-performance-tuning/
We know Node.js for its lightning-fast performance. Yet, as with any language, you can write Node.js code that performs worse for your users than you’d like. To combat this, we need adequate performance testing. Today, we will cover just that with an in-depth look at how to set up and run a performance test and analyze the results so you can make lightning-fast Node.js applications.

Node.js & JavaScript Testing Best Practices
https://medium.com/@me_37286/yoni-goldberg-javascript-nodejs-testing-best-practices-2b98924c9347
The ideas below span topics like choosing the right test types, coding them correctly, measuring their effectiveness and hosting them in a CI/CD pipeline in the right way. Some examples are illustrated using Jest, others with Mocha — this post is less about tooling and more about the right approach and techniques.

Defensive JavaScript
https://www.javascriptjanuary.com/blog/defensive-javascript
How to write code that doesn’t do what it oughtn’t Sometimes we developers are asked to wear many different hats. I’ve felt like I needed to be a graphic designer to craft CSS, an anthropologist when dealing with forty languages worth of I18N/L10N, or a detective when piecing together logs and git history to find a heisenbug in legacy code.

Conversations with Robots: Voice, Smart Agents & the Case for Structured Content
https://alistapart.com/article/conversations-with-robots
In this article, we’ll look at the forms and impact of structured content, and we’ll close with a set of resources that can help you get started with a structured content approach to information design.
另附:The practical value of semantic HTML.

Web Page Usability Matters
https://addyosmani.com/blog/usability/
Users appreciate pages being usable and interactive soon after they’re visually ready. UI interactions (scrolls, taps, clicks) can be delayed by script and other browser work so minimizing their impact can really help your users.

How does LinkedIn detect extensions?
https://github.com/dandrews/nefarious-linkedin
There are two common ways to detect the usage of a browser extension. The first method is by scanning public resources available in the extension, the other is by analyzing the target web page for abnormal behavior. LinkedIn is currently using both of these methods: Public Resources, Behavioral Patterns.

Courier: Dropbox migration to gRPC
https://blogs.dropbox.com/tech/2019/01/courier-dropbox-migration-to-grpc/
Dropbox runs hundreds of services, written in different languages, which exchange millions of requests per second. At the core of our Service Oriented Architecture is Courier, our gRPC-based Remote Procedure Call (RPC) framework. While developing Courier, we learned a lot about extending gRPC, optimizing performance for scale, and providing a bridge from our legacy RPC system.

Introducing ThirdEye: LinkedIn’s Business-Wide Monitoring Platform
https://engineering.linkedin.com/blog/2019/01/introducing-thirdeye--linkedins-business-wide-monitoring-platfor
ThirdEye is a comprehensive platform for real-time monitoring of metrics that covers a wide variety of use-cases. LinkedIn relies on ThirdEye to monitor site performance, track member growth, understand adoption of new features, flag sustained attempts to circumvent system security, and many other areas.

How DevOps Should Use DBaaS (Database-As-A-Service) To Optimize Their Application Development
http://highscalability.com/blog/2019/1/4/how-devops-should-use-dbaas-database-as-a-service-to-optimiz.html
Database-as-a-Service (DBaaS) is quickly gaining in popularity across the tech world. These software platform solutions helps users easily manage their database operations without having to really understand any of the abstractions. This allows developers, DBA’s and DevOps engineers to quickly automate their backups, create new SQL and NoSQL clusters, and monitor the performance of their databases for their application without requiring any internal database expertise.

Computer science in JavaScript 2019: Linked list
https://humanwhocodes.com/blog/2019/01/computer-science-in-javascript-linked-list/
Back in 2009, I challenged myself to write one blog post per week for the entire year. I had read that the best way to gain more traffic to a blog was to post consistently. One post per week seemed like a realistic goal due to all the article ideas I had but it turned out I was well short of 52 ideas.

How to Start Learning Computer Graphics Programming
https://erkaman.github.io/posts/beginner_computer_graphics.html
Ever since I opened up my Direct Messages and invited everyone to ask me computer graphics related questions on Twitter, I am very often asked the question “How can I get started with graphics programming?”. Since I am getting tired of answering this same question over and over again, I will in this post compile a summary of all my advice I have regarding this question.
另附:Your WebGL aiders.

I learnt C++ in 2018 and have no regrets
https://vishnubharathi.codes/blog/learning-cpp-2018/
Despite all the problems I faced, I still don’t have regrets learning and using C++ now and then. Because it gives this awesome base of knowledge about problems that programmers faced all these years and how they are being solved with respect to language design and tooling.

Dive into Deep Learning: Berkeley Course
http://d2l.ai/index.html
An interactive deep learning book for students, engineers, and researcher.
另附:Facebook - AI year in review.

新鲜货

Announcing unlimited free private repos and unified Enterprise offering
https://blog.github.com/2019-01-07-new-year-new-github/
We’re excited about these updates to our Free and Enterprise offerings: GitHub Free now includes unlimited private repositories. GitHub Enterprise is the new unified product for Enterprise Cloud (formerly GitHub Business Cloud) and Enterprise Server (formerly GitHub Enterprise).
另附:GitLab - GitHub now offers free private repos for up to three collaborators – here are our thoughtsVS Code: Now creating pull requestsView multi-file diffs with commit preview.

Amazon DocumentDB, with MongoDB compatibility
https://aws.amazon.com/cn/documentdb/
Amazon DocumentDB (with MongoDB compatibility) is a fast, scalable, highly available, and fully managed document database service that supports MongoDB workloads. Amazon DocumentDB implements the Apache 2.0 open source MongoDB 3.6 API by emulating the responses that a MongoDB client expects from a MongoDB server, allowing you to use your existing MongoDB drivers and tools with Amazon DocumentDB. Amazon DocumentDB uses a distributed, fault-tolerant, self-healing storage system that auto-scales up to 64 TB per database cluster.
另附:AWS gives open source the middle finger

Mozilla Announces Deal to Bring Firefox Reality to HTC VIVE Devices
https://blog.mozilla.org/blog/2019/01/08/mozilla-announces-deal-to-bring-firefox-reality-to-htc-vive-devices/
Last year, Mozilla set out to build a best-in-class browser that was made specifically for immersive browsing. The result was Firefox Reality, a browser designed from the ground up to work on virtual reality headsets. To kick off 2019, we are happy to announce that we are partnering with HTC VIVE to power immersive web experiences across Vive’s portfolio of devices.

2018 JavaScript Rising Stars
https://risingstars.js.org/2018/en/
Let’s see by the numbers which projects got traction in 2018 by comparing the numbers of stars added on GitHub over the last 12 months, and find out who are 2018’s JavaScript Rising Stars.
另附:2018年度 35 个最好用 Vue 开源库.

CSS Inspiration
https://github.com/chokcoco/CSS-Inspiration
这里可以让你寻找到使用或者是学习 CSS 的灵感,以分类的形式,展示不同 CSS 属性或者不同的课题使用 CSS 来解决的各种方法。

Practical Node.js 2nd Edition
https://github.com/azat-co/practicalnode
This is the manuscript (draft) and code for Practical Node.js, 2nd Edition [Apress, 2018]. It’s work in progress and the draft will be completed in the end of 2017.

Ember 3.7 Released
https://emberjs.com/blog/2019/01/07/ember-3-7.html
Ember.js 3.7 is an incremental, backwards compatible release of Ember with bugfixes, performance improvements, and minor deprecations. There is zero (0) new feature, zero (0) deprecations, and three (3) bugfixes in this 3.7 version.

react-with-gesture
https://github.com/drcmda/react-with-gesture
React-with-gesture is a small utility that lets you bind richer mouse and touch events to any component or view. With the data you receive it becomes trivial to set up gestures, and often takes no more than a few lines of code.

React Native Chart Kit
https://github.com/indiespirit/react-native-chart-kit
React Native Chart Kit: Line Chart, Bezier Line Chart, Progress Ring, Bar chart, Pie chart, Contribution graph (heatmap).

Formik
https://github.com/jaredpalmer/formik
Formik is a small library that helps you with the 3 most annoying parts: Getting values in and out of form state; Validation and error messages; Handling form submission. By colocating all of the above in one place, Formik will keep things organized–making testing, refactoring, and reasoning about your forms a breeze.

React Kawaii
https://react-kawaii.now.sh/
React Kawaii is a library of cute illustrations that are easily customisable. They are ideal to give some cuteness and personality to your ReactJS application. Just pick an illustration and set the mood and it’s done!

music-fns
https://github.com/madewithlove/music-fns
music-fns is a JavaScript music utility library that contains small music notation related functions.

HotKeys.js
http://wangchujiang.com/hotkeys/
HotKeys.js is an input capture library with some very special features, it is easy to pick up and use, has a reasonable footprint (~3kb) (gzipped: 1.73kb), and has no dependencies. It should not interfere with any JavaScript libraries or frameworks.

DoneJS 3
https://www.bitovi.com/blog/donejs-3
DoneJS 3.0 continues on that mission with: Dramatically faster production time-to-interactive times thanks to incremental rendering. The latest from CanJS 5.0, such as tree-shakable modules (no more need to import from a dozen or more different packages) and a more easily configurable service layer. StealJS 2.0, makes debugging easier by removing the promise polyfill when it’s not needed, and adds support for tree-shaking (both in development and production builds)!

Anime.js • JavaScript animation engine
https://animejs.com/
Anime.js (/ˈæn.ə.meɪ/) is a lightweight JavaScript animation library with a simple, yet powerful API. It works with CSS properties, SVG, DOM attributes and JavaScript Objects.

FromJS
http://www.fromjs.com/
An experimental data-flow analysis tool for JavaScript. FromJS shows you where each value in the DOM comes from. For example, some data might have been loaded using fetch, some might have been stored in localStorage, and some might have been hard-coded in the JavaScript code.

Homebrew 1.9.0
https://brew.sh/2019/01/09/homebrew-1.9.0/
I’d like to announce Homebrew 1.9.0. The most significant changes since 1.8.0 are Linux support, (optional) automatic brew cleanup and providing bottles (binary packages) to more Homebrew users.
另附:Bash-5.0 release available

Hexyl - A command-line hex viewer
https://github.com/sharkdp/hexyl
Hexyl is a simple hex viewer for the terminal. It uses a colored output to distinguish different categories of bytes (NULL bytes, printable ASCII characters, ASCII whitespace characters, other ASCII characters and non-ASCII).
另附:Hex Fiend 也是个不错的工具。

Dejavu 3.0: The missing Web UI for Elasticsearch
https://medium.appbase.io/dejavu-3-0-the-missing-web-ui-for-elasticsearch-214b18502727
Dejavu 3.0 — the missing web UI for Elasticsearch is here 🎉 🎉! It’s been an amazing journey thus far: Since our first release in 2015, we have crossed a lifetime total of 475,000 Docker pulls, have over 11K active Chrome extension installations, and over 5,100+ stars 🌟 on our Github repository.

Launching LiteCLI
https://www.pgcli.com/launching-litecli.html
LiteCLI is a user-friendly CommandLine client for SQLite database. LiteCLI is written in python using the wonderful prompt-toolkit library. It is cross-platform compatible and it is tested on Linux, MacOS and Windows.

Over 500 Top PDFs posted to Hacker News in 2018
https://getpolarized.io/2019/01/08/top-pdfs-of-2018-hackernews.html
In the past I’ve seen PDFs from text books, brilliant original research and even old trusted technical books from the 80s and 90s. So I figured it would be interesting to compute the top PDFs from 2018.

设计

Blueprint For Developing The Best UX Design For Apps
https://medium.com/superteam/blueprint-for-developing-the-best-ux-design-for-apps-999e19528ccc
what are the elements which you can use to enable your UX to drive conversion? Let’s take a look at some of the factors that can make your UX consistent, appealing, and beneficial.

Will Adobe XD kill Sketch and InVision?
https://uxdesign.cc/will-adobe-xd-kill-sketch-and-invision-7fc4e562fc1a
If you couldn’t care less for Adobe XD, or don’t want to know what XD has to offer, do yourself a favour and scroll down and read the section “Why Adobe XD will dominate, regardless of features” before crossing XD off your list. There are many other UX/UI design tools outside of Sketch and InVision. Figma, Framer and Protopie to name a few, but Sketch and InVision seem to be dominating the field. The question we need to ask is, is their reign about to come to an end?
另附:The Best UX Tools (with Infographic).

How to Jira for designers
https://medium.com/designing-atlassian/how-to-jira-for-designers-e37c354aa078
As a designer on the Jira team, this has been a point of interest to me. From our research with designers from other companies, we’ve learnt that some designers appreciate the ease of collaborating with dev teams in Jira Software, while others feel that Jira Software is unfamiliar and sometimes overwhelming for day-to-day work.

How to Use Storyboards for Product Development
https://www.uxbooth.com/articles/how-to-use-storyboards-for-product-development/
A storyboard is a collection of cells that each depicts an image and together narrate a story or journey. Historically, storyboards were most commonly used in media or film production but product developers are now incorporating storyboarding into their processes. Creating a storyboards forces product developers to think through a process in a step-by-step manner allowing them to design streamlined user experiences.

Design for a Map
https://medium.com/google-design/design-for-a-map-927b533ac544
What is a map? Why do we use them? Where are they heading? I’ll offer some insights on a modern, semi-informed, perspective on what Maps can do for people and some thoughts on where they could be going.
另附:I Love Google Photos So Much that I Redesigned It.

产品及其它

Technology on Reddit
https://redditblog.com/2019/01/08/technology-on-reddit/
From the hottest trends to the latest gadget launches, tech has always been a popular topic on Reddit. Our latest analysis explores the variety of topics, depth of discussion and highly-engaged communities that contribute to the technology conversations happening on Reddit. Before jumping, here’s a summary of metrics across Reddit’s top technology communities: 284M+ monthly views 27M+ monthly visitors 23M+ total subscribers 253K avg. posts per month 2.92M avg. comments per month 20.1M avg. votes per month.

So long, Macbook. Hello again, Linux.
http://richardmavis.info/so-long-macbook-hello-again-linux
Long story short, after a decade on my Macbook, I switched back to Linux. Recently I’ve just found myself disenchanted with Apple in a way similar to how I felt maybe twelve years earlier with Microsoft, when I switched to Linux the first time.

11,000 Digitized Books From 1923 Are Now Available Online at the Internet Archive
http://www.openculture.com/2019/01/11000-digitized-books-from-1923-are-now-available-online-at-the-internet-archive.html
Whether your interest is in winning arguments online or considerably deepening your knowledge of world cultural and intellectual history, you will be very well-served by at least one government agency from now into the foreseeable future. Thanks to the expiration of the so-called “Micky Mouse Protection Act,” the U.S. Copyright Office will release a year’s worth of art, literature, scholarship, photography, film, etc. into the public domain, starting with 1923 this year then moving through the 20th century each subsequent year.

张小龙 - 回应微信的一切
https://mp.weixin.qq.com/s/F1LWh9UkeClSgZjE0O5A8Q
专题:https://new.qq.com/zt/template/?id=TEC2019010800864000 视频:https://mp.weixin.qq.com/s/MzJJfCsASb-oBehpBSTNLQ
可以和 张小龙和张一鸣:价值观决定终局,两种价值观,两种产品命运 对照着看。

作者:Dafrok (https://github.com/dafrok) - Open source is justice.

- 百度数据可视化
- 百度智能建站