Algorithm:时序预测算法Prophet
Facebook时序预测算法Prophet研究简介Prophet是Facebook开源的一个时序预测算法,不仅可以处理时间序列存在一些异常值的情况,也可以处理部分缺失值的情形,还能够几乎全自动地预测时间序列未来的走势。
从论文上的描述来看,这个 prophet 算法是基于时间序列分解和机器学习的拟合来做的,其中在拟合模型的时候使用了 pyStan 这个开源工具,因此能够在较快的时间内得到需要预测的结果。除此之外,为了方便统计学家,机器学习从业者等人群的使用,prophet 同时提供了 R 语言和 Python 语言的接口。从整体的介绍来看,如果是一般的商业分析或者数据分析的需求,都可以尝试使用这个开源算法来预测未来时间序列的走势。
参考文献:
GitHub - facebook/prophet
Prophet官网
论文 - Forecasting at scale
快速开始Prophet提供了R语言与Python两种语言的接口库,本文聚焦于Python实现。
环境构建1python -m pip install prophet
From v0.6 onwards, ...
网络隧道:UDP Over TCP Tunnel
简介UDPTunnel is a small program which can tunnel UDP packets bi-directionally over a TCP connection. Its primary purpose (and original motivation) is to allow multi-media conferences to traverse a firewall which allows only outgoing TCP connections.
安装Source code for Unix is available here.
To build, unpack the tar file, then type:
123./configure make (optionally) make install
The configure script is a standard GNU autoconf-generated configure script; the usual options for it app ...
网络协议:SNMP协议
简介Simple Network Management Protocol (SNMP) is a widely used protocol for monitoring the health and welfare of network equipment (eg. routers), computer equipment and even devices like UPSs. Net-SNMP is a suite of applications used to implement SNMP v1, SNMP v2c and SNMP v3 using both IPv4 and IPv6. The suite includes:
Command-line applications to:
retrieve information from an SNMP-capable device, either using single requests (snmpget, snmpgetnext), or multiple requests (snmpwalk, snmptable, sn ...
消息队列:Kafka
简介Apache Kafka is an open-source distributed event streaming platform used by thousands of companies for high-performance data pipelines, streaming analytics, data integration, and mission-critical applications.
部署CentOS部署准备基础环境12# 安装源文件sudo yum install epel-release -y
安装Java环境1234567891011121314# 安装JDKsudo yum install -y java-1.8.0-openjdk# 查看Java版本java -version# 查看Java环境变量echo $JAVA_HOME# 配置Java环境变量echo "JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")" | sudo t ...
Libvirt研发:VirtIO GPU
简介随着AI与云应用的发展,逐渐对GPU的图形算力提出了更高的要求。工业级的GPU卡单卡性能很高,直接提供给某一个虚机或者程序使用,很容易造成资源的浪费,如何灵活的利用GPU算力成为各厂商的需求,因此各种GPU虚拟化方案便应运而生。
目前主流的GPU虚拟化方案主要有以下三个方向:
Mediated Pass-Through方向,该方向主要由NVIDIA推进,NVIDIA的GRID vGPU为NVIDIA提供的源生能力,通过NVIDIA vGPU驱动实现显存及算力的切分,根据vGPU的类型可选择启用不同的切分模型。
API Forwarding方向,该方向主要的方案有vCUDA、rCUDA等,主要应用于容器场景,通过CUDA层API的拦截与转发,将程序的GPU请求转发至GPU卡处理。
Device Emulation方向,该方向主要应用于虚拟化场景,通过虚拟层对GPU的模拟,配合物理GPU硬件,实现GPU能力的透传。
各方案的具体性能水平如下:
本文主要介绍Device Emulation方向中的VirtIO GPU方案实现,主要从原理及部署实操角度进行介绍。文末附有GPU ...
Windows使用:系统防火墙
简介本文主要整理windows防火墙常用的管理操作。
常见场景阻止系统内指定程序联网操作流程:
1、在桌面左下角的搜索框中搜索“控制面板”,打开控制面板,点击其中的“系统与安全”;
2、在“系统和安全”的界面中,点击“Windows防火墙”;
3、再点击左侧栏中的“高级设置”;
4、点击左侧栏中的“出站规则”–新建规则;
5、我们在新建出站规则向导界面中,点击左侧栏中的“程序”–浏览–找到需要阻止访问网络的程序,比如QQ,找到QQ的路径即可。
6、在进入“操作”,勾选“阻止连接”,按照提示完成操作即可阻止某个程序联网。
流程截图:
License共享:vAPP方案
简介为节约软件License购买成本,在合理的、不被查封的情况下,通过技术手段来降低license开销,实现软件的正版激活。本方案是实现License共享的方案之一,另一个方案为硬件克隆方案,可参考文档《License共享:硬件克隆方案》。
主体思路本方案的总体思路是通过将已激活的软件分发出去,利用软件共享,来实现多人复用同一个已激活软件的目的。目前Windows Server提供RDS服务,可提供多用户远程启动已分发软件,本方案就是基于RDS服务设计,主要讲解整理架构及部署流程。
局限性只要支持RDP协议的软件,均可通过该方案实现License共享。目前测试,不支持的软件有:UG NX。
架构
部署流程本文只介绍最简单的架构部署方式,了解基础配置后其他架构的配置方式则较为轻松,这里不做赘述。服务器系统统一使用Windows Server 2019。
配置AD域控服务器域控服务器的职责,主要是负责用户的身份认证、域服务器管理、提供web访问。
应用服务器加域
修改应用服务器的主机名。
修改应 ...
License共享:硬件克隆方案
简介为节约软件License购买成本,在合理的、不被查封的情况下,通过技术手段来降低license开销,实现软件的正版激活。本方案是实现License共享的方案之一,另一个方案为vAPP方案,可参考文档《License共享:vAPP方案》。
主体思路软件License通常会采集系统层级的硬件信息来区分主机,如网卡MAC、主板信息等。本方案主要通过底层硬件的虚拟化,将所有虚机的硬件信息虚拟化为同一个,使其在系统层级内部无法感知硬件层级的差异,从License检测层面来看,就是同一台机器。
局限性该方案的局限性较大,只要有以下几点:
网卡MAC在同一个局域网内无法相同,所以需要隔离至不同的私网,会造成网络结构过于复杂。
每个软件检测硬件的信息方式不同,对于检测简单的软件可用该方法,检测复杂的软件不推荐该方式,适配难度过高。
软件License检测方式对适配而言均为黑盒,适配难度高。
该方案目前暂时未大规模使用测试,无法评估其法律风险。
虚拟化配置CPU使用host-passthrough模式即可,参考xml相关配置:
123456789...<cpu mode= ...
Python研发:setup打包
简述项目部署时,发现CI自动打包的Docker镜像内代码不全,最终定位原因是由于python打包时未打包新建的代码文件导致。特意整理本文章,整理python打包配置。
基础信息python标准打包工具为setuptools,可通过setuptools官方文档详细了解该工具。现整理一些常用内容,记录如下:
基本命令Python官方文档:https://packaging.python.org/tutorials/distributing-packages/
根据 application 包含的代码类型以及其所支持的 python 版本, wheel 格式可细分为三种
Universal wheel:纯 python 代码,并且支持 python 2 和 3
Pure python wheel:纯 python 代码,不同时支持 python2 和 3
Platform wheel:非纯 python 代码
采用如下命令可编译成 universal wheel:
1python setup.py bdist_wheel --universal
采用如下命令可编译成非 universa ...