呓语 | 杨英明的个人博客

专注于c++、Python,欢迎交流

By

[顶] 一个基于 Golang + React 的定时任务可视化配置网站的设计与实现

这个项目的初衷是为了监控我正在看的网络小说的更新情况,我希望在小说更新时就给我发一封 email 邮件,这样就能在第一时间看到热乎乎刚出炉的小说咯!

最初的时候我写了个 Python 脚本快速实现我的思路,借助 Linux 自带的 crontab 定时运行脚本抓取更新情况,有更新时就发送邮件给我。这个早期项目的地址见:elliotxx/RenewRemind

通过 Python 脚本 + crontab 的方式实现起来确实快速,运行也算稳定(使用了一年),但是也有缺点:要添加新的监控目标时,需要直接改代码;要添加新的通知邮箱时,也要改代码;总的来说,就是配置&维护不方便,直面代码,对用户不友好。

正巧最近在学习 Golang 和 React,于是就计划将以上想法做成一个可视化配置的 Web 工具。同时也加入了 Dockerfile 和 webhooks 技术实现了持续集成&持续交付(CICD),方便部署和发布,也算实践了一些想法,下面分享这个简单项目的设计和实现思路。

项目命名为 watchman(更夫),开源地址见:elliotxx/watchman

在线 Demohttp://watch.yangyingming.com

默认登录账号:admin 密码:12345

By

wolai : 云笔记新选型

By

java.lang.ClassNotFoundException 系列问题解决方案

java.lang.ClassNotFoundException 系列问题解决方案

By

2019 年 12 月份阅读记录

这大半年因为各种事情,没怎么读书,年末闲下来了,才补上几本书

以后工作了,时间更少,读书的事情任重而道远啊

By

Spring Security 调研

Spring Security 是 Spring 提供的用于用户权限认证授权的框架。
官方文档:https://docs.spring.io/spring-security/site/docs/5.2.2.BUILD-SNAPSHOT/reference/htmlsingle/
快速开始:https://spring.io/guides/gs/securing-web/

By

Linux 服务器初始化部署常用步骤

因为要经常配置新服务器,所以记录一下云服务器从0配置的常用步骤,比如配置 vim、创建新用户、配置安装源等等。

By

Minikube 入门指南

简单来说,就是 minikube 借助 VirtualBox 创建了名叫 Minikube VM 的虚拟机,然后在这个虚拟机中运行了一个单节点的 Kubernetes 集群 Minikube 利用本地虚拟机环境部署 Kubernetes,其基本架构如下图所示:

用户使用 Minikube CLI 管理虚拟机上的 Kubernetes 环境,比如:启动,停止,删除,获取状态等。一旦 Minikube 虚拟机启动,用户就可以使用熟悉的 Kubectl CLI 在 Kubernetes 集群上执行操作。

from Minikube - Kubernetes本地实验环境

By

k8s.gcr.io 国内无法访问的替代解决方案

Kubernetes 很多组件的镜像全部托管在 gcr.io 这个域名下(现在换成了 k8s.gcr.io);由于众所周知的原因,这个网站在国内是不可达的;

By

200 行代码实现一个简单的命令行解析库

本文介绍一个简单的、只有 200 行代码的命令行解析库的实现原理,库暂命名为 ArgParse。

命令行解析库一般在写命令行 CLI 工具的时候会使用到,它的主要作用是方便的配置和解析命令行参数,Go 语言标准库中其实就提供了一个命令行解析库 flag, 但是在使用过程中发现 flag 不支持同时识别多个参数,比如 -nfp 10 这样的参数集合。于是我就撸了个简单的命令行解析库,其中也借鉴了 flag 的思路。

名字嘛,因为之前使用过 python 中的 ArgParse,所以这个简单的 Go 语言命令行解析库也叫做 ArgParse 好了。

开源地址:elliotxx/argparse

By

对于 12-Factor 开发规范的一些理解

12-Factor 是 Heroku 的工程师结合大量实践经验总结出的软件开发规范,它包含 12 条开发规范。在当前万物上“云”的时代,不管对于开发人员还是运维人员,12-Factor 都十分有借鉴作用。而遵循 12-Factor 规范开发的应用程序,被称为 12-Factor App。

官方文档(中文):https://12factor.net/zh_cn/

这篇英文博文总结的很精炼:"12-FACTOR APP" SUMMARY

由于官方文档翻译的不太流畅,所以笔者在这里结合原文聊聊个人的粗浅理解。

By

Golang 间接实现 interface的一种方式

在看 k8s HPA 的时候,发现一段有意思的代码

By

C++ 中类的函数重载(overload)、函数重写(override)、虚函数重写(virtual override)、虚函数重载(virtual overload)区别

重载和重写都是对同名函数的处理,区别是处理的同名函数参数类型、个数、返回值是否完全一样。

重载(overload):定义多个同名函数,这些同名函数的参数类型、个数、返回值可以不一样。

重写(override):存在于子父类之间,在子类中重新定义从父类继承的同名函数(参数类型、返回值要求完全一样)

By

在 VSCode 中配置 C++ 环境

参考了一些博客,最后加了些自己的配置,方便以后配置。

其中重点参考了:VSCode下配置C++

By

Surface go 上手指北

最近入手了 Surface go,配置为 8+128G,带键盘,淘宝价格 3838元。

研究了两天,体验不错,对我来说,需求就是一个平板,最好还能轻度办公,Surface go 完美的满足了这两点需求。

以下聊聊我的体验和使用技巧。

By

2019 年 2 月份阅读记录

By

2019 年 1 月份阅读记录

崔斯特来到地表,开始旅居生活

图片来自:http://www.lizardlounge.net/2016/03/02/re-read-exile-sojourn-r-salvatore/

By

Vultr 修复记

过了个春节,回来发现梯子失效了,一下子打回原型,感觉和世界失去了联系。

查看了一下 vultr 服务器,ssh 能正常登录,ss 也能连上,但信号就是翻不出去。

查了下原因,可能是 ss 的端口号被封了。

于是我换了个 ss 的端口号,手动设置防火墙开放该端口,重载防火墙设置,修复成功。

By

搭个网站免费无限制看漫画

By

使用 argparse 编写自己的命令行工具

如果你还在用 sys.argv 的方式解析复杂的命令行参数,那儿你就 out 了!快来使用更加强大的 argparse 吧~

By

编写 setup.py 打包 python 程序且安装到命令行运行

这两天封装了一个异常点检测的工具,并且需要把它部署到一个新环境中。为了方便使用,我想到编写 setup.py 打包/安装我的 python 程序。