业界会议

极客公园创新大会 IF2018
http://if.geekpark.net/
围观下关于科技的前沿思考。

深阅读

The Ultimate Guide to JavaScript Frameworks
https://javascriptreport.com/the-ultimate-guide-to-javascript-frameworks/
Keeping up with JavaScript frameworks can be a challenge. There are a lot of them, and seemingly another one every month. How do you know which ones might be right for your project? What are their strengths and weaknesses? How do you get started?

Firefox’s new streaming and tiering compiler
https://hacks.mozilla.org/2018/01/making-webassembly-even-faster-firefoxs-new-streaming-and-tiering-compiler/
Firefox 58 also includes a new 2-tiered compiler. The new baseline compiler compiles code 10–15 times faster than the optimizing compiler. Combined, these two changes mean we compile code faster than it comes in from the network.

ECharts 全新大版本 4.0
https://mp.weixin.qq.com/s?__biz=MzA4MjUyNjY3Nw==&mid=2649587419&idx=1&sn=6b22229e883c031d74b6a719f60e786c
新版本在产品的性能、功能、易用性等各个方面进行了全面提升。和 ECharts 4.0 一起发布的还有 ECharts GL 1.0正式版,ZRender 4.0全新版本,WebGL 框架 ClayGL、深度学习框架Visual DL等,可谓是一次百度在数据可视化领域的大阅兵。伴随这些产品的发布,百度也发布了全新升级的数据可视化品牌—-“百度数据可视化实验室”,标志着百度在数据可视化领域将开启一番大的动作。另附:2017 百度开源大事件回顾与总结

Web 前端中的增强现实(AR)开发技术
http://geekplux.com/2018/01/18/augmented-reality-development-tech-in-web-frontend.html
增强现实(以下简称 AR)浪潮正滚滚而来,Web 浏览器作为人们最唾手可得的人机交互终端,正在大力发展 AR 技术。很多 Web 前端工程师也在寻求职业转型,于是我把我近半年的相关调研结果在此汇结成文。

Mifa Design:一个服务于 Markdown 的设计体系
https://mp.weixin.qq.com/s?__biz=MjM5Mjg4NDMwMA==&mid=2652975682&idx=1&sn=a2639824cca298ad757cc3e7fba74194
Mifa Design 是一个服务于个人的设计体系。基于『易读性』 和『一致化』 的设计价值观,让 Markdown 作者能专注于写作。Mifa 之所以称为 Mifa Design,只是因为它的缩写是 MD。并不是为了和 Ant Design 齐名,只是用于为我的网站、博客、APP、小程序等等,提供一个一致化的 UI 及阅读体验。

从原理到趋势,解剖风口上的区块链技术
https://mp.weixin.qq.com/s?__biz=MjM5NjQ1MTkyMA==&mid=2653803297&idx=1&sn=94d90ee1dfc13f60e1c53558ffaa6fce
区块链不是一项新技术,而是一个新的技术组合。其关键技术包括P2P动态组网、基于密码学的共享账本、共识机制、智能合约等技术;科技史上大部分创新都是与生产力有关的,提升效率,让人做更少工作,让机器做更多工作;区块链带来的最主要的颠覆却是生产关系上的;互联网实现了信息的传播,区块链实现了价值的转移;区块链可以看作是“价值互联网”的基础协议,类似于“信息互联网”的HTTP协议,二者都是建议在TCP/IP协议之上的应用层协议。

今日头条算法原理
https://www.toutiao.com/i6511211182064402951/
今日头条的推荐算法,从2012年9月第一版开发运行至今,已经经过四次大的调整和修改。今日头条委托资深算法架构师曹欢欢博士,公开今日头条的算法原理,以期推动整个行业问诊算法、建言算法;通过让算法透明,来消除各界对算法的误解,并逐步推动整个行业让算法更好的造福社会。

How Big Is That Box? Understanding Sizing In CSS Layout
https://www.smashingmagazine.com/2018/01/understanding-sizing-css-layout/
In this article, I’m going to share with you some interesting things about sizing boxes in CSS. I’ve picked out a few things from the specifications that I believe are vital in terms of understanding exactly how big that box is. Take some time to read through, and I think you’ll find sizing in Grid a lot less mysterious!

