RTFM!如何阅读(和理解)Linux 中神奇的手册页 (linux.cn)
手册页man pages,即参考手册页reference manual pages的简称,是你进入 Linux 的钥匙。你想知道的一切都在那里,包罗万象。这套文档永远不会赢得普利策奖,但这套文档是相当准确和完整的。手册页是主要信源,其权威性是众所周知的。

虽然它们是源头,但阅读起来并不是最令人愉快的。有一次,在很久以前的哲学课上,有人告诉我,阅读亚里士多德是最无聊的阅读。我不同意:说到枯燥的阅读,亚里士多德远远地排在第二位,仅次于手册页。

乍一看,这些页面可能看起来并不完整,但是,不管你信不信,手册页并不是为了隐藏信息 —— 只是因为信息量太大,这些页面必须要有结构,而且信息是以尽可能简短的形式给出的。这些解释相当简略,需要一些时间来适应,但一旦你掌握了使用它们的技巧,你就会发现它们实际上是多么有用。
by @技术头条 2021-06-13 22:29 分享 查看详情
Android 系统不释放内存吗? (androidperformance.com)
除了 CPU,很多用户在选购手机的时候通常也会考虑内存大小,不同版本内存的手机价格也不一样,买多大内存的合适呢?Android 系统是怎么管理内存的呢?普通用户对 Android 手机的内存使用总是一头雾水,这个应用到底占了多少内存?系统到底占了多少内存?内存对我手机的使用体验有什么影响?到底怎么才能用好 Android 手机?换新手机换多大内存的会比较合适呢?
by @技术头条 2021-05-28 23:12 分享 查看详情
使用Nginx的Basic Auth认证实现不同的登录用户内容隔离 (xnow.me)
上传和下载文件是企业经常要面对的场景,本文提供了一个新思路,使用企业具备的现有工具(Linux和Nginx),不需要安装任何其他软件,可以快速建立一个简单、可靠、带认证和用户隔离的文件上传下载系统。
by @技术头条 2021-05-28 23:00 分享 查看详情
【死磕 Redis】—– info 命令详解 (cmsblogs.com)
Redis 提供了一个非常有用的查看状态信息的命令:info。它以一种易于理解和阅读的格式,返回关于 Redis 服务器的各种信息和统计数值。使用方法有如下三种:
1、info:部分Redis系统状态统计信息。
2、info all:全部Redis系统状态统计信息。
3、info section:某一块的系统状态统计信息,其中section可以忽略大小写。
by @技术头条 2021-05-28 22:59 分享 查看详情
游戏 UI 模块的选择 (blog.codingnow.com)
在游戏(包括引擎)开发的过程中,谈及 UI 模块,通常所指有二:
1、开发工具所用到的 UI 。
2、游戏本身所用到的 UI 。

这两者很多时候都是共用的一个模块,比如之前的 Unity 就直接把引擎开发用的 UI 模块扔给开发者开发游戏使用。但很快,开发者就发现,适合工具开发的 UI 模块,在做游戏时就不那么顺手了。所以就有了第三方 UI 插件的流行,以至于最后又倒逼 Unity 官方重新制作游戏 UI 模块。
by @技术头条 2021-05-28 22:56 分享 查看详情
一个关于if else容易迷惑的问题 (www.laruence.com)
这么写代码,我绝对扔椅子过去。
by @技术头条 2021-05-28 22:56 分享 查看详情
美团搜索中NER技术的探索与实践 (tech.meituan.com)
命名实体识别(Named Entity Recognition,简称NER),又称作“专名识别”,是指识别文本中具有特定意义的实体,主要包括人名、地名、机构名、专有名词等。NER是信息提取、问答系统、句法分析、机器翻译、面向Semantic Web的元数据标注等应用领域的重要基础工具,在自然语言处理技术走向实用化的过程中占有重要的地位。在美团搜索场景下,NER是深度查询理解(Deep Query Understanding,简称 DQU)的底层基础信号,主要应用于搜索召回、用户意图识别、实体链接等环节,NER信号的质量,直接影响到用户的搜索体验。

