FEX 技术周刊 - 2020/02/24
WebAssembly Summit 2020
WebAssembly is undoubtedly going to become a more significant technology this decade, both in the browser and server side. These talks provide a glimpse at the cutting edge of the phenomenon with Lin Clark’s talk providing perhaps the best overview of the entire space.
Fixing memory leaks in web applications
A poorly-coded SPA can easily eat up megabytes or even gigabytes of memory, continuing to gobble up more and more resources, even as it’s sitting innocently in a background tab. At this point, the page might start to slow to a crawl, or the browser may just terminate the tab and you’ll see Chrome’s familiar “Aw, snap!” page.
When DIY Robots Invade
Technologies will soon make it far easier for anyone to make a custom robot. Will this result in a zoo of obnoxious, exotic new creatures?
The New Business of AI (and How It’s Different From Traditional Software)
Just as SaaS ushered in a novel economic model compared to on-premise software, we believe AI is creating an essentially new type of business. So this post walks through some of the ways AI companies differ from traditional software companies and shares some advice on how to address those differences. Our goal is not to be prescriptive but rather help operators and others understand the economics and strategic landscape of AI so they can build enduring companies.
前端 DSL 实践指南（上）—— 内部 DSL
近几年，前端社区中 DSL 这个词开始频繁出镜，这和环境的变化有很大关系。本文作者由于工作经历上的特殊性，积累了一些关于前端 DSL 的实践经验（主要是外部 DSL），在所维护的开源项目中也有一些体现，同时作者在社区也有过一些不成体系的回答如《如何写一个类似 LESS 的编译工具》。这次我会尝试从前端开发的视角来完整探讨下 DSL 这个 「难以细说」 的议题。
Same HTML, Different CSS
This is a step-by-step tutorial based on a concept from the old CSS Zen Garden site: Creating different designs via CSS while never touching the markup.
Angular 9: Lazy Loading Components
Angular 9 has some pretty awesome new features. The runtime, code-name Ivy, opens the doors to things like making lazy load Angular components more straightforward than ever. This article shows you how to lazy load with Angular 9 and provides the code and resources along the way.
10 Useful Web APIs for 2020
Awesome Web APIs for your next web app — with examples.
The Serverless Supremacy, The Fall of the Monolith
Serverless is still proving itself and it’s early days to say for sure that it’s the best thing ever that has happened to development. But I tend to believe that serverless is the future of development, it has to, especially because of the small companies. Literally quite opposite from what David was saying in his blog post. 另附：When microservices might be the wrong choice.
Application Models as Working Software
A lightweight model of your application can be built in a just-in-time fashion. A model based on user flows can be used to involve all the disciplines in your product team in meaningful discussion and ideation. The resulting model can be built out iteratively to support development and synchronization with what has been built. The creation of a common language that the entire team can use will foster an inclusive team culture and pay rewards in development efficiency.
The Zen of Go
Something that I’ve been thinking about a lot recently, when reflecting on the body of my own work, is a common subtitle, how should I write good code? Given nobody actively seeks to write bad code, this leads to the question; how do you know when you’ve written good Go code? If there’s a continuum between good and bad, how to do we know what the good parts are? What are its properties, its attributes, its hallmarks, its patterns, and its idioms?
Notes on the Go translation of Reposurgeon
A few years ago, Eric S Raymond thought Go could replace C in most situations, but now he’s done a rather extensive write up of his experiences in porting a complex program from Python to Go. The result is faster and easier to read, but he ran into a variety of problems.
How 1500 bytes became the MTU of the internet
The MTU (Maximum Transmission Unit) states how big a single packet can be. Generally speaking, when you are talking to devices on your own LAN the MTU will be around 1500 bytes and the internet runs almost universally on 1500 as well. However, this does not mean that these link layer technologies can’t transmit bigger packets.
Storage in the Exabyte Era
Much of the growth in data generation (and data storage requirements) comes from unstructured data. Enterprises are on pace to triple the amount of unstructured data stored in file or object storage systems over the next four years, according to Gartner’s recent Magic Quadrant for Distributed File System and Object Storage. What’s more, it found that 40% of infrastructure and operations (I&O) leaders will implement at least one hybrid cloud storage architecture by 2024, up from just 10% last year. 另附：Moore’s Law Is Not Ending Soon And The Reason May Surprise You.
How I think about solving problems
The five questions I used to help me decide, prioritize, and solve problems.
Requirements volatility is the core problem of software engineering
It’s now been more than 50 years since the first IFIP Conference on Software Engineering, and in that time there have been many different software engineering methodologies, processes, and models proposed to help software developers achieve that predictable and cost-effective process. But 50 years later, we still seem to see the same kinds of problems we always have: late delivery, unsatisfactory results, and complete project failures.
Coding 4 Kids Inspires Future Engineers
Today’s children are exposed to technology from a very young age, and on many occasions, 2-year-olds seem to understand the iPad better than adults. Is this enough to encourage and influence them to pursue a career in STEM (science, technology, engineering and mathematics)?
互联网界痛失两位巨擘：计算机科学家 Larry Tesler 于 2 月 17 日去世，享年 74 岁；历任 Sun Microsystems Laboratories、Xerox PARC 等的实验室主管，参与创立了个人计算机、微处理器技术、SmallTalk 编程语言、Java 编程语言和互联网的 Bert Sutherland 于 2 月 18 日去世，享年 83 岁。
JSBox 2.0 上线，支持 Node.js
经过大半年时间的开发工作，我们近期上线了 JSBox 2.0，又经过两周时间完成了一些优化和修复，现在是时候向大家介绍这个里程碑版本了。我们在 2.0 版本里面主要做了两件事情：支持 Node.js，改变了付费模式。这篇文章将详细介绍这两件事情给我们和用户带来的影响。
Scroll To Text Fragment DOM
This feature allows a user or author to link to a specific portion of a page, using a text snippet provided in the URL. When the page is loaded, the browser highlights the text and scrolls it into view.
Resize Observer - W3C First Public Working Draft
This specification describes an API for observing changes to Element’s size.
Announcing TypeScript 3.8
TypeScript 3.8 brings a lot of new features, including new or upcoming ECMAScript standards features, new syntax for importing/exporting only types, and more: Type-Only Imports and Exports, ECMAScript Private Fields, export * as ns Syntax…
What’s coming in ESLint v7.0.0
The Technical Steering Committee (TSC) met to finalize the features for ESLint v7.0.0. This feature set had not yet been locked down even as v7.0.0 work began and so this represented an important milestone that allows us to focus on getting this next major release shipped. You can see everything that is planned for v7.0.0 on our project board.
The new Office app now generally available for Android and iOS
A few months ago, we introduced a new mobile app called Office—a whole new experience designed to be your go-to app for getting work done on a mobile device. It combines Word, Excel, and PowerPoint into a single app and introduces new capabilities that enable you to create content and accomplish tasks in uniquely mobile ways to help you achieve more. Today, we’re proud to announce the Office app is out of public preview and now generally available worldwide for anyone on Android and iOS phones. Remember late last year when it was revealed that Microsoft was looking towards React Native for their cross-platform app needs? Well, the new Office app is now powered in part by the mobile framework.
The Main npm Repository Suffered an Outage – But Here’s What to Do For Next Time..
The Main npm Repository Suffered an Outage on Monday – But Here’s What to Do For Next Time.. — For a period of time on Monday, the main npm repository was returning 429 “Too Many Requests” responses, breaking some people’s installations and CI processes (here’s a postmortem of why – it was due to a Cloudflare policy change and not npm’s fault).
2019 Transparency Report
While some companies are phasing out transparency reporting, GitHub remains committed to maintaining transparency and promoting free expression as an essential part of our commitment to our users. A key example of this is ensuring we minimize the amount of data we disclose or the amount of content we take down as much as legally possible. Through our transparency reports, we’re continuing to shed light on our own practices, while also hoping to contribute to broader discourse on platform governance.
Lightweight state management solution based on React Hooks.
Write local state using React Hooks and lift it up to React Context only when needed with minimum effort.
The official Redux+JS template for Create React App
Hex Engine - A modern 2D game engine for the browser
Hex Engine is a 2D Game Engine for the browser, written in TypeScript. It is designed to feel similar to React. Hex Engine implements a variant of the popular Entity-Component-System model, adapting it to make Components radically composable. In Hex Engine, every Component is a function, and Components can call special Hook functions to define their behavior in the game engine. Hex Engine comes out-of-the-box with a powerful development inspector and a modern frontend code compilation pipeline.
Blitz is a modern equivalent to Ruby on Rails for building monolithic, full-stack, serverless React apps with zero data-fetching and zero client-side state management.
Removing people from complex backgrounds in real time using TensorFlow.js in the web browser.
Git Command Explorer
Find the right commands you need without digging through the web.
Prettier for File Structures
Trax — your path to advanced deep learning
Trax helps you understand and explore advanced deep learning. We focus on making Trax code clear while pushing advanced models like Reformer to their limits. Trax is actively used and maintained in the Google Brain team. Give it a try, talk to us or open an issue if needed.
UTM is a full featured virtual machine host for iOS. In short, it allows you to run Windows, Android, and more on your iPhone and iPad.
Nodebook - Multi-Language REPL with Web UI + CLI code runner
Useful to practice algorithms and datastructures for coding interviews.
usql - Universal command-line interface for SQL databases
A universal command-line interface for PostgreSQL, MySQL, Oracle Database, SQLite3, Microsoft SQL Server, and many other databases including NoSQL and non-relational databases! 另附：Interactive Redis: A Terminal Client for Redis with AutoCompletion and Syntax Highlighting..
https://casual-effects.com/markdeep/ Markdeep is a technology for writing plain text documents that will look good in any web browser, whether local or remote. It supports diagrams, calendars, equations, and other features as extensions of Markdown syntax.
Kasaya - A “WYSIWYG” (kind of) scripting language and runtime for browser automation
Write test scripts using English-like statements. NO coding required to implement those statements. Not dependent on HTML IDs or XPaths. Write the same way you would instruct another human being sitting in front of the browser. NOT like Cucumber. NOT like Selenium IDE. 另附：Taiko - A Node.js library for testing modern web applications
The Bash Hackers Wiki
This wiki is intended to hold documentation of any kind about GNU Bash. The main motivation was to provide human-readable documentation and information so users aren’t forced to read every bit of the Bash manpage - which can be difficult to understand. However, the docs here are not meant as a newbie tutorial.
Learn Rust With Entirely Too Many Linked Lists
I fairly frequently get asked how to implement a linked list in Rust. The answer honestly depends on what your requirements are, and it’s obviously not super easy to answer the question on the spot. As such I’ve decided to write this book to comprehensively answer the question once and for all. In this series I will teach you basic and advanced Rust programming entirely by having you implement 6 linked lists.
How These Things Work – A book about CS from first principles
Computer science is how I learned to do abstraction, and it is my most enrichingly- and economically- valuable skill. This is the final reason I offer to you why these things might be worth learning: it is strongly likely that you will make more money with them than without. As we will later see, abstraction is literally impossible to automate in the general case. This makes it a compelling skill to have in a world rapidly driving towards automating away most jobs. The debate whether or not that’s a good thing is left to minds smarter than my own, but you have to admit that it’s nice to have options.
AI-powered tools for web designers
An overview of the tools that implement AI and how they help the web designer’s work.
Looking at the Future – Design Trends of 2020
Every year a new crop of design trends emerges from the previous year’s labor. Some trends delight, some inspire, and some make our eyes ache. New grows old, and old is new again. Change is one of the most challenging and satisfying aspects of a career in design. The evolution of taste and technology keeps our skills sharp and demands we stay connected to the people we create for. As 2019 winds down, we’re looking ahead. We’ve identified 20 emerging design trends for 2020, but we’re not just listing fonts and colors. We’re showcasing game-changers and industry shakers that will define our experiential landscape for the year to come.
Towards Goal-Centric Design
To be truly humane and helpful, technology needs to see the world the same way people do.
Designing the New Office App for Mobile
The new Office app is more than a mere translation of a desktop app to a mobile one. We wanted to design an experience that would harness the strength of mobile devices and help you to complete your tasks in uniquely mobile ways. Here’s a peek in our design and research journey. We can’t wait to hear what you think! 另附：Iconic Icons: Designing the World of Windows.
How To Design Mobile Apps For One-Hand Usage
90% of the smartphones sold today have >5-inch displays. Bigger screen real estate presents newer challenges and opportunities for app makers and designers. Let’s look at how designing apps for one-handed usage can solve those challenges.
How To Take Smart Notes: 10 Principles to Revolutionize Your Note-Taking and Writing
My approach is based on the assumption that most books are a few morsels of real insight wrapped in layers and layers of fluff. As I read, I systematically unravel those layers of fluff and extract only those insights, like a chemist distilling only the purest compound. But this book is not written in the usual way. It is written using an external thinking system, which I call a Second Brain.
What 8 years of side projects has taught me
I’ve been a professional software developer for almost 8 years now. I’ve been paid to write a lot of software in those years. Far more interesting to me has been the recurring themes that have come up in my side-projects and in the software I’ve been personally compelled to write.
How Pets Can Make You a Better Programmer — Yes, Your Pet Can Do That
Improve and enhance your technical and non-technical skills with the help of a furry friend.
对数据可视化有兴趣的可以阅读由 AntV 带来的 墨者修齐 2020-02-23 · 图解各省志愿湖北医疗队信息
– THE END –