FlutterWeb在美团外卖的实践 (tech.meituan.com)
美团外卖商家端业务围绕数百万商家,在 PC 和 App 上分别提供了交易履约、运营、广告、营销等一系列功能,且经常有外投 H5 的场景(如外卖学院、商家社区、营销活动等)。在这种多形态的业务场景下,如何保障多端体验一致性、如何提升多端迭代效率一直是商家端产研关注的重点。
by @技术头条 2021-06-13 23:17 分享 查看详情
JVM优化之逃逸分析及锁消除 (it.deepinmind.com)
逃逸分析——我们在上一篇文章中所介绍的由编译器完成的一项的分析技术——使得删除锁的优化成为了可能。如果它能确认某个加锁的对象不会逃逸出局部作用域,就可以进行锁删除。这意味着这个对象同时只可能被一个线程访问,因此也就没有必要防止其它线程对它进行访问了。这样的话这个锁就是可以删除的。这个便叫做锁消除,本文是JVM实现机制的系列文章,这也正是今天要讲的主题。

众所周知,java.lang.StringBuffer是一个使用同步方法的线程安全的类,它可以用来很好地诠释锁消除。StringBuffer是Java1.0的时候开始引入的,可以用来高效地拼接不可变的字符串对象。它对所有append方法都进行了同步操作,以确保当多个线程同时写入同一个StringBuffer对象的时候也能够保证构造中的字符串可以安全地创建出来。
by @技术头条 2021-06-13 23:06 分享 查看详情
JVM优化之逃逸分析与分配消除 (it.deepinmind.com)
在Java Magazine的前几期文章中,我们介绍了just-in- time (JIT) 编译技术的一些理论基础,以及如何使用Java Microbenching Harness(JMH)和开源工具JITWatch来进行可视化分析,以便搞清楚HotSpot VM的内部机制。在这期文章中,我们将要深入介绍一下逃逸分析(escape analysis)技术,这是JVM最有意思的优化手段之一。逃逸分析是JVM的一项自动分析变量作用域的技术,它可以用来实现某些特殊的优化,后续我们也会分析下这些优化。在开始之前,你只需要掌握一些HotSpot JVM的基本工作原理就可以了。
by @技术头条 2021-06-13 23:06 分享 查看详情
浅谈 Code Review 之事前准备 (blog.alswl.com)
随着业务规模扩大、团队组成变复杂,如何降低项目实施风险,降低软件复杂度变得尤为关键。 我从 Martin Flower、Joel Spolsky(软件随想录 作者) 等巨匠智慧中寻找解决复杂工程之道,其中 Code Review 是行之有效手段。 我认同 Code Review 价值也是忠实执行者。

加入蚂蚁以后,我在所接触项目中都大力推广 Code Review。 感谢团队信任和支持,目前 CR 协作进展顺利, 项目 CR 从最早不主动,到现在形成基于模块 Owner 制度 CR 和 Peer Review。 我也曾经在 3 个月内处理完成 700 多个 Pull Request,并在 PR 讨论中中都留下一些有价值讨论。 这里我将自己对 Code Review 一些理解记录下来。
by @技术头条 2021-06-13 23:05 分享 查看详情
带噪学习研究及其在内容审核业务下的工业级应用 (www.52nlp.cn)
从人脸识别,机器翻译到智能推荐,人工智能已经深入到现代社会的方方面面。现在工业上最常见的人工智能系统,往往依赖于大量有标签的数据。通常,优质的有标签数据需要耗费大量的人力、物力。而且人工打的标签的准确度,往往随着标注任务复杂度的提高而降低。

一般的人工智能算法,都是在干净的数据集上做学习和优化。在现实中的工业应用场景中存在大量弱监督的情况,即标签缺失(无监督、半监督)、标签错误(错监督)的情况。我们在第一个章节,简单介绍一下我们vivo ai lab两篇AAAI2021关于弱监督带噪学习的工作;并在第二章介绍一下我们的工作在内容审核业务下的工业级应用。
by @技术头条 2021-06-13 23:04 分享 查看详情
华为手机 vs 苹果手机,我的一年评测对比报告 (blog.devtang.com)
前言因为工作的原因,我早年一直从事 iOS 开发,所以一直用着苹果手机。iPhone 的体验一直挺好的。但是我一直比较好奇顶级的 Android 手机怎么样,体验和苹果会差多少,于是我去年就换了华为的 P30 Pro。对比使用了一年,给大家分享一下我的感受。预告一下,前面夸华为比较多,后面夸苹果比较多。
by @技术头条 2021-06-13 22:59 分享 查看详情
本地 git 的 partial clone (blog.delphij.net)
partial clone 是 git 的一项旨在减少空间和网络带宽占用的特性。它会跳过下载那些可能不会用到的 git 对象,而是仅仅在需要时才去下载。对于网络延迟较低且带宽不愁的用户来说,这样做往往会节省掉不少不必要的磁盘空间占用,而代价是可能失去离线访问的能力。除此之外,有些操作,例如 git blame 或者 git log -p 很可能会需要与服务器交互,从而会变得略慢一些。

