BR 技术头条

技术头条

技术链接、资讯与社区分享流

技术头条 的分享

技术圈正在讨论的分享链接。

li linux.cn / 2022-05-06 23:10 / by @技术头条

使用 DeepSpeech 在你的应用中实现语音转文字

应用中的语音识别不仅仅是一个有趣的技巧,而且是一个重要的无障碍功能。

计算机的主要功能之一是解析数据。有些数据比其他数据更容易解析,而语音输入仍然是一项进展中的工作。不过,近年来该领域已经有了许多改进,其中之一就是 DeepSpeech,这是 Mozilla 的一个项目,Mozilla 是维护 Firefox 浏览器的基金会。DeepSpeech 是一个语音到文本的命令和库,使其对需要将语音输入转化为文本的用户和希望为其应用提供语音输入的开发者都很有用。

无图
it it.deepinmind.com / 2022-05-04 16:43 / by @技术头条

容易混淆的CAP及ACID定义

CAP及ACID都有一些共同的概念:例如原子性,一致性等等。但也会带来一些问题,这些术语名字虽然是一样的,但背后的含义完全不一样。CAP是分布式系统的理论引申出来的,而ACID指的是数据库系统。而分布式数据库会同时提到CAP和ACID,这就产生了很多困惑。当有人提到“不能放弃一致性”,这到底意味着什么呢?我们先来看下ACID和CAP分别的定义是什么。

无图
it it.deepinmind.com / 2022-05-04 16:42 / by @技术头条

Java IO类型

描述IO类型时经常会交替地使用非阻塞、异步等术语,但这两个词是有着很大的区别的。本文将从理论和实践两个方面来说明下Java编程里的非阻塞和异步IO。

TCP和UDP协议使用了套接字进行双端通信。Java的套接字 API则是底层操作系统具体实现的的适配器。兼容POSIX规范的操作系统(如Unix, Linux, Mac OS X, BSD, Solaris, AIX等)中使用的socket通信被称作伯克利套接字(Berkeley sockets)。Windows中的套接字叫winsock,它也是基于伯克利套接字,但增加了额外的功能用于支持windows的编程模型。

无图
xi www.xifenfei.com / 2022-02-04 19:52 / by @技术头条

frm和ibd文件数据库恢复

这次客户rm -rf /var/lib/mysql删除文件,删除一半及时终止,但是已经有很多mysql相关文件被删除,重要的ibdata文件已经被删除,并且客户尝试了大量的恢复工作,对该分区进行了大量的写入操作,导致后面通过对xfs文件系统进行分析,确认无法恢复对应的ibdata文件.比较幸运客户需要的核心的mysql库都还在(frm和ibd文件还存在)。

无图
bl blog.codingnow.com / 2022-02-04 19:52 / by @技术头条

流体系统

我们最近在开发的类似异星工厂的游戏中,一个重要的物流子系统就是流体系统。我个人觉得,它是所有子系统中最难实现的一个。

无图
bl blog.codingnow.com / 2022-02-04 19:51 / by @技术头条

C 中访问 Lua 配置表的优化

这两天写代码时用到之前写的一个对 Lua 配置表的 cache 模块 。感觉用起来还是不够简洁方便。我今天动手重新设计了一下。

需求是这样的:

项目有非常多的配置信息保存在 Lua 的 (树状层级的)table 中,大部分逻辑代码直接用 Lua 的语法便可直接访问。但是,有少量有性能要求的业务是在 C 中实现的,C function 中也需要读取这些存放在 Lua 中的配置数据。

配置项随着项目开发,变更非常频繁。如果我设计一个小语言,定义出配置表,用代码生成的方式把表项翻译成对应的 C/C++ 结构,再在 C side 根据 Lua 中的数据重建一组 C 数据也未尝不可。这就是 google protobuf 官方采用的方式(用代码生成的方式,根据数据的 schema 构建出 C++ 类,让 C++ 可以方便访问这些数据)。

