关于状态机的思考
LeetCode 上有这样一道题目:表示数值的字符串。题目看似简单,但其最佳解法却蕴含着一种绝妙的工程实践——状态机。
本文从这道编程题目出发,思考了一些状态机的使用场景,记录下脑暴过程。
本文首发于火山引擎开发者社区,获得当期社区征文活动一等奖。
随着实时计算的应用越来越广泛,同时实时数仓的概念逐渐深入人心,Flink 作为实时计算领域当之无愧的最优秀框架,其使用范围飞速扩张。对于一个优秀的大数据开发工程师来说,非常有必要熟练掌握 Flink 框架的使用和运维。
HyperLogLog(HLL) 算法是一种估算海量数据基数的方法,被广泛用于各个数据库产品中。
与精确的基数统计算法相比,HLL 具备可合并性 (mergeability) ,因而可以方便地对海量数据进行并行计算,被广泛地用于大数据多维分析场景中。例如分别统计一款 APP 每个小时的 UV 以及全天的 UV,这类问题就非常适合使用 HLL 算法。
本文将会由浅入深,从基本概念讲起,引导读者从直观上理解 HLL 算法背后蕴含的基本思想。
在数据领域,有几类经典的查询场景,这些查询在小数据量下很容易做到,但一旦数据量扩大传统思路将变得不可行,必须采用特定的数据结构与算法来支持,这就是今天要讨论的 DataSketches 算法族。
Python 的 import 机制是最令用户困惑的地方之一,在实践中非常容易出错,相信被 ImportError
和 ModuleNotFoundError
折磨过的同学都对此深有体会。本文完整地梳理 Python 的各种导入逻辑,力求在实践中避坑并提出一些最佳实践。
在 shell 命令中,有多种方式可以灵活地控制命令的标准输入(stdin),熟练掌握这些技巧有时会起到事半功倍的效果。
工欲善其事,必先利其器。
Windows 系统拥有 MacOS 和 Linux 无法比拟的软件生态,但可惜的是,大多数用户并没有真正发掘出 Windows 系统的生产力。本文推荐一些“小而美”的 Windows 软件,包括本地软件与浏览器插件,能够极大地提升工作效率。
计算图是现代深度学习框架如 Tensorflow、PyTorch 等的核心概念,其中涉及的所有计算几乎都依赖于计算图提供的自动求导功能,因此研究计算图对深入理解反向传播等深度学习的底层算法大有帮助。
本文为 3Blue1Brown-线性代数的本质 系列视频的笔记。