比较有用的场景是在使用某些历史比较久,或是对文件整体替换较多,而大部分情况下只关注最新版本的代码库。与较早的 --depth 1 相比,partial clone的优点在于想要访问历史时仍然可以像正常的clone一样访问。

今天闲来无事打算把机房的服务器稍微升级一下,于是顺手弄了一下 partial clone,稍微记一笔作弊条。
by @技术头条 2021-06-13 22:54 分享 查看详情
洋葱式信息安全观察:网络安全需求层次的思考 (www.sec-un.org)
组织对网络安全(Cyber Security)的需求是否存在一定规律?

一个组织的存在,必然存在着自己的使命,无论是企业,还是NPO(非盈利组织)、NGO(非政府组织)。为了完成自己使命,一些组织中大量采用信息技术,而其载体网络空间(cyber space)承载着的信息对组织具有重要作用,甚至可以决定其存亡,因此形成了组织对网络安全的需求。对于不同组织而言,如何研究组织对网络安全需求的规律呢?

组织是由若干个体组成的,因此组织的行为学必然带着个体的色彩,不管企业的管理模式是君主制,还是群体决策制,组织的决策都体现了个体的意愿的组合。因此,我们可以借鉴马斯洛的需求层次理论来研究企业网络安全需求的层级。(在每一层级的最后,我们将采用层级关键词来识别一个组织的网络安全需求层级)
by @技术头条 2021-06-13 22:49 分享 查看详情
浅析Course of Action应对措施 (www.sec-un.org)
本着“摸着鹰酱过河”的思路,对现有的几个安全分析框架和模型规范中与Course of Action应对措施相关的内容进行系统性分析和梳理,希望能对从事自动化响应处置、智能运营相关工作的同行有一些帮助和启发。其中,将ATT&CK框架中的Mitigation缓解措施、MITRE的Shield框架中的Active Defense主动防御、STIX模型中的Course of Action应对措施、IACD编排模型中的功能和能力、RE&CT框架中的Incident Response应急响应等内容都纳入Course of Action应对措施的范畴。
by @技术头条 2021-06-13 22:47 分享 查看详情
洞见RSA 2021|备受热捧的“供应链攻击”如何防御? (blog.nsfocus.net)
供应链攻击是一种面向软件开发人员和供应商的新兴威胁。目标是通过感染合法应用分发恶意软件来访问源代码、构建过程或更新机制。

软件供应链可划分为开发、交付、运行三个大的环节,每个环节都可能会引入供应链安全风险从而遭受攻击,上游环节的安全问题会传递到下游环节并被放大。值得注意的是在供应链攻击中受到攻击的是上游厂商,受到威胁的则是上下游厂商。上游的代码风险问题,其实就是下游厂商需要注意的供应链问题。上游管理好软件开发过程中的风险有助于减少下游厂商面临的供应链攻击。代码风险平台能够解决的就是软件开发过程中发生的供应链攻击。
by @技术头条 2021-06-13 22:46 分享 查看详情
SIGIR 2021 | 广告系统位置偏差的CTR模型优化方案 (tech.meituan.com)
近些年来,由于人工智能技术的高速发展,所带来的公平性问题也愈发受到关注。同样的,广告技术也存在着许多公平性问题,由于公平性问题造成的偏差对广告系统的生态会产生较大的负面影响。广告系统通过累积的用户交互反馈数据基于一定的假设去训练模型,模型对广告进行预估排序展示给用户,用户基于可看到的广告进行交互进而累积到数据中。在该环路中,位置偏差、流行度偏差等各种不同类型的偏差会在各环节中不断累积,最终导致广告系统的生态不断恶化,形成“强者愈强、弱者愈弱”的马太效应。

由于偏差对广告系统和推荐系统的生态有着极大的影响,针对消除偏差的研究工作也在不断增加。比如国际信息检索会议SIGIR在2018年和2020年组织了一些关注于消除偏差主题的专门会议,同时也给一些基于偏差和公平性的论文颁发了最佳论文奖(Best Paper)。KDD Cup 2020的其中一个赛道也基于电子商务推荐中的流行度偏差进行开展。
by @技术头条 2021-06-13 22:45 分享 查看详情
如何使用CSS禁止元素拖拽? (www.zhangxinxu.com)

HTML中有个属性draggable可以设置元素能否拖拽,那么CSS中有没有什么属性可以设置元素的拖拽权限呢?
by @技术头条 2021-06-13 22:43 分享 查看详情
数据库内核的并发控制 (www.ideawu.net)
大部分程序员最先接触并发编程, 一般是从编程语言里的多线程和锁开始. 但是, 并发控制是一种广义的技术思想, 千万不可将眼光局限于编程语言所提供的锁. 将编程语言里的并发控制技术推广, 就能得到任何层面的并发控制技术.

