不为无益之事,何遣有涯之生

深度学习笔记

深度学习相关的技术栈高度依赖数学基础,学起来比较吃力,这里权做笔记。

教材是《动手学深度学习(Pytorch版)》,教程可以在b站上看。

安装很简单,略过。

时序数据规则引擎设计思路

规则引擎的大致组成包括:

  1. 触发条件:如某个设备某种消息在某个时间点内到达;或周期性,每隔多久触发一次;
  2. 触发响应:即触发条件后要做什么,一般是告警、通知、联动其他设备、联动其他系统等;
  3. 边界情况:重复触发如何处理、回调频率控制等细节;

实现思路大致包括以下几种:

K8s应用调试技巧

注意: 谨慎使用本文所述的工具,尤其是不要直接修改生产环境数据,风险自负!!!

rancher只读账号也可以登录服务pod的终端,而能登录到pod里就可以访问生产环境的所有组件。

K3s安装注意事项

k3s自带了containerd作为CRI实现,不过我们一般习惯上还是使用docker作为运行时。但是两者结合使用有一些坑,这里做一下记录。

不用containerd的主要原因是它的命令太难记,ctr/ctictl做的什么jb玩意儿。还有一个原因是,如果只想用容器不想用k8s,docker的功能是最完善的。

Python技术栈更新

有段时间没用Python写工程了,基本都是写脚本,最近接了个活帮忙搞个爬虫相关项目,需要更新一下技术栈,做个笔记。

  • web开发:fastapi, 其实还可以接着用flask,不过前者对asyncio支持更完善一些,顺便学一下新东西;至于django还是太重了,写单体估计有点用;
  • 数据库ORM:仍然可以继续使用sqlalchemy,最新的是2.0版本,已经支持asyncio;
  • 爬虫:爬虫相关的技术栈变化不大…scrapy其实不太好用,封装的太厚,而且twisted早就过时了。自己写的话就:
    • aiohttp做网络请求;
    • dom解析:仍然是基于lxml的技术栈,主要还是xpathcss-selector来获取元素;
    • 浏览器模拟(动态网页):Playwright代替了Selenium等古早的框架;
    • 打包:用docker就行;
    • 验证码破解:这个相关的网站蛮多的,但是好不好使需要测试一下才知道。包括:yesCapture, 2Capture和穿云等;
    • 其他反爬技术:这个只能随机应变了,现在很多网站都做了反爬,具体手段不一,需要尝试解决;

FastAPI

fastapi顾名思义,专注于提供API框架,不关心模版引擎、ORM之类的东西,但是自带了API文档(即swagger集成)。所以代码非常简单,不需要Django那套复杂的框架:

0%