但我不想搞得这么复杂(浪费?

无图
dr droidyue.com / 2022-02-03 13:17 / by @技术头条

Mac 终端下 实现 安装 ipa 包到 iPhone 真机

最近处理 Flutter 的开发工作,开始尝试使用 iOS 作为日常的真机调试工作。对于一个原技术栈为 Android的人来说,发现 iOS 有很多不太方便的地方。比如如何在 Mac 电脑上安装 ipa包到 iPhone 上。

相比来说,Android 提供了adb 可以很快捷的在 终端上执行安装。而iOS 我也希望有一个可以在终端上实现安装ipa的方式,摸索了一下,终于发现了一个可行的技术方案。

无图
bl blog.codingnow.com / 2022-02-03 13:12 / by @技术头条

ECS 中同类关联数据的处理

ECS 模式下最难处理的是同类 Component 之间有相互联系的情况。

最方便 ECS 处理的数据是相互独立的,每个数据单元都不和其它数据单元产生联系;如果多个数据单元会有故有的联系时,当可以把它们看作是同一个实体(Entity)下的不同组件(Component)时,那么就可以借用 Entity 的概念来处理它们。我们依旧可以按固定的次序去迭代这些数据。

但是,在复杂系统中,无可避免的,同类数据相互之间也可以产生联系。例如:场景管理中,节点之间有父子关系,计算节点的空间状态的过程对数据的遍历次序有要求。且计算过程还需要访问父节点的状态。解决这类需求是 ECS 框架的一大挑战。

无图
an androidperformance.com / 2022-02-01 22:29 / by @技术头条

Android 性能优化的术、道、器

谷歌搜索 「Android 优化工具」,你会找到很多与此相关的内容。他们的问题在于要么是内容高度重复、要么是直接讲使用方法,很少会给你介绍整体性的架构,一不小心就会让人会种「一个工具搞定一切」的错误认知。以笔者团队的多年经验来看,在性能分析领域这种银弹级别的工具是不存在的。工具在发展,老问题会以新的方式变样出现,不掌握核心逻辑的话始终会让你浮于技术的表面。
本文首先系统性的梳理性能分析中的可观测性技术,它涵盖数据类型、抓取方法以及分析方法等三部分内容,之后是介绍谷歌提供的「三大件」分析工具。目的是想让你了解不变的理论性的知识,以及与之对应的在安卓环境中可用的工具,这些可以让你少走一些弯路,直接复用前辈们的经验。
需要特别说明的是,对于性能优化肯定不止有这三个工具可用,但这个三个工具是我们平时用到的「第一手工具」。进行进一步分析之前,你都需要依赖这三个工具进行瓶颈定位,之后才应不同领域特性选择对应的工具进行下钻分析。

无图
fe www.felix021.com / 2021-06-13 23:27 / by @技术头条

Go: 关于锁的1234

其实锁很适合用来做套题,比如可以这么切入:sync.Mutex 是悲观锁还是乐观锁?

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

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

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

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

这样的提问让不少候选人意识到,自己其实并没有真正理解锁。

无图
se www.sec-un.org / 2021-06-13 23:26 / by @技术头条

洋葱式信息安全观察:溯源(归因分析)与机器学习

回顾往年的攻击事件,有报道称韩国平昌冬奥会APT攻击事件导致了奥运会网站的宕机和网络中断。

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

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

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

狡猾的狐狸总是懂得隐藏自己,甚至嫁祸于他人。然而,“凡有接触,必留痕迹”,判断一起攻击所属的国家、地区、组织、黑客团体,通常需要所结合已知知识(威胁情报)和具体的攻击细节进行对比分析,最后做出结论。以下介绍几个常用的分析切入点。

无图
al www.alloyteam.com / 2021-06-13 23:22 / by @技术头条

初探 Typescript 解析器

前段时间看了下开源组件 stryker 的源码,对 Typescript 的解析器产生了兴趣。这个开源组件是用来检查单测质量的,通过识别源码自动更改某些代码内容,然后看单测能否检测出来。Typescript 解析器做的,就是识别源码这一关键步骤。

于是花了些时间学了下 Typescript 解析器,感觉像打开一个新的大门,可以玩很多有趣的事情。

无图
al www.alloyteam.com / 2021-06-13 23:17 / by @技术头条

一个有趣的内存泄漏案例

腾讯文档最近基于刚刚发布的 Webpack5 进行了一次编译的大重构,作为一个多个仓库共同构成的大型项目,任意品类的代码量都超过百万。对于腾讯文档这样一个快速迭代,高度依赖自动化流水线,常年并行多个大型需求和无数小需求的项目来说,稳定且快速的编译对于开发效率至关重要。这篇文章,就是笔者最近进行重构,成功将日常开发优化到 1s 的过程中,遇到的一些大型项目特有的问题和思考,希望能给大家在前端项目构建的优化中带来一些参考和启发。

无图
te tech.meituan.com / 2021-06-13 23:17 / by @技术头条

实践之后,我们来谈谈如何做好威胁建模

对美团安全团队来说,引入领先的安全技术设计能力,构建全方位、多维度智能防御体系,是我们不懈追求的目标。美团有众多基础设施,核心业务系统也需要以成熟的方法论进行威胁评审。本文将着重分享威胁建模是如何帮助美团安全团队评估、发现大量安全设计的风险,以及互联网企业应该如何大范围地实施威胁建模并完整地进行落地。

无图
te tech.meituan.com / 2021-06-13 23:17 / by @技术头条

FlutterWeb在美团外卖的实践

美团外卖商家端业务围绕数百万商家,在 PC 和 App 上分别提供了交易履约、运营、广告、营销等一系列功能,且经常有外投 H5 的场景(如外卖学院、商家社区、营销活动等)。在这种多形态的业务场景下,如何保障多端体验一致性、如何提升多端迭代效率一直是商家端产研关注的重点。

无图