Keep webpack Fast: A Field Guide for Better Build Performance
https://slack.engineering/keep-webpack-fast-a-field-guide-for-better-build-performance-f56a5995e8f1
Build performance has long been a concern among webpack’s user base and, while the core team has worked furiously over the past few months to improve it, there are many steps you can take to improve your own build. The techniques below helped us reduce our build time by a factor of 10, and we want to share them in case they help others.

Dragging React performance forward
https://medium.com/@alexandereardon/dragging-react-performance-forward-688b30d40a33
In this blog I will explore the performance challenges that we faced and how we overcame them to get such impressive results. The solutions that I will talk about are very tailored for our problem domain. There are some principles and techniques that will emerge — but the specifics might be different across problem domains.

Dependency injection in TypeScript applications powered by InversifyJS
http://blog.wolksoftware.com/dependency-injection-in-typescript-applications-powered-by-inversifyjs
InversifyJS is a lightweight inversion of control (IoC) container for TypeScript and JavaScript apps. InversifyJS uses annotations to identify and inject its dependencies. The InversifyJS API had been influenced by Ninject and Angular and encourages the usage of the best OOP and IoC practices.

Demystifying CSS alignment
https://medium.com/@patrickbrosset/demystifying-css-alignment-2d3ea7a02a36
In this post, I’d like to talk about alignment a little bit. What it means in Flexbox and Grid and how to think about it more generally too, so you can be equipped for the future, when aligning in Blocks, Multi-Columns, Tables, Grids and Flexbox all works the same.

ESM modules in node: npm edition
https://gist.github.com/ceejbot/b49f8789b2ab6b09548ccb72813a1054
The proposal you’re about to read is not just a proposal. We have a working implementation of almost everything we discussed here. We encourage you to checkout and build our branch: our fork, with the relevant branch selected. Building and using the implementation will give you a better understanding of what using it as a developer is like.

Announcing the Ionic PWA Toolkit Beta
https://blog.ionicframework.com/announcing-the-ionic-pwa-toolkit-beta/
The Ionic PWA toolkit is the recommended way to easily build fast, production-ready PWAs with Ionic. Let’s dive in and go over why we’re building this, what it offers you as a developer, what’s in store for the stable release, and finally, how to get started using it!

Internationalizing Node.js
https://medium.com/the-node-js-collection/internationalizing-node-js-fe7761798b0a
I’ll be bringing you up to speed on: The current international-language needs of Node.js; A Node.js Internationalization (i18n) & Localization (l10n) status report; Our proposal for moving Node’s i18n forward as a function of the Community Committee.

IT IS NOT POSSIBLE TO DETECT AND BLOCK CHROME HEADLESS
https://intoli.com/blog/not-possible-to-block-chrome-headless/
If you’ve read Making Chrome Headless Undetectable, then this article should be pretty familiar. I’ll set up a test page that implements each of Antione’s tests, and then show how it’s fairly trivial to bypass each of them. I used Selenium last time, so this time I’ll use Puppeteer to spice it up. Most of the test bypasses are implemented as injected JavaScript however, so much of the code should be applicable to any browser automation framework that supports JavaScript injectio

Measuring Transactional Integrity in Airbnb’s Distributed Payment Ecosystem
https://medium.com/airbnb-engineering/measuring-transactional-integrity-in-airbnbs-distributed-payment-ecosystem-a670d6926d22
With big data tools, Airbnb is tracing the contents of every transaction through various payment states to ensure every piece of the payments cycle lands in a consistent state. The reconciliation process not only produces data and insights that enable the team to track and mitigate unexpected transaction behavior, but also enables the system to “self-heal” certain aberrations when detected.

Integration Test
https://martinfowler.com/bliki/IntegrationTest.html
Integration tests determine if independently developed units of software work correctly when they are connected to each other. The term has become blurred even by the diffuse standards of the software industry, so I’ve been wary of using it in my writing. In particular, many people assume integration tests are necessarily broad in scope, while they can be more effectively done with a narrower scope.

