Lua的OOP方案
Lua语言本身并没有提供面向对象的语法机制,这需要我们自己设计实现一套类的机制。首先,对于面向对象编程,至少需要类和对象这两个概念 。目前有两种方式来完成实现Lua的面向对象编程:一种是利用Lua的元表( metatable )来模拟OOP;另一种是利用第三方库封装的OOP能力来写代码(比如middleclass)。
Lua语言本身并没有提供面向对象的语法机制,这需要我们自己设计实现一套类的机制。首先,对于面向对象编程,至少需要类和对象这两个概念 。目前有两种方式来完成实现Lua的面向对象编程:一种是利用Lua的元表( metatable )来模拟OOP;另一种是利用第三方库封装的OOP能力来写代码(比如middleclass)。
最近一直想把闲置的2TB移动硬盘用起来,用来搭建一个NAS,其实方案很简单,之间升级台式机剩余一个256G的固态硬盘,买了二手的主机,配置是i3 10105 + 七彩虹 H510I-Gaming的ITX主板,所以非常mini,电源也是ITX专用电源200W足够用了,另外买了24GB的内存。安装了 CentOS7.5 的版本,先挂载硬盘,再开启SMB服务即可,如果SMB服务存在问题也可以安装Webdav服务,其实相对来说Webdav更通用。
本篇文章主要学习Flink的核心API的进阶部分的笔记,包含自定义Source、自定义分区器、自定义Sink等都是经常会遇到的场景,另外介绍了Transformation 部分高级算子,从Flink Function 的宏观层级出发,通过实现顶层接口把自定义的功能交给Flink去执行,后续遇到了更复杂的自定义场景也会在本篇笔记中补充。
关键指标分析是一种常用的业务分析手段。对于产品来说,某个功能上线后需要观察用户的操作数据,比如很简单的PV/UV,用户在层级留存率等等。对于研发的来说,关注的点在于功能的某个具体流程优化上,更关注性能或者稳定性相关的数据,那么就需要采用一套系统来完成这样的数据统计能力。本篇文章将介绍这种通用的业务指标计算模型,根据自定义的规则就可以得出想要的数据。
Kibana 是为Elasticsearch设计的开源分析和可视化平台,利用Kibana可以很容易对Elasticsearch中的数据实现图表可视化、搜索等功能。当然熟悉Kibana的前提是对Elasticsearch有一定的了解,这是kibana的官方手册: https://www.elastic.co/guide/cn/kibana/current/index.html ,本篇文章主要是Lucene查询语法,添加索引,以及如何使用Kibana的可视化平台(图表和仪表盘)。
本篇文章主要学习 Flink的核心API的基础部分的笔记, 在学习之前先部署了一个单节点的Flink环境,然后重点需要了解的就是Flink的执行上下文(StreamExecutionEnvironment)、数据源(Source API)、转化相关操作(Transformation)、输出(Sink) 等,另外就是提交和取消作业的一些操作。
也是因为最近处理业务上的问题,如果我希望看到某些实时数据的变化那么必然会涉及到流式计算,大数据处理框架从原始的 MapReduce、Hive 到 DAG的Tez,再到Spark的近实时处理是一个不断进化的过程,对于要求更高的场景还是Apache Flink比较在行,Apache Flink是一个带状态的流式计算框架,Flink不但能进行流式计算,也能进行批处理,也就是离线计算。下面是最近两天学习Flink的一些笔记,后面会逐步完善和校正。
最近在B站开了一个Unix系统编程的系列分享,目前打算是一周至少出2期视频,不过于追求速度但求精细,对于涉及操作系统原理部分肯定也会深入讲解,同时也是自己巩固知识的最好方法。买了《UNIX环境高级编程》(第三版)这本书但是一直没看,自己对Linux系统编程除了上大学的时候写的一些Demo以外就没写过其他东西了,但是NDK开发中时不时还会用到,而且一旦涉及内存优化、OOM监控这些必定跟Linux底层脱不了干系,所以花一些时间巩固基础,同时也保持一颗分享的初心,通过简单明了通俗易懂的方式给大家呈现出来。绝不同于部分大学课堂的只念PPT,更注重实际操作,通过实操加深对知识的理解,本节是 Vim 的常用操作和一些配置,放在博客里仅供参考,Bilibili合集的地址是: https://www.bilibili.com/video/BV1ua411b7sF