深阅读

Rendering on the Web
https://developers.google.com/web/updates/2019/02/rendering-on-the-web
As developers, we are often faced with decisions that will affect the entire architecture of our applications. One of the core decisions web developers must make is where to implement logic and rendering in their application. This can be a difficult, since there are a number of different ways to build a website. Our understanding of this space is informed by our work in Chrome talking to large sites over the past few years. Broadly speaking, we would encourage developers to consider server rendering or static rendering over a full rehydration approach. 另附:Replacing a hot path in your app’s JavaScript with WebAssembly.

This.JavaScript - State of Frameworks & Libraries
https://www.youtube.com/watch?v=DFF9eOlTWzY
This.JavaScript is an online event for developers to hear the latest news in JavaScript. In this event, the State of Frameworks and Libraries, we will cover Node.js, Polymer.js, Ember.js, Preact, React.js, RxJS, Angular, and Vue.js. 另附:How to Take JavaScript Beyond the Web in 2019.

What’s next for SemVer
https://words.steveklabnik.com/what-s-next-for-semver
Over the last few months, several of us2 have been talking, and today, we have an announcement to make. We’ve formed a semver team, and we intend to start work on producing a new version of the spec. Who is “we”? The team roster will be in a GitHub team.

The security risks of changing package owners
https://blog.npmjs.org/post/182828408610/the-security-risks-of-changing-package-owners
We’ve had a few situations recently which illustrate that people are a layer beneath the code and the actions of maintainers have a direct impact on the security of the ecosystem. Specifically event-stream and koa-router.

None of my projects want to be SPAs
https://whatisjasongoldstein.com/writing/help-none-of-my-projects-want-to-be-spas/
Back in the early days of SPAs, some people argued that it would be faster to only pass the data you need as JSON than to render whole pages. Nearly a decade later, this is almost never true. I can think of a few things that would benefit from being SPAs. A chat application is a no-brainer. A dashboard of realtime data might not need to be a SPA, but would benefit from a reactive component that updates when the API is polled. Maybe a complicated tool like Trello, a Calendar or a Nonlinear Video Editor could make sense, but even those have distinct screens, so a large reactive component on a particular screen may be a better fit. What’s more interesting is how many apps I’m seeing built as an SPA that really don’t need to be. Why does a website that orders food from restaurants need a Megabyte of javascript?

我是如何传播自由软件理念的
https://tonghuix.io/how-i-promote-free-software/
自从2017年不再担任北京GNU/Linux用户组的活动负责人以后,很多和自由软件推广相关的事情我也淡化了一些。不过为了让更多人投入到自由软件的推广和传播事业中来,我很愿意把之前推广和传播自由软件理念时候的一些心得体会总结下来,为有志于自由软件传播事业的同仁提供一些浅薄的经验。另附:和 PingCAP CTO 黄东旭聊开源数据库新蓝海半数以上国产手游曾使用他开源的引擎:Cocos和王哲的故事.

[译]前端技术选型的遗憾和经验教训
https://mp.weixin.qq.com/s?__biz=MjM5MDE0Mjc4MA==&mid=2651013499&idx=2&sn=0c01339b2d187a377d5a57013627151a
我是 Max,Spectrum 的技术联合创始人。Spectrum 是一个面向大型在线社区的开源聊天应用程序,最近被 GitHub 收购。我们是一个三人团队,主要拥有前端和设计背景,我们在这个项目上工作了近两年时间。事后看来,以下是我做出的令自己感到遗憾的技术选型以及从中学到的经验教训。

IT架构的本质–我的五点感悟
https://mp.weixin.qq.com/s?__biz=MzU5NDAzNDEyMA==&mid=2247484105&idx=1&sn=4daeff5b2fd2964ce24fd70b54433a77
参禅的三重境界在IT技术圈同样适用,初学者感叹每个产品都如此精妙绝伦,追逐着最强的IDE;老司机喜欢自比管乐指点江山,嘲讽着最好的语言;当一切回归平淡,搞IT就是一份思想延伸和语言翻译工作;其中技术架构师就是一份古朴甚至无趣的工作。我将架构师的工作总结出五条核心道理,这五条经验简单直白又深奥通透,算是对我十二年IT工作的一个总结。

Getting Out of (Technical) Debt
https://www.sitepen.com/blog/getting-out-of-technical-debt/
Technical debt may be a natural side effect of every development process, but it does not have to suffocate the team or degrade the user experience. By introducing thorough automated processes and conventions, taking the time to address existing debt, and appointing reliable leads, even teams with limited experience can settle their technical debt and produce healthy, successful applications.

