alpha 的博客

何晓东 的博客 | alpha blog

群晖与UPS不断电配置小记

群晖与UPS不断电配置小记

需求是用群晖给公司内网搭一个用来托管和共享一些数据的文件服务器,主要用户是电脑小白,方便大家上传,下载文件,也方便部门管理岗管理部门文件夹,所以配置和访问从简,权限细化到二级部门。 一些定义 暂时只需要一点简单的定义,而暂时不用高大上的 FTP 等功能。 群晖 NAS:NAS(网络连接存储)是与家庭或办公室网络连接的智能存储设备。可以将所有家人和同事的文件存储在 NAS 上(从重...

Python3.7 读取 mp3 音频文件生成波形图

Python3.7 读取 mp3 音频文件生成波形图

测试环境为Windows 10 系统,Python3.7,转换需要提前安装pydub、ffmpeg,安装和加入环境变量配置方法自行解决,至于缺少的包直接 pip install xx 搞定。 主要是 mp3 转成 wav 格式的文件,因为 mp3 格式为了减小体积牺牲了音质,转成无损的 wav 格式之后,可以读取到更详细的信息。然后读取 wav 的信息,利用 matlotlib 绘...

安全修改及发布生产环境代码的方式

安全修改及发布生产环境代码的方式

主要是访问量大的系统,或者关键业务部分,需要安全的发布代码,同时保证系统的可用及发生问题时的快速回滚。 灰度发布 最简单的是复制粘贴,然后写一个V2版本代码,分流过去一部分流量,精确记录日志,监测一定时间,如果没有问题,基本是好的,再全量发布。灰度发布也是一种不停服的更新手段,小规模的更新不停服是非常好的体验。 分流的方法有很多场景使用,例如微博发布新版页面,新功能内测,都是这样...

Redis 模拟实现多字段排序的小手段

Redis 模拟实现多字段排序的小手段

基础场景: 一般做活动都会有一个积分排序功能,比较基础的情况下是按积分倒序,最基础的 zrevrangebyscore xxx min max WITHSCORES 命令就可以完成排序,可以参考 zrevrangebyscore 命令详解。 复杂场景: 参与人数较多,运营要求:按积分倒序,积分一样的,按注册时间升序,注册时间一样的,按登录次数倒序,这种稍微复杂的情况, redis 暂时没有...

Python3 开发者版抓取百度翻译结果

Python3 开发者版抓取百度翻译结果

前置条件:首先需要认证为百度翻译开放平台的开发者,能够在控制台获取到 appid 和秘钥这两个信息。然后开通通用翻译服务。如果需要字典和发音信息,需要额外的企业认证及申请开通词典和发音了。 官方给的 demo 是 python 2.x 版本的,代码已经老旧了,就改成了 python 3.x 版本,代码如下: #coding=utf8 import http.client imp...

Gitlab 的一些笔记

Gitlab 的一些笔记

gitlab 的一些个人笔记,环境为 CentOS7.6 修改时区 不知道为啥默认时区没开启,导致很多时间是错的。 首先找到 gitlab 的配置文件 vim /etc/gitlab/gitlab.rb, 直接 /time_zone 找到配置项 gitlab_rails['time_zone']='UTC', 改成 gitlab_rails['time_zone'] = 'Asia...

最近遇到的服务器网络的一些问题

最近遇到的服务器网络的一些问题

系统为CentOS7.6,和其他版本命令可能不太一样 排查网络错误 事出有因: 一台内网服务器,因为内部 IP 会变化,在 CentOS7 的网卡中设置成了固定 IP,偶然有一次断电,重启,把服务器搬到别的地方了,早上上班来了就没法连接服务器,以为是配置问题,因为没改过东西,网线也是新网线,没多想,最终调试一番发现是网线有问题。 主要调试过程: nmcli device show...

PHP浮点数及switch case的注意点

PHP浮点数及switch case的注意点

浮点数的注意点 浮点数基本是各个语言的老生常谈了,尤其 PHP 这种弱类型的语言,最常见的坑是电商活动的时候,偶尔设置价格是 19.9 元,调用微信支付,转换为分,就是 intval(19.90 * 100) 是 1989 分,对账的时候很容易踩坑,生成价格或者腾讯传回来的,和本地的 decimal 类型数据 * 100 就不一致了,可以使用 bcmul 函数避免错误,bcmul(19.9...

Python 抓取页面的请求重试方法

Python 抓取页面的请求重试方法

Python 在请求某个链接的页面时,偶尔会遇到频次限制,或者返回其他乱七八糟的错误,从而被中断了循环抓取,加一个重试机制就好了。 第一种方案:请求上进行 try catch 操作,失败在次请求就行,以下的 get 只是举例 def get(url): # import requests try: return requests.get(url, h...

Python 合并多个TXT文件并统计词频

Python 合并多个TXT文件并统计词频

需求是:针对三篇英文文章进行分析,计算出现次数最多的 10 个单词 逻辑很清晰简单,不算难,使用 python 读取多个 txt 文件,将文件的内容写入新的 txt 中,然后对新 txt 文件进行词频统计,得到最终结果。 代码如下:(在Windows 10,Python 3.7.4环境下运行通过) # coding=utf-8 import re import os # 获取...