Laws of UX
https://lawsofux.com/
Laws of UX is a collection of the key maxims that designers must consider when building user interfaces.

新鲜货

2017年 JavaScript 明星项目
https://risingstars.js.org/2017/zh/
通过对比各项目过去 12 个月在 GitHub 上新增 Star 数量,来评估其在 2017 年度的受关注程度,进而选出2017 年度 JavaScript 领域崛起的明星项目。Vue.js 再次强势登顶年度排行榜冠军,今年在 GitHub 上新增了超过 40,000 的 star。

问世 20 多年的 PHP 还是最好的编程语言吗?
https://baijiahao.baidu.com/s?id=1590084437445604402
Panda,一个热爱技术,喜欢刨根问底,热爱分享, 热爱开源的程序猿,活跃于开源社区,乐于分享交流。PHP 开源项目贡献者,对网络安全、PHP 内核、Nginx 内核、MySQL 有一些研究。本文来自作者在 GitChat 上分享 「2017 年 PHP 社区总结,2018 PHP 发展展望」主题内容。

Node.js Application Showcase
https://foundation.nodejs.org/resources/app-showcase
Amazing apps, products and projects built with Node.js. 附:Announcing The Node.js Application Showcase

Announcing TypeScript 2.7 RC
https://blogs.msdn.microsoft.com/typescript/2018/01/17/announcing-typescript-2-7-rc/
Definite Assignment Checks for Class Properties, Fixed Length Tuples, Improved narrowing for in and instanceof,

Mongoose 5.0 Released
http://mongoosejs.com/
Mongoose provides a straight-forward, schema-based solution to model your application data. It includes built-in type casting, validation, query building, business logic hooks and more, out of the box. 附:What’s New in Mongoose 5: Improved Post Hooks

Polka
https://github.com/lukeed/polka
Polka is an extremely minimal, highly performant Express.js alternative. Yes, you’re right, Express is already super fast & not that big 🤔 — but Polka shows that there was (somehow) room for improvement! Essentially, Polka is just a native HTTP server with added support for routing, middleware, and sub-applications. That’s it!

After.js
https://github.com/jaredpalmer/after.js
Next.js-like framework for server-rendered React apps built with React Router 4.

Luna
http://www.luna-lang.org/
Luna is a data processing and visualization environment built on a principle that people need an immediate connection to what they are building. It provides an ever-growing library of highly tailored, domain specific components and an extensible framework for building new ones. Luna targets domains where data processing is the primary focus, such as data science, IoT, bioinformatics, graphic design and architecture.

Ccxt
https://nmotw.in/ccxt/
ccxt is lib­rary for crypto­cur­rency trad­ing and e-com­merce with sup­port for many bit­coin/ether/alt­coin ex­change mar­kets and mer­chant APIs.

jarvis
https://github.com/zouhir/jarvis
A very intelligent browser based Webpack dashboard

JS Paint – A web-based MS Paint remake
https://github.com/1j01/jspaint
The goal is to remake MS Paint (including its little-known features), improve on it, and to extend the types of images it can edit. So far, it does this pretty well. 体验地址: http://jspaint.ml/#local:2a09462c070f7

jasonette
http://jasonette.com/
Make iOS and Android apps with just a single JSON, loaded over HTTP. Jasonette abstracts away all low level programming with a JSON based markup. All you need to write is a single JSON.

Crooked Style Sheets
https://github.com/jbtronics/CrookedStyleSheets
可以收集关于用户的一些基本信息,例如屏幕分辨率(当浏览器最大化时)以及用户使用的什么浏览器(引擎),可以监测用户是否点击某个链接或鼠标悬停在某个元素上,用来追踪用户悬停的链接,甚至可以追踪用户如何移动鼠标,还可以监测用户是否安装了某个特殊的字体。另附:能跑代码的 Markdown 编辑器——Rmarkdown

Can (a ==1 && a== 2 && a==3) ever evaluate to true
https://stackoverflow.com/questions/48270127/can-a-1-a-2-a-3-ever-evaluate-to-true
This is interview question asked by a major tech company. My answer was that it’s impossible. They said nothing is impossible. It happened 2 weeks back, but I’m still trying to find the answer. I know we never write such code in our day to day job, but I’m curious.