下面将简述一下实体识别在搜索召回中的应用。在O2O搜索中,对商家POI的描述是商家名称、地址、品类等多个互相之间相关性并不高的文本域。如果对O2O搜索引擎也采用全部文本域命中求交的方式,就可能会产生大量的误召回。我们的解决方法如下图1所示,让特定的查询只在特定的文本域做倒排检索,我们称之为“结构化召回”,可保证召回商家的强相关性。举例来说,对于“海底捞”这样的请求,有些商家地址会描述为“海底捞附近几百米”,若采用全文本域检索这些商家就会被召回,显然这并不是用户想要的。而结构化召回基于NER将“海底捞”识别为商家,然后只在商家名相关文本域检索,从而只召回海底捞品牌商家,精准地满足了用户需求。
by @技术头条 2021-05-28 22:52 分享 查看详情
写给大学新生的数字指南(2020 版本) (luolei.org)
高考,对于大多数年轻的朋友来说是一道门,跨过了这道门,意味着离开封闭的高中,离开了父母和家庭,开始了相对来说更独立的生活。

我是2009年参加的高考,距今已经11年,记得我刚上大一的时候,大家还在用人人网、QQ,塞班,智能手机方兴未艾,iPhone 属于奢侈品,安卓属于小众系统。过去这十年,也是互联网飞速发展的十年,人们的生活形态,因为科技和互联网,发生了极大的变化。

作为一个曾经的大学生,程序员,互联网从业者,今天这篇文章,根据自己过去上大学和职业相关经验,写下这篇「大学新生数字指南」,分享一下大学新生关于如何「迎接」即将到来的互联网生活。

今年参加高考的学生已经是00后,作为一个90后的跟大家差了一轮,有些事物理解若有代沟差异,也望理解指正。
by @技术头条 2021-05-28 08:38 分享 查看详情
如何使用普通用户管理docker? (xnow.me)
首先,比”如何使用普通用户管理docker“更重要的问题是:”为什么要使用普通用户管理docker“?

1、使用普通用户登录服务器执行管理操作才是符合运维规范的,而不是给所有人都授予root权限,这有利于权限管理的标准化。
2、恶意破坏很难避免,但是要尽量不让用户做傻事,虽然普通用户进入docker之后,可以拥有root身份,但是这是恶意操作,避免的难度太高。

接下来就是怎么让普通用户也能使用docker的配置步骤了。
by @技术头条 2021-05-28 08:36 分享 查看详情
死磕 Redis - 事务 (cmsblogs.com)
Redis 通过 MULTI、EXEC、DISCARD、WATCH 、UNWATCH 来实现事务功能,Redis 事务具备如下几个特性:

1、Redis 会将事务中的多个命令一次性、按顺序一次执行,在执行期间可以保证不会中断事务去执行其他命令;
2、Redis 的事务机制是不能保证原子性的,它只保证隔离性和一致性。
by @技术头条 2021-05-28 08:33 分享 查看详情
PHP FFI详解 - 一种全新的PHP扩展方式 (www.laruence.com)
随着PHP7.4而来的有一个我认为非常有用的一个扩展:PHP FFI(Foreign Function interface), 引用一段PHP FFI RFC中的一段描述:For PHP, FFI opens a way to write PHP extensions and bindings to C libraries in pure PHP.

是的,FFI提供了高级语言直接的互相调用,而对于PHP来说,FFI让我们可以方便的调用C语言写的各种库。

其实现有大量的PHP扩展是对一些已有的C库的包装,比如常用的mysqli, curl, gettext等,PECL中也有大量的类似扩展。

传统的方式,当我们需要用一些已有的C语言的库的能力的时候,我们需要用C语言写wrapper,把他们包装成扩展,这个过程中就需要大家去学习PHP的扩展怎么写,当然现在也有一些方便的方式,比如Zephir. 但总还是有一些学习成本的,而有了FFI以后,我们就可以直接在PHP脚本中调用C语言写的库中的函数了。

