超大规模数据库集群保稳系列之二:数据库攻防演练建设实践 (tech.meituan.com)
本文整理自美团技术沙龙第75期的主题分享《美团数据库攻防演练建设实践》,系超大规模数据库集群保稳系列的第2篇文章。本文首先介绍了美团当前数据库运维现状、遇到的问题,以及为什么要建设数据库攻防演练平台;其次,分享当前数据库攻防演练平台的具体实践;第三部分会介绍数据库攻防演练在美团内部的落地情况;最后,会结合混沌工程的成熟度标准和成熟度等级,分享我们对未来工作的一些规划。
by @技术头条 2023-06-24 09:22 查看详情
Robust 2.0:支持Android R8的升级版热修复框架 (tech.meituan.com)
2016年,我们对美团Android热更新方案Robust的技术原理做了详细介绍。近几年,Google 推出了新的代码优化混淆工具R8,Android 热修复补丁制作依赖二次构建包和线上包对比,需要对Proguard切换到R8提前进行适配和改造,本文分享 Robust 在适配 R8 以及优化改进中的一些思路和经验,希望能对大家有所帮助或者启发。
by @技术头条 2023-06-24 09:21 查看详情
一个泛型的有序Go Map实现 (colobu.com)
我们知道, Go内建的map类型对于插入的元素并没有保持它们的插入顺序,遍历的时候也故意设置成随机的。因此,如果我们想让map保持元素的插入顺序,需要借助第三方的库才行,今天就给大家介绍一个这样的库OrderedMap。

其实在其他编程语言中,也有类似的数据结构,比如java中的 LinkedHashMap, python中的OrderedDict。

本文介绍如何使用Go语言实现这样的一种数据类型。注意我们要实现的是OrderedMap, 不是SortedMap或者TreeMap,SortedMap遍历的时候是按照Key的排序顺序遍历的,我们可以通过先获取所有的key并排序,再逐个访问对应的值。

但是OrderedMap遍历的时候要是保持插入的顺序,这怎么办到的呢?
by @技术头条 2023-06-24 09:19 查看详情
让 sync.Map 支持泛型 (colobu.com)
渐渐地, Go泛型越来越多应用的Go的标准库中了。一些标准库的类型,比如container/heap、container/list、container/ring、math都是有机会支持泛型的,但是考虑到Go向下兼容的情况,这些包可能不会直接修改,最可能就是新建一些并发的包,或者放在扩展包中。

本篇文章将讲一个相对复杂的例子,也就是对sync.Map的修改,让它支持泛型。
by @技术头条 2023-06-24 09:19 查看详情
如何用 ChatGPT 助力开发: 已经有 15 万人看过的经验分享 (luolei.org)
自从年初开始关注这波 AI 浪潮,我将 AI 纳入了自己的工作流程,已经有一段时间了。现在我基本上一有机会就向他人推荐,建议尽快将 AI 引入开发流程。

今天这篇文章,分享一些目前自己利用 AI 服务相关的一些经验、工具和服务。
by @技术头条 2023-06-24 09:04 查看详情
如何高效使用 GitHub Copilot (www.dbform.com)
GitHub Copilot 是一款由 OpenAI 和 GitHub 联合开发的人工智能编程助手,基于 GPT-4 模型。它可以帮助你编写代码、提供代码建议、自动完成代码片段等,大大提高编程效率。下面是如何高效使用 GitHub Copilot 的一些建议。
by @技术头条 2023-06-05 23:59 查看详情
合成双重差分法--烟草控制评估 (bjt.name)
双重差分(difference indifferences)是一种常见的计量经济学方法,用于评估政策或干预措施的影响。它的基本思想是对比实验组和对照组在政策实施前后的差异,以确定政策的影响。
by @技术头条 2023-06-05 23:58 查看详情
当 App 有了系统权限,真的可以为所欲为? (androidperformance.com)
前一段时间有个 App 很火,是 Android App 利用了 Android 系统漏洞,获得了系统权限,做了很多事情。想看看这些个 App 在利用系统漏洞获取系统权限之后,都干了什么事,于是就有了这篇文章。
这篇文章主要来看看 XXX apk 内嵌提权代码,及动态下发 dex 分析 这个库里面提供的 Dex ,看看 App 到底想知道用户的什么信息?总的来说,App 获取系统权限之后,主要做了下面几件事(正常 App 无法或者很难做到的事情),各种不把用户当人了。
by @技术头条 2023-06-05 23:56 查看详情
使用docker-compose部署最新版loki+promtail+grafana采集Nginx的日志流程记录 (wiki.eryajf.net)
在一些轻量化的场景之中,使用 ELK 方案来解决日志问题就会比较笨重,素闻 Loki 比较香,今天折腾了一番,特此记录一下整个流程。本文不涉及 Loki 的深度使用与研究,但是参照本文,你可以快速把 Loki 拉起来,并且把 Nginx 日志正确采集进来。
by @技术头条 2023-06-05 23:53 查看详情
后 GPT 时代,NLP 不存在了? (blog.yuanpei.me)
ChatGPT 发布以来,关于被 AI 替代以致于失业的焦虑声音不断涌现,即便是传统的 NLP 亦不能幸免。在开发贾维斯的过程中,博主需要解决意图识别的问题,本文分享了两种解决问题的思路,它们分别是以 ChatGPT 为代表的大语言模型、以 Rasa 为代表的传统 NLP。