Animation in React
https://www.nearform.com/blog/animation-in-react/
Animating your React apps doesn’t have to be a hassle. With these helpful components and prebuilt animation keyframes, you’ll be adding animation to your apps in no time.

Developing fast & reliable iOS builds at Pinterest (Part one)
https://medium.com/@Pinterest_Engineering/developing-fast-reliable-ios-builds-at-pinterest-part-one-cb1810407b92
At Pinterest we’re focused on helping people discover inspiring ideas, from dinner recipes to try, home and style products to buy, to places to travel. Building the best products for mobile is a critical part of that, with 80% of all Pinners access Pinterest via mobile apps. On the iOS team specifically, we’re constantly working to improve that experience as efficiently and quickly as we can, and giving our team the best development and testing environment is a key step in that.

Anyone can create a virtual reality experience with this new WebVR starter kit from Mozilla and Glitch
https://hacks.mozilla.org/2019/02/webvr-starter-kit-mozilla-glitch/
Building a virtual reality experience may seem daunting, but it really isn’t. WebVR and frameworks like A-Frame make it really easy to get started. This is why we worked with Glitch to create a WebVR starter kit. It is a free, 5-part video course with interactive code examples that will teach you the fundamentals of WebVR using A-Frame. Our hope is that this starter kit will encourage anyone who has been on the fence about creating virtual reality experiences to dive in and get started.

New UI tools and a richer creative canvas come to ARCore
https://developers.googleblog.com/2019/02/new-ui-tools-and-richer-creative-canvas.html
ARCore and Sceneform give developers simple yet powerful tools for creating augmented reality (AR) experiences. In our last update (version 1.6) we focused on making virtual objects appear more realistic within a scene. In version 1.7, we’re focusing on creative elements like AR selfies and animation as well as helping you improve the core user experience in your apps.

Distributed web not ready for Runet cutoff from the Internet
https://www.ctrl.blog/entry/dweb-readiness-runet#
We’re still in the early days of the distributed web. The planned interruption of access to the global internet in Russia serves as an important reminder that our networks are incredibly interconnected, and that distributed networks need to do more to live up to their potential. 另附:Well-Known URI vs DNS-SD for routing distributed web service discovery around internet censorship.

don’t get clever with login forms
http://bradfrost.com/blog/post/dont-get-clever-with-login-forms/
Let’s walk through some login patterns and why I think they’re not ideal. And then let’s look at some better ways of tackling login. TL;DR; create login forms that are simple, linkable, predictable, and play nicely with password managers.

Machine Learning and the Future of Mobile App Development
https://heartbeat.fritz.ai/machine-learning-and-the-future-of-mobile-app-development-13dd2aeda533
4 reasons why the next wave of mobile apps will be powered by machine learning.

Cloud Programming Simplified: A Berkeley View on Serverless Computing
https://rise.cs.berkeley.edu/blog/a-berkeley-view-on-serverless-computing/
Cloud Programming Simplified: A Berkeley View on Serverless Computing with some of the same authors commemorates the tenth anniversary of that landmark paper. Serverless Computing provides an interface that greatly simplifies cloud programming, and represents an evolution that closely parallels past advances in programmer productivity, such as the transition from assembly language to high-level programming languages.

PKI for busy people
https://rehn.me/posts/pki-for-busy-people.html
Public-key infrastructure (PKI) is an umbrella term for everything that has to do with certificate and key management. This is a quick overview of the important stuff.

PostgreSQL vs. fsync
https://fosdem.org/2019/schedule/event/postgresql_fsync/
How is it possible that PostgreSQL used fsync incorrectly for 20 years, and what we’ll do about it.

On Being A Principal Engineer
https://blog.dbsmasher.com/2019/01/28/on-being-a-principal-engineer.html
T bought and read The Manager’s Path by the awesome Camille Fournier when it first came out. The title of the book and its stated goal might be laying out the path in engineering management up to senior leadership, but reading it made it clear to me that the book is also of great value to individual contributors to help explain what all these titles mean, what each layer of management is supposed to focus on, and how engineering concerns converge ultimately with business concerns and crystallize into a strategy for a technical organization. I also realized that while I am still an individual contributor, the principal engineer role carries enough cross-organization work, and enough people skills, that it is much closer to management than it may seem without engineers reporting directly to me. 另附:How to be mindful at work7 Reliability Questions Engineering Managers Need to Ask Their Teams.

How we used delayed replication for disaster recovery with PostgreSQL
https://about.gitlab.com/2019/02/13/delayed-replication-for-disaster-recovery-with-postgresql/
Replication is no backup. Or is it? Let’s take a look at delayed replication and how we used it to recover from accidental label deletion.