What is you favorite UI framework for React
https://www.reddit.com/r/javascript/comments/7qrcas/what_is_you_favorite_ui_framework_for_react/
可以关注下大家的回答

SurveyJS
https://surveyjs.io/
Project SurveyJS includes JavaScript & Web API survey libraries and offers a service we built on top of them. You can use our service or take advantage of the underlying libraries to natively incorporate surveys – from question editor to response analysis – into your own web apps. 附:SurveyJS is out of Beta

1Backend
https://github.com/1backend/1backend
1Backend is a platform designed to make deploying, running and maintaining lambda functions/microservices easy. 另附:Announcing Go Support for AWS LambdaAWS Lambda Go vs. Node.js performance benchmark: updated.

Microsoft MakeCode
https://makecode.com/#about
Microsoft MakeCode brings computer science to life for all students with fun projects, immediate results, and both block and text editors for learners at different levels.

Twirp
https://github.com/twitchtv/twirp
Twirp is a framework for service-to-service communication emphasizing simplicity and minimalism. It generates routing and serialization from API definition files and lets you focus on your application’s logic instead of thinking about folderol like HTTP methods and paths and JSON.

产品及其它

众成翻译2.0重装上线
https://mp.weixin.qq.com/s?__biz=MzA5NzkwNDk3MQ==&mid=2650586181&idx=1&sn=655739b964b1f0b6d5a275b3a0d42931
众成翻译2.0版经过重构上线。本着简约至上的产品理念,实现了推荐、认领、翻译、发布的快捷流程,以及简单易用的在线翻译编辑器,让分享最新技术文章,快速认领和翻译成为一件轻松愉快的事。

2017年谷歌做了哪些好设计?
https://mp.weixin.qq.com/s?__biz=MzAwODY4OTk2Mg==&mid=2652045673&idx=1&sn=2fad449a34b380acb93552ad06182fa6
对于 Google 的许多设计团队来说,2017年是令人振奋的一年。现在正值新的一年的开始,我们将回顾一些对社区最为重要的项目:从发布全新的 Material Design 工具,到把我们的 SPAN 设计和技术会议带给更多城市,以及重新设计的多款流行的 Google 产品,等等。希望大家也能喜欢我们的努力成果。

傅盛-最可怕的不是把事情做差,而是越做越好后被淘汰
https://mp.weixin.qq.com/s?__biz=MzIxNTAzNzU0Ng==&mid=2654594834&idx=1&sn=fc654eb08411694662b26d32598293ea
这几年我们所经历的变化,会让你过去积累的很多经验瞬间过时,甚至你所坚持的东西有可能会成为你下一步前进的阻碍和壁垒。这个时代最可怕的事情是什么?有的时候不是因为你把以前的东西做差了,而淘汰;而是你把以前的东西做得越来越好,却被淘汰了。最典型的就是诺基亚和柯达。我们从PC安全开始做起,是上个时代恐龙样的生物,然后出海做了工具和游戏,最后做了AI和机器人。因为我觉得当下中国最大的机会是:AI+软件+硬件+服务=机器人。

FACEBOOK’S MOTIVATIONS
https://stratechery.com/2018/facebooks-motivations/
By Zuckerberg: One of our big focus areas for 2018 is making sure the time we all spend on Facebook is time well spent. We’re making a major change to how we build Facebook. I’m changing the goal I give our product teams from focusing on helping you find relevant content to helping you have more meaningful social interactions.

张小龙-2018微信全新计划
https://mp.weixin.qq.com/s?__biz=MjM5NTE4Njc4NQ==&mid=2657615016&idx=1&sn=ae7acf734fcca1f85f485addeeb2227c
在产品之外,我觉得对微信来说,有一个价值点是我们所遵循的,就是尊重用户,尊重个人。用完即走的本质是任何一个工具都是帮助用户完成一个任务,越高的效率越好。小程序还是代表了一种表达方式,我认为在未来万事万物可能都是包含信息。2018年我们希望能做一些新的尝试,我认为探索线下的精彩生活,这是我们下一步想要尝试的一个方向。