而C语言几十年的历史中,积累了大量的优秀的库,FFI直接让我们可以方便的享受这个庞大的资源了。
by @技术头条 2021-05-28 08:32 分享 查看详情
团队管理杂谈 (www.bo56.com)
有句话说得好,兵熊熊一个,将熊熊一窝。这句话,充分说明了团队管理者对于一个团队的重要性。好的 leader 可以提高团队的战斗力,带领大家攻城略地。

作为团队 leader 有三件事很重要。这三件事分别是,规划、招聘、赋能。
by @技术头条 2021-05-28 08:31 分享 查看详情
一些关于 App Clips 的笔记 (onevcat.com)
App clips 是今天 WWDC 上 iOS 14 的一个重要“卖点”,它提供了一种“即时使用”的方式,让用户可以在特定时间、特定场景,在不下载完整 app 的前提下,体验到你的 app 的核心功能。

装好 Xcode 12 以后第一时间体验了一下如何为 app 添加 app clip。它的创建和使用都很简单,也没有什么新的 API,所以要为 app 开发一个 clip 的话,难点更多地在于配置、代码的复用以及尺寸优化等。在阅读文档和实际体验的同时,顺便整理了一些要点,作为备忘。
by @技术头条 2021-05-28 08:29 分享 查看详情
美团万亿级 KV 存储架构与实践 (tech.meituan.com)
KV 存储作为美团一项重要的在线存储服务,承载了在线服务每天万亿级的请求量。在 2019 年 QCon 全球软件开发大会(上海站)上,美团高级技术专家齐泽斌分享了《美团点评万亿级 KV 存储架构与实践》,本文系演讲内容的整理,主要分为四个部分:第一部分讲述了美团 KV 存储的发展历程;第二部分阐述了内存 KV Squirrel 架构和实践;第三部分介绍了持久化 KV Cellar 架构和实践;最后分享了未来的发展规划和业界新趋势。
by @技术头条 2021-05-28 08:28 分享 查看详情
给 JavaScript 插上多线程的翅膀 —— Web Worker 的 Promise 化实践 (www.alloyteam.com)
众所周知,JavaScript 这门语言的一大特点就是单线程,即同一时间只能同步处理一件事情,这也是这门语言衍生出的 nodeJS 被各后端大佬诟病的很重要的一点。


然而,JavaScript 在设计之初,其实是故意被设计成单线程语言的,这是由于它当时的主要用途决定的。

JavaScript 最初的设计初衷是完成页面与用户的交互,操作 DOM 或者 BOM 元素,此时如果一味地追求效率使用多线程的话,会带来资源抢占,数据同步等等问题,因此必须规定,同一时间只有一个线程能直接操作页面元素,以保证系统的稳定性以及安全性。

尽管如此,但是 JavaScript 并不是只能线性处理任务。JS 拥有消息队列和事件循环机制,通过异步处理消息的能力来实现并发。在高 I/O 型并发事务处理的过程中,由于不需要手动生成与销毁线程以及占用额外管理线程的空间,性能表现及为优异。因此,nodeJS 作为 JavaScript 在服务端的探索者,在处理高并发网络请求的优势极为明显。

尽管 JavaScript 通过异步机制完美解决了高 I/O 性能的问题,但 JavaScript 单线程执行的本质还是没有变的。因此缺点就显而易见了,那就是处理 CPU 密集型的事务时没有办法充分调动现代多核心多线程机器的运算资源。

在现代大型前端项目中,随着代码的复杂程度越来越高,本地的计算型事务也在变得繁重,而运行在单线程下 JS 项目必定会忙于处理计算而无暇顾及用户接下来的频繁操作,造成卡顿等不太好的用户体验,更严重的情况是,当计算型事务过多时还有可能因为资源被占满带来网页无响应的卡死现象。因此,Web 项目的本地多线程运算能力势在必行,由此,Web Worker 应运而生了。
by @技术头条 2021-05-28 08:27 分享 查看详情
GCanvas渲染引擎的演进 (fed.taobao.org)
GCanvas的定位是遵循w3c标准的跨平台的轻量级图形渲染引擎。有清晰的定位和目标,并且紧贴现有的业务,为业务提供丰富表现形式。

