Lua 的 OOP 方案

Lua 语言本身并没有提供面向对象的语法机制,这需要我们自己设计实现一套类的机制。首先,对于面向对象编程,至少需要类和对象这两个概念 。目前有两种方式来完成实现 Lua 的面向对象编程:一种是利用 Lua 的元表( metatable )来模拟 OOP;另一种是利用第三方库封装的 OOP 能力来写代码(比如 middleclass)。

阅读全文

1000Mbs NAS 搭建指南

最近一直想把闲置的 2TB 移动硬盘用起来,用来搭建一个 NAS,其实方案很简单,之间升级台式机剩余一个 256G 的固态硬盘,买了二手的主机,配置是 i3 10105 + 七彩虹 H510I-Gaming 的 ITX 主板,所以非常 mini,电源也是 ITX 专用电源 200W 足够用了,另外买了 24GB 的内存。安装了 CentOS7.5 的版本,先挂载硬盘,再开启 SMB 服务即可,如果 SMB 服务存在问题也可以安装 Webdav 服务,其实相对来说 Webdav 更通用。

阅读全文

Flink 核心 API 进阶(二)

本篇文章主要学习 Flink 的核心 API 的进阶部分的笔记,包含自定义 Source、自定义分区器、自定义 Sink 等都是经常会遇到的场景,另外介绍了 Transformation 部分高级算子,从 Flink Function 的宏观层级出发,通过实现顶层接口把自定义的功能交给 Flink 去执行,后续遇到了更复杂的自定义场景也会在本篇笔记中补充。

阅读全文

移动端业务指标通用计算模型

关键指标分析是一种常用的业务分析手段。对于产品来说,某个功能上线后需要观察用户的操作数据,比如很简单的 PV/UV,用户在层级留存率等等。对于研发的来说,关注的点在于功能的某个具体流程优化上,更关注性能或者稳定性相关的数据,那么就需要采用一套系统来完成这样的数据统计能力。本篇文章将介绍这种通用的业务指标计算模型,根据自定义的规则就可以得出想要的数据。

阅读全文

Kibana 学习笔记

Kibana 是为 Elasticsearch 设计的开源分析和可视化平台,利用 Kibana 可以很容易对 Elasticsearch 中的数据实现图表可视化、搜索等功能。当然熟悉 Kibana 的前提是对 Elasticsearch 有一定的了解,这是 kibana 的官方手册:https://www.elastic.co/guide/cn/kibana/current/index.html,本篇文章主要是 Lucene 查询语法,添加索引,以及如何使用 Kibana 的可视化平台(图表和仪表盘)。

阅读全文

Flink 流式计算与批处理 —— 词频统计

也是因为最近处理业务上的问题,如果我希望看到某些实时数据的变化那么必然会涉及到流式计算,大数据处理框架从原始的 MapReduce、Hive 到 DAG 的 Tez,再到 Spark 的近实时处理是一个不断进化的过程,对于要求更高的场景还是 Apache Flink 比较在行,Apache Flink 是一个带状态的流式计算框架,Flink 不但能进行流式计算,也能进行批处理,也就是离线计算。下面是最近两天学习 Flink 的一些笔记,后面会逐步完善和校正。

阅读全文

Vim 常见配置与基本用法

最近在 B 站开了一个 Unix 系统编程的系列分享,目前打算是一周至少出 2 期视频,不过于追求速度但求精细,对于涉及操作系统原理部分肯定也会深入讲解,同时也是自己巩固知识的最好方法。买了《UNIX 环境高级编程》(第三版)这本书但是一直没看,自己对 Linux 系统编程除了上大学的时候写的一些 Demo 以外就没写过其他东西了,但是 NDK 开发中时不时还会用到,而且一旦涉及内存优化、OOM 监控这些必定跟 Linux 底层脱不了干系,所以花一些时间巩固基础,同时也保持一颗分享的初心,通过简单明了通俗易懂的方式给大家呈现出来。绝不同于部分大学课堂的只念 PPT,更注重实际操作,通过实操加深对知识的理解,本节是 Vim 的常用操作和一些配置,放在博客里仅供参考,Bilibili 合集的地址是:https://www.bilibili.com/video/BV1ua411b7sF

阅读全文

一元线性回归的梯度下降算法实现

一元线性回归算法是机器学习部分接触的第一个算法,更重要的通过一元线性回归足以了解监督学习过程完整的流程,之所以称为监督学习是因为对于每个数据来说,已经存在了正确的答案。本文所有的内容都只是在学习 Andrew Ng 老师的机器学习课程中记的笔记,并且自己用 Ocatve 实现了一元线性回归的梯度下降算法。

阅读全文