Go: 关于锁的1234 (www.felix021.com)
其实锁很适合用来做套题,比如可以这么切入:sync.Mutex 是悲观锁还是乐观锁?

有些候选人不了解它们的区别,回答靠猜,缺乏逻辑以至于我都记不住。虽然这只是一个概念性的知识,但是却很能反映候选人的工作经验,比如读多写少的并发场景,乐观锁可以减少加锁冲突带来的开销。

当然大多数人还是知道的,于是可以继续问:你有了解过锁是怎么实现的吗?

很多人都能想到:维护一个初值为 false 的变量,当一个线程加锁成功的时候,将它置为 true ,就可以保证其他线程无法再获取。

逻辑是没错,但真正的问题是:两个线程同时检查,发现它的值都是 false ,如何保证只有一个线程会把它置为 true 呢?

这样的提问让不少候选人意识到,自己其实并没有真正理解锁。
by @技术头条 2021-06-13 23:27 分享 查看详情
洋葱式信息安全观察:溯源(归因分析)与机器学习 (www.sec-un.org)
回顾往年的攻击事件,有报道称韩国平昌冬奥会APT攻击事件导致了奥运会网站的宕机和网络中断。

根据开源情报,该事件攻击者的归属问题,至今未有定论。在事件中攻击者使用的植入载荷Olympic Destroyer,其相关代码与Lazarus曾使用的载荷有部分相似,而美国部份媒体则声称该事件为俄罗斯情报机构实施并嫁祸给朝鲜。

该事件再一次展现了APT攻击者利用和模仿其他组织的攻击技术和手法特点,制造false flag以迷惑安全分析人员并误导其做出错误的攻击来源归属的判断。

网络攻击者,其手法随着不同的组织、个人的能力以及外部环境而多变,是否有一种通用的方法来进行综合分析,作为归因分析的指导呢?

狡猾的狐狸总是懂得隐藏自己,甚至嫁祸于他人。然而,“凡有接触,必留痕迹”,判断一起攻击所属的国家、地区、组织、黑客团体,通常需要所结合已知知识(威胁情报)和具体的攻击细节进行对比分析,最后做出结论。以下介绍几个常用的分析切入点。
by @技术头条 2021-06-13 23:26 分享 查看详情
初探 Typescript 解析器 (www.alloyteam.com)
前段时间看了下开源组件 stryker 的源码,对 Typescript 的解析器产生了兴趣。这个开源组件是用来检查单测质量的,通过识别源码自动更改某些代码内容,然后看单测能否检测出来。Typescript 解析器做的,就是识别源码这一关键步骤。

于是花了些时间学了下 Typescript 解析器,感觉像打开一个新的大门,可以玩很多有趣的事情。
by @技术头条 2021-06-13 23:22 分享 查看详情
一个有趣的内存泄漏案例 (www.alloyteam.com)
腾讯文档最近基于刚刚发布的 Webpack5 进行了一次编译的大重构,作为一个多个仓库共同构成的大型项目,任意品类的代码量都超过百万。对于腾讯文档这样一个快速迭代,高度依赖自动化流水线,常年并行多个大型需求和无数小需求的项目来说,稳定且快速的编译对于开发效率至关重要。这篇文章,就是笔者最近进行重构,成功将日常开发优化到 1s 的过程中,遇到的一些大型项目特有的问题和思考,希望能给大家在前端项目构建的优化中带来一些参考和启发。
by @技术头条 2021-06-13 23:17 分享 查看详情
实践之后,我们来谈谈如何做好威胁建模 (tech.meituan.com)
对美团安全团队来说,引入领先的安全技术设计能力,构建全方位、多维度智能防御体系,是我们不懈追求的目标。美团有众多基础设施,核心业务系统也需要以成熟的方法论进行威胁评审。本文将着重分享威胁建模是如何帮助美团安全团队评估、发现大量安全设计的风险,以及互联网企业应该如何大范围地实施威胁建模并完整地进行落地。
by @技术头条 2021-06-13 23:17 分享 查看详情
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 分享 查看详情