GCanvas引擎从早期的H5性能加速,到Weex业务落地,从小游戏的业务探索,到服务端渲染,再到小程序。经过几个阶段的发展后日渐成熟。

淘系无线架构的不断升级迭代,GCanvas随之保持着更新迭代的步调,在多个业务场景中使用,了解下一些应用案例。
by @技术头条 2021-05-27 22:31 分享 查看详情
当 SSR 遇上 Serverless,轻松实现页面瞬开 (fed.taobao.org)
最近随着 Rax SSR 完成渲染性能 6x React 的提升,以及工程上 Serverless 发布形式的对接,我想是时候跟大家介绍下 Rax SSR 了。

SSR 的全称是 Server Side Rendering,对应的中文名是:服务器端渲染,顾名思义是将渲染的工作放在 Server 端进行。

而与之对应的是 CSR ,客户端渲染,也就是目前 Web 应用中主流的渲染模式,一般由 Server 端返回的初始 HTML 页面,然后再由 JS 去异步加载数据,然后完成页面的渲染。
by @技术头条 2021-05-27 22:30 分享 查看详情
记 python 超时的一个坑 (www.felix021.com)
背景:
有一个 python 脚本调用 A 服务的 x 接口获取若干 GB 的数据(大量对象),读取和解析大约需要 5 分钟。
由于 x 接口的改造,需要改成调用 B 服务的 y 接口。
A、B 服务都是基于字节跳动的 KITE 框架开发的,通信协议是 thrift 0.9.2 。
by @技术头条 2021-05-27 22:29 分享 查看详情
Web开发中的响应式图片处理 (www.hitoy.org)
目前手机等移动设备网站开发已经有比较好的解决方案,一种是响应式网站,像笔者博客一样,PC网站就是移动网站,一种是把移动网站和PC网站分开,类似淘宝那样。从网站SEO的角度来说,两者并无差别,也各有利弊,不论采取那种方式也都能解决移动设备浏览问题。随着移动设备和类型越来越多,我们几乎不太可能针对某一类设备建设单独的网站,不论PC网站和移动网站是否分开建设,那都意味着我们的移动网站将会面临越来越多各不相同设备进行访问,也就是说即使是建设单独的移动网站,我们也必须要考虑网站符合用户的设备特性。
by @技术头条 2021-05-27 22:29 分享 查看详情
如何加快 Node.js 应用的启动速度 (fed.taobao.org)
我们平时在开发部署 Node.js 应用的过程中,对于应用进程启动的耗时很少有人会关注,大多数的应用 5 分钟左右就可以启动完成,这个过程中会涉及到和集团很多系统的交互,这个耗时看起来也没有什么问题。

目前,集团 Serverless 大潮已至,Node.js serverless-runtime 作为前端新研发模式的基石,也发展的如火如荼。Serverless 的优势在于弹性、高效、经济,如果我们的 Node.js FaaS 还像应用一样,一次部署耗时在分钟级,无法快速、有效地响应请求,甚至在脉冲请求时引发资源雪崩,那么一切的优势都将变成灾难。

所有提供 Node.js FaaS 能力的平台,都在绞尽脑汁的把冷/热启动的时间缩短,这里面除了在流程、资源分配等底层基建的优化外,作为其中提供服务的关键一环 —— Node.js 函数,本身也应该参与到这场时间攻坚战中。

Faas平台从接到请求到启动业务容器并能够响应请求的这个时间必须足够短,当前的总目标是 500ms,那么分解到函数运行时的目标是 100ms。这 100ms 包括了 Node.js 运行时、函数运行时、函数框架启动到能够响应请求的时间。巧的是,人类反应速度的极限目前科学界公认为 100ms。


by @技术头条 2021-05-27 22:28 分享 查看详情