What Is Istio, and How Does It Work?
https://blog.newrelic.com/engineering/istio-service-mesh/
Developed by a collaboration between Google, IBM, and Lyft, Istio is an open-source service mesh that lets you connect, monitor, and secure microservices deployed on-premise, in the cloud, or with orchestration platforms like Kubernetes and Mesos. Announced less than two years ago, Istio is establishing a growing user base including giants like Ebay and AutoTrader UK.

Cloud Native Application Architecture
https://medium.com/walmartlabs/cloud-native-application-architecture-a84ddf378f82
Cloud native is an approach for building applications as micro-services and running them on a containerised and dynamically orchestrated platforms that fully exploits the advantages of the cloud computing model. Cloud-native is about how applications are created and deployed, not where. Such technologies empower organisations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds.

Why Google Needed a Graph Serving System
https://blog.dgraph.io/post/why-google-needed-graph-serving-system/
The founder of Dgraph Labs, the graph database company, explains his earlier work at Google and how Google would improve their search systems using graph technology.

Introducing PlaNet: A Deep Planning Network for Reinforcement Learning
https://ai.googleblog.com/2019/02/introducing-planet-deep-planning.html
To spur progress on this research challenge and in collaboration with DeepMind, we present the Deep Planning Network (PlaNet) agent, which learns a world model from image inputs only and successfully leverages it for planning. PlaNet solves a variety of image-based control tasks, competing with advanced model-free agents in terms of final performance while being 5000% more data efficient on average. We are additionally releasing the source code for the research community to build upon.

Introducing Ludwig, a Code-Free Deep Learning Toolbox
https://eng.uber.com/introducing-ludwig/
Ludwig is unique in its ability to help make deep learning easier to understand for non-experts and enable faster model improvement iteration cycles for experienced machine learning developers and researchers alike. By using Ludwig, experts and researchers can simplify the prototyping process and streamline data processing so that they can focus on developing deep learning architectures rather than data wrangling.

Audio AI: isolating vocals from stereo music using Convolutional Neural Networks
https://towardsdatascience.com/audio-ai-isolating-vocals-from-stereo-music-using-convolutional-neural-networks-210532383785
Formally known as Audio Source Separation, the problem we are trying to solve here consists in recovering or reconstructing one or more source signals that, through some -linear or convolutive- process, have been mixed with other signals. The field has many practical applications including but not limited to speech denoising and enhancement, music remixing, spatial audio, remastering, etc. In the context of music production, it is sometimes referred to as unmixing or demixing. There’s a good amount of resources on the subject, going from ICA-based -blind- Source Separation, to semi-supervised Non-negative Matrix Factorization techniques, to more recent neural network-based approaches. For a nice walkthrough on the first two, you can check out these tutorial mini-series from CCRMA, which I found very useful back in the day.

Better Language Models and Their Implications
https://blog.openai.com/better-language-models/
We’ve trained a large-scale unsupervised language model which generates coherent paragraphs of text, achieves state-of-the-art performance on many language modeling benchmarks, and performs rudimentary reading comprehension, machine translation, question answering, and summarization — all without task-specific training.

This is Microsoft’s AI pipeline, from research to reality
https://www.fastcompany.com/90305091/this-is-microsofts-ai-pipeline-from-research-to-reality
It’s not enough to have brilliant researchers and a bunch of popular products. You’ve got to have a system–or several systems–for melding raw technology into experiences that make a difference for businesses and consumers.

新鲜货

