从天气数据到行动提醒:一个降雨预警系统的设计与实现
把分钟级降水、雷达回波和消息通知组合成可执行提醒,并记录系统设计、容错与 Netlify 部署中的关键取舍。
ARTICLES
记录真实问题、判断路径与经过验证的解决方案。目前共 59 篇。
把分钟级降水、雷达回波和消息通知组合成可执行提醒,并记录系统设计、容错与 Netlify 部署中的关键取舍。
Python 客户端访问 HTTPS 服务时提示 certificate has expired,但浏览器可以正常打开,服务端证书也仍在有效期内。问题究竟出在哪里? 这篇文章记录一次从服务端证书、客户端时间、CA 信任源到 Windows 证书库的完整排查过程。文中的域名、证书名称和输出均已脱敏,只…
Codex 的会话越来越多以后,VS Code 侧栏中的最近会话会混在一起:在 A 项目里也能看到 B、C 项目的线程。GitHub issue Workspace scoped thread history 提出的目标很直接——默认只看当前工作区,同时保留一个查看全部线程的入口。
按下电梯按钮后,系统要解决的并不只是“让最近的电梯过来”。它还要考虑电梯当前的运行方向、沿途停靠、轿厢负载、其他乘客的等待时间,以及早晚高峰完全不同的客流。看似普通的一次候梯,背后其实是一个不断接收新任务的实时调度问题。
在 DevOps 流程中,及时的消息通知对于团队协作至关重要。虽然 GitLab 自带了一些集成,但往往难以满足个性化的通知需求。本文将介绍如何利用阿里云函数计算(FC)搭建一个轻量、低成本且高度可定制的 GitLab Webhook 转发服务,将代码提交、合并请求、Pipeline 状态等实时推送…
DOTA2 TI14新赛制与往年对比深度分析报告 引言:TI14赛制改革背景与核心目标 2025年国际邀请赛(TI14)作为DOTA2顶级赛事的第十四届盛会,于9月4日至14日在德国汉堡拉开帷幕。由Valve与PGL合作举办的本届赛事,不仅是TI系列首次重回汉堡,更在赛制层面迎来颠覆性变革——以瑞士…
问题 在安装docker环境后 mpi 多机并行环境运行程序失效,mpi 程序拉起后无后续执行的信息,导致进程卡住 排查思路 1. 检查 ssh 均正常,可以免密登陆 2. 通过 pstree 查看 mpi 进程树,可以看到主副节点均能发现有进程占用 3. 打开 mpi 详细调试日志 a. expo…
默认的gcc版本是4.8.5,无法编译高版本的glibc 2.28,需要升级到gcc 8以上的版本 升级 gcc 升级 make 注意:make 的版本高于4.4 会造成 glibc 编译时卡在这一行 make[2]: Entering directory '/root/glibc 2.28/std…
安装并导入库 安装:pip install python jenkins 连接到Jenkins 1. 获取整个view下的所有任务 2. 停用任务
安装并导入 pandas 库 安装:pip install pandas 从 csv 文件读取并添加自定义表头 将某列数据转换为数字格式,并将无法转换的置0
终止运行超时的进程 subprocess 模块主要用于创建子进程,并连接它们的输入、输出和错误管道,获取它们的返回状态,在某种特殊情况下,我们需要对子进程的运行时间做限制,当超时时强制终止并获取输出。 subprocess 模块首先推荐使用的是它的 run 方法,更高级的用法是使用 Popen。 P…
记录程序的执行时间,并进行单位换算
问题描述 如下 Shell 脚本: 在 Jenkins 中执行此脚本时,通过 Shell 调用了 Python 脚本,当 Python 脚本内部异常退出例如遇到 sys.exit(1001),导致异常退出码无法抓取。 原因及解决 这是由于 Jenkins 在执行 shell 脚本时,默认会在命令行中…
用于在指定路径查询日志文件并返回对应的完整路径列表 用 os path 用 pathlib 改动 if file.endswith(".log") 可查找任意后缀的文件。
需求 当向 gitlab 推送 tag 时自动生成 Release 发布包的自动 CI 功能 实现 首先在对应仓库生成一个 Project Access Token,授权 api 和 write repository 权限,然后在仓库的设置 CI/CD 新增 Variable 名称为 ACCESS…
前言 鉴于网络原因 github page 访问加载速度很慢,同时伴随不定时的无法访问,让访问博客的流畅度大受影响。为了保持访问速度和稳定性于是打算将博客使用 Netlify 来构建和发布hexo博客。 步骤 Netlify 是一个提供静态资源网络托管的综合平台,提供CI服务,能够将托管 GitHu…
起始缘由 原本博客的发布方式为: 1. 在本地部署好 Hexo 博客的运行环境 2. 通过 [hexo g] 将写好的 Markdown 文件转化为 HTML 文件 3. 然后用 [hexo d] 把生成的 public 文件夹内所有内容推送到 Github 仓库中 这样直接将生成的可以运行的实际产…
需求 CentOS 7 的版本安装好之后默认自带的是 gcc 4.8,为了支持编译 c++ 的更高版本需要安装高版本的 gcc, 由于手动下载编译高版本可能会导致一些不可预料的意外情况,故采用安装 devtoolset工 具来解决。 安装步骤 1. 安装 centos release scl sud…
简介 MUMPS Solver 是一种用于求解大规模线性方程组的开源软件,Mumps官网:https://mumps solver.org,获取 MUMPS Solver 源代码可在https://mumps solver.org/index.php?page=dwnld 提交信息后获取。 编译前提…
前期准备 1. 下载安装文件压缩包与 License 文件,Abaqus6.14 4 后解压 2. 创建安装目录备用 mkdir p /opt/Abaqus/{exe,tmp,license,workspace,test case}
LVM 简介 LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是 Linux 环境下对磁盘分区进行管理的一种机制。LVM 将一个或多个物理卷(PV)虚拟为一个卷组(VG),相当于一个大的硬盘,我们可以在上面划分一些逻辑卷(LV)。当卷组的空间不够使用时,可以将新的磁盘分…
CI 任务触发需求 普通提交代码时不触发 当指定commit关键字触发 发起了 Merge Requests则自动触发 测试任务成功后自动合并分支
什么是 GitLab CI GitLab CI 是GitLab内置的进行持续集成的工具,只需要在仓库根目录下创建 .gitlab ci.yml 文件,并配置GitLab Runner;每次提交代码的时候,gitlab 将自动识别并且使用 GitLab Runner 执行任务。
一个纯bash实现外部命令的脚本集合 读取文件到一个字符串中 替代 cat 命令. 创建一个空文件 替代 touch.
安装 CMake 1. 安装gcc等依赖程序 yum install y gcc gcc c++ wget 2. 获取CMake源码包 wget https://cmake.org/files/v3.23/cmake 3.23.2.tar.gz 3. 解压并安装
安装桌面环境 !!! info 安装了Centos任意桌面版可跳过此步骤 服务依赖于桌面环境的运行,CentOS7 默认最小安装是不带桌面环境的,所以安装 VNC 之前需要首先安装桌面环境
在使用Gitlab进行CI/CD的时候,希望在任务结束的时候(成功或失败)能有对应的消息通知机制, 通过钉钉发送消息。 前提 钉钉群添加机器人获取token,secret 备用
set的基本用法,写出更安全的 Bash 脚本 set u: 脚本在头部加上它,遇到不存在的变量就会报错,并停止执行 set x: 用来在运行结果之前,先输出执行的那一行命 set e: 它使得脚本只要发生错误,就终止执行 某些命令的非零返回值可能不表示失败,或者开发者希望在命令失败的情况下,脚本继…
服务介绍 Supervisor 是用 Python 开发的一个 client/server 服务,是 Linux/Unix 系统下的一个进程管理工具,不支持 Windows 系统。它可以很方便的监听、启动、停止、重启一个或多个进程。用 Supervisor 管理的进程,当一个进程意外被杀死,supe…
源码安装 python3 1. 安装编译器与依赖
需求 为什么需要在 Windows 服务器安装 SSH 服务? 最近做 Jenkins 发版系统的时候,因为线上服务器有部分为 Windows 系统,为了使其能更好的融入 Jenkins。能够被 Jenkins 远程传输文件或者执行命令。
yum 安装 在 Root用户下操作 1. 安装 yum utils 包然后配置 docker 源仓库 yum install y yum utils yum config manager add repo https://download.docker.com/linux/centos/docke…
文件上传 利用 Jenkins File Parameter实现上传文件 File location filename 存放于当前任务目录下名为 filename,同时 利用变量 ${filename} 保存原始文件名,可在后续的构建脚本里调用,如: 将上传的文件重命名为原始文件名:mv filen…
ipv6环境需求 苹果应用商店APP过审要求需要有 ipv6 环境,ipv6 审核不通过,原因一般 2 个: 1. APP内连接采用了 ipv4 的 IP 地址,换成域名即可。(八成是这个原因,换成域名连服务端就行了,服务器、服务端和域名解析不用做任何变动)
jenkins 做什么 Jenkins 是持续集成中绕不过的一个服务、用作基于 gitlab 的发布系统 开发提交代码到 gitlab,通过 Jenkins 拉取代码 发布到测试环境 环境需求 Java nginx
nginx 限制 IP 的连接和并发用到两个模块 HttpLimitReqModul 用来限制连单位时间内连接数,使用limit req zone和limit req 命令配合使用来达到限制。一旦并发连接超过指定数量,就会返回503错误。 HttpLimitConnModul用来限制单个ip的并发连…
MS SQL 数据库迁移文件 这里说的不是将数据库迁移到另外一台服务器,只是在服务器不同磁盘目录内做迁移。移动数据库文件的情况大致有下面一些: 1. 事先没有规划好,数据库文件或日志文件增长过快,导致某个盘或整个磁盘空间不足,需要移动数据文件或日志文件 2. 纯粹由于业务需求,数据增长过快。 3.…
需求 1. 使用 es 采集 nginx 访问日志,系统日志,备份日志等 1. 滚动更新,保留指定时期文档,自动删除旧的索引 1. 不使用额外的脚本,尽量用 es 自带功能实现
1. 安装Docker ce curl fsSL https://get.docker.com o get docker.sh 2. 安装docker compose 3. 使用阿里云镜像为docker加速
问题描述 GitLab 使用git pull 时出现: error: RPC failed;result=22 HTTP code=500 fatal: The remote end hung up unexpectedly
问题发现 代码提交 gitlab 后拉取下来 rsync 同步到测试服时发现文件有差异 原因探究 1. 怀疑提交 git 后文件状态改变,修改 rsync 同步参数改为计算 MD5 值进行比对 2. 修改参数后仍然有差异,拉取文件进行 MD5 值计算,发现确实 MD5 值不一致 3. 拉取文件进行差…
问题描述 在使用 acme.sh脚本签发的Let's Encrypt 免费SSL证书,在android中无法通过SSL系统验证,出现以下异常Trust anchor for certification path not found
Let'sEncrypt 介绍 Let's Encrypt: https://letsencrypt.org , 是一个免费的、自动化的、开放的证书颁发机构。它的全球SSL证书市场份额已超过50%,得到主流浏览器和厂商的认可与支持。
前言 本文介绍如何使用快速安装功能在CentOS 7.1(64位)上部署Oracle Database 12c(12.1.0.2.0)。 原文地址 centos 7 安装oracel 12c、本文对原贴翻译并加入安装过程踩到的坑。
今天在用 Python 处理 AWS S3 存储的时候遇到个时间格式的问题,特别在此记录下: 获取 bucket 下的 object 最后修改时间、然后对所有的超过 30 天的进行删除操作,但是提取到的是2018 03 05T09:20:005Z这种字符串。
nginx 代理配置完之后, nginx 配置proxy pass,需要注意转发的路径配置问题. 在 nginx 中配置 proxy pass 时,当在后面的url加上了'/',相当于是绝对根路径,则 nginx 不会把 location 中匹配的路径部分代理走;如果没有'/',则会把匹配的路径部分…
关于 location的匹配顺序的常见误区 1. location 的匹配顺序是“先匹配正则,再匹配普通”。 矫正:location 的匹配顺序其实是“先匹配普通,再匹配正则”。造成这种误解的原因是:正则匹配会覆盖普通匹配。
在 MySQL 的使用过程中,如果 root 用户密码丢失了,会造成很大的麻烦。但是,可以通过某种特殊的办法登陆到 root 用户下,然后设置新的密码。 下面记录下当忘记MySQL root 密码的解决办法:
简介 安装环境:CENTOS 7.3 Mysql Nginx Postfix Dovecot web 模块是最先需要确定的,因为它决定了邮箱系统最核心的数据结构,这里选用国产的 extmail,其他所有模块都按照 extmail 的结构进行配置修改。 如果在main.cf里设置virtual tra…
简介 PyInstaller 可以用来打包 python 应用程序,打包完的程序就可以在没有安装 Python 解释器的机器上运行了。PyInstaller 支持 Python 2.7 和 Python 3.3+。可以在 Windows、Mac OS X 和 Linux 上使用,但是并不是跨平台的,…
docker 安装 Windows Docker Windows 客户端需要开启 Hyper V,安装过程会自动提示打开与否。 从官网下载安装包双击安装。Docker for Windows Installer.exe 双击图标运行docker,初次打开可能需要几分钟时间。当右下角出现 docker…
Nginx 介绍 Nginx 是一个 web 服务器。它类似于 Lighttpd,作为轻量级的 web server,可以替代重量级的 Apache/IIS。
本文章将帮助您基于 Gitpages快速搭建 Hexo 博客。如果您在使用过程中遇到问题,请在 GitHub、Google Group 上提问。
[IIS][ASP.NET]“拒绝访问临时目录”的解决方法 今天把程序部署到一台Windows主机上,通过浏览器访问时出现下面的错误:
故障排除:用户 'x' 登录失败 因密码或用户名错误而使身份验证失败并导致连接尝试被拒时,类似下面的消息将返回到客户端:“用户 ' ' 登录失败”。(Microsoft SQL Server,错误: 18456)”。
问题 windows server 上的 IIS 服务器报错:“/”应用程序中的服务器错误。 因为网页是 aspx 格式,网站首页为 default.aspx, 浏览器里调试提示 找不到 default.aspx 。 解决办法 打开 IIS 管理程序,找到所属网站站点,在设置界面找到默认页面,设置首…
问题 网站部署好了后打开发现找不到字体文件,错误代码 404 !
写在前面 基于python版本3,使用BeautifulSoup和requests库。 因为近来雾霾越来越严重,影响到的人群也是越来越多,一直想做一个PM2.5的统计,正好最近开始学习Python所有就拿它来练手了,新手不足之处还请指教。