对于 “NLP 已死”、“NLP 不存在了”这样的观点,笔者的看法是,这实际代表了人工智能的两种方向:通用智能和专业智能。虽然像 ChatGPT 这样的通用型 LLM 表现不俗,但是对于 NLP 的一系列问题,永远依赖于调用一个外部模型注定不可行。在这种情况下,你不可能像 OpenAI 一样投入大量人力、物力去训练一个 LLM。此时,选择 LLaMa 或者 Alpaca 这样的“小”模型就不失为一种明智的选择。

此外,现阶段 LLM 的微调、“投喂”数据依然需要 NLP 的知识。像传统 NLP 那样细分的、垂直的子任务会越来越少,而多模态/跨模态的场景和应用会越来越多。如果用一句 100% 正确的废话来描述就是,这是一个机遇与挑战并存的时代!
by @技术头条 2023-06-05 23:51 查看详情
几种使用Go发送IP包的方法 (colobu.com)
我们使用Go标准库中的net包,很容易发送UDP和TCP的packet,以及在它们基础上开发应用层的程序,比如HTTP、RPC等框架和程序,甚至我们可以利用官方扩展包golang.org/x/net/icmp,专门进行icmp packet的发送和接收,不过,有时候我们想进行更低层次的网络通讯,这个时候我们就需要借助一些额外的库,或者做一些额外的设置,当前相关的介绍IP层packet收发技术并没有很好的组织和介绍,本文尝试介绍几种收发IP packet的方式。
by @技术头条 2023-06-05 23:09 查看详情
云原生背景下如何配置 JVM 内存 (crossoverjie.top)
传统的 Java 应用开发模式基本不会去了解容器的内存大小,因为以前大家的应用都是部署在一个内存较大的虚拟机上,所以感知不到容器内存的限制。这样很容易让自动生成的 Xmx 大于了容器的内存大小,以致于 OOM。推荐 JVM 的配置小于容器限制的 2/3,预留一些内存。
by @技术头条 2023-05-29 23:37 查看详情
新浪张俊林:大语言模型的涌现能力——现象与解释 (www.52nlp.cn)
复杂系统学科里已经对涌现现象做过很久的相关研究。那么,什么是“涌现现象”?当一个复杂系统由很多微小个体构成,这些微小个体凑到一起,相互作用,当数量足够多时,在宏观层面上展现出微观个体无法解释的特殊现象,就可以称之为“涌现现象”。

在日常生活中也有一些涌现现象,比如雪花的形成、堵车、动物迁徙、涡流形成等。这里以雪花为例来解释:雪花的构成是水分子,水分子很小,但是大量的水分子如果在外界温度条件变化的前提下相互作用,在宏观层面就会形成一个很规律、很对称、很美丽的雪花。

那么问题是:超级大模型会不会出现涌现现象?显然我们很多人都知道答案,答案是会的。
by @技术头条 2023-05-13 08:43 查看详情
ICDE 2023 | 多场景多任务学习在美团到店餐饮推荐的实践 (tech.meituan.com)
美团到店餐饮算法团队在跨域迁移学习的长期实践中,基于多场景的业务背景,提出了分层信息抽取网络,提升了多场景多任务的建模效果。相关技术方案形成的学术论文已经被国际数据工程会议ICDE 2023收录,本文详细阐述了多场景&多任务学习的解决方案,希望能给从事相关方向研究的同学带来一些帮助或启发。
by @技术头条 2023-05-13 08:42 查看详情
ClickHouse 数据类型 (www.dbkuaizi.com)
对于一款支持海量数据分析系统而言,能支持 DML 查询实属难得可贵。在海量的数据场景下,很多看似简单的操作也会变得举步维艰,所以一些系统会选择做减法来规避一些难题。而 ClickHouse 支持完备的 DML 命令,包括 INSERT、SELECT、UPDATE 和 DELETE。虽UPDATE 和 DELETE 可能会存在一些性能问题,但这些能力的提供确实丰富了架构师的筹码,在架构设计师可以多几个选择。