以操作一个文件为例, 如果不做并发控制, 就会遇到数据完整性问题. 例如, 我们写入的一项数据, 对应着现实对象, 如果不做并发控制, 那么可能读到的时两项数据的混合体, 或者只读到一项数据的部分.
by @技术头条 2021-06-13 22:42 分享 查看详情
洞见RSAC | 生物行为识别技术在社工诈骗中的应用分析与探索 (blog.nsfocus.net)
人为因素才是安全的软肋,有意、无意的行为可造成潜在的威胁或者一连串的后果。2021年DBIR数据泄露报告(Data Breach Investigations Report)中提到85%的数据泄露涉及人的因素。社工攻击正是利用人的因素,引导操纵人们采取行动或泄露机密信息,以达到收集信息、欺诈或访问系统等目的的“骗局”。
by @技术头条 2021-06-13 22:41 分享 查看详情
Snort在工控系统入侵检测的应用 (blog.nsfocus.net)
近年来,国内外的工控安全事件频出,越来越多国家级APT组织的攻击目标开始转向工控领域,检测工控系统中的入侵行为具有重大意义。本文从实战出发,研究对施耐德的启停攻击过程,搭建开源Snort框架来完成对施耐德M580的攻击检测。
by @技术头条 2021-06-13 22:39 分享 查看详情
美团民宿跨端复用框架设计与实践 (tech.meituan.com)
从 PC 时代、移动时代到万物互联的 IoT 时代,伴随终端设备的日趋多样化,跨端复用的种子自此落地,开始生根发芽。从业务角度出发,跨端技术演进更多是在不同阶段、不同时间段内业务效率上的选择,美团民宿业务在大前端融合的浪潮中逐浪前行,不断探索和迭代抉择,为解决业务痛点而孵化出跨端框架技术,在这个过程中,我们进行了很多的探索和实践的思考,希望能给大家一些启发。本文主要分享美团民宿在跨端复用技术探索和业务实践过程中的经验。
by @技术头条 2021-06-13 22:39 分享 查看详情
小样本做文本分类:超干货解读,看完别说你还不懂胶囊网络 (www.52nlp.cn)
人脑对图像的认识关键的点在于图像位置姿态的认识,也就是即便图像进行了旋转,平移人脑依然可以认识图像,而计算机却不行。因此提出胶囊网络CapsNet。
by @技术头条 2021-06-13 22:35 分享 查看详情
分布式数据库系统如何做到平滑缩扩容? (www.ideawu.net)
分布式数据库系统的缩扩容能力(后面也称迁移)是最基础最基本的特性, 但是, 要实现平滑扩容并不容易, 需要包括服务端, 客户端共同完成, 这两者只要缺少任何一方的参与和配合, 便绝不可能实现平滑扩容.

平滑迁移要解决的问题, 本质上就是故障容错处理.
by @技术头条 2021-06-13 22:32 分享 查看详情
Linux上如何定时关闭一个服务 (phpor.net)
如果让服务本身支持定时关闭,理论上非常可行,但是所有想定时关闭的服务都去实现以下这个逻辑是不是不太好?对于一个已经很成熟的(甚至没有源码的)服务想实现这个功能又该怎么办呢?

根据Linux的思想,一个程序应该只做一件事,并非功能越多越好,把自己该做的事做好就行了。

Linux上有一个非常好的命令: timeout 。只做了一件事,可以实现一个程序在一段时间后结束,如:

timeout 2s sleep 10

sleep 想睡10s; 但是timeout 保证让他2s就死掉
by @技术头条 2021-06-13 22:31 分享 查看详情
记录一下之前对 fsck_msdosfs(8) 的改进 (blog.delphij.net)
fsck_msdosfs(8) 是 FreeBSD 上用来检查和修复 FAT12/16/32 文件系统问题的程序,此外, Android 也使用了这一实现,并采用它来检查使用 FAT文件系统,如 SD 卡上的文件系统问题。

众所周知,FAT 是一个结构非常简单的文件系统。它的基本分配单元是簇(clusters),每个簇可以包括1-128个逻辑扇区。FAT 文件系统使用单一的中央数据结构——文件分配表 FAT来表现存储上的所有簇的分配状态,该结构本身是一个线性表,其中每一项均与磁盘上的相对位置的簇一一对应。这个表上以单链表形式表达文件,链表的表头保存在该文件对应的目录项上,而后续的整个簇链则在 FAT表上,每一项的内容是下一簇的簇号。FAT 表项如果是 0 则表示目前没有任何文件在使用该簇,因此可以将作为保存新数据的空间使用,还有一些特殊值表示坏块、保留块,或者文件已经到达了末尾。
by @技术头条 2021-06-13 22:30 分享 查看详情