FEX 技术周刊 - 2019/03/25
深阅读
V8 release v7.4
https://v8.dev/blog/v8-release-74
V8 v7.4 is filled with all sorts of developer-facing goodies. This post provides a preview of some of the highlights in anticipation of the release. V8 now supports JavaScript execution without allocating executable memory at runtime. In-depth information on this feature can be found in the dedicated blog post. WebAssembly Threads/Atomics shipped.
I Used The Web For A Day On Internet Explorer 8
https://www.smashingmagazine.com/2019/03/web-on-internet-explorer-ie8/
This article is part of a series in which I attempt to use the web under various constraints, representing a given demographic of user. I hope to raise the profile of difficulties faced by real people, which are avoidable if we design and develop in a way that is sympathetic to their needs. Last time, I navigated the web for a day using a screen reader. This time, I spent the day using Internet Explorer 8, which was released ten years ago today, on March 19th, 2009.
React Router v5
https://reacttraining.com/blog/react-router-v5/
- React Router version 5 is now available.
- v5 is fully backwards compatible with 4.x
- The only reason for the major version bump has to do with how we were specifying dependencies in react-router-dom
- v5 introduces several structural improvements, including:
- Better support for React 16
- Eliminates all warnings in
<StrictMode>
- New context API (internal only)
- Fully automated releases.
- v5 also introduces a few new features
State of the Vuenion: An Update on Vue.js
https://www.youtube.com/watch?v=zB3HOejXqwk
At last month’s VueJS Amsterdam event, the creator of Vue.js gave a 40 minute keynote on how things are going with the project.
Winter:代码无捷径,只怕有心人
https://mp.weixin.qq.com/s/3sujSSR-Antb3DJOpY8xXQ
做技术的人日复一日地沉浸于创造,点滴的进步终会汇聚成真实的变革。其实知识始终都在那里,只不过你把它做成什么样的形式,去展现出来。
学不进去,没时间学怎么办?
https://www.zhangxinxu.com/life/2019/03/study/
招聘高峰季,最近面试了一些人,聊到关于学习话题的时候,发现很多人有学不进去,没时间学的问题,加上之前断断续续有很多人咨询我关于如何学习的问题,我觉得可以好好讲讲我对于学习这件事的一些经验和看法。这些经验与看法不局限于IT技术的学习。
Web端H.265播放器研发解密
http://taobaofed.org/blog/2019/03/18/web-player-h265/
音视频编解码对于前端工程师是一个比较少涉足的领域,涉及到流媒体技术中的文本、图形、图像、音频和视频多种理论知识的学习,才能够应用到具体实践中,我们自研web播放器并支持h.265解码,在码率优化的大背景下(保持画质不变情况下,应用图像增强、roi区域检测、智能场景分类和h265编解码等多种技术能力,将码流降低50%。达到减少带宽成本,提升视频服务QoE的目的),真正做到了h265解码播放的全域覆盖。本文主要分享了我们基于WebAssembly实现H.265格式的解封装、解码和播放。
Flutter 实现原理及在马蜂窝的跨平台开发实践
https://mp.weixin.qq.com/s/WBnj_6sOonjR9XUnB-wZPA
在本文中,我们将结合 Flutter 在马蜂窝商家端 App 中的应用实践,探讨 Flutter 架构的实现原理,有何优势,以及如何帮助我们解决问题。
Android技术架构演进与未来
https://mp.weixin.qq.com/s/W38aauoCEEUbL8KvUkb_Rw
Android诞生至今已有10余年,这一路走来Android遇到哪些问题?大版本升级朝着什么方向演进?Android的未来如何?
从技术演变的角度看互联网后台架构
https://cloud.tencent.com/developer/article/1404117
这个ppt的初衷是希望从近十多年来不同时代不同热点下技术栈的变化来看看我们是如何从最早的php/asp/jsp<=>mysql这样的两层架构,一个阶段一个阶段演变到现在繁复的大数据、机器学习、消息驱动、微服务架构这样的体系,然后在针对其中比较重要的几个方面来给新入门后台开发的同学起个“提纲目录”的作用。
Writing Resilient Components
https://overreacted.io/writing-resilient-components/
When people start learning React, they often ask for a style guide. While it’s a good idea to have some consistent rules applied across a project, a lot of them are arbitrary — and so React doesn’t have a strong opinion about them. You can use different type systems, prefer function declarations or arrow functions, sort your props in alphabetical order or in an order you find pleasing. This flexibility allows integrating React into projects with existing conventions. But it also invites endless debates.
How To Implement Smooth Transitions in React
https://blog.bitsrc.io/how-to-implement-smooth-transitions-in-react-bd0497b06b8
In this post, you will see how to use the React-Transition-Group library to implement smoother transitions. In the end, you will be able to use this amazing library to bring a lot of awesomeness to your React Components.
I Don’t Hate Arrow Functions
https://davidwalsh.name/i-dont-hate-arrow-functions
Arrow functions are fine for certain usages, but they have so many variations that they need to be carefully controlled to not break down the readability of the code.
A complete guide to threads in Node.js
https://blog.logrocket.com/a-complete-guide-to-threads-in-node-js-4fa3898fe74f
Back-end languages, which generally support multithreading, have all kinds of mechanisms for syncing values between threads and other thread-oriented features. To add support for such things to JavaScript would require changing the entire language, which wasn’t really Dahl’s goal. For plain JavaScript to support multithreading, he had to create a workaround. Let’s explore.
Repl.it GFX: Native graphics development in the browser
https://repl.it/site/blog/gfx?ref=updates
At Repl.it we live and breathe making software creation easier. With our programming environment, you could start coding in your favorite language in seconds. With live deployments, we made web hosting a breeze. With Multiplayer, we’ve removed the drudgery from coding with friends. And today, we’re excited to bring native GUI applications and game development to the browser.
另附:Google unveils Stadia cloud gaming service, launches in 2019.
Building lifelike virtual avatars to help people connect in VR
https://code.fb.com/virtual-reality/virtual-avatars/
Facebook Reality Labs (FRL) is using groundbreaking 3D capture technology and AI systems to create lifelike virtual avatars. The technology could one day make social connections in virtual reality as natural and common as those in the real world.
另附:Giant steps and liberating spaces – Virtual Reality is making cool moves.
关于“Open” Distro、开源和公司建设的几点思考
https://www.elastic.co/cn/blog/on-open-distros-open-source-and-building-a-company
我在 2009 年坐下来编写了 Elasticsearch 最初的几行代码,并以开源方式提供给用户。因此我放弃了原来的工作,花了两年时间开发产品并围绕这些产品打造杰出的社区。在 2012 年,我们围绕所开发的产品创建了公司:Elastic。我们投入巨大精力维持用户社区,并且采用围绕这一社区而开发的开源产品生态系统。Elastic 关注的焦点始终是:开发强大的产品,围绕这些产品构建社区,并帮助用户实现成功。
另附:Henry Zhu, a core maintainer of Babel: Open Source Is About One’s Soul Searching and Moving the Whole Community
Why Fastly loves QUIC and HTTP/3
https://www.fastly.com/blog/why-fastly-loves-quic-http3
QUIC is being standardized at the Internet Engineering Task Force (IETF) and our engineering team includes one of the IETF QUIC working group’s chairs and an editor of the core document. We are also working on quicly, our own implementation of this new protocol. Let’s explore what QUIC is in a bit more detail and why we’re so excited to put our resources behind it.
另附:QUIC让B站在20%丢包时实现零卡顿.
How I’m able to take notes in mathematics lectures using LaTeX and Vim
https://castel.dev/post/lecture-notes-1/
I started using LaTeX to write lecture notes in the second semester of my bachelor in mathematics, and I’ve been using it ever since, which makes for a total of more than 1700 pages of notes. These lecture notes — including figures — are made while attending the lecture and have not been edited afterwards. This blog post will focus on the first item: writing LaTeX.
新鲜货
Firefox 66: The Sound of Silence
https://hacks.mozilla.org/2019/03/firefox-66-the-sound-of-silence/
Firefox 66 is out, and brings with it a host of great new features like screen sharing, scroll anchoring, autoplay blocking for audible media, and initial support for the Touch Bar on macOS.
另附:Today’s Firefox Aims to Reduce Your Online Annoyances、Release Notes for Safari Technology Preview 78、A Homepage for the JavaScript Specification.
Matrix 1.0 – Are We Ready Yet?
https://matrix.org/blog/2019/03/15/matrix-1-0-https-arewereadyyet-com/
Folks, as you know we are now very close to achieving Matrix 1.0 and finally being in a position to shed our ‘beta’ tag. It has been a long time coming and speaks to the huge effort from hundreds of people over the past 5 years.
GitLab 11.9 released with secrets detection and multiple MR approval rules
https://about.gitlab.com/2019/03/22/gitlab-11-9-released/
Inadvertently committing credentials to a shared repository can have serious consequences, yet it is a simple mistake to make. Once an attacker gets your password or API key, they can take over your account, lock you out, and fraudulently spend money. This can even lead to a domino effect where access to one account grants access to others. With the stakes so high, it’s of paramount importance to learn as quickly as possible if secrets have been leaked.
code-server
https://github.com/codercom/code-server
可以部署到服务端的 VS Code,功能非常完整。
IndexedDB with usability
https://github.com/jakearchibald/idb
This is a tiny (~1.13k) library that mostly mirrors the IndexedDB API, but with small improvements that make a big difference to usability.
Announcing fromfrom
https://www.futurice.com/blog/announcing-fromfrom/
fromfrom is a library to transform sequences of data from one format to another.
construct-js
https://github.com/francisrstokes/construct-js
construct-js is a library for creating byte level data structures. It focuses on a declarative API and simplicity of use.
NestJS 6: What’s New?
https://medium.com/@kammysliwiec/announcing-nestjs-6-whats-new-38959d94221f
I am thrilled to announce the official release of Nest 6: A progressive Node.js framework for building efficient and enterprise-grade, server-side applications. Last year was great for our community. We experienced an almost 300% growth in popularity, rising four times faster than any existing HTTP library. Nest was presented at many conferences all over the world, and many amazing articles & videos were created. 2018 was amazing and we expect 2019 to be even better!
lax.js
https://github.com/alexfoxy/laxxx
Simple & light weight (<2kb gzipped) vanilla javascript plugin to create smooth & beautiful animations when you scrolllll! Harness the power of the most intuitive interaction and make your websites come alive!
useQueryParams
https://github.com/pbeshai/use-query-params
A React Hook for managing state in URL query parameters with easy serialization.
Prompts
https://github.com/terkelg/prompts
Lightweight, beautiful and user-friendly interactive prompts.
Peacock v1
https://dev.to/azure/peacock-v1-released-4kce
A Visual Studio Code extension that subtly changes the workspace color of your workspace. Ideal when you have multiple VS Code instances and you want to quickly identify which is which.
Svelte Native • The Svelte Mobile Development Experience
https://svelte-native.technology/
Svelte Native is a new approach to building mobile applications using NativeScript. Where other JS-Native frameworks like React-Native and Nativescript-Vue do the bulk of their work on the mobile device, Svelte Native shifts that work into a compile step that happens when you build your app. Instead of using techniques like virtual DOM diffing, Svelte writes code that surgically updates the native view widgets when the state of your app changes.
Fyne 1.0: A Cross Platform GUI Development Toolkit
https://fyne.io/
We’re building a modern application framework and desktop environment focussed on design, usability and ease of development and distribution. Best of all it’s open source and free to use!
0x
https://github.com/davidmarkclements/0x
single-command flamegraph profiling.Discover the bottlenecks and hot paths in your code, with flamegraphs. 0x can profile and generate an interactive flamegraph for a Node process with a single command, on any platform which Node runs on (macOs, Linux, Windows, Android…).
JDK 12 General-Availability Release
https://jaxenter.com/java-12-is-here-156964.html
Java SE 12 is here and even though it’s not an LTS release, it definitely brings some important features to the table. Let’s have a look at the highlights of this new release.
HAPPY 21ST, CURL!
https://daniel.haxx.se/blog/2019/03/20/happy-21st-curl/
Another year has passed. The curl project is now 21 years old. I think we can now say that it is a grown-up in most aspects. What have we accomplished in the project in these 21 years? We’ve done 179 releases. Number 180 is just a week away.
Commento - A fast, privacy-focused commenting platform
https://commento.io/
A fast, privacy-focused commenting platform. Embed Commento in your website to foster discussion and improve engagement.
A Julia interpreter and debugger
https://julialang.org/blog/2019/03/debuggers
The debugger is itself a collection of tools that enable those features. The core is powered by an interpreter that can faithfully run Julia code while allowing various front-ends to control its execution. Each front-end is its own package: Juno incorporates the debugger into its IDE, Rebugger provides a REPL text UI, and the traditional step/next/cont2018 inue command-line interface is provided by Debugger. All these new debugging capabilities seamlessly integrate with Revise, so that you can continuously analyze and modify code in a single session.
Rust Cookbook
https://rust-lang-nursery.github.io/rust-cookbook/
This Rust Cookbook is a collection of simple examples that demonstrate good practices to accomplish common programming tasks, using the crates of the Rust ecosystem.
另附:Implementing a NES Emulator in Rust.
设计
How Art Direction Will Help You Create Masterful Web Interfaces
https://blog.marvelapp.com/art-direction-will-help-create-masterful-web-interfaces/
Use Art Direction to Magnify your Communication and Showcase your Talent. Art direction will determine the difference between a regular and brilliant creations. This, because good design choices will be made from the beginning of the project, and guarantee the success of your operation, from customer requirement to a masterful web interface.
Teenager’s UX: Designing for Teens
https://www.nngroup.com/articles/usability-of-websites-for-teenagers/
Teens are (over)confident in their web abilities, but they perform worse than adults. Lower reading levels, impatience, and undeveloped research skills reduce teens’ task success and require simple, relatable sites.
New Web Order: An Overview of Content-First Design
https://www.toptal.com/designers/company-website-design/content-first-design
Designers do not simply decorate, they create an experience of moving through content. But what happens if a client or team members don’t understand how content should drive design? To avoid an upside-down process, there are strategies that can help explain the importance of content and rally a team around creating it upfront.
The Principles of Design and Their Importance
https://uxplanet.org/the-principles-of-design-and-their-importance-77f959d0d555
In reality, there are roughly a dozen basic principles of design that beginning and expert designers alike should keep in mind when working on their projects. In addition, there are another dozen or so “secondary” design principles that are sometimes included as basics (for example, the Gestalt Principles, typography, color, and framing). The main design principles are explained and illustrated below.
Platform UX: Domain-Driven Design Concepts in Enterprise UX
https://www.uxmatters.com/mt/archives/2019/03/platform-ux-domain-driven-design-concepts-in-enterprise-ux.php
Domain-driven design (DDD) is a set of modeling techniques that can facilitate systems thinking. DDD is an approach to modeling software that accounts for business processes by explicitly articulating the relationships among teams and technical systems with the intent of accelerating the discovery work that is necessary to iterate on existing software.
另附:Introduction to coding for UX and UI designers: data structures and objects.
产品及其它
十年再出发!阿里云智能总裁张建锋演讲全记录
https://mp.weixin.qq.com/s?__biz=MzIzOTU0NTQ0MA==&mid=2247489936&idx=1&sn=fdca96ed927fdb4428cf0e0fe2d33ab2
阿里云到今天做了十年,大家看到我们这次主题叫“十年再出发”。在十年前,很多人在问一个问题,云是什么?第二个问题我为什么要上云?十年后,大家在讨论的问题是“我为什么不上云?”所以十年间发生太多的变化。我们看过去的十年,阿里云到底做了什么样的事情?
中国第一程序员”求伯君与雷军的三十年
https://new.qq.com/omn/20190323/20190323A02VQA.html
2018 年底,金山软件举办创业三十年庆典,三位创始人,求伯君、雷军和张旋龙到场。庆生中,雷军与求伯君深情相拥,两个中年男人欣喜落泪。次日,雷军在微博中写道:三十年的岁月年华,三十年的兄弟情谊,刹那间涌上心头。人生能有几个三十年,人生又能有几个这样的战友?
如何打造Uber黑帮
https://mp.weixin.qq.com/s?__biz=MjM5MDczODM3Mw==&mid=2653028720&idx=1&sn=9183b27bec764e769d214c685150091e
Uber的文化价值观,由CEO Travis Kalanick亲自起草,于2015年9月在Uber 5周年年会上首次公布。战斗到底 “Always hustlin” 、热血澎湃 “Superpumped” 、大愿景大风险“Big bold bets” 是其最具代表性的三条。
周鸿祎:能赚钱和想赚钱,是两回事
https://mp.weixin.qq.com/s?__biz=MzIxNTAzNzU0Ng==&mid=2654622479&idx=1&sn=2dfb3ffc83f07ef9b8608228a8ae2e98
实际上商业模式不是盈利模式,它至少包含了四个方面:产品模式、用户模式、推广模式,最后才是盈利模式。商业模式是你能提供一个什么样的产品,给什么样的用户创造什么样的价值,在创造用户价值的过程中,用什么样的方法获得商业价值。一个企业的商业模式往往是复合式的,不能因为没有盈利模式而放弃业务,更不能为了追逐利益而忽略产品。