作为一款完备的 DBMS,ClickHouse 提供了 DDL 和 DML 功能,并支持大部分标准的SQL。这也是 ClickHouse 相对容易上手的原因。但作为一款异军突起的 OLAP 数据库黑马,ClickHouse 有着属于自己的设计目标,高性能才是它的根本。比如 ClickHouse 在基础数据方面相比于其他常规数据库会少一些,但它又同时提供了实用的复合数据类型,而这些复合类型是常规数据库所不具备的。再比如,ClickHouse 所提供的 DDL 和 DML 查询,在部分细节上和其他数据库也是不同的(例如 UPDATE、DELETE 是借助 ALTER 的变种实现的)。

所以掌握 ClickHouse 中的数据定义方法是很重要的,这能帮助我们深刻理解和使用 ClickHouse。
by @技术头条 2023-05-13 08:18 查看详情
Kubernetes 中的证书管理工具 - cert-manager (thiscute.world)
这篇文章要介绍的 cert-mangager,跟 certbot 这类工具有点类似,区别在于它是工作在 Kubernetes 中的。

cert-manager 是一个证书的自动化管理工具,用于在 Kubernetes 集群中自动化地颁发与管理各种来源、各种用途的数字证书。它将确保证书有效,并在合适的时间自动更新证书。
by @技术头条 2023-05-02 18:12 查看详情
任务执行龟速,原因竟然是...... (www.ssgeek.com)
本文记录复盘的是一次k8s集群相关的生产故障。

随着服务增多,集群的庞大,一些未知问题就必然会出现(而如果集群规模较小,也就基本不会遇到了)。

对于一开始未知原因、诡异、没有思路的问题或者bug,往往利用穷举法列出所有可能的原因,然后采取最小化复现、差异化对比等等,基本能解决大部分这类问题。
by @技术头条 2023-05-02 18:11 查看详情
基于Dockerfile构建容器镜像的最佳实践 (www.ssgeek.com)
本文简要分析了Dockerfile为什么这么大的几个主要原因,并且根据生产经验罗列了一些优化镜像大小的措施以及其他方面常用的处理办法,很多技巧性的内容,比较杂乱,就不一一提及了 ~
by @技术头条 2023-05-02 18:10 查看详情
基于ack k8s集群调度的方案设计 (www.ssgeek.com)
本文分析介绍基于ack,结合k8s原生调度方式,综合考虑现有应用自身特性、节点池资源特性、成本、效率等方向而设计的调度规范参考。

后续随着业务的复杂性增强,会将更多的调度设计原理与业务相结合,充分利用公有云及k8s的新生特性,例如在离线业务混合部署、拓扑感知调度、二次调度、弹性容器实例ECI、Serveless函数计算等,甚至于出现可用的调度方式都不满足的调度需求,实现自定义调度,进而实现更多更好更强贴近业务、使用效率提升的服务调度方式,根据更多的数据指标和服务中链路的追踪来进一步优化业务,最终实现业务的快速迭代、自动部署、独立高效。
by @技术头条 2023-05-02 18:10 查看详情
创业公司的基层管理 (hiwannz.com)
在创业公司担任管理者时,是不能照搬大公司的管理制度和流程的。

一方面是因为公司规模不同,导致能够使用的资源有限,很多创业公司在照搬大公司的管理制度时,往往会听到员工吐槽“又要 996,又不给加班费;又没有大公司的命,又得了大公司的病”。毕竟创业公司总是人手有限,管理者除了担任管理职能以外,往往还需要真的做事,如果在一家几十个人的创业公司里,管理者的工作就是看日报,盯工时和开会,那对于基层员工将会是一件很无奈的事情(毕竟创业公司里要做的事情总是太多了)。

以我个人的经验来说,在这种时候,相比选择花费时间去学习管理课程/书籍,参与 MBA 的课程能够起到的作用并不大(并不是说不好)。毕竟“纸上得来终觉浅,绝知此事要躬行”,管理课程书籍中提供的往往是那种“正确但又难以在短时间内落地的知识”,而由于不同公司的企业文化,组织结构和可用资源,很难找出一种对所有公司都有效的“具体方法”。

在之前的文章《如何管理新的产品团队》中,我分享了一些以往的心得和经验,刚好最近又有一些新的想法,与大家进行分享。
by @技术头条 2023-05-02 18:09 查看详情