W3C Strategic Highlights
Meeting Industry Needs (Web of Things https://www.w3.org/blog/2019/02/w3c-strategic-highlights-meeting-industry-needs-web-of-things/ Strengthening the Core of the Web (HTML) https://www.w3.org/blog/2019/02/w3c-strategic-highlights-strengthening-the-core-of-the-web-html/

How GitHub Classroom and Travis CI improved students’ grades
https://github.blog/2019-02-12-how-github-classroom-and-travis-ci-improved-students-grades/
With some pre-semester planning, Dr. Shane Wilson was able to decrease the time he spent grading by 80 percent and increase the passing rate of his course from 76 to 90 percent. How did he help students get better grades and learn critical skills, reduce grading time, and scale up to hundreds of students? He combined GitHub Classroom with Travis CI, a service that can automatically generate builds and run tests. 另附:GitHub - Introducing draft pull requests.

HHVM 4.0.0
https://hhvm.com/blog/2019/02/11/hhvm-4.0.0.html
HHVM 4.0 is released! This release adds support for .hack files, non-experimental support for HSL regular expressions, and removes several PHP behaviors.

Introducing Node.js Working Group Series: From Security to Performance — Learn How Node.js Innovates
https://medium.com/the-node-js-collection/introducing-node-js-working-group-series-8db7239994ad
To keep the community and end users better informed of all that is being done — and to give thanks to our many active contributors — we are starting a new Working Group Series. This new blog will showcase the work, progress, participants and priorities within each working group on a regular basis. In each post, Working Group leaders will share updates on their main goals, accomplishments, next steps, and perhaps most importantly, how you can get involved.

Google Docs gets an API for task automation
https://techcrunch.com/2019/02/11/google-docs-gets-an-api-for-task-automation/
Google today announced the general availability of a new API for Google Docs that will allow developers to automate many of the tasks that users typically do manually in the company’s online office suite. The API has been in developer preview since last April’s Google Cloud Next 2018 and is now available to all developers. 另附:Google .dev domain early access.

Funding ESLint’s Future
https://eslint.org/blog/2019/02/funding-eslint-future
We’ve realized that in order for ESLint to continue to grow and evolve, we need to get more organized and set up a way to fund ESLint’s development going forward.

38% of bugs at Airbnb could have been prevented by TypeScript according to postmortem analysis
https://www.reddit.com/r/typescript/comments/aofcik/38_of_bugs_at_airbnb_could_have_been_prevented_by/
Every dynamic language has these people who resist the static typing that inevitably some people try to bring to the language. They say “well I’m super expert in this and I don’t need types, and if I have a team of super experts, we all won’t need types”. Well not every team is made up of super experts. Types let the experts insert checks to prevent common errors. I sleep better at night knowing that the compiler is there checking stuff for me. And I’m not even an expert.

Next.js 8
https://nextjs.org/blog/next-8/
We are proud today to introduce the production-ready Next.js 8, featuring: Serverless Next.js; Massive build-time memory usage reduction; Build-time environment configuration; Prefetch performance improvements.

Introducing: @pika/pack
https://www.pikapkg.com/blog/introducing-pika-pack/
@pika/pack connects pre-configured plugins (e.g. Babel and Rollup) to build and optimize your package for you. It’s a bit like a webpack or Parcel but specifically for building npm.

Announcing Linaria 1.0
https://blog.callstack.io/announcing-linaria-1-0-d5c7756ff511
Linaria is a zero-runtime CSS in JS library. What’s special about Linaria is that it extracts all of the styles you write in your JavaScript code to real CSS files, unlike other CSS in JS libraries which parse and apply the styles in the browser.

Bootstrap 4.3.0
https://blog.getbootstrap.com/2019/02/11/bootstrap-4-3-0/
Bootstrap v4.3 has landed with over 120 combined closed issues and merged pull requests. This release brings improvements to our utilities, some prep work for moving on to v5’s development, and the standard bug fixes and documentation updates.

NativeScript 5.2 Comes with Official Support for Vue.js
https://www.nativescript.org/blog/nativescript-5.2-comes-with-official-support-for-vue
NativeScript 5.2 is here! Read on for a full list of features and improvements that are now part of NativeScript: Vue.js Official Support; Hot Module Replacement Improvements; Native Debugging Toolkit…

Fuse.js
https://fusejs.io/
Fuse.js is a lightweight fuzzy-search, in JavaScript, with zero dependencie

PrimeReact
https://www.primefaces.org/primereact/#/
PrimeReact is a collection of rich UI components for React. All widgets are open source and free to use under MIT License. PrimeReact is developed by PrimeTek Informatics, a vendor with years of expertise in developing open source UI solutions. 另附:Data Visualization Libraries for React Developers in 2019.

Gitpod
https://www.gitpod.io/
One-Click Online IDE for GitHub and other code hosting platforms. In a blink of an eye from any GitHub project, pull request, or issue to a ready-configured, fully-featured online IDE and terminal.

Ballooning with Three.js
https://github.com/alexanderperrin/threejs-ballooning
This was developed as a study into procedural terrains, buffer geometry optimisation and shadow mappers with Three.js and WebGL. I had some grand plans for the application, but they were never realised so it’s probably more useful to just release it as it is for others to take a look! There are plenty of issues with it and it’s pretty rough having been developed over 2 years ago now, but if it’s some use to anyone that’s great. Example at https://alexanderperrin.com.au/triangles/ballooning.

Leon
https://github.com/leon-ai/leon
Leon is an open-source personal assistant who can live on your server. He does stuff when you ask for it. You can talk to him and he can talk to you. You can also text him and he can also text you. If you want to, Leon can communicate with you by being offline to protect your privacy.

Sloth
https://sveinbjorn.org/sloth
Sloth is a Mac application that displays all open files and sockets in use by all running processes on your system. This makes it easy to inspect which apps are using which files and sockets.

explainshell
https://explainshell.com/
Write down a command-line to see the help text that matches each argument. This site contains 29761 parsed manpages from swections 1 and 8 found in Ubuntu’s manpage repository. A lot of heuristics were used to extract the arguments of each program, and there are errors here and there, especially in manpages that have a non-standard layout. 另附:Problem solving with Unix commands.

1991 – a server-side web framework written in Forth
http://www.1-9-9-1.com/
The year is 1991. The World Wide Web has just seen public release. 1991 looks to ease your interactions with the new web using cutting edge programming techniques in Forth (well, Gforth).

Edge TPU Devices
https://aiyprojects.withgoogle.com/edge-tpu
The Edge TPU is a small ASIC designed by Google that provides high performance ML inferencing for low-power devices. For example, it can execute state-of-the-art mobile vision models such as MobileNet V2 at 100+ fps, in a power efficient manner. With one of the following Edge TPU devices, you can build embedded systems with on-device AI features that are fast, secure, and power efficient.

设计

Space Colony Art from the 1970s
https://publicdomainreview.org/collections/space-colony-art-from-the-1970s/
In the 1970s the Princeton physicist Gerard O’Neill, with the help of NASA Ames Research Center and Stanford University, held a series of space colony summer studies which explored the possibilities of humans living in giant orbiting spaceships. Colonies housing about 10,000 people were designed and a number of artistic renderings of the concepts were made.

Why Webflow Is the Best Web Design Program Right Now
https://blog.prototypr.io/why-webflow-is-the-best-web-design-program-right-now-f128aef8b45
Webflow is a rare exception to this rule. Built with a “code-first” philosophy, Webflow is an all-in-one web design tool that allows users to design, build, and launch responsive websites visually. 另附:SketchCode - Generating HTML Code from a hand-drawn wireframe.

From Hate to ❤
https://medium.com/microsoft-design/how-to-design-push-notifications-30085a97779b
How to turn push notifications from annoying distractions into customer sidekicks.

From Four Wheels to Two
https://eng.lyft.com/from-four-wheels-to-two-403bcf1cbf59
How Lyft adds new options without missing a ride: a lesson in engineering principles for quickly and safely adding major features to a mobile codebase.

产品及其它

《德国工业战略2030》中文翻译全文
https://mp.weixin.qq.com/s?__biz=MjM5NDI2NDU5Mw==&mid=2655260692&idx=2&sn=35d5ee21e02b3eca55ef72f78e6c445e
德国工业战略2030”选取了一种完全不同的方法。该战略界定了国家干预行为可以视为合理的,甚至可能是必要的情况,以避免国家经济和全民族繁荣陷入严重的不利之中。这种方法也有助于塑造一个符合未来发展方向的市场经济,并为必要的政治辩论奠定基础。另附:解读德国“国家工业战略2030”、美版的“举国体制”终于浮出了水面](https://mp.weixin.qq.com/s?__biz=MzA5NzY4NTQyMw==&mid=2651276256&idx=2&sn=fb0245a8e81632b44c192902d2758fea)、美国公布长达35页的《2016-2045年新兴科技趋势报告》中国正在大规模调整经济布局

比尔和梅琳达·盖茨:我们的2019年度公开信
https://weibo.com/ttarticle/p/show?id=2309404338982505817052
二十五年前,我们读到的一篇文章中提到,贫困国家每年有数十万儿童死于腹泻。这个出乎我们意料的数字,促使我们确立了盖茨基金会的理念。我们相信,在一个人人平等的世界中,所有人都应从创新中受益,没有任何一个孩子会死于可预防的疾病。但我们看到的是,不平等依然大量存在。这个发现是我们的慈善之路上的重要一步。震惊之余,我们心生愤慨,并决心为此采取行动。当然,也有令人惊喜的意外。刚开始了解疟疾的时候,我们以为只有发明长效疫苗才能切实推进抗疟事业。孰不知,得益于推广使用蚊帐和其他多种手段,疟疾导致的死亡人数自2000年以来已经下降了42%。在今年的公开信里,我们希望和大家分享一路走来的另外九大意外。有些让人忧虑,有些给人启迪,但无一不激励我们采取行动。我们希望大家也能获得同样的鼓舞,并付诸行动。只有这样,世界才能变得更好。

作者:wuyiping (https://github.com/bobiscool) - keep calm and carry on

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