- 博客(202)
- 资源 (1)
- 收藏
- 关注
原创 python - 责任链模式实现(2)
pluggy 是 Python 的一个插件管理库。pytest 利用 pluggy 实现插件化,在 Flask 或 Django 等 web 框架中,可以使用 pluggy 为 Middleware 或 View 功能扩展钩子。在数据流管道中,通过 pluggy 添加钩子实现数据采集、过滤、聚合等功能可用于处理数据流的不同阶段。
2024-08-10 18:41:45
386
原创 python - 责任链模式实现(1)
责任链模式通常用于流式数据的处理、请求响应中间件等场景,将多个过滤器对象连成一条链,并沿着这条链传递该请求。也可以用于面向切片编程的场景,责任链中的每个过滤器对象可以以插件的形式提供给主流程,主流程只关心责任链的构造和执行,每个过滤器插件的实现可以单独开发,通过配置方式动态加载到责任链中,实现了和主流程的解耦。本文提供了责任链模式的两种实现。
2024-08-07 21:36:46
357
原创 rust - 使用 cargo-nextest 替代 cargo test
cargo-nextest 是新一代的rust测试程序,能够极大提升测试性能,可以完全替代 cargo test 命令。
2024-05-24 01:03:53
636
原创 rust - windows下实现捕获ctrlc信号
linux 下可以通过注册`SIGINT`的事件处理函数来捕获 `ctrl + c` 信号,而windows下控制台进程只能通过调用`SetConsoleCtrlHandler`函数设置 `ctrl + c` 信号处理函数。
2024-04-01 09:32:08
686
原创 rust - 使用log4rs打印日志
本文提供了一种通过`log4rs`库记录日志的方法。这里没有采用读取`yaml`文件的方式,而是通过对象构造的方式来初始化日志,用于发包时不带配置文件的场景。
2024-03-29 09:39:58
736
原创 rust - 基于AES-CBC-128的图片加密实现
本文提供了一种基于AES128算法的图片加解密的方案。可以把图片看作二进制的文本,以文本的方式加解密即可。
2024-03-23 12:57:30
575
原创 rust - 基于AES-CBC-128的双重加密实现
通常加密密钥不要出现在源码中,比如配置文件中的数据库密码等。解决方案通常采用将密钥存放在环境变量中,进程启动时从环境变量获取密钥加载到内存中。还有一种方案,对密钥进行加密,源码中只包含对密钥加密的根密钥和对密钥加密后的二次密钥,如果不知道加密方式,在编译出来的二进制文件中很难还原出真实的密钥。
2024-03-22 09:30:19
1177
原创 rust - 一个日志缓存记录的通用实现
本文给出了一个通用的设计模式,通过建造者模式实例化记录对象,可自定义格式化器将实例化后的记录对象写入到指定的缓存对象中。
2024-03-17 17:44:51
743
原创 rust - 理解 ToOwned trait
ToOwned trait支持任意类型的转换,而Clone trait只支持&T 到 T 的转换.以下先介绍一下基本的定义,最后通过一个简单的例子详细理解一下Borrow trait和ToOwned trait的互相转换的过程.
2023-10-28 21:13:32
796
转载 NTP服务放大攻击的解决办法
转载:什么是NTP服务?网络时间协议NTP(Network Time Protocol)是用于互联网中时间同步的标准互联网协议。NTP服务器通过NTP服务向网络上的计算机或其他设备提供标准的授时服务,以保证这些服务系统的时钟能够同步。通常NTP服务使用UDP 123端口提供标准服务。什么是NTP服务放大攻击?标准NTP 服务提供了一个 monlist查询功能,也被称为MON_GETLIST,该功能主
2017-04-13 14:34:17
7282
1
原创 在windows上使用_netrc文件让Git记住用户名和密码
场景使用ssh因为网络策略问题无法访问git@github.com使用https作为remote origin缺点明文存储实现定义一个用户环境变量%HOME%, 值为%USERPROFILE%在%HOME%路径下新建一个文件_netrc在_netrc文件中增加下面的配置machine github.comlogin cnblogs_userpassword cnblogs_pwd
2017-04-11 14:41:53
7495
1
原创 windows下GitHub的SSH key配置
生成SSH密钥 并 添加公共密钥到GitHub上的帐户设置GitHub的user name和emailgit config --global user.name "Git账号"git config --global user.email "Git邮箱"生成一个新的SSH密钥打开 Git Bash,输入如下命令,然后连续按三个回车即可: ssh-keygen -t rsa -C “your_ema
2017-04-10 22:11:44
2352
原创 Python元类编程——with_metaclass
最近刚接触python的元类,网络上有比较详细的介绍,这里是在看Django时候发现一点关于元类的应用,做个笔记。from django.utils import sixclass A(type): def __new__(cls, name, parents, attrs): return type.__new__(cls, name, parents, attrs)cl
2017-04-07 18:52:09
7073
转载 Python: 捕获异常然后再抛出另一个异常的正确姿势
转载:https://mozillazg.github.io/2016/08/python-the-right-way-to-catch-exception-then-reraise-another-exception.html一般大家实现捕获异常然后再抛出另一个异常的方法是下面这样的:def div(): 2 / 0try: div()except ZeroDivisionErr
2017-04-07 11:37:51
16691
原创 python获取登录验证码
根据sessionId下载验证码,通过人工方式识别import urllib2def get_captcha(captchaUrl, sessionIdKey, sessionIdValue): """获得验证码图片 通过fiddler分析验证码请求时需要携带的cookie,通常验证码是与某个sessionid绑定的 Args: captchaUrl: 验证码地
2017-04-07 10:41:23
6236
转载 MySQL高可用方案选型参考
转载:http://imysql.com/2015/09/14/solutions-of-mysql-ha.shtml可选MySQL高可用方案MySQL的各种高可用方案,大多是基于以下几种基础来部署的:基于主从复制;基于Galera协议;基于NDB引擎;基于中间件/proxy;基于共享存储;基于主机高可用;在这些可选项中,最常见的就是基于主从复制的方案,其次是基于Galera的方案,我
2017-04-05 21:27:03
604
转载 来自 Google 的高可用架构理念与实践
来自 Google 的高可用架构理念与实践孙宇聪,CTO @ coding.net 。2007 - 2015 年初在 Google 的 Moutain View 担任 SRE 职位。 参与了 Google 的两个项目:第一个是 Youtube,工作内容涵盖 Video transfer、Coding、Streaming、Global CDN 等;第二个是 Google Cloud Platform
2017-04-05 21:10:53
717
原创 Excel清除一个单元格的第一个字符
解决导出的文件中超长整型显示的问题处理csv文件超长整型在excel中默认使用科学技术法显示,为了使得导出的csv文件可以以字符串的格式显示在Excel中csvn文件内容如下,在字符串的前面加上一个单引号问题单号'2016010113440210231'2016010113440210231'2016010113440210231'2016010113440210231Excel打开CSV文
2017-03-22 11